Module B0_std.Conv.Bin

module Bin: sig .. end
Binary codecs.


Encoding


type 'a enc = Buffer.t -> 'a -> unit 
The type for binary encoders. enc b v binary encodes the value v in b. Raises B0_std.Conv.Error in case of error.
val enc_err : kind:string -> ('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a
enc_err ~kind fmt raises a binary encoding error message for kind kind formatted according to fmt.
val enc_byte : int enc
enc_byte encodes an integer in range [0;255].
val enc_bytes : string enc
enc_bytes encodes the given bytes.
val enc_list : 'a enc -> 'a list enc
enc_list enc_v encodes a list of values encoded with enc_v.

Decoding


type 'a dec = string -> start:int -> int * 'a 
The type for binary decoders. dec s ~start binary decodes a value at start in s. start is either the index of a byte in s or the length of s. The function returns (i, v) with v the decoded value and i the first index in s after the decoded value or the length of s if there is no such index. Raises B0_std.Conv.Error in case of error.
val dec_err : kind:string ->
int -> ('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a
dec_err ~kind i fmt raises a binary decoding error message for kind kind at input byte index i formatted according to fmt.
val dec_err_eoi : kind:string -> int -> 'a
dec_err_eoi ~kind i raises a decoding error message for kind kind at input byte index i indicating an unexpected end of input.
val dec_err_exceed : kind:string -> int -> int -> max:int -> 'a
dec_err_exceed ~kind i v ~max raises a decoding error message for kind kind at input byte index i indicating v is not in the range 0;max.
val dec_need : kind:string -> string -> start:int -> len:int -> unit
dec_need ~kind s ~start ~len checks that len bytes are available starting at start (which can be out of bounds) in s and calls err_eoi if that is not the case.
val dec_byte : kind:string -> int dec
dec_byte decodes an integer in range [0;255] for the given kind.
val dec_bytes : kind:string -> string dec
dec_bytes ~kind decodes the given bytes for the given kind.
val dec_list : 'a dec -> kind:string -> 'a list dec
bin_dec_list dec_v ~kind decodes a list of values decoded with dec_v for the given kind.