The Expert
module is for building efficient out-of-module Iobuf
abstractions.
val buf : (_, _) Core__Iobuf.t ‑> Core__.Import.Bigstring.t
These accessors will not allocate, and are mainly here to assist in building low-cost syscall wrappers.
One must be careful to avoid writing out of the limits (between lo_min
and
hi_max
) of the buf
. Doing so would violate the invariants of the parent
Iobuf
.
val hi_max : (_, _) Core__Iobuf.t ‑> int
val hi : (_, _) Core__Iobuf.t ‑> int
val lo : (_, _) Core__Iobuf.t ‑> int
val lo_min : (_, _) Core__Iobuf.t ‑> int
val reinitialize_of_bigstring : (_, _) Core__Iobuf.t ‑> pos:int ‑> len:int ‑> Core__.Import.Bigstring.t ‑> unit
reinitialize_of_bigstring t bigstring
reinitializes t
with backing bigstring
,
and the window and limits specified starting at pos
and of length len
.
val set_bounds_and_buffer : src:('data, _) Core__Iobuf.t ‑> dst:('data, Core__Iobuf.seek) Core__Iobuf.t ‑> unit
These versions of set_bounds_and_buffer
allow ~src
to be read-only. ~dst
will
be writable through ~src
aliases even though the type does not reflect this!
val set_bounds_and_buffer_sub : pos:int ‑> len:int ‑> src:('data, _) Core__Iobuf.t ‑> dst:('data, Core__Iobuf.seek) Core__Iobuf.t ‑> unit