Module Kappa_generic_toolset.Bigbuffer
type bigstring
= (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
type t
The abstract type of buffers.
val create : int -> t
create n
returns a fresh buffer, initially empty. Then
parameter is the initial size of the internal byte sequence that holds the buffer contents. That byte sequence is automatically reallocated when more thann
characters are stored in the buffer, but shrinks back ton
characters whenreset
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, taken = 16
for instance. Ifn
is not between 1 andSys
.max_string_length, it will be clipped to that interval.
val contents : t -> bigstring
Return a copy of the current contents of the buffer. The buffer itself is unchanged.
val add_char : t -> char -> unit
add_char b c
appends the characterc
at the end of bufferb
.
val length : t -> int
Return the number of characters currently contained in the buffer.
val add_string : t -> string -> unit
add_string b s
appends the strings
at the end of bufferb
.
val add_substring : t -> string -> int -> int -> unit
add_substring b s ofs len
takeslen
characters from offsetofs
in strings
and appends them at the end of bufferb
.
val add_subbytes : t -> bytes -> int -> int -> unit
add_subbytes b s ofs len
takeslen
characters from offsetofs
in byte sequences
and appends them at the end of bufferb
.- since
- 4.02
val nth : t -> int -> char
Get the n-th character of the buffer. Raise
Invalid_argument
if index out of bounds
val clear : t -> unit
Empty the buffer.
val reset : t -> unit
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 byBuffer
.createn
. For long-lived buffers that may have grown a lot,reset
allows faster reclamation of the space used by the buffer.