package kappa-library
Install
Dune Dependency
Authors
Maintainers
Sources
md5=1c9a8a0d79f085757817f90834e166f5
sha512=13ac40442940ba6e72d7dc5bf952e67443872f7bff63e9c76a3a699a6904c88696047fe04519b7ec6546371642f6ee7b0983117be302694aca15500b0df40de3
doc/kappa-library.generic/Kappa_data_structures/Bigbuffer/index.html
Module Kappa_data_structures.Bigbuffer
Source
Extensible buffers.
This module implements buffers that automatically expand as necessary. It provides accumulative concatenation of strings in quasi-linear time (instead of quadratic time when strings are concatenated pairwise).
The abstract type of buffers.
create n
returns a fresh buffer, initially empty. The n
parameter is the initial size of the internal byte sequence that holds the buffer contents. That byte sequence 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. If n
is not between 1 and Sys.max_string_length
, it will be clipped to that interval.
Return a copy of the current contents of the buffer. The buffer itself is unchanged.
add_string b s
appends the string s
at the end of buffer b
.
add_substring b s ofs len
takes len
characters from offset ofs
in string s
and appends them at the end of buffer b
.
add_subbytes b s ofs len
takes len
characters from offset ofs
in byte sequence s
and appends them at the end of buffer b
.
Get the n-th character of the buffer. Raise Invalid_argument
if index out of bounds
Empty the buffer and deallocate the internal byte sequence holding the buffer contents, replacing it with the initial internal byte sequence of length n
that was allocated by Buffer.create
n
. For long-lived buffers that may have grown a lot, reset
allows faster reclamation of the space used by the buffer.