Module

Protobuf.Internal.Runtime

Package
purescript-protobuf
Repository
xc-jp/purescript-protobuf

This module is for import by the generated .purs message modules.

#parseMessage Source

parseMessage :: forall m a r. MonadEffect m => MonadRec m => (Record r -> a) -> (Record r) -> (FieldNumberInt -> WireType -> ParserT DataView m (Builder (Record r) (Record r))) -> ByteLength -> 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 m r. MonadEffect m => Int -> WireType -> ParserT DataView m (Builder ({ __unknown_fields :: Array UnknownField | r }) ({ __unknown_fields :: Array UnknownField | r }))

Parse and preserve an unknown field.

#putFieldUnknown Source

#parseLenDel Source

parseLenDel :: forall m a. 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.

#Pos Source

type Pos = Int

Parse position, zero-based, unlike Text.Parsing.Parser.Position which is one-based.

#FieldNumberInt Source

type FieldNumberInt = Int

We want an Int FieldNumber to pass to parseField so that we can pattern match on Int literals. UInt doesn't export any constructors, so we can’t pattern match on it.

#positionZero Source

positionZero :: forall s m. Monad m => ParserT s m Pos

Zero-based position in the parser.

#manyLength Source

manyLength :: forall m a. MonadEffect m => MonadRec m => ParserT DataView m a -> ByteLength -> 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 m a. MonadEffect m => (a -> PutM m Unit) -> FieldNumber -> a -> PutM m Unit

#putOptional Source

putOptional :: forall m a. MonadEffect m => FieldNumberInt -> Maybe a -> (a -> Boolean) -> (FieldNumber -> a -> PutM m Unit) -> PutM m Unit

#putRepeated Source

putRepeated :: forall m a. MonadEffect m => FieldNumberInt -> Array a -> (FieldNumber -> a -> PutM m Unit) -> PutM m Unit

#putPacked Source

putPacked :: forall m a. MonadEffect m => FieldNumberInt -> Array a -> (a -> PutM m Unit) -> PutM m Unit

#putEnumField Source

putEnumField :: forall m a. MonadEffect m => BoundedEnum a => FieldNumber -> a -> PutM m Unit

#putEnum Source

putEnum :: forall m a. MonadEffect m => BoundedEnum a => a -> PutM m Unit

#parseEnum Source

parseEnum :: forall m a. MonadEffect m => BoundedEnum a => ParserT DataView m a

#label Source

label :: forall m s a. Monad m => String -> ParserT s m a -> ParserT s m a

If parsing fails inside this labelled context, then prepend the String to the error String in the ParseError. Use this to establish context for parsing failure error messages.

#mergeWith Source

mergeWith :: forall a. (a -> a -> a) -> Maybe a -> Maybe a -> Maybe a

Merge the new left with the old right.