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.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
val length : t -> int
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
val first : t -> index
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
module Buf:sig
..end