{-# 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 [RoleId]
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
$cshowsPrec :: Int -> Emoji -> ShowS
showsPrec :: Int -> Emoji -> ShowS
$cshow :: Emoji -> String
show :: Emoji -> String
$cshowList :: [Emoji] -> ShowS
showList :: [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
$creadsPrec :: Int -> ReadS Emoji
readsPrec :: Int -> ReadS Emoji
$creadList :: ReadS [Emoji]
readList :: ReadS [Emoji]
$creadPrec :: ReadPrec Emoji
readPrec :: ReadPrec Emoji
$creadListPrec :: ReadPrec [Emoji]
readListPrec :: ReadPrec [Emoji]
Read, Emoji -> Emoji -> Bool
(Emoji -> Emoji -> Bool) -> (Emoji -> Emoji -> Bool) -> Eq Emoji
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Emoji -> Emoji -> Bool
== :: Emoji -> Emoji -> Bool
$c/= :: Emoji -> Emoji -> Bool
/= :: 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
$ccompare :: Emoji -> Emoji -> Ordering
compare :: Emoji -> Emoji -> Ordering
$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
>= :: Emoji -> Emoji -> Bool
$cmax :: Emoji -> Emoji -> Emoji
max :: Emoji -> Emoji -> Emoji
$cmin :: Emoji -> Emoji -> Emoji
min :: Emoji -> Emoji -> Emoji
Ord)
mkEmoji :: T.Text -> Emoji
mkEmoji :: Text -> Emoji
mkEmoji Text
t = Maybe EmojiId
-> Text
-> Maybe [RoleId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji
Emoji Maybe EmojiId
forall a. Maybe a
Nothing Text
t Maybe [RoleId]
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 [RoleId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji
Emoji (Maybe EmojiId
-> Text
-> Maybe [RoleId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji)
-> Parser (Maybe EmojiId)
-> Parser
(Text
-> Maybe [RoleId]
-> 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 [RoleId]
-> Maybe User
-> Maybe Bool
-> Maybe Bool
-> Emoji)
-> Parser Text
-> Parser
(Maybe [RoleId] -> Maybe User -> Maybe Bool -> Maybe Bool -> Emoji)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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 [RoleId] -> Maybe User -> Maybe Bool -> Maybe Bool -> Emoji)
-> Parser (Maybe [RoleId])
-> Parser (Maybe User -> Maybe Bool -> Maybe Bool -> Emoji)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe [RoleId])
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 a b. Parser (a -> b) -> Parser a -> Parser b
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 a b. Parser (a -> b) -> Parser a -> Parser b
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 a b. Parser (a -> b) -> Parser a -> Parser b
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 [RoleId]
Maybe EmojiId
Maybe User
Text
emojiId :: Emoji -> Maybe EmojiId
emojiName :: Emoji -> Text
emojiRoles :: Emoji -> Maybe [RoleId]
emojiUser :: Emoji -> Maybe User
emojiManaged :: Emoji -> Maybe Bool
emojiAnimated :: Emoji -> Maybe Bool
emojiId :: Maybe EmojiId
emojiName :: Text
emojiRoles :: Maybe [RoleId]
emojiUser :: Maybe User
emojiManaged :: Maybe Bool
emojiAnimated :: Maybe Bool
..} =
[Maybe Pair] -> Value
objectFromMaybes
[ Key
"id" Key -> Maybe EmojiId -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe EmojiId
emojiId,
Key
"name" Key -> Text -> Maybe Pair
forall a. ToJSON a => Key -> a -> Maybe Pair
.== Text
emojiName,
Key
"roles" Key -> Maybe [RoleId] -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe [RoleId]
emojiRoles,
Key
"user" Key -> Maybe User -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe User
emojiUser,
Key
"managed" Key -> Maybe Bool -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Bool
emojiManaged,
Key
"animated" Key -> Maybe Bool -> Maybe Pair
forall a. ToJSON a => Key -> Maybe a -> Maybe Pair
.=? Maybe Bool
emojiAnimated
]
data StickerPack = StickerPack
{
StickerPack -> Snowflake
stickerPackId :: Snowflake,
StickerPack -> [Sticker]
stickerPackStickers :: [Sticker],
StickerPack -> Text
stickerPackName :: T.Text,
StickerPack -> Snowflake
stickerPackSKUId :: Snowflake,
StickerPack -> Maybe StickerId
stickerPackCoverStickerId :: Maybe StickerId,
StickerPack -> Text
stickerPackDescription :: T.Text,
StickerPack -> Maybe Snowflake
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
$cshowsPrec :: Int -> StickerPack -> ShowS
showsPrec :: Int -> StickerPack -> ShowS
$cshow :: StickerPack -> String
show :: StickerPack -> String
$cshowList :: [StickerPack] -> ShowS
showList :: [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
$creadsPrec :: Int -> ReadS StickerPack
readsPrec :: Int -> ReadS StickerPack
$creadList :: ReadS [StickerPack]
readList :: ReadS [StickerPack]
$creadPrec :: ReadPrec StickerPack
readPrec :: ReadPrec StickerPack
$creadListPrec :: ReadPrec [StickerPack]
readListPrec :: ReadPrec [StickerPack]
Read, StickerPack -> StickerPack -> Bool
(StickerPack -> StickerPack -> Bool)
-> (StickerPack -> StickerPack -> Bool) -> Eq StickerPack
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StickerPack -> StickerPack -> Bool
== :: StickerPack -> StickerPack -> Bool
$c/= :: StickerPack -> StickerPack -> Bool
/= :: 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
$ccompare :: StickerPack -> StickerPack -> Ordering
compare :: StickerPack -> StickerPack -> Ordering
$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
>= :: StickerPack -> StickerPack -> Bool
$cmax :: StickerPack -> StickerPack -> StickerPack
max :: StickerPack -> StickerPack -> StickerPack
$cmin :: StickerPack -> StickerPack -> StickerPack
min :: StickerPack -> StickerPack -> 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 ->
Snowflake
-> [Sticker]
-> Text
-> Snowflake
-> Maybe StickerId
-> Text
-> Maybe Snowflake
-> StickerPack
StickerPack (Snowflake
-> [Sticker]
-> Text
-> Snowflake
-> Maybe StickerId
-> Text
-> Maybe Snowflake
-> StickerPack)
-> Parser Snowflake
-> Parser
([Sticker]
-> Text
-> Snowflake
-> Maybe StickerId
-> Text
-> Maybe Snowflake
-> StickerPack)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser Snowflake
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser
([Sticker]
-> Text
-> Snowflake
-> Maybe StickerId
-> Text
-> Maybe Snowflake
-> StickerPack)
-> Parser [Sticker]
-> Parser
(Text
-> Snowflake
-> Maybe StickerId
-> Text
-> Maybe Snowflake
-> StickerPack)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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
-> Snowflake
-> Maybe StickerId
-> Text
-> Maybe Snowflake
-> StickerPack)
-> Parser Text
-> Parser
(Snowflake
-> Maybe StickerId -> Text -> Maybe Snowflake -> StickerPack)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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
(Snowflake
-> Maybe StickerId -> Text -> Maybe Snowflake -> StickerPack)
-> Parser Snowflake
-> Parser
(Maybe StickerId -> Text -> Maybe Snowflake -> StickerPack)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser Snowflake
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"sku_id"
Parser (Maybe StickerId -> Text -> Maybe Snowflake -> StickerPack)
-> Parser (Maybe StickerId)
-> Parser (Text -> Maybe Snowflake -> StickerPack)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe StickerId)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"cover_sticker_id"
Parser (Text -> Maybe Snowflake -> StickerPack)
-> Parser Text -> Parser (Maybe Snowflake -> StickerPack)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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 Snowflake -> StickerPack)
-> Parser (Maybe Snowflake) -> Parser StickerPack
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Snowflake)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"banner_asset_id"
data Sticker = Sticker
{
Sticker -> StickerId
stickerId :: StickerId,
Sticker -> Maybe Snowflake
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 GuildId
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
$cshowsPrec :: Int -> Sticker -> ShowS
showsPrec :: Int -> Sticker -> ShowS
$cshow :: Sticker -> String
show :: Sticker -> String
$cshowList :: [Sticker] -> ShowS
showList :: [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
$creadsPrec :: Int -> ReadS Sticker
readsPrec :: Int -> ReadS Sticker
$creadList :: ReadS [Sticker]
readList :: ReadS [Sticker]
$creadPrec :: ReadPrec Sticker
readPrec :: ReadPrec Sticker
$creadListPrec :: ReadPrec [Sticker]
readListPrec :: ReadPrec [Sticker]
Read, Sticker -> Sticker -> Bool
(Sticker -> Sticker -> Bool)
-> (Sticker -> Sticker -> Bool) -> Eq Sticker
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: Sticker -> Sticker -> Bool
== :: Sticker -> Sticker -> Bool
$c/= :: Sticker -> Sticker -> Bool
/= :: 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
$ccompare :: Sticker -> Sticker -> Ordering
compare :: Sticker -> Sticker -> Ordering
$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
>= :: Sticker -> Sticker -> Bool
$cmax :: Sticker -> Sticker -> Sticker
max :: Sticker -> Sticker -> Sticker
$cmin :: Sticker -> Sticker -> Sticker
min :: Sticker -> Sticker -> 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 ->
StickerId
-> Maybe Snowflake
-> Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker
Sticker (StickerId
-> Maybe Snowflake
-> Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser StickerId
-> Parser
(Maybe Snowflake
-> Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser StickerId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser
(Maybe Snowflake
-> Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser (Maybe Snowflake)
-> Parser
(Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe Snowflake)
forall a. FromJSON a => Object -> Key -> Parser (Maybe a)
.:? Key
"pack_id"
Parser
(Text
-> Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser Text
-> Parser
(Maybe Text
-> [Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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 GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser (Maybe Text)
-> Parser
([Text]
-> Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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 GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser [Text]
-> Parser
(Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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
<&> HasCallStack => Text -> Text -> [Text]
Text -> Text -> [Text]
T.splitOn Text
"\n")
Parser
(Bool
-> StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser Bool
-> Parser
(StickerFormatType
-> Maybe Bool
-> Maybe GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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 GuildId
-> Maybe User
-> Maybe Integer
-> Sticker)
-> Parser StickerFormatType
-> Parser
(Maybe Bool
-> Maybe GuildId -> Maybe User -> Maybe Integer -> Sticker)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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 GuildId -> Maybe User -> Maybe Integer -> Sticker)
-> Parser (Maybe Bool)
-> Parser (Maybe GuildId -> Maybe User -> Maybe Integer -> Sticker)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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 GuildId -> Maybe User -> Maybe Integer -> Sticker)
-> Parser (Maybe GuildId)
-> Parser (Maybe User -> Maybe Integer -> Sticker)
forall a b. Parser (a -> b) -> Parser a -> Parser b
forall (f :: * -> *) a b. Applicative f => f (a -> b) -> f a -> f b
<*> Object
o Object -> Key -> Parser (Maybe GuildId)
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 a b. Parser (a -> b) -> Parser a -> Parser b
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 a b. Parser (a -> b) -> Parser a -> Parser b
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 -> StickerId
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
$cshowsPrec :: Int -> StickerItem -> ShowS
showsPrec :: Int -> StickerItem -> ShowS
$cshow :: StickerItem -> String
show :: StickerItem -> String
$cshowList :: [StickerItem] -> ShowS
showList :: [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
$creadsPrec :: Int -> ReadS StickerItem
readsPrec :: Int -> ReadS StickerItem
$creadList :: ReadS [StickerItem]
readList :: ReadS [StickerItem]
$creadPrec :: ReadPrec StickerItem
readPrec :: ReadPrec StickerItem
$creadListPrec :: ReadPrec [StickerItem]
readListPrec :: ReadPrec [StickerItem]
Read, StickerItem -> StickerItem -> Bool
(StickerItem -> StickerItem -> Bool)
-> (StickerItem -> StickerItem -> Bool) -> Eq StickerItem
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StickerItem -> StickerItem -> Bool
== :: StickerItem -> StickerItem -> Bool
$c/= :: StickerItem -> StickerItem -> Bool
/= :: 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
$ccompare :: StickerItem -> StickerItem -> Ordering
compare :: StickerItem -> StickerItem -> Ordering
$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
>= :: StickerItem -> StickerItem -> Bool
$cmax :: StickerItem -> StickerItem -> StickerItem
max :: StickerItem -> StickerItem -> StickerItem
$cmin :: StickerItem -> StickerItem -> StickerItem
min :: StickerItem -> StickerItem -> 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 ->
StickerId -> Text -> StickerFormatType -> StickerItem
StickerItem (StickerId -> Text -> StickerFormatType -> StickerItem)
-> Parser StickerId
-> Parser (Text -> StickerFormatType -> StickerItem)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Object
o Object -> Key -> Parser StickerId
forall a. FromJSON a => Object -> Key -> Parser a
.: Key
"id"
Parser (Text -> StickerFormatType -> StickerItem)
-> Parser Text -> Parser (StickerFormatType -> StickerItem)
forall a b. Parser (a -> b) -> Parser a -> Parser b
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 a b. Parser (a -> b) -> Parser a -> Parser b
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
StickerId
StickerFormatType
stickerItemId :: StickerItem -> StickerId
stickerItemName :: StickerItem -> Text
stickerItemFormatType :: StickerItem -> StickerFormatType
stickerItemId :: StickerId
stickerItemName :: Text
stickerItemFormatType :: StickerFormatType
..} =
[Pair] -> Value
object
[ (Key
"id", StickerId -> Value
forall a. ToJSON a => a -> Value
toJSON StickerId
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
$cshowsPrec :: Int -> StickerFormatType -> ShowS
showsPrec :: Int -> StickerFormatType -> ShowS
$cshow :: StickerFormatType -> String
show :: StickerFormatType -> String
$cshowList :: [StickerFormatType] -> ShowS
showList :: [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
$creadsPrec :: Int -> ReadS StickerFormatType
readsPrec :: Int -> ReadS StickerFormatType
$creadList :: ReadS [StickerFormatType]
readList :: ReadS [StickerFormatType]
$creadPrec :: ReadPrec StickerFormatType
readPrec :: ReadPrec StickerFormatType
$creadListPrec :: ReadPrec [StickerFormatType]
readListPrec :: ReadPrec [StickerFormatType]
Read, StickerFormatType -> StickerFormatType -> Bool
(StickerFormatType -> StickerFormatType -> Bool)
-> (StickerFormatType -> StickerFormatType -> Bool)
-> Eq StickerFormatType
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: StickerFormatType -> StickerFormatType -> Bool
== :: StickerFormatType -> StickerFormatType -> Bool
$c/= :: StickerFormatType -> StickerFormatType -> Bool
/= :: 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
$ccompare :: StickerFormatType -> StickerFormatType -> Ordering
compare :: StickerFormatType -> StickerFormatType -> Ordering
$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
>= :: StickerFormatType -> StickerFormatType -> Bool
$cmax :: StickerFormatType -> StickerFormatType -> StickerFormatType
max :: StickerFormatType -> StickerFormatType -> StickerFormatType
$cmin :: StickerFormatType -> StickerFormatType -> StickerFormatType
min :: StickerFormatType -> StickerFormatType -> StickerFormatType
Ord, Typeable StickerFormatType
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 -> Constr
StickerFormatType -> DataType
(forall b. Data b => b -> b)
-> StickerFormatType -> 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)
$cgfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StickerFormatType -> c StickerFormatType
gfoldl :: forall (c :: * -> *).
(forall d b. Data d => c (d -> b) -> d -> c b)
-> (forall g. g -> c g) -> StickerFormatType -> c StickerFormatType
$cgunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StickerFormatType
gunfold :: forall (c :: * -> *).
(forall b r. Data b => c (b -> r) -> c r)
-> (forall r. r -> c r) -> Constr -> c StickerFormatType
$ctoConstr :: StickerFormatType -> Constr
toConstr :: StickerFormatType -> Constr
$cdataTypeOf :: StickerFormatType -> DataType
dataTypeOf :: StickerFormatType -> DataType
$cdataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StickerFormatType)
dataCast1 :: forall (t :: * -> *) (c :: * -> *).
Typeable t =>
(forall d. Data d => c (t d)) -> Maybe (c StickerFormatType)
$cdataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StickerFormatType)
dataCast2 :: forall (t :: * -> * -> *) (c :: * -> *).
Typeable t =>
(forall d e. (Data d, Data e) => c (t d e))
-> Maybe (c StickerFormatType)
$cgmapT :: (forall b. Data b => b -> b)
-> StickerFormatType -> StickerFormatType
gmapT :: (forall b. Data b => b -> b)
-> StickerFormatType -> StickerFormatType
$cgmapQl :: forall r r'.
(r -> r' -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r
gmapQl :: forall r r'.
(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
gmapQr :: forall r r'.
(r' -> r -> r)
-> r -> (forall d. Data d => d -> r') -> StickerFormatType -> r
$cgmapQ :: forall u. (forall d. Data d => d -> u) -> StickerFormatType -> [u]
gmapQ :: forall u. (forall d. Data d => d -> u) -> StickerFormatType -> [u]
$cgmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> StickerFormatType -> u
gmapQi :: forall u.
Int -> (forall d. Data d => d -> u) -> StickerFormatType -> u
$cgmapM :: forall (m :: * -> *).
Monad m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m StickerFormatType
gmapM :: forall (m :: * -> *).
Monad m =>
(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
gmapMp :: forall (m :: * -> *).
MonadPlus m =>
(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
gmapMo :: forall (m :: * -> *).
MonadPlus m =>
(forall d. Data d => d -> m d)
-> StickerFormatType -> m 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"