Module
Protobuf.Runtime
- Package
- purescript-protobuf
- Repository
- xc-jp/purescript-protobuf
This module is for import by the generated .purs message modules.
#parseMessage Source
parseMessage :: forall r a m. MonadEffect m => (Record r -> a) -> (Record r) -> (FieldNumberInt -> WireType -> ParserT DataView m (Builder (Record r) (Record r))) -> Int -> ParserT DataView m a
The parseField argument is a parser which returns a Record builder which, when applied to a Record, will modify the Record to add the parsed field.
#parseFieldUnknown Source
parseFieldUnknown :: forall r m. MonadEffect m => WireType -> ParserT DataView m (Builder (Record r) (Record r))
We don't recognize the field number, so consume the field and throw it away and then return a no-op Record builder.
#parseLenDel Source
parseLenDel :: forall a m. MonadEffect m => (Int -> ParserT DataView m a) -> ParserT DataView m a
Parse a length, then call a parser which takes one length as its argument.
#FieldNumberInt Source
type FieldNumberInt = Int
We want Int FieldNumber to pass to parseField so that we can pattern match on Int literals. UInt doesn't export any constructors, so can't pattern match on it.
#positionZero Source
positionZero :: forall m s. Monad m => ParserT s m Pos
Zero-based position in the parser.
#manyLength Source
manyLength :: forall a m. MonadEffect m => ParserT DataView m a -> Int -> ParserT DataView m (Array a)
Call a parser repeatedly until exactly N bytes have been consumed. Will fail if too many bytes are consumed.
#putLenDel Source
putLenDel :: forall a m. MonadEffect m => (a -> PutM m Unit) -> FieldNumber -> a -> PutM m Unit
#putOptional Source
putOptional :: forall a m. MonadEffect m => FieldNumberInt -> Maybe a -> (FieldNumber -> a -> PutM m Unit) -> PutM m Unit
#putRepeated Source
putRepeated :: forall a m. MonadEffect m => FieldNumberInt -> Array a -> (FieldNumber -> a -> PutM m Unit) -> PutM m Unit
#putPacked Source
putPacked :: forall a m. MonadEffect m => FieldNumberInt -> Array a -> (a -> PutM m Unit) -> PutM m Unit
#putEnum Source
putEnum :: forall a m. MonadEffect m => BoundedEnum a => FieldNumber -> a -> PutM m Unit
#putEnum' Source
putEnum' :: forall a m. MonadEffect m => BoundedEnum a => a -> PutM m Unit
#parseEnum Source
parseEnum :: forall a m. MonadEffect m => BoundedEnum a => ParserT DataView m a