Up

Module Expert

The Expert module is for building efficient out-of-module Iobuf abstractions.

Signature

val buf : (_, _) t -> Core_kernel.Std.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 : (_, _) t -> int
val hi : (_, _) t -> int
val lo : (_, _) t -> int
val lo_min : (_, _) t -> int
val to_bigstring_shared : ?pos:int -> ?len:int -> (_, _) t -> Core_kernel.Std.Bigstring.t

to_bigstring_shared t and to_iobuf_shared t allocate new wrappers around the storage of buf t, relative to t's current bounds.

These operations allow access outside the bounds and limits of t, and without respect to its read/write access. Be careful not to violate t's invariants.

val to_iovec_shared : ?pos:int -> ?len:int -> (_, _) t -> Core_kernel.Std.Bigstring.t Iobuf_intf.Unix.IOVec.t