package core_kernel
- Overview
- No Docs
You can search for identifiers within the package.
in-package search v0.2.0
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=34a0288f16027c6b90e4ad16cb5cc677d7063d310faf918748ce70f1745116c0
doc/core_kernel.iobuf/Iobuf/Expert/index.html
Module Iobuf.ExpertSource
The Expert module is for building efficient out-of-module Iobuf abstractions.
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.
These setters directly set fields in t without checking any invariants.
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.
reinitialize_of_bigstring t bigstring reinitializes t with backing bigstring, and the window and limits specified starting at pos and of length len.
val unsafe_reinitialize :
(_, _) t ->
lo_min:int ->
lo:int ->
hi:int ->
hi_max:int ->
Core.Bigstring.t ->
unitAs reinitialize_of_bigstring but without checking, and requires explicit specification of bounds.
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!
Similar to protect_window_and_bounds, but does not save/restore the buffer or bounds. Mixing this with functions like set_bounds_and_buffer or narrow is unsafe; you should not modify anyything but the window inside f.