module Signet.Unstable.Exception.InvalidId where

import qualified Control.Monad.Catch as Exception
import qualified Data.ByteString as ByteString

newtype InvalidId
  = MkInvalidId ByteString.ByteString
  deriving (InvalidId -> InvalidId -> Bool
(InvalidId -> InvalidId -> Bool)
-> (InvalidId -> InvalidId -> Bool) -> Eq InvalidId
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: InvalidId -> InvalidId -> Bool
== :: InvalidId -> InvalidId -> Bool
$c/= :: InvalidId -> InvalidId -> Bool
/= :: InvalidId -> InvalidId -> Bool
Eq, Int -> InvalidId -> ShowS
[InvalidId] -> ShowS
InvalidId -> String
(Int -> InvalidId -> ShowS)
-> (InvalidId -> String)
-> ([InvalidId] -> ShowS)
-> Show InvalidId
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> InvalidId -> ShowS
showsPrec :: Int -> InvalidId -> ShowS
$cshow :: InvalidId -> String
show :: InvalidId -> String
$cshowList :: [InvalidId] -> ShowS
showList :: [InvalidId] -> ShowS
Show)

instance Exception.Exception InvalidId where
  displayException :: InvalidId -> String
displayException = String -> ShowS
forall a. Monoid a => a -> a -> a
mappend String
"invalid ID: " ShowS -> (InvalidId -> String) -> InvalidId -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. ByteString -> String
forall a. Show a => a -> String
show (ByteString -> String)
-> (InvalidId -> ByteString) -> InvalidId -> String
forall b c a. (b -> c) -> (a -> b) -> a -> c
. InvalidId -> ByteString
unwrap

unwrap :: InvalidId -> ByteString.ByteString
unwrap :: InvalidId -> ByteString
unwrap (MkInvalidId ByteString
byteString) = ByteString
byteString