irc-bot/cdb.mli

41 lines
892 B
OCaml

(** CDB Implementation.
{{:http://cr.yp.to/cdb/cdb.txt} http://cr.yp.to/cdb/cdb.txt}
*)
(** {1 Utilities} *)
val hash : string -> int32
(** {1 Building a CDB } *)
type cdb_creator = {
table_count : int array;
mutable pointers : (Int32.t * Int32.t) list;
out : out_channel;
}
val open_out : string -> cdb_creator
val cdb_creator_of_out_channel : Pervasives.out_channel -> cdb_creator
val add : cdb_creator -> string -> string -> unit
val close_cdb_out : cdb_creator -> unit
(** {1 Iterating a CDB } *)
val iter : (string -> string -> unit) -> string -> unit
(** {1 Searching } *)
type cdb_file = {
f: in_channel;
tables: (Int32.t * int) array;
}
val open_cdb_in : string -> cdb_file
val close_cdb_in : cdb_file -> unit
val get_matches : cdb_file -> string -> string Stream.t
val find : cdb_file -> string -> string
(*
* arch-tag: 55F4CBF0-2B50-11D8-BEDC-000393CFE6B8
*)