module Patrol.Type.MachException where
import qualified Data.Aeson as Aeson
import qualified Data.Text as Text
import qualified Patrol.Extra.Aeson as Aeson
data MachException = MachException
{ MachException -> Maybe Int
code :: Maybe Int,
MachException -> Maybe Int
exception :: Maybe Int,
MachException -> Text
name :: Text.Text,
MachException -> Maybe Int
subcode :: Maybe Int
}
deriving (MachException -> MachException -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: MachException -> MachException -> Bool
$c/= :: MachException -> MachException -> Bool
== :: MachException -> MachException -> Bool
$c== :: MachException -> MachException -> Bool
Eq, Int -> MachException -> ShowS
[MachException] -> ShowS
MachException -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [MachException] -> ShowS
$cshowList :: [MachException] -> ShowS
show :: MachException -> String
$cshow :: MachException -> String
showsPrec :: Int -> MachException -> ShowS
$cshowsPrec :: Int -> MachException -> ShowS
Show)
instance Aeson.ToJSON MachException where
toJSON :: MachException -> Value
toJSON MachException
machException =
[Pair] -> Value
Aeson.intoObject
[ forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"code" forall a b. (a -> b) -> a -> b
$ MachException -> Maybe Int
code MachException
machException,
forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"exception" forall a b. (a -> b) -> a -> b
$ MachException -> Maybe Int
exception MachException
machException,
forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"name" forall a b. (a -> b) -> a -> b
$ MachException -> Text
name MachException
machException,
forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"subcode" forall a b. (a -> b) -> a -> b
$ MachException -> Maybe Int
subcode MachException
machException
]
empty :: MachException
empty :: MachException
empty =
MachException
{ code :: Maybe Int
code = forall a. Maybe a
Nothing,
exception :: Maybe Int
exception = forall a. Maybe a
Nothing,
name :: Text
name = Text
Text.empty,
subcode :: Maybe Int
subcode = forall a. Maybe a
Nothing
}