module Utils: sig
.. end
Utility functions for user convenience
val bin_dump : ?header:bool -> 'a Type_class.writer -> 'a -> Common.buf
bin_dump ?header writer v
uses writer
to first compute the size of
v
in the binary protocol, then allocates a buffer of exactly this
size, and then writes out the value. If header
is true
, the
size of the resulting binary string will be prefixed as a signed
64bit integer.
Raises Failure
if the size of the value changes during writing,
and any other exceptions that the binary writer in writer
can raise.
Returns the buffer containing the written out value.
header
: default = false
val bin_read_stream : ?max_size:int ->
read:(Common.buf -> pos:int -> len:int -> unit) -> 'a Type_class.reader -> 'a
bin_read_stream ?max_size ~read reader
reads binary protocol data
from a stream as generated by the
read
function, which places
data of a given length into a given buffer. Requires a header.
The
reader
type class will be used for conversion to OCaml-values.
RaisesFailure
if the size of the value disagrees with the one
specified in the header, and any other exceptions that the binary
reader associated with reader
can raise.
Failure
if the size reported in the data header is longer than
max_size
.
max_size
: = nothing
Conversion of binable types
module type Make_binable_spec = sig
.. end
module Make_binable (
Bin_spec
:
Make_binable_spec
)
: Binable.S
with type t := Bin_spec.t
module type Make_binable1_spec = sig
.. end
module Make_binable1 (
Bin_spec
:
Make_binable1_spec
)
: Binable.S1
with type 'a t := 'a Bin_spec.t
module type Make_binable2_spec = sig
.. end
module Make_binable2 (
Bin_spec
:
Make_binable2_spec
)
: Binable.S2
with type ('a, 'b) t := ('a, 'b) Bin_spec.t
Conversion of iterable types
module type Make_iterable_binable_spec = sig
.. end
module Make_iterable_binable (
Iterable_spec
:
Make_iterable_binable_spec
)
: Binable.S
with type t := Iterable_spec.t
module type Make_iterable_binable1_spec = sig
.. end
module Make_iterable_binable1 (
Iterable_spec
:
Make_iterable_binable1_spec
)
: Binable.S1
with type 'a t := 'a Iterable_spec.t
module type Make_iterable_binable2_spec = sig
.. end
module Make_iterable_binable2 (
Iterable_spec
:
Make_iterable_binable2_spec
)
: Binable.S2
with type ('a, 'b) t := ('a, 'b) Iterable_spec.t