Module

Protobuf.Internal.Common

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

Common utility definitions.

#FieldNumber Source

#Bytes Source

newtype Bytes

Representation of a bytes Scalar Value Type field.

On a message which has been decoded, The wrapped DataBuff will usually be a DataView. In that case, the DataView is a view into the received message I/O buffer.

For messages which you intend to encode, You may set it the DataBuff to DataView or ArrayBuffer, whichever seems best.

The ArrayBuffer and DataView are mutable, so be careful not to mutate them if anything might read them again. Here we trade off typechecker guarantees for implementation simplicity.

Constructors

Instances

#fromDefault Source

fromDefault :: forall a. Default a => Eq a => a -> Maybe a

Turns a default value into Nothing.

#toDefault Source

toDefault :: forall a. Default a => Maybe a -> a

Turns Nothing into a default value.

The Protobuf spec requires that a no presence field set to its “default” (zero) value must not be serialized to the wire. We can use this function to interpret a missing field as a “default” value.

#mkUint8Array Source

mkUint8Array :: DataView -> Effect Uint8Array

Make a Uint8Array Typed Array from a DataView. We can do this for the case of Uint8 because byte arrays are always aligned.