module type Type =Signature for Unicode strings.sig..end
UText, XString, UTF8, UTF16, UCS4
have matched signatures to UStorage
and satisfy the semantics described below. If users want to supply
their own Unicode strings, please design the module with the
following signature and properties.type t
get t i : i-th character of the storage.
val get : t -> int -> Main.Type.UChar.tinit len f creates a new storage.
the returned storage has length len, its nth-element is f n.
f is called with integers 0 ... len - 1, only once for each integer.
The call is in the increasing order f 0, f 1, f 2, ...val init : int -> (int -> Main.Type.UChar.t) -> tval length : t -> inttype index
look t i : The character in the location i of t.val look : t ->
index -> Main.Type.UChar.tnth t n : the location of the n-th character in t.val nth : t -> int -> indexnext x i, prev x i :
The operation is valid if i points the valid element, i.e. the
returned value may point the location beyond valid elements by one.
If i does not point a valid element, the results are unspecified.val next : t ->
index -> indexval prev : t ->
index -> indexval out_of_range : t -> index -> boolval iter : (Main.Type.UChar.t -> unit) -> t -> unitval compare : t -> t -> intval first : t -> indexval last : t -> indexmove t i n :
if n >= 0, then returns n-th character after i and
otherwise returns -n-th character before i.
If there is no such character, or i does not point
a valid character, the result is unspecified.val move : t ->
index ->
int -> indexcompare_index t i j returns
a positive integer if i is the location placed after j in t,
0 if i and j point the same location, and
a negative integer if i is the location placed before j in t.val compare_index : t ->
index ->
index -> intmodule Buf:sig..end