module Signet.Unstable.Exception.InvalidPublicKey where

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

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

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

unwrap :: InvalidPublicKey -> ByteString.ByteString
unwrap :: InvalidPublicKey -> ByteString
unwrap (MkInvalidPublicKey ByteString
byteString) = ByteString
byteString