(* $Id: uCharTbl.mli,v 1.1 2003/12/19 17:24:34 yori Exp $ *) (* Copyright 2002, 2003 Yamagata Yoriyuki. distributed with LGPL *) (** Fast lookup tables. Accessible by constant time. *) type 'a tbl type 'a t = 'a tbl val get : 'a tbl -> UChar.t -> 'a module type Type = sig type elt type t = elt tbl val get : elt tbl -> UChar.t -> elt (** [of_map def m] creates the table which has the same value to [m]. The table returns [def] for the characters for which [m] is undefined. *) val of_map : elt -> elt UMap.t -> t end (** Equality and hash are necessary for table generation. *) module Make : functor (H : Hashtbl.HashedType) -> (Type with type elt = H.t) (** Tables for boolean values. *) module Bool : sig type t val get : t -> UChar.t -> bool val of_set : USet.t -> t end (** Tables for small (< 256, >=0) integers *) module Bits : sig type t val of_map : int -> int UMap.t -> t val get : t -> UChar.t -> int end (** Tables for integers. If integers are not span the whole 31-bit or 63-bit values, [Bytes.t] is more space efficient than [int tbl]. *) module Bytes : sig type t val of_map : int -> int UMap.t -> t val get : t -> UChar.t -> int end (** Tables for bytes. *) module Char : sig type t val of_map : char -> char UMap.t -> t val get : t -> UChar.t -> char end