Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
exception Read_error of read_error
val pp_read_error : Format.formatter -> read_error -> unit
val pp_write_error : Format.formatter -> write_error -> unit
exception Write_error of write_error
val length : 'a Encoding.t -> 'a -> int
Compute the expected length of the binary representation of a value
val fixed_length : 'a Encoding.t -> int option
Returns the size of the binary representation that the given encoding might produce, only when the size of the representation does not depends of the value itself.
val fixed_length_exn : 'a Encoding.t -> int
val read : 'a Encoding.t -> Bytes.t -> int -> int -> (int * 'a) option
read enc buf ofs len
tries to reconstruct a value from the bytes in buf
starting at offset ofs
and reading at most len
bytes. This function also returns the offset of the first unread bytes in the buf
.
type 'ret status =
| Await of Bytes.t -> 'ret status
Partially decoded value.
*)| Error of read_error
Failure. The stream is garbled and it should be dropped.
*)Return type for the function read_stream
.
val read_stream :
?init:Data_encoding__.Binary_stream.t ->
'a Encoding.t ->
'a status
Streamed equivalent of read
. This variant cannot be called on variable-size encodings.
val write : 'a Encoding.t -> 'a -> Bytes.t -> int -> int -> int option
write enc v buf ofs len
writes the binary representation of v
as described by to enc
, in buf
starting at the offset ofs
and writing at most len
bytes. The function returns the offset of first unwritten bytes, or returns None
in case of failure. In the latter case, some data might have been written on the buffer.
val of_bytes : 'a Encoding.t -> Bytes.t -> 'a option
of_bytes enc buf
is equivalent to read enc buf 0 (length buf)
. The function fails if the buffer is not fully read.
val of_bytes_exn : 'a Encoding.t -> Bytes.t -> 'a
of_bytes_exn enc buf
is equivalent to of_bytes
, except
val to_bytes : ?buffer_size:int -> 'a Encoding.t -> 'a -> Bytes.t option
to_bytes enc v
is the equivalent of write env buf 0 len
where buf
is a newly allocated buffer of the expected length len
(see length env v
). The parameter buffer_size
controls the initial size of buf
.
val to_bytes_exn : ?buffer_size:int -> 'a Encoding.t -> 'a -> Bytes.t
to_bytes_exn enc v
is equivalent to to_bytes enc v
, except
val describe : 'a Encoding.t -> Binary_schema.t