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