module Data.TypeID.Error
(
TypeIDError(..)
) where
import Control.Exception
import Data.Text (Text)
data TypeIDError = TypeIDErrorPrefixTooLong Int
|
| TypeIDErrorPrefixInvalidChar Char
| TypeIDErrorAlreadyHasPrefix Text
| TypeIDErrorPrefixMismatch Text Text
| TypeIDErrorUUIDError
deriving (TypeIDError -> TypeIDError -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: TypeIDError -> TypeIDError -> Bool
$c/= :: TypeIDError -> TypeIDError -> Bool
== :: TypeIDError -> TypeIDError -> Bool
$c== :: TypeIDError -> TypeIDError -> Bool
Eq, Eq TypeIDError
TypeIDError -> TypeIDError -> Bool
TypeIDError -> TypeIDError -> Ordering
TypeIDError -> TypeIDError -> TypeIDError
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
min :: TypeIDError -> TypeIDError -> TypeIDError
$cmin :: TypeIDError -> TypeIDError -> TypeIDError
max :: TypeIDError -> TypeIDError -> TypeIDError
$cmax :: TypeIDError -> TypeIDError -> TypeIDError
>= :: TypeIDError -> TypeIDError -> Bool
$c>= :: TypeIDError -> TypeIDError -> Bool
> :: TypeIDError -> TypeIDError -> Bool
$c> :: TypeIDError -> TypeIDError -> Bool
<= :: TypeIDError -> TypeIDError -> Bool
$c<= :: TypeIDError -> TypeIDError -> Bool
< :: TypeIDError -> TypeIDError -> Bool
$c< :: TypeIDError -> TypeIDError -> Bool
compare :: TypeIDError -> TypeIDError -> Ordering
$ccompare :: TypeIDError -> TypeIDError -> Ordering
Ord)
instance Show TypeIDError where
show :: TypeIDError -> String
show :: TypeIDError -> String
show (TypeIDErrorPrefixTooLong Int
n)
= forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [String
"Prefix with ", forall a. Show a => a -> String
show Int
n, String
" characters is too long!"]
show TypeIDError
TypeIDExtraSeparator
= String
"The underscore separator should not be present if the prefix is empty!"
show (TypeIDErrorPrefixInvalidChar Char
c)
= forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [String
"Prefix contains invalid character ", forall a. Show a => a -> String
show Char
c, String
"!"]
show (TypeIDErrorAlreadyHasPrefix Text
prefix)
= forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [String
"TypeID already has prefix ", forall a. Show a => a -> String
show Text
prefix, String
"!"]
show (TypeIDErrorPrefixMismatch Text
expPrefix Text
actPrefix)
= forall (t :: * -> *) a. Foldable t => t [a] -> [a]
concat [ String
"Expected prefix ", forall a. Show a => a -> String
show Text
expPrefix, String
" but got "
, forall a. Show a => a -> String
show Text
actPrefix, String
"!" ]
show TypeIDError
TypeIDErrorUUIDError
= String
"Invalid UUID part!"
{-# INLINE show #-}
instance Exception TypeIDError