package core_kernel
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=e37370bad978cfb71fdaf2b1a25ab1506b98ef0b91e0dbd189ffd9d853245ce2
doc/core_kernel.unpack_buffer/Unpack_buffer/index.html
Module Unpack_buffer
Source
A buffer for incremental decoding of an input stream.
An Unpack_buffer.t
is a buffer to which one can feed
strings, and then unpack
from the buffer to produce a queue of values.
If unpack_one : ('a, 'state) unpack
, then unpack_one ~state ~buf ~pos ~len
must unpack at most one value of type 'a
from buf
starting at pos
, and not using more than len
characters. unpack_one
must return one the following:
create_bin_prot reader
returns an unpack buffer that unpacks the "size-prefixed" bin_prot encoding, in which a value is encoded by first writing the length of the bin_prot data as a 64-bit int, and then writing the bin_prot data itself.
is_empty
returns true
if all the data fed into t
has been unpacked into values; false
if t
has unconsumed bytes or partially unpacked data. is_empty
returns an error if t
has encountered an unpacking error.
feed t buf ?pos ?len
adds the specified substring of buf
to t
's buffer. It returns an error if t
has encountered an unpacking error.
unpack_into t q
unpacks all the values that it can from t
and enqueues them in q
. If there is an unpacking error, unpack_into
returns an error, and subsequent feed
and unpack operations on t
will return that same error -- i.e. no more data can be fed to or unpacked from t
.
unpack_iter t ~f
unpacks all the values that it can from t
, calling f
on each value as it's unpacked. If there is an unpacking error (including if f
raises), unpack_iter
returns an error, and subsequent feed
and unpack operations on t
will return that same error -- i.e., no more data can be fed to or unpacked from t
.
Behavior is unspecified if f
operates on t
.