module CabalGild.Unstable.Exception.UnexpectedArgument where

import qualified Control.Monad.Catch as Exception

-- | This exception is thrown when an unexpected command line argument is
-- encountered.
newtype UnexpectedArgument
  = UnexpectedArgument String
  deriving (UnexpectedArgument -> UnexpectedArgument -> Bool
(UnexpectedArgument -> UnexpectedArgument -> Bool)
-> (UnexpectedArgument -> UnexpectedArgument -> Bool)
-> Eq UnexpectedArgument
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: UnexpectedArgument -> UnexpectedArgument -> Bool
== :: UnexpectedArgument -> UnexpectedArgument -> Bool
$c/= :: UnexpectedArgument -> UnexpectedArgument -> Bool
/= :: UnexpectedArgument -> UnexpectedArgument -> Bool
Eq, Int -> UnexpectedArgument -> ShowS
[UnexpectedArgument] -> ShowS
UnexpectedArgument -> String
(Int -> UnexpectedArgument -> ShowS)
-> (UnexpectedArgument -> String)
-> ([UnexpectedArgument] -> ShowS)
-> Show UnexpectedArgument
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> UnexpectedArgument -> ShowS
showsPrec :: Int -> UnexpectedArgument -> ShowS
$cshow :: UnexpectedArgument -> String
show :: UnexpectedArgument -> String
$cshowList :: [UnexpectedArgument] -> ShowS
showList :: [UnexpectedArgument] -> ShowS
Show)

instance Exception.Exception UnexpectedArgument where
  displayException :: UnexpectedArgument -> String
displayException (UnexpectedArgument String
s) = String
"unexpected argument: " String -> ShowS
forall a. Semigroup a => a -> a -> a
<> String
s

-- | Constructs an 'UnexpectedArgument' from the given 'String'.
fromString :: String -> UnexpectedArgument
fromString :: String -> UnexpectedArgument
fromString = String -> UnexpectedArgument
UnexpectedArgument