module TD.Data.SessionDeviceType
(SessionDeviceType(..)) where
import qualified Data.Aeson as A
import qualified Data.Aeson.Types as AT
import qualified TD.Lib.Internal as I
data SessionDeviceType
= SessionDeviceTypeAndroid
| SessionDeviceTypeApple
| SessionDeviceTypeBrave
| SessionDeviceTypeChrome
| SessionDeviceTypeEdge
| SessionDeviceTypeFirefox
| SessionDeviceTypeIpad
| SessionDeviceTypeIphone
| SessionDeviceTypeLinux
| SessionDeviceTypeMac
| SessionDeviceTypeOpera
| SessionDeviceTypeSafari
| SessionDeviceTypeUbuntu
| SessionDeviceTypeUnknown
| SessionDeviceTypeVivaldi
| SessionDeviceTypeWindows
| SessionDeviceTypeXbox
deriving (SessionDeviceType -> SessionDeviceType -> Bool
(SessionDeviceType -> SessionDeviceType -> Bool)
-> (SessionDeviceType -> SessionDeviceType -> Bool)
-> Eq SessionDeviceType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: SessionDeviceType -> SessionDeviceType -> Bool
== :: SessionDeviceType -> SessionDeviceType -> Bool
$c/= :: SessionDeviceType -> SessionDeviceType -> Bool
/= :: SessionDeviceType -> SessionDeviceType -> Bool
Eq, Int -> SessionDeviceType -> ShowS
[SessionDeviceType] -> ShowS
SessionDeviceType -> String
(Int -> SessionDeviceType -> ShowS)
-> (SessionDeviceType -> String)
-> ([SessionDeviceType] -> ShowS)
-> Show SessionDeviceType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> SessionDeviceType -> ShowS
showsPrec :: Int -> SessionDeviceType -> ShowS
$cshow :: SessionDeviceType -> String
show :: SessionDeviceType -> String
$cshowList :: [SessionDeviceType] -> ShowS
showList :: [SessionDeviceType] -> ShowS
Show)
instance I.ShortShow SessionDeviceType where
shortShow :: SessionDeviceType -> String
shortShow SessionDeviceType
SessionDeviceTypeAndroid
= String
"SessionDeviceTypeAndroid"
shortShow SessionDeviceType
SessionDeviceTypeApple
= String
"SessionDeviceTypeApple"
shortShow SessionDeviceType
SessionDeviceTypeBrave
= String
"SessionDeviceTypeBrave"
shortShow SessionDeviceType
SessionDeviceTypeChrome
= String
"SessionDeviceTypeChrome"
shortShow SessionDeviceType
SessionDeviceTypeEdge
= String
"SessionDeviceTypeEdge"
shortShow SessionDeviceType
SessionDeviceTypeFirefox
= String
"SessionDeviceTypeFirefox"
shortShow SessionDeviceType
SessionDeviceTypeIpad
= String
"SessionDeviceTypeIpad"
shortShow SessionDeviceType
SessionDeviceTypeIphone
= String
"SessionDeviceTypeIphone"
shortShow SessionDeviceType
SessionDeviceTypeLinux
= String
"SessionDeviceTypeLinux"
shortShow SessionDeviceType
SessionDeviceTypeMac
= String
"SessionDeviceTypeMac"
shortShow SessionDeviceType
SessionDeviceTypeOpera
= String
"SessionDeviceTypeOpera"
shortShow SessionDeviceType
SessionDeviceTypeSafari
= String
"SessionDeviceTypeSafari"
shortShow SessionDeviceType
SessionDeviceTypeUbuntu
= String
"SessionDeviceTypeUbuntu"
shortShow SessionDeviceType
SessionDeviceTypeUnknown
= String
"SessionDeviceTypeUnknown"
shortShow SessionDeviceType
SessionDeviceTypeVivaldi
= String
"SessionDeviceTypeVivaldi"
shortShow SessionDeviceType
SessionDeviceTypeWindows
= String
"SessionDeviceTypeWindows"
shortShow SessionDeviceType
SessionDeviceTypeXbox
= String
"SessionDeviceTypeXbox"
instance AT.FromJSON SessionDeviceType where
parseJSON :: Value -> Parser SessionDeviceType
parseJSON (AT.Object Object
obj) = do
String
t <- Object
obj Object -> Key -> Parser String
forall a. FromJSON a => Object -> Key -> Parser a
A..: Key
"@type" :: AT.Parser String
case String
t of
String
"sessionDeviceTypeAndroid" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeAndroid
String
"sessionDeviceTypeApple" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeApple
String
"sessionDeviceTypeBrave" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeBrave
String
"sessionDeviceTypeChrome" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeChrome
String
"sessionDeviceTypeEdge" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeEdge
String
"sessionDeviceTypeFirefox" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeFirefox
String
"sessionDeviceTypeIpad" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeIpad
String
"sessionDeviceTypeIphone" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeIphone
String
"sessionDeviceTypeLinux" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeLinux
String
"sessionDeviceTypeMac" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeMac
String
"sessionDeviceTypeOpera" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeOpera
String
"sessionDeviceTypeSafari" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeSafari
String
"sessionDeviceTypeUbuntu" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeUbuntu
String
"sessionDeviceTypeUnknown" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeUnknown
String
"sessionDeviceTypeVivaldi" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeVivaldi
String
"sessionDeviceTypeWindows" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeWindows
String
"sessionDeviceTypeXbox" -> SessionDeviceType -> Parser SessionDeviceType
forall a. a -> Parser a
forall (f :: * -> *) a. Applicative f => a -> f a
pure SessionDeviceType
SessionDeviceTypeXbox
String
_ -> Parser SessionDeviceType
forall a. Monoid a => a
mempty
parseJSON Value
_ = Parser SessionDeviceType
forall a. Monoid a => a
mempty