Legend:
Library
Module
Module type
Parameter
Class
Class type
Extensible character buffers.
This module implements character 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).
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.
Raise 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.
Empty the buffer and deallocate 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.