module Network.IPFS.Get.Error (Error (..)) where import Servant.Client import Network.IPFS.Prelude import Network.IPFS.Stat.Error import Network.IPFS.Types data Error = InvalidCID Text | TimedOut CID Natural | WebError ClientError | SizeError OverflowDetected | UnexpectedOutput Text | UnknownErr Text deriving ( Show Error Typeable 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 Exception , Error -> Error -> Bool 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. 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 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 ) instance Display Error where display :: Error -> Utf8Builder display = \case InvalidCID Text hash -> Utf8Builder "Invalid CID: " forall a. Semigroup a => a -> a -> a <> forall a. Display a => a -> Utf8Builder display Text hash TimedOut (CID Text hash) Natural sec -> forall a. Monoid a => [a] -> a mconcat [ Utf8Builder "Unable to find CID " , forall a. Display a => a -> Utf8Builder display Text hash , Utf8Builder " before the timeout of " , forall a. Display a => a -> Utf8Builder display Natural sec , Utf8Builder " seconds." ] WebError ClientError err -> Utf8Builder "WebError: " forall a. Semigroup a => a -> a -> a <> forall a. Show a => a -> Utf8Builder displayShow ClientError err SizeError OverflowDetected err -> Utf8Builder "SizeError: " forall a. Semigroup a => a -> a -> a <> forall a. Display a => a -> Utf8Builder display OverflowDetected err UnexpectedOutput Text raw -> Utf8Builder "Unexpected IPFS output: " forall a. Semigroup a => a -> a -> a <> forall a. Display a => a -> Utf8Builder display Text raw UnknownErr Text raw -> Utf8Builder "Unknown IPFS get error: " forall a. Semigroup a => a -> a -> a <> forall a. Display a => a -> Utf8Builder display Text raw