Library
Module
Module type
Parameter
Class
Class type
type error =
| Incomplete
| Overlong_varint
| Malformed_field
| Overflow of string
| Unexpected_payload of string * payload_kind
| Missing_field of string
| Malformed_variant of string
Type of failures possible while decoding.
val error_to_string : error -> string
error_to_string e
converts error e
to its string representation.
exception Failure of error
val of_bytes : bytes -> t
of_bytes b
creates a decoder positioned at start of bytes b
.
val of_string : string -> t
of_string s
creates a decoder positioned at start of string s
.
val at_end : t -> bool
at_end d
returns true
if d
has exhausted its input, and false
otherwise.
val skip : t -> payload_kind -> unit
skip d pk
skips the next value of kind pk
in d
. If skipping the value would exhaust input of d
, raises Encoding_error Incomplete
.
val varint : t -> int64
varint d
reads a varint from d
. If d
has exhausted its input, raises Failure Incomplete
.
val zigzag : t -> int64
zigzag d
reads a varint from d
and zigzag-decodes it. If d
has exhausted its input, raises Failure Incomplete
.
val bits32 : t -> int32
bits32 d
reads four bytes from d
. If d
has exhausted its input, raises Failure Incomplete
.
val bits64 : t -> int64
bits64 d
reads eight bytes from d
. If d
has exhausted its input, raises Failure Incomplete
.
val bytes : t -> bytes
bytes d
reads a varint indicating length and then that much bytes from d
. If d
has exhausted its input, raises Failure Incomplete
.
nested d
returns a decoder for a message nested in d
. If reading the message would exhaust input of d
, raises Failure Incomplete
.
val key : t -> (int * payload_kind) option
key d
reads a key and a payload kind from d
. If d
has exhausted its input when the function is called, returns None
. If d
has exhausted its input while reading, raises Failure Incomplete
. If the payload kind is unknown, raises Failure Malformed_field
.
val decode_exn : (t -> 'a) -> bytes -> 'a
decode_exn f b
≡ f (create b)
.
val decode : (t -> 'a) -> bytes -> 'a option
decode f b
≡ try Some (decode_exn f b) with Failure _ -> None
int_of_int32 fld v
returns v
truncated to int
. If the value doesn't fit in the range of int
, raises Failure (Overflow fld)
.
int_of_int64 fld v
returns v
truncated to int
. If the value doesn't fit in the range of int
, raises Failure (Overflow fld)
.
int32_of_int64 fld v
returns v
truncated to int32
. If the value doesn't fit in the range of int32
, raises Failure (Overflow fld)
.