Module type Main.Type.UnicodeString.Type


module type Type = sig .. end
Signature for Unicode strings. 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 
The type of string.

get t i : i-th character of the storage.

val get : t -> int -> Main.Type.UChar.t
init 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) -> t
The number of Unicode characters in the storage
val length : t -> int
locations in storages.
type index 
look t i : The character in the location i of t.
val look : t ->
index -> Main.Type.UChar.t
nth t n : the location of the n-th character in t.
val nth : t -> int -> index
next 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 -> index
val prev : t ->
index -> index
val out_of_range : t -> index -> bool
val iter : (Main.Type.UChar.t -> unit) -> t -> unit
val compare : t -> t -> int
The location of the first character in the storage.
val first : t -> index
The location of the last character in the storage.
val last : t -> index
move 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 -> index
compare_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 -> int
Character buffers. Similar to Buffer.
module Buf: sig .. end