module Patrol.Type.SystemSdkInfo where
import qualified Data.Aeson as Aeson
import qualified Data.Text as Text
import qualified Patrol.Extra.Aeson as Aeson
data SystemSdkInfo = SystemSdkInfo
{ SystemSdkInfo -> Text
sdkName :: Text.Text,
SystemSdkInfo -> Maybe Int
versionMajor :: Maybe Int,
SystemSdkInfo -> Maybe Int
versionMinor :: Maybe Int,
SystemSdkInfo -> Maybe Int
versionPatchlevel :: Maybe Int
}
deriving (SystemSdkInfo -> SystemSdkInfo -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: SystemSdkInfo -> SystemSdkInfo -> Bool
$c/= :: SystemSdkInfo -> SystemSdkInfo -> Bool
== :: SystemSdkInfo -> SystemSdkInfo -> Bool
$c== :: SystemSdkInfo -> SystemSdkInfo -> Bool
Eq, Int -> SystemSdkInfo -> ShowS
[SystemSdkInfo] -> ShowS
SystemSdkInfo -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [SystemSdkInfo] -> ShowS
$cshowList :: [SystemSdkInfo] -> ShowS
show :: SystemSdkInfo -> String
$cshow :: SystemSdkInfo -> String
showsPrec :: Int -> SystemSdkInfo -> ShowS
$cshowsPrec :: Int -> SystemSdkInfo -> ShowS
Show)
instance Aeson.ToJSON SystemSdkInfo where
toJSON :: SystemSdkInfo -> Value
toJSON SystemSdkInfo
systemSdkInfo =
[Pair] -> Value
Aeson.intoObject
[ forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"sdk_name" forall a b. (a -> b) -> a -> b
$ SystemSdkInfo -> Text
sdkName SystemSdkInfo
systemSdkInfo,
forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"version_major" forall a b. (a -> b) -> a -> b
$ SystemSdkInfo -> Maybe Int
versionMajor SystemSdkInfo
systemSdkInfo,
forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"version_minor" forall a b. (a -> b) -> a -> b
$ SystemSdkInfo -> Maybe Int
versionMinor SystemSdkInfo
systemSdkInfo,
forall a. ToJSON a => String -> a -> Pair
Aeson.pair String
"version_patchlevel" forall a b. (a -> b) -> a -> b
$ SystemSdkInfo -> Maybe Int
versionPatchlevel SystemSdkInfo
systemSdkInfo
]
empty :: SystemSdkInfo
empty :: SystemSdkInfo
empty =
SystemSdkInfo
{ sdkName :: Text
sdkName = Text
Text.empty,
versionMajor :: Maybe Int
versionMajor = forall a. Maybe a
Nothing,
versionMinor :: Maybe Int
versionMinor = forall a. Maybe a
Nothing,
versionPatchlevel :: Maybe Int
versionPatchlevel = forall a. Maybe a
Nothing
}