val create : int ‑> t
create n
returns a fresh buffer, initially empty. The n
parameter is the
initial size of the internal storage medium that holds the buffer contents. That
storage is automatically reallocated when more than n
characters are stored in the
buffer, but shrinks back to n
characters when reset
is called.
For best performance, n
should be of the same order of magnitude as the number of
characters that are expected to be stored in the buffer (for instance, 80 for a
buffer that holds one output line). Nothing bad will happen if the buffer grows
beyond that limit, however. In doubt, take n = 16
for instance.
val contents : t ‑> string
Return a copy of the current contents of the buffer. The buffer itself is unchanged.
val contents_bytes : t ‑> bytes
blit ~src ~src_pos ~dst ~dst_pos ~len
copies len
characters from the current
contents of the buffer src
, starting at offset src_pos
to bytes dst
, starting
at character dst_pos
.
Raises Invalid_argument
if src_pos
and len
do not designate a valid substring
of src
, or if dst_pos
and len
do not designate a valid substring of dst
.
include Blit.S_distinct with type src := t with type dst := bytes
val blit : (src, dst) Base__.Blit_intf.blit
val blito : (src, dst) Base__.Blit_intf.blito
val unsafe_blit : (src, dst) Base__.Blit_intf.blit
val sub : (src, dst) Base__.Blit_intf.sub
val subo : (src, dst) Base__.Blit_intf.subo
val nth : t ‑> int ‑> char
Gets the (zero-based) n-th character of the buffer. Raises Invalid_argument
if
index out of bounds.
val reset : t ‑> unit
Empties the buffer and deallocates the internal storage holding the buffer contents,
replacing it with the initial internal storage of length n
that was allocated by
create n
. For long-lived buffers that may have grown a lot, reset
allows faster
reclamation of the space used by the buffer.
val add_substring : t ‑> string ‑> pos:int ‑> len:int ‑> unit
add_substring b s pos len
takes len
characters from offset pos
in string s
and appends them at the end of the buffer b
.
val add_subbytes : t ‑> bytes ‑> pos:int ‑> len:int ‑> unit
add_subbytes b s pos len
takes len
characters from offset pos
in bytes s
and appends them at the end of the buffer b
.