Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source
Module Base.Buffer
Extensible character buffers.
This module implements character buffers that automatically expand as necessary. It provides cumulative concatenation of strings in quasi-linear time (instead of quadratic time when strings are concatenated pairwise).
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.
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.
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.