200 lines
7.8 KiB
Plaintext
200 lines
7.8 KiB
Plaintext
-- | Generated by __purescript-protobuf__ from file `format.proto`
|
|
module AviaryFormat.Format
|
|
( Image(..), ImageRow, ImageR, parseImage, putImage, defaultImage, mkImage, mergeImage
|
|
, Index(..), IndexRow, IndexR, parseIndex, putIndex, defaultIndex, mkIndex, mergeIndex
|
|
, Format(..)
|
|
)
|
|
where
|
|
import Protobuf.Internal.Prelude
|
|
import Protobuf.Internal.Prelude as Prelude
|
|
|
|
|
|
|
|
|
|
-- ---------- Message Image ----------
|
|
newtype Image = Image ImageR
|
|
type ImageRow =
|
|
( key :: Prelude.Maybe Prelude.Bytes
|
|
, full_url :: Prelude.Maybe String
|
|
, thumb_url :: Prelude.Maybe String
|
|
, blurhash :: Prelude.Maybe String
|
|
, format :: Prelude.Maybe Format
|
|
, width :: Prelude.Maybe Prelude.UInt
|
|
, height :: Prelude.Maybe Prelude.UInt
|
|
, __unknown_fields :: Array Prelude.UnknownField
|
|
)
|
|
type ImageR = Record ImageRow
|
|
derive instance genericImage :: Prelude.Generic Image _
|
|
derive instance newtypeImage :: Prelude.Newtype Image _
|
|
derive instance eqImage :: Prelude.Eq Image
|
|
instance showImage :: Prelude.Show Image where show x = Prelude.genericShow x
|
|
|
|
putImage :: forall m. Prelude.MonadEffect m => Image -> Prelude.PutM m Prelude.Unit
|
|
putImage (Image r) = do
|
|
Prelude.putOptional 1 r.key Prelude.isDefault Prelude.encodeBytesField
|
|
Prelude.putOptional 2 r.full_url Prelude.isDefault Prelude.encodeStringField
|
|
Prelude.putOptional 3 r.thumb_url Prelude.isDefault Prelude.encodeStringField
|
|
Prelude.putOptional 4 r.blurhash Prelude.isDefault Prelude.encodeStringField
|
|
Prelude.putOptional 5 r.format Prelude.isDefault Prelude.putEnumField
|
|
Prelude.putOptional 6 r.width Prelude.isDefault Prelude.encodeUint32Field
|
|
Prelude.putOptional 7 r.height Prelude.isDefault Prelude.encodeUint32Field
|
|
Prelude.traverse_ Prelude.putFieldUnknown r.__unknown_fields
|
|
|
|
parseImage :: forall m. Prelude.MonadEffect m => Prelude.MonadRec m => Prelude.ByteLength -> Prelude.ParserT Prelude.DataView m Image
|
|
parseImage length = Prelude.label "Image / " $
|
|
Prelude.parseMessage Image defaultImage parseField length
|
|
where
|
|
parseField
|
|
:: Prelude.FieldNumberInt
|
|
-> Prelude.WireType
|
|
-> Prelude.ParserT Prelude.DataView m (Prelude.Builder ImageR ImageR)
|
|
parseField 1 Prelude.LenDel = Prelude.label "key / " $ do
|
|
x <- Prelude.decodeBytes
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "key") $ \_ -> Prelude.Just x
|
|
parseField 2 Prelude.LenDel = Prelude.label "full_url / " $ do
|
|
x <- Prelude.decodeString
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "full_url") $ \_ -> Prelude.Just x
|
|
parseField 3 Prelude.LenDel = Prelude.label "thumb_url / " $ do
|
|
x <- Prelude.decodeString
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "thumb_url") $ \_ -> Prelude.Just x
|
|
parseField 4 Prelude.LenDel = Prelude.label "blurhash / " $ do
|
|
x <- Prelude.decodeString
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "blurhash") $ \_ -> Prelude.Just x
|
|
parseField 5 Prelude.VarInt = Prelude.label "format / " $ do
|
|
x <- Prelude.parseEnum
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "format") $ \_ -> Prelude.Just x
|
|
parseField 6 Prelude.VarInt = Prelude.label "width / " $ do
|
|
x <- Prelude.decodeUint32
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "width") $ \_ -> Prelude.Just x
|
|
parseField 7 Prelude.VarInt = Prelude.label "height / " $ do
|
|
x <- Prelude.decodeUint32
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "height") $ \_ -> Prelude.Just x
|
|
parseField fieldNumber wireType = Prelude.parseFieldUnknown fieldNumber wireType
|
|
|
|
defaultImage :: ImageR
|
|
defaultImage =
|
|
{ key: Prelude.Nothing
|
|
, full_url: Prelude.Nothing
|
|
, thumb_url: Prelude.Nothing
|
|
, blurhash: Prelude.Nothing
|
|
, format: Prelude.Nothing
|
|
, width: Prelude.Nothing
|
|
, height: Prelude.Nothing
|
|
, __unknown_fields: []
|
|
}
|
|
|
|
mkImage :: forall r1 r3. Prelude.Union r1 ImageRow r3 => Prelude.Nub r3 ImageRow => Record r1 -> Image
|
|
mkImage r = Image $ Prelude.merge r defaultImage
|
|
|
|
mergeImage :: Image -> Image -> Image
|
|
mergeImage (Image l) (Image r) = Image
|
|
{ key: Prelude.alt l.key r.key
|
|
, full_url: Prelude.alt l.full_url r.full_url
|
|
, thumb_url: Prelude.alt l.thumb_url r.thumb_url
|
|
, blurhash: Prelude.alt l.blurhash r.blurhash
|
|
, format: Prelude.alt l.format r.format
|
|
, width: Prelude.alt l.width r.width
|
|
, height: Prelude.alt l.height r.height
|
|
, __unknown_fields: r.__unknown_fields <> l.__unknown_fields
|
|
}
|
|
|
|
|
|
-- ---------- Message Index ----------
|
|
newtype Index = Index IndexR
|
|
type IndexRow =
|
|
( images :: Array Image
|
|
, title :: Prelude.Maybe String
|
|
, desc :: Prelude.Maybe String
|
|
, __unknown_fields :: Array Prelude.UnknownField
|
|
)
|
|
type IndexR = Record IndexRow
|
|
derive instance genericIndex :: Prelude.Generic Index _
|
|
derive instance newtypeIndex :: Prelude.Newtype Index _
|
|
derive instance eqIndex :: Prelude.Eq Index
|
|
instance showIndex :: Prelude.Show Index where show x = Prelude.genericShow x
|
|
|
|
putIndex :: forall m. Prelude.MonadEffect m => Index -> Prelude.PutM m Prelude.Unit
|
|
putIndex (Index r) = do
|
|
Prelude.putRepeated 1 r.images $ Prelude.putLenDel putImage
|
|
Prelude.putOptional 2 r.title (\_ -> false) Prelude.encodeStringField
|
|
Prelude.putOptional 3 r.desc (\_ -> false) Prelude.encodeStringField
|
|
Prelude.traverse_ Prelude.putFieldUnknown r.__unknown_fields
|
|
|
|
parseIndex :: forall m. Prelude.MonadEffect m => Prelude.MonadRec m => Prelude.ByteLength -> Prelude.ParserT Prelude.DataView m Index
|
|
parseIndex length = Prelude.label "Index / " $
|
|
Prelude.parseMessage Index defaultIndex parseField length
|
|
where
|
|
parseField
|
|
:: Prelude.FieldNumberInt
|
|
-> Prelude.WireType
|
|
-> Prelude.ParserT Prelude.DataView m (Prelude.Builder IndexR IndexR)
|
|
parseField 1 Prelude.LenDel = Prelude.label "images / " $ do
|
|
x <- Prelude.parseLenDel parseImage
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "images") $ Prelude.flip Prelude.snoc x
|
|
parseField 2 Prelude.LenDel = Prelude.label "title / " $ do
|
|
x <- Prelude.decodeString
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "title") $ \_ -> Prelude.Just x
|
|
parseField 3 Prelude.LenDel = Prelude.label "desc / " $ do
|
|
x <- Prelude.decodeString
|
|
pure $ Prelude.modify (Prelude.Proxy :: Prelude.Proxy "desc") $ \_ -> Prelude.Just x
|
|
parseField fieldNumber wireType = Prelude.parseFieldUnknown fieldNumber wireType
|
|
|
|
defaultIndex :: IndexR
|
|
defaultIndex =
|
|
{ images: []
|
|
, title: Prelude.Nothing
|
|
, desc: Prelude.Nothing
|
|
, __unknown_fields: []
|
|
}
|
|
|
|
mkIndex :: forall r1 r3. Prelude.Union r1 IndexRow r3 => Prelude.Nub r3 IndexRow => Record r1 -> Index
|
|
mkIndex r = Index $ Prelude.merge r defaultIndex
|
|
|
|
mergeIndex :: Index -> Index -> Index
|
|
mergeIndex (Index l) (Index r) = Index
|
|
{ images: r.images <> l.images
|
|
, title: Prelude.alt l.title r.title
|
|
, desc: Prelude.alt l.desc r.desc
|
|
, __unknown_fields: r.__unknown_fields <> l.__unknown_fields
|
|
}
|
|
|
|
|
|
-- ---------- Enum Format ----------
|
|
data Format
|
|
= Format_WEBP
|
|
| Format_AVIF
|
|
| Format_JPG
|
|
| Format_PNG
|
|
| Format_GIF
|
|
derive instance genericFormat :: Prelude.Generic Format _
|
|
derive instance eqFormat :: Prelude.Eq Format
|
|
instance showFormat :: Prelude.Show Format where show = Prelude.genericShow
|
|
instance ordFormat :: Prelude.Ord Format where compare = Prelude.genericCompare
|
|
instance boundedFormat :: Prelude.Bounded Format
|
|
where
|
|
bottom = Prelude.genericBottom
|
|
top = Prelude.genericTop
|
|
instance enumFormat :: Prelude.Enum Format
|
|
where
|
|
succ = Prelude.genericSucc
|
|
pred = Prelude.genericPred
|
|
instance boundedenumFormat :: Prelude.BoundedEnum Format
|
|
where
|
|
cardinality = Prelude.genericCardinality
|
|
toEnum (0) = Prelude.Just Format_WEBP
|
|
toEnum (1) = Prelude.Just Format_AVIF
|
|
toEnum (2) = Prelude.Just Format_JPG
|
|
toEnum (3) = Prelude.Just Format_PNG
|
|
toEnum (4) = Prelude.Just Format_GIF
|
|
toEnum _ = Prelude.Nothing
|
|
fromEnum Format_WEBP = (0)
|
|
fromEnum Format_AVIF = (1)
|
|
fromEnum Format_JPG = (2)
|
|
fromEnum Format_PNG = (3)
|
|
fromEnum Format_GIF = (4)
|
|
instance defaultFormat :: Prelude.Default Format
|
|
where
|
|
default = Format_WEBP
|
|
isDefault = eq Format_WEBP
|
|
|