{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE RecordWildCards #-}
module Discord.Internal.Types.Emoji where
import Data.Aeson
import Data.Data
import Data.Functor ((<&>))
import Data.Text as T
import Discord.Internal.Types.Prelude
import Discord.Internal.Types.User
data Emoji = Emoji
{
Emoji -> Maybe EmojiId
emojiId :: Maybe EmojiId,
Emoji -> Text
emojiName :: T.Text,
Emoji -> Maybe [EmojiId]
emojiRoles :: Maybe [RoleId],
Emoji -> Maybe User
emojiUser :: Maybe User,
Emoji -> Maybe Bool
emojiManaged :: Maybe Bool,
Emoji -> Maybe Bool
emojiAnimated :: Maybe Bool
}
deriving (Int -> Emoji -> ShowS
[Emoji] -> ShowS
Emoji -> String
(Int -> Emoji -> ShowS)
-> (Emoji -> String) -> ([Emoji] -> ShowS) -> Show Emoji
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Emoji] -> ShowS
$cshowList :: [Emoji] -> ShowS
show :: Emoji -> String
$cshow :: Emoji -> String
showsPrec :: Int -> Emoji -> ShowS
$cshowsPrec :: Int -> Emoji -> ShowS
Show, ReadPrec [Emoji]
ReadPrec Emoji
Int -> ReadS Emoji
ReadS [Emoji]
(Int -> ReadS Emoji)
-> ReadS [Emoji]
-> ReadPrec Emoji
-> ReadPrec [Emoji]
-> Read Emoji
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Emoji]
$creadListPrec :: ReadPrec [Emoji]
readPrec :: ReadPrec Emoji
$creadPrec :: ReadPrec Emoji
readList :: ReadS [Emoji]
$creadList :: ReadS [Emoji]
readsPrec :: Int -> ReadS Emoji
$creadsPrec :: Int -> ReadS Emoji
Read, Emoji -> Emoji -> Bool
(Emoji -> Emoji -> Bool) -> (Emoji -> Emoji -> Bool) -> Eq Emoji
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Emoji -> Emoji -> Bool
$c/= :: Emoji -> Emoji -> Bool
== :: Emoji -> Emoji -> Bool
$c== :: Emoji -> Emoji -> Bool
Eq, Eq Emoji
Eq Emoji
-> (Emoji -> Emoji -> Ordering)
-> (Emoji -> Emoji -> Bool)
-> (Emoji -> Emoji -> Bool)
-> (Emoji -> Emoji -> Bool)
-> (Emoji -> Emoji -> Bool)
-> (Emoji -> Emoji -> Emoji)
-> (Emoji -> Emoji -> Emoji)
-> Ord Emoji
Emoji -> Emoji -> Bool
Emoji -> Emoji -> Ordering
Emoji -> Emoji -> Emoji
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
min :: Emoji -> Emoji -> Emoji
$cmin :: Emoji -> Emoji -> Emoji
max :: Emoji -> Emoji -> Emoji
$cmax :: Emoji -> Emoji -> Emoji
>= :: Emoji -> Emoji -> Bool
$c>= :: Emoji -> Emoji -> Bool
> :: Emoji -> Emoji -> Bool
$c> :: Emoji -> Emoji -> Bool
<= :: Emoji -> Emoji -> Bool
$c<= :: Emoji -> Emoji -> Bool
< :: Emoji -> Emoji -> Bool
$c< :: Emoji -> Emoji -> Bool
compare :: Emoji -> Emoji -> Ordering
$ccompare :: Emoji -> Emoji -> Ordering
$cp1Ord :: Eq Emoji
Ord)
mkEmoji :: T.Text -> Emoji
mkEmoji :: Text -> Emoji
mkEmoji Text
t = Maybe EmojiId
-> Text
-> Maybe [EmojiId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji
Emoji Maybe EmojiId
forall a. Maybe a
Nothing Text
t Maybe [EmojiId]
forall a. Maybe a
Nothing Maybe User
forall a. Maybe a
Nothing Maybe Bool
forall a. Maybe a
Nothing Maybe Bool
forall a. Maybe a
Nothing
instance FromJSON Emoji where
parseJSON :: Value -> Parser Emoji
parseJSON = String -> (Object -> Parser Emoji) -> Value -> Parser Emoji
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"Emoji" ((Object -> Parser Emoji) -> Value -> Parser Emoji)
-> (Object -> Parser Emoji) -> Value -> Parser Emoji
forall a b. (a -> b) -> a -> b
$ \Object
o ->
Maybe EmojiId
-> Text
-> Maybe [EmojiId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji
Emoji (Maybe EmojiId
-> Text
-> Maybe [EmojiId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji)
-> Parser (Maybe EmojiId)
-> Parser
(Text
-> Maybe [EmojiId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser (Maybe EmojiId)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"id"
Parser
(Text
-> Maybe [EmojiId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji)
-> Parser Text
-> Parser
(Maybe [EmojiId]
-> Maybe User -> Maybe Bool -> Maybe Bool -> Emoji)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
Parser
(Maybe [EmojiId]
-> Maybe User -> Maybe Bool -> Maybe Bool -> Emoji)
-> Parser (Maybe [EmojiId])
-> Parser (Maybe User -> Maybe Bool -> Maybe Bool -> Emoji)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [EmojiId])
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"roles"
Parser (Maybe User -> Maybe Bool -> Maybe Bool -> Emoji)
-> Parser (Maybe User)
-> Parser (Maybe Bool -> Maybe Bool -> Emoji)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe User)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"user"
Parser (Maybe Bool -> Maybe Bool -> Emoji)
-> Parser (Maybe Bool) -> Parser (Maybe Bool -> Emoji)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"managed"
Parser (Maybe Bool -> Emoji) -> Parser (Maybe Bool) -> Parser Emoji
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"animated"
instance ToJSON Emoji where
toJSON :: Emoji -> Value
toJSON Emoji {Maybe Bool
Maybe [EmojiId]
Maybe EmojiId
Maybe User
Text
emojiAnimated :: Maybe Bool
emojiManaged :: Maybe Bool
emojiUser :: Maybe User
emojiRoles :: Maybe [EmojiId]
emojiName :: Text
emojiId :: Maybe EmojiId
emojiAnimated :: Emoji -> Maybe Bool
emojiManaged :: Emoji -> Maybe Bool
emojiUser :: Emoji -> Maybe User
emojiRoles :: Emoji -> Maybe [EmojiId]
emojiName :: Emoji -> Text
emojiId :: Emoji -> Maybe EmojiId
..} =
[Pair] -> Value
object
[ (Key
name, Value
value)
| (Key
name, Just Value
value) <-
[ (Key
"id", EmojiId -> Value
forall a. ToJSON a => a -> Value
toJSON (EmojiId -> Value) -> Maybe EmojiId -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe EmojiId
emojiId),
(Key
"name", Text -> Maybe Value
forall a. ToJSON a => a -> Maybe Value
toMaybeJSON Text
emojiName),
(Key
"roles", [EmojiId] -> Value
forall a. ToJSON a => a -> Value
toJSON ([EmojiId] -> Value) -> Maybe [EmojiId] -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe [EmojiId]
emojiRoles),
(Key
"user", User -> Value
forall a. ToJSON a => a -> Value
toJSON (User -> Value) -> Maybe User -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe User
emojiUser),
(Key
"managed", Bool -> Value
forall a. ToJSON a => a -> Value
toJSON (Bool -> Value) -> Maybe Bool -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Bool
emojiManaged),
(Key
"animated", Bool -> Value
forall a. ToJSON a => a -> Value
toJSON (Bool -> Value) -> Maybe Bool -> Maybe Value
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Maybe Bool
emojiAnimated)
]
]
data StickerPack = StickerPack
{
StickerPack -> EmojiId
stickerPackId :: Snowflake,
StickerPack -> [Sticker]
stickerPackStickers :: [Sticker],
StickerPack -> Text
stickerPackName :: T.Text,
StickerPack -> EmojiId
stickerPackSKUId :: Snowflake,
StickerPack -> Maybe EmojiId
stickerPackCoverStickerId :: Maybe StickerId,
StickerPack -> Text
stickerPackDescription :: T.Text,
StickerPack -> Maybe EmojiId
stickerPackBannerAssetId :: Maybe Snowflake
}
deriving (Int -> StickerPack -> ShowS
[StickerPack] -> ShowS
StickerPack -> String
(Int -> StickerPack -> ShowS)
-> (StickerPack -> String)
-> ([StickerPack] -> ShowS)
-> Show StickerPack
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StickerPack] -> ShowS
$cshowList :: [StickerPack] -> ShowS
show :: StickerPack -> String
$cshow :: StickerPack -> String
showsPrec :: Int -> StickerPack -> ShowS
$cshowsPrec :: Int -> StickerPack -> ShowS
Show, ReadPrec [StickerPack]
ReadPrec StickerPack
Int -> ReadS StickerPack
ReadS [StickerPack]
(Int -> ReadS StickerPack)
-> ReadS [StickerPack]
-> ReadPrec StickerPack
-> ReadPrec [StickerPack]
-> Read StickerPack
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StickerPack]
$creadListPrec :: ReadPrec [StickerPack]
readPrec :: ReadPrec StickerPack
$creadPrec :: ReadPrec StickerPack
readList :: ReadS [StickerPack]
$creadList :: ReadS [StickerPack]
readsPrec :: Int -> ReadS StickerPack
$creadsPrec :: Int -> ReadS StickerPack
Read, StickerPack -> StickerPack -> Bool
(StickerPack -> StickerPack -> Bool)
-> (StickerPack -> StickerPack -> Bool) -> Eq StickerPack
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StickerPack -> StickerPack -> Bool
$c/= :: StickerPack -> StickerPack -> Bool
== :: StickerPack -> StickerPack -> Bool
$c== :: StickerPack -> StickerPack -> Bool
Eq, Eq StickerPack
Eq StickerPack
-> (StickerPack -> StickerPack -> Ordering)
-> (StickerPack -> StickerPack -> Bool)
-> (StickerPack -> StickerPack -> Bool)
-> (StickerPack -> StickerPack -> Bool)
-> (StickerPack -> StickerPack -> Bool)
-> (StickerPack -> StickerPack -> StickerPack)
-> (StickerPack -> StickerPack -> StickerPack)
-> Ord StickerPack
StickerPack -> StickerPack -> Bool
StickerPack -> StickerPack -> Ordering
StickerPack -> StickerPack -> StickerPack
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
min :: StickerPack -> StickerPack -> StickerPack
$cmin :: StickerPack -> StickerPack -> StickerPack
max :: StickerPack -> StickerPack -> StickerPack
$cmax :: StickerPack -> StickerPack -> StickerPack
>= :: StickerPack -> StickerPack -> Bool
$c>= :: StickerPack -> StickerPack -> Bool
> :: StickerPack -> StickerPack -> Bool
$c> :: StickerPack -> StickerPack -> Bool
<= :: StickerPack -> StickerPack -> Bool
$c<= :: StickerPack -> StickerPack -> Bool
< :: StickerPack -> StickerPack -> Bool
$c< :: StickerPack -> StickerPack -> Bool
compare :: StickerPack -> StickerPack -> Ordering
$ccompare :: StickerPack -> StickerPack -> Ordering
$cp1Ord :: Eq StickerPack
Ord)
instance FromJSON StickerPack where
parseJSON :: Value -> Parser StickerPack
parseJSON = String
-> (Object -> Parser StickerPack) -> Value -> Parser StickerPack
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"StickerPack" ((Object -> Parser StickerPack) -> Value -> Parser StickerPack)
-> (Object -> Parser StickerPack) -> Value -> Parser StickerPack
forall a b. (a -> b) -> a -> b
$ \Object
o ->
EmojiId
-> [Sticker]
-> Text
-> EmojiId
-> Maybe EmojiId
-> Text
-> Maybe EmojiId
-> StickerPack
StickerPack (EmojiId
-> [Sticker]
-> Text
-> EmojiId
-> Maybe EmojiId
-> Text
-> Maybe EmojiId
-> StickerPack)
-> Parser EmojiId
-> Parser
([Sticker]
-> Text
-> EmojiId
-> Maybe EmojiId
-> Text
-> Maybe EmojiId
-> StickerPack)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser EmojiId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser
([Sticker]
-> Text
-> EmojiId
-> Maybe EmojiId
-> Text
-> Maybe EmojiId
-> StickerPack)
-> Parser [Sticker]
-> Parser
(Text
-> EmojiId
-> Maybe EmojiId
-> Text
-> Maybe EmojiId
-> StickerPack)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser [Sticker]
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"stickers"
Parser
(Text
-> EmojiId
-> Maybe EmojiId
-> Text
-> Maybe EmojiId
-> StickerPack)
-> Parser Text
-> Parser
(EmojiId -> Maybe EmojiId -> Text -> Maybe EmojiId -> StickerPack)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
Parser
(EmojiId -> Maybe EmojiId -> Text -> Maybe EmojiId -> StickerPack)
-> Parser EmojiId
-> Parser (Maybe EmojiId -> Text -> Maybe EmojiId -> StickerPack)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser EmojiId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sku_id"
Parser (Maybe EmojiId -> Text -> Maybe EmojiId -> StickerPack)
-> Parser (Maybe EmojiId)
-> Parser (Text -> Maybe EmojiId -> StickerPack)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe EmojiId)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"cover_sticker_id"
Parser (Text -> Maybe EmojiId -> StickerPack)
-> Parser Text -> Parser (Maybe EmojiId -> StickerPack)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"description"
Parser (Maybe EmojiId -> StickerPack)
-> Parser (Maybe EmojiId) -> Parser StickerPack
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe EmojiId)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"banner_asset_id"
data Sticker = Sticker
{
Sticker -> EmojiId
stickerId :: StickerId,
Sticker -> Maybe EmojiId
stickerStickerPackId :: Maybe Snowflake,
Sticker -> Text
stickerName :: T.Text,
Sticker -> Maybe Text
stickerDescription :: Maybe T.Text,
Sticker -> [Text]
stickerTags :: [T.Text],
Sticker -> Bool
stickerIsStandardType :: Bool,
Sticker -> StickerFormatType
stickerFormatType :: StickerFormatType,
Sticker -> Maybe Bool
stickerAvailable :: Maybe Bool,
Sticker -> Maybe EmojiId
stickerGuildId :: Maybe GuildId,
Sticker -> Maybe User
stickerUser :: Maybe User,
Sticker -> Maybe Integer
stickerSortValue :: Maybe Integer
}
deriving (Int -> Sticker -> ShowS
[Sticker] -> ShowS
Sticker -> String
(Int -> Sticker -> ShowS)
-> (Sticker -> String) -> ([Sticker] -> ShowS) -> Show Sticker
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [Sticker] -> ShowS
$cshowList :: [Sticker] -> ShowS
show :: Sticker -> String
$cshow :: Sticker -> String
showsPrec :: Int -> Sticker -> ShowS
$cshowsPrec :: Int -> Sticker -> ShowS
Show, ReadPrec [Sticker]
ReadPrec Sticker
Int -> ReadS Sticker
ReadS [Sticker]
(Int -> ReadS Sticker)
-> ReadS [Sticker]
-> ReadPrec Sticker
-> ReadPrec [Sticker]
-> Read Sticker
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [Sticker]
$creadListPrec :: ReadPrec [Sticker]
readPrec :: ReadPrec Sticker
$creadPrec :: ReadPrec Sticker
readList :: ReadS [Sticker]
$creadList :: ReadS [Sticker]
readsPrec :: Int -> ReadS Sticker
$creadsPrec :: Int -> ReadS Sticker
Read, Sticker -> Sticker -> Bool
(Sticker -> Sticker -> Bool)
-> (Sticker -> Sticker -> Bool) -> Eq Sticker
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: Sticker -> Sticker -> Bool
$c/= :: Sticker -> Sticker -> Bool
== :: Sticker -> Sticker -> Bool
$c== :: Sticker -> Sticker -> Bool
Eq, Eq Sticker
Eq Sticker
-> (Sticker -> Sticker -> Ordering)
-> (Sticker -> Sticker -> Bool)
-> (Sticker -> Sticker -> Bool)
-> (Sticker -> Sticker -> Bool)
-> (Sticker -> Sticker -> Bool)
-> (Sticker -> Sticker -> Sticker)
-> (Sticker -> Sticker -> Sticker)
-> Ord Sticker
Sticker -> Sticker -> Bool
Sticker -> Sticker -> Ordering
Sticker -> Sticker -> Sticker
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
min :: Sticker -> Sticker -> Sticker
$cmin :: Sticker -> Sticker -> Sticker
max :: Sticker -> Sticker -> Sticker
$cmax :: Sticker -> Sticker -> Sticker
>= :: Sticker -> Sticker -> Bool
$c>= :: Sticker -> Sticker -> Bool
> :: Sticker -> Sticker -> Bool
$c> :: Sticker -> Sticker -> Bool
<= :: Sticker -> Sticker -> Bool
$c<= :: Sticker -> Sticker -> Bool
< :: Sticker -> Sticker -> Bool
$c< :: Sticker -> Sticker -> Bool
compare :: Sticker -> Sticker -> Ordering
$ccompare :: Sticker -> Sticker -> Ordering
$cp1Ord :: Eq Sticker
Ord)
instance FromJSON Sticker where
parseJSON :: Value -> Parser Sticker
parseJSON = String -> (Object -> Parser Sticker) -> Value -> Parser Sticker
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"Sticker" ((Object -> Parser Sticker) -> Value -> Parser Sticker)
-> (Object -> Parser Sticker) -> Value -> Parser Sticker
forall a b. (a -> b) -> a -> b
$ \Object
o ->
EmojiId
-> Maybe EmojiId
-> Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker
Sticker (EmojiId
-> Maybe EmojiId
-> Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser EmojiId
-> Parser
(Maybe EmojiId
-> Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser EmojiId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser
(Maybe EmojiId
-> Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser (Maybe EmojiId)
-> Parser
(Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe EmojiId)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"pack_id"
Parser
(Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser Text
-> Parser
(Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
Parser
(Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser (Maybe Text)
-> Parser
([Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Text)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"description"
Parser
([Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser [Text]
-> Parser
(Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"tags") Parser Text -> (Text -> [Text]) -> Parser [Text]
forall (f :: * -> *) a b. Functor f => f a -> (a -> b) -> f b
<&> Text -> Text -> [Text]
T.splitOn Text
"\n")
Parser
(Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser Bool
-> Parser
(StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> ((Object
o Object -> Key -> Parser Int
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"type") Parser Int -> (Int -> Bool) -> Parser Bool
forall (f :: * -> *) a b. Functor f => f a -> (a -> b) -> f b
<&> (Int -> Int -> Bool
forall a. Eq a => a -> a -> Bool
== (Int
1 :: Int)))
Parser
(StickerFormatType
-> Maybe Bool
-> Maybe EmojiId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser StickerFormatType
-> Parser
(Maybe Bool
-> Maybe EmojiId -> Maybe User -> Maybe Integer -> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser StickerFormatType
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"format_type"
Parser
(Maybe Bool
-> Maybe EmojiId -> Maybe User -> Maybe Integer -> Sticker)
-> Parser (Maybe Bool)
-> Parser (Maybe EmojiId -> Maybe User -> Maybe Integer -> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Bool)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"available"
Parser (Maybe EmojiId -> Maybe User -> Maybe Integer -> Sticker)
-> Parser (Maybe EmojiId)
-> Parser (Maybe User -> Maybe Integer -> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe EmojiId)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"guild_id"
Parser (Maybe User -> Maybe Integer -> Sticker)
-> Parser (Maybe User) -> Parser (Maybe Integer -> Sticker)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe User)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"user"
Parser (Maybe Integer -> Sticker)
-> Parser (Maybe Integer) -> Parser Sticker
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Integer)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"sort_value"
data StickerItem = StickerItem
{
StickerItem -> EmojiId
stickerItemId :: StickerId,
StickerItem -> Text
stickerItemName :: T.Text,
StickerItem -> StickerFormatType
stickerItemFormatType :: StickerFormatType
}
deriving (Int -> StickerItem -> ShowS
[StickerItem] -> ShowS
StickerItem -> String
(Int -> StickerItem -> ShowS)
-> (StickerItem -> String)
-> ([StickerItem] -> ShowS)
-> Show StickerItem
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StickerItem] -> ShowS
$cshowList :: [StickerItem] -> ShowS
show :: StickerItem -> String
$cshow :: StickerItem -> String
showsPrec :: Int -> StickerItem -> ShowS
$cshowsPrec :: Int -> StickerItem -> ShowS
Show, ReadPrec [StickerItem]
ReadPrec StickerItem
Int -> ReadS StickerItem
ReadS [StickerItem]
(Int -> ReadS StickerItem)
-> ReadS [StickerItem]
-> ReadPrec StickerItem
-> ReadPrec [StickerItem]
-> Read StickerItem
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StickerItem]
$creadListPrec :: ReadPrec [StickerItem]
readPrec :: ReadPrec StickerItem
$creadPrec :: ReadPrec StickerItem
readList :: ReadS [StickerItem]
$creadList :: ReadS [StickerItem]
readsPrec :: Int -> ReadS StickerItem
$creadsPrec :: Int -> ReadS StickerItem
Read, StickerItem -> StickerItem -> Bool
(StickerItem -> StickerItem -> Bool)
-> (StickerItem -> StickerItem -> Bool) -> Eq StickerItem
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StickerItem -> StickerItem -> Bool
$c/= :: StickerItem -> StickerItem -> Bool
== :: StickerItem -> StickerItem -> Bool
$c== :: StickerItem -> StickerItem -> Bool
Eq, Eq StickerItem
Eq StickerItem
-> (StickerItem -> StickerItem -> Ordering)
-> (StickerItem -> StickerItem -> Bool)
-> (StickerItem -> StickerItem -> Bool)
-> (StickerItem -> StickerItem -> Bool)
-> (StickerItem -> StickerItem -> Bool)
-> (StickerItem -> StickerItem -> StickerItem)
-> (StickerItem -> StickerItem -> StickerItem)
-> Ord StickerItem
StickerItem -> StickerItem -> Bool
StickerItem -> StickerItem -> Ordering
StickerItem -> StickerItem -> StickerItem
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
min :: StickerItem -> StickerItem -> StickerItem
$cmin :: StickerItem -> StickerItem -> StickerItem
max :: StickerItem -> StickerItem -> StickerItem
$cmax :: StickerItem -> StickerItem -> StickerItem
>= :: StickerItem -> StickerItem -> Bool
$c>= :: StickerItem -> StickerItem -> Bool
> :: StickerItem -> StickerItem -> Bool
$c> :: StickerItem -> StickerItem -> Bool
<= :: StickerItem -> StickerItem -> Bool
$c<= :: StickerItem -> StickerItem -> Bool
< :: StickerItem -> StickerItem -> Bool
$c< :: StickerItem -> StickerItem -> Bool
compare :: StickerItem -> StickerItem -> Ordering
$ccompare :: StickerItem -> StickerItem -> Ordering
$cp1Ord :: Eq StickerItem
Ord)
instance FromJSON StickerItem where
parseJSON :: Value -> Parser StickerItem
parseJSON = String
-> (Object -> Parser StickerItem) -> Value -> Parser StickerItem
forall a. String -> (Object -> Parser a) -> Value -> Parser a
withObject String
"StickerItem" ((Object -> Parser StickerItem) -> Value -> Parser StickerItem)
-> (Object -> Parser StickerItem) -> Value -> Parser StickerItem
forall a b. (a -> b) -> a -> b
$ \Object
o ->
EmojiId -> Text -> StickerFormatType -> StickerItem
StickerItem (EmojiId -> Text -> StickerFormatType -> StickerItem)
-> Parser EmojiId
-> Parser (Text -> StickerFormatType -> StickerItem)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser EmojiId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser (Text -> StickerFormatType -> StickerItem)
-> Parser Text -> Parser (StickerFormatType -> StickerItem)
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Text
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"name"
Parser (StickerFormatType -> StickerItem)
-> Parser StickerFormatType -> Parser StickerItem
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser StickerFormatType
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"format_type"
instance ToJSON StickerItem where
toJSON :: StickerItem -> Value
toJSON StickerItem {Text
EmojiId
StickerFormatType
stickerItemFormatType :: StickerFormatType
stickerItemName :: Text
stickerItemId :: EmojiId
stickerItemFormatType :: StickerItem -> StickerFormatType
stickerItemName :: StickerItem -> Text
stickerItemId :: StickerItem -> EmojiId
..} =
[Pair] -> Value
object
[ (Key
"id", EmojiId -> Value
forall a. ToJSON a => a -> Value
toJSON EmojiId
stickerItemId),
(Key
"name", Text -> Value
forall a. ToJSON a => a -> Value
toJSON Text
stickerItemName),
(Key
"format_type", StickerFormatType -> Value
forall a. ToJSON a => a -> Value
toJSON StickerFormatType
stickerItemFormatType)
]
data StickerFormatType
= StickerFormatTypePNG
| StickerFormatTypeAPNG
| StickerFormatTypeLOTTIE
deriving (Int -> StickerFormatType -> ShowS
[StickerFormatType] -> ShowS
StickerFormatType -> String
(Int -> StickerFormatType -> ShowS)
-> (StickerFormatType -> String)
-> ([StickerFormatType] -> ShowS)
-> Show StickerFormatType
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [StickerFormatType] -> ShowS
$cshowList :: [StickerFormatType] -> ShowS
show :: StickerFormatType -> String
$cshow :: StickerFormatType -> String
showsPrec :: Int -> StickerFormatType -> ShowS
$cshowsPrec :: Int -> StickerFormatType -> ShowS
Show, ReadPrec [StickerFormatType]
ReadPrec StickerFormatType
Int -> ReadS StickerFormatType
ReadS [StickerFormatType]
(Int -> ReadS StickerFormatType)
-> ReadS [StickerFormatType]
-> ReadPrec StickerFormatType
-> ReadPrec [StickerFormatType]
-> Read StickerFormatType
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
readListPrec :: ReadPrec [StickerFormatType]
$creadListPrec :: ReadPrec [StickerFormatType]
readPrec :: ReadPrec StickerFormatType
$creadPrec :: ReadPrec StickerFormatType
readList :: ReadS [StickerFormatType]
$creadList :: ReadS [StickerFormatType]
readsPrec :: Int -> ReadS StickerFormatType
$creadsPrec :: Int -> ReadS StickerFormatType
Read, StickerFormatType -> StickerFormatType -> Bool
(StickerFormatType -> StickerFormatType -> Bool)
-> (StickerFormatType -> StickerFormatType -> Bool)
-> Eq StickerFormatType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: StickerFormatType -> StickerFormatType -> Bool
$c/= :: StickerFormatType -> StickerFormatType -> Bool
== :: StickerFormatType -> StickerFormatType -> Bool
$c== :: StickerFormatType -> StickerFormatType -> Bool
Eq, Eq StickerFormatType
Eq StickerFormatType
-> (StickerFormatType -> StickerFormatType -> Ordering)
-> (StickerFormatType -> StickerFormatType -> Bool)
-> (StickerFormatType -> StickerFormatType -> Bool)
-> (StickerFormatType -> StickerFormatType -> Bool)
-> (StickerFormatType -> StickerFormatType -> Bool)
-> (StickerFormatType -> StickerFormatType -> StickerFormatType)
-> (StickerFormatType -> StickerFormatType -> StickerFormatType)
-> Ord StickerFormatType
StickerFormatType -> StickerFormatType -> Bool
StickerFormatType -> StickerFormatType -> Ordering
StickerFormatType -> StickerFormatType -> StickerFormatType
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
min :: StickerFormatType -> StickerFormatType -> StickerFormatType
$cmin :: StickerFormatType -> StickerFormatType -> StickerFormatType
max :: StickerFormatType -> StickerFormatType -> StickerFormatType
$cmax :: StickerFormatType -> StickerFormatType -> StickerFormatType
>= :: StickerFormatType -> StickerFormatType -> Bool
$c>= :: StickerFormatType -> StickerFormatType -> Bool
> :: StickerFormatType -> StickerFormatType -> Bool
$c> :: StickerFormatType -> StickerFormatType -> Bool
<= :: StickerFormatType -> StickerFormatType -> Bool
$c<= :: StickerFormatType -> StickerFormatType -> Bool
< :: StickerFormatType -> StickerFormatType -> Bool
$c< :: StickerFormatType -> StickerFormatType -> Bool
compare :: StickerFormatType -> StickerFormatType -> Ordering
$ccompare :: StickerFormatType -> StickerFormatType -> Ordering
$cp1Ord :: Eq StickerFormatType
Ord, Typeable StickerFormatType
DataType
Constr
Typeable StickerFormatType
-> (forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g)
-> StickerFormatType
-> c StickerFormatType)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StickerFormatType)
-> (StickerFormatType -> Constr)
-> (StickerFormatType -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StickerFormatType))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StickerFormatType))
-> ((forall b. Data b => b -> b)
-> StickerFormatType -> StickerFormatType)
-> (forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r)
-> (forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r)
-> (forall u.
(forall d. Data d => d -> u) -> StickerFormatType -> [u])
-> (forall u.
Int -> (forall d. Data d => d -> u) -> StickerFormatType -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType)
-> Data StickerFormatType
StickerFormatType -> DataType
StickerFormatType -> Constr
(forall b. Data b => b -> b)
-> StickerFormatType -> StickerFormatType
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StickerFormatType -> c StickerFormatType
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StickerFormatType
forall a.
Typeable a
-> (forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> a -> c a)
-> (forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c a)
-> (a -> Constr)
-> (a -> DataType)
-> (forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c a))
-> (forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c a))
-> ((forall b. Data b => b -> b) -> a -> a)
-> (forall r r'.
(r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall r r'.
(r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> a -> r)
-> (forall u. (forall d. Data d => d -> u) -> a -> [u])
-> (forall u. Int -> (forall d. Data d => d -> u) -> a -> u)
-> (forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> (forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d) -> a -> m a)
-> Data a
forall u.
Int -> (forall d. Data d => d -> u) -> StickerFormatType -> u
forall u. (forall d. Data d => d -> u) -> StickerFormatType -> [u]
forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r
forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r
forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StickerFormatType
forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StickerFormatType -> c StickerFormatType
forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StickerFormatType)
forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StickerFormatType)
$cStickerFormatTypeLOTTIE :: Constr
$cStickerFormatTypeAPNG :: Constr
$cStickerFormatTypePNG :: Constr
$tStickerFormatType :: DataType
gmapMo :: (forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
$cgmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
gmapMp :: (forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
$cgmapMp :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
gmapM :: (forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
gmapQi :: Int -> (forall d. Data d => d -> u) -> StickerFormatType -> u
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> StickerFormatType -> u
gmapQ :: (forall d. Data d => d -> u) -> StickerFormatType -> [u]
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> StickerFormatType -> [u]
gmapQr :: (r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r
$cgmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r
gmapQl :: (r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r
gmapT :: (forall b. Data b => b -> b)
-> StickerFormatType -> StickerFormatType
$cgmapT :: (forall b. Data b => b -> b)
-> StickerFormatType -> StickerFormatType
dataCast2 :: (forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StickerFormatType)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StickerFormatType)
dataCast1 :: (forall d. Data d => c (t d)) -> Maybe (c StickerFormatType)
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StickerFormatType)
dataTypeOf :: StickerFormatType -> DataType
$cdataTypeOf :: StickerFormatType -> DataType
toConstr :: StickerFormatType -> Constr
$ctoConstr :: StickerFormatType -> Constr
gunfold :: (forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StickerFormatType
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StickerFormatType
gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StickerFormatType -> c StickerFormatType
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StickerFormatType -> c StickerFormatType
$cp1Data :: Typeable StickerFormatType
Data)
instance InternalDiscordEnum StickerFormatType where
discordTypeStartValue :: StickerFormatType
discordTypeStartValue = StickerFormatType
StickerFormatTypePNG
fromDiscordType :: StickerFormatType -> Int
fromDiscordType StickerFormatType
StickerFormatTypePNG = Int
1
fromDiscordType StickerFormatType
StickerFormatTypeAPNG = Int
2
fromDiscordType StickerFormatType
StickerFormatTypeLOTTIE = Int
3
instance ToJSON StickerFormatType where
toJSON :: StickerFormatType -> Value
toJSON = Int -> Value
forall a. ToJSON a => a -> Value
toJSON (Int -> Value)
-> (StickerFormatType -> Int) -> StickerFormatType -> Value
forall b c a. (b -> c) -> (a -> b) -> a -> c
. StickerFormatType -> Int
forall a. InternalDiscordEnum a => a -> Int
fromDiscordType
instance FromJSON StickerFormatType where
parseJSON :: Value -> Parser StickerFormatType
parseJSON = String -> Value -> Parser StickerFormatType
forall a. InternalDiscordEnum a => String -> Value -> Parser a
discordTypeParseJSON String
"StickerFormatType"