-- | 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