Extensible string buffers based on Bigstrings.
This module implements string 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).
This implementation uses Bigstrings instead of strings. This removes the 16MB limit on buffer size (on 32-bit machines), and improves I/O-performance when reading/writing from/to channels.
include Base.Buffer.Sval sexp_of_t : t ‑> Base.Sexp.tval create : int ‑> tval contents : t ‑> stringval contents_bytes : t ‑> bytesval blit : (t, bytes) Base__.Blit_intf.blitval blito : (t, bytes) Base__.Blit_intf.blitoval unsafe_blit : (t, bytes) Base__.Blit_intf.blitval sub : (t, bytes) Base__.Blit_intf.subval subo : (t, bytes) Base__.Blit_intf.suboval nth : t ‑> int ‑> charval length : t ‑> intval clear : t ‑> unitval reset : t ‑> unitval add_char : t ‑> char ‑> unitval add_string : t ‑> string ‑> unitval add_substring : t ‑> string ‑> pos:int ‑> len:int ‑> unitval add_bytes : t ‑> bytes ‑> unitval add_subbytes : t ‑> bytes ‑> pos:int ‑> len:int ‑> unitval big_contents : t ‑> Bigstring.tReturn a copy of the current contents of the buffer as a bigstring. The buffer itself is unchanged.
val volatile_contents : t ‑> Bigstring.tReturn the actual underlying bigstring used by this bigbuffer.
No copying is involved. To be safe, use and finish with the returned value
before calling any other function in this module on the same Bigbuffer.t.
val add_bigstring : t ‑> Bigstring.t ‑> Core_kernel__.Import.unitadd_bigstring b s appends the bigstring s at the end of the buffer b.
val add_substitute : t ‑> (Core_kernel__.Import.string ‑> Core_kernel__.Import.string) ‑> Core_kernel__.Import.string ‑> Core_kernel__.Import.unitadd_substitute b f s appends the string pattern s at the end
of the buffer b with substitution.
The substitution process looks for variables into
the pattern and substitutes each variable name by its value, as
obtained by applying the mapping f to the variable name. Inside the
string pattern, a variable name immediately follows a non-escaped
$ character and is one of the following:
_ characters,An escaped $ character is a $ that immediately follows a backslash
character; it then stands for a plain $.
Raise Not_found if the closing character of a parenthesized variable
cannot be found.
module Format : sig ... endmodule Printf : sig ... end