B00_std.Bincode
Binary coding of values.
type 'a enc = Buffer.t -> 'a -> unit
The type for encoders of values of type 'a
. The call enc b v
must encode v
in buffer b
.
The type for decoders of values of type 'a
. The call dec s i
must decode a value in s
starting at i
(which may be String.length s
) and return the index of the byte in s
after the decoded value (this can be String.length s
). The function must raise Failure
in case of error, use err
for this.
val err : int -> ('a, Format.formatter, unit, 'b) format4 -> 'a
err i fmt
reports a decoding error for position i
formatted according to fmt
.
err_byte ~kind i byte
report an error for the unexpected byte byte
at position i
for decoding a value of type kind
.
get_byte s i
is the byte s.[i]
. Does not check that i
is in bounds.
dec_eoi s i
asserts that i
is exactly at the end of input, i.e. String.length s
.
encode c v
encodes v
using c
(and buf
if provided, it is the client's duty to reset it before an encoding).
of_string ~file c s
decodes a value from s
using c
and dec_eoi
. In case of error file
is mentioned in the error message (defaults to Os
.File.dash).
val enc_magic : string -> unit enc
enc_magic m
encodes string m
as a magic number.
val dec_magic : string -> unit dec
dec_magic m
decodes magic number m
and returns the next index to read from.
val magic : string -> unit t
magic m
is a codec for magic number m
.
val enc_byte : int enc
enc_byte
is a byte encoder. Values larger than 0xFF
are truncated.
val dec_byte : kind:string -> int dec
dec_byte
decodes a byte for a value of type kind
(used with err_byte
)
unit
val enc_unit : unit enc
enc_unit
encodes unit.
val dec_unit : unit dec
dec_unit
decodes unit.
val unit : unit t
unti
is a codec for unit.
bool
val enc_bool : bool enc
enc_bool
encodes a boolean.
val dec_bool : bool dec
dec_bool
decodes a boolean.
val bool : bool t
bool
is a codec for bool
.
int
val enc_int : int enc
enc_int
encodes an integer. The encoding does not depend on Sys
.word_size.
val dec_int : int dec
dec_int
dedodes an integer. Warning. An int
encoded on a 64-bit platform may end up being truncated if read back on 32-bit platform.
val int : int t
int
is a codec for integers.
int64
val enc_int64 : int64 enc
enc_int64
encodes an int64
.
val dec_int64 : int64 dec
dec_int64
decodes an int64
.
val int64 : int64 t
int64
is a coded for int64
.
string
val enc_string : string enc
enc_string
encodes a string.
val dec_string : string dec
dec_string
decodes a string.
val string : string t
string
is a codec for string
.
Fpath.t
list
option
enc_option enc
encodes an option using enc
for the Some
case value.
dec_option dec
decodes an option using dec
for the Some
case value.
result
enc_result ~ok ~error
encodes a result value with the corresponding case encoders.
dec_result ~ok ~error
decodes a result value with the corresponding case decoders.
result
is a codec for results with Ok
elements coded with ok
and Error
elements coded with error
.
Set.t
enc_set (module S) enc
encodes S.t
sets using enc
for its elements.
dec_set (module S) dec
decodes S.t
sets with dec
for its elements.
set (module S) c
is a codec for S.t
sets using c
for its elements.
Hash.t
Time.span
Time.cpu_span
val enc_time_cpu_span : Time.cpu_span enc
enc_time_cpu_span
encodes a Time.cpu_span
.
val dec_time_cpu_span : Time.cpu_span dec
dec_time_cpu_span
decodes a Time.cpu_span
.
val time_cpu_span : Time.cpu_span t
time_span
is a codec for Time.cpu_span
.