module Utils:sig..end
val size_header_length : intsize_header_length is the standard number of bytes allocated for the size header in
size-prefixed bin-io payloads. This size-prefixed layout is used by the bin_dump
and bin_read_stream functions below, as well as:
We do not use a variable length header because we want to know how many bytes to read
to get the size without having to peek into the payload.
val bin_read_size_header : int Read.reader
val bin_write_size_header : int Write.writerbin_read_size_header and bin_write_size_header are bin-prot serializers for the
size header described above.val bin_dump : ?header:bool -> 'a Type_class.writer -> 'a -> Common.bufbin_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.Failure if the size of the value changes during writing,
and any other exceptions that the binary writer in writer can raise.header : default = falseval bin_read_stream : ?max_size:int ->
read:(Common.buf -> pos:int -> len:int -> unit) -> 'a Type_class.reader -> 'abin_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.Failure 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 : = nothingmodule type Make_binable_spec =sig..end
module Make_binable:
module type Make_binable1_spec =sig..end
module Make_binable1:
module type Make_binable2_spec =sig..end
module Make_binable2:
module type Make_iterable_binable_spec =sig..end
module Make_iterable_binable:
module type Make_iterable_binable1_spec =sig..end
module Make_iterable_binable1:functor (Iterable_spec:Make_iterable_binable1_spec) ->Binable.S1with type 'a t := 'a Iterable_spec.t
module type Make_iterable_binable2_spec =sig..end
module Make_iterable_binable2:functor (Iterable_spec:Make_iterable_binable2_spec) ->Binable.S2with type ('a, 'b) t := ('a, 'b) Iterable_spec.t