module Network.IPFS.Error
( Error (..)
, Linearization (..)
) where
import Network.IPFS.Prelude
import Network.IPFS.Types
import qualified Network.IPFS.Add.Error as Add
import qualified Network.IPFS.Get.Error as Get
data Error
= AddErr Add.Error
| GetErr Get.Error
| LinearizationErr Linearization
deriving ( Show Error
Typeable Error
Typeable Error
-> Show Error
-> (Error -> SomeException)
-> (SomeException -> Maybe Error)
-> (Error -> String)
-> Exception Error
SomeException -> Maybe Error
Error -> String
Error -> SomeException
forall e.
Typeable e
-> Show e
-> (e -> SomeException)
-> (SomeException -> Maybe e)
-> (e -> String)
-> Exception e
displayException :: Error -> String
$cdisplayException :: Error -> String
fromException :: SomeException -> Maybe Error
$cfromException :: SomeException -> Maybe Error
toException :: Error -> SomeException
$ctoException :: Error -> SomeException
$cp2Exception :: Show Error
$cp1Exception :: Typeable Error
Exception
, Error -> Error -> Bool
(Error -> Error -> Bool) -> (Error -> Error -> Bool) -> Eq Error
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Error -> Error -> Bool
$c/= :: Error -> Error -> Bool
== :: Error -> Error -> Bool
$c== :: Error -> Error -> Bool
Eq
, (forall x. Error -> Rep Error x)
-> (forall x. Rep Error x -> Error) -> Generic Error
forall x. Rep Error x -> Error
forall x. Error -> Rep Error x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Error x -> Error
$cfrom :: forall x. Error -> Rep Error x
Generic
, Int -> Error -> ShowS
[Error] -> ShowS
Error -> String
(Int -> Error -> ShowS)
-> (Error -> String) -> ([Error] -> ShowS) -> Show Error
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Error] -> ShowS
$cshowList :: [Error] -> ShowS
show :: Error -> String
$cshow :: Error -> String
showsPrec :: Int -> Error -> ShowS
$cshowsPrec :: Int -> Error -> ShowS
Show
, [Error] -> Encoding
[Error] -> Value
Error -> Encoding
Error -> Value
(Error -> Value)
-> (Error -> Encoding)
-> ([Error] -> Value)
-> ([Error] -> Encoding)
-> ToJSON Error
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [Error] -> Encoding
$ctoEncodingList :: [Error] -> Encoding
toJSONList :: [Error] -> Value
$ctoJSONList :: [Error] -> Value
toEncoding :: Error -> Encoding
$ctoEncoding :: Error -> Encoding
toJSON :: Error -> Value
$ctoJSON :: Error -> Value
ToJSON
)
newtype Linearization = NonLinear SparseTree
deriving ( Linearization -> Linearization -> Bool
(Linearization -> Linearization -> Bool)
-> (Linearization -> Linearization -> Bool) -> Eq Linearization
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Linearization -> Linearization -> Bool
$c/= :: Linearization -> Linearization -> Bool
== :: Linearization -> Linearization -> Bool
$c== :: Linearization -> Linearization -> Bool
Eq
, (forall x. Linearization -> Rep Linearization x)
-> (forall x. Rep Linearization x -> Linearization)
-> Generic Linearization
forall x. Rep Linearization x -> Linearization
forall x. Linearization -> Rep Linearization x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cto :: forall x. Rep Linearization x -> Linearization
$cfrom :: forall x. Linearization -> Rep Linearization x
Generic
, Int -> Linearization -> ShowS
[Linearization] -> ShowS
Linearization -> String
(Int -> Linearization -> ShowS)
-> (Linearization -> String)
-> ([Linearization] -> ShowS)
-> Show Linearization
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Linearization] -> ShowS
$cshowList :: [Linearization] -> ShowS
show :: Linearization -> String
$cshow :: Linearization -> String
showsPrec :: Int -> Linearization -> ShowS
$cshowsPrec :: Int -> Linearization -> ShowS
Show
)
deriving anyclass ( Show Linearization
Typeable Linearization
Typeable Linearization
-> Show Linearization
-> (Linearization -> SomeException)
-> (SomeException -> Maybe Linearization)
-> (Linearization -> String)
-> Exception Linearization
SomeException -> Maybe Linearization
Linearization -> String
Linearization -> SomeException
forall e.
Typeable e
-> Show e
-> (e -> SomeException)
-> (SomeException -> Maybe e)
-> (e -> String)
-> Exception e
displayException :: Linearization -> String
$cdisplayException :: Linearization -> String
fromException :: SomeException -> Maybe Linearization
$cfromException :: SomeException -> Maybe Linearization
toException :: Linearization -> SomeException
$ctoException :: Linearization -> SomeException
$cp2Exception :: Show Linearization
$cp1Exception :: Typeable Linearization
Exception
, [Linearization] -> Encoding
[Linearization] -> Value
Linearization -> Encoding
Linearization -> Value
(Linearization -> Value)
-> (Linearization -> Encoding)
-> ([Linearization] -> Value)
-> ([Linearization] -> Encoding)
-> ToJSON Linearization
forall a.
(a -> Value)
-> (a -> Encoding)
-> ([a] -> Value)
-> ([a] -> Encoding)
-> ToJSON a
toEncodingList :: [Linearization] -> Encoding
$ctoEncodingList :: [Linearization] -> Encoding
toJSONList :: [Linearization] -> Value
$ctoJSONList :: [Linearization] -> Value
toEncoding :: Linearization -> Encoding
$ctoEncoding :: Linearization -> Encoding
toJSON :: Linearization -> Value
$ctoJSON :: Linearization -> Value
ToJSON
)
instance Display Linearization where
display :: Linearization -> Utf8Builder
display (NonLinear SparseTree
sparseTree) = Utf8Builder
"Unable to linearize IPFS result: " Utf8Builder -> Utf8Builder -> Utf8Builder
forall a. Semigroup a => a -> a -> a
<> SparseTree -> Utf8Builder
forall a. Display a => a -> Utf8Builder
display SparseTree
sparseTree