include module type of Hashtbl with type Hashtbl.statistics = Hashtbl.statistics and module Hashtbl.Make = Hashtbl.Make and type ('a, 'b) Hashtbl.t = ('a, 'b) Hashtbl.t
val create : ?random:bool ‑> int ‑> ('a, 'b) t
val clear : ('a, 'b) t ‑> unit
val reset : ('a, 'b) t ‑> unit
val add : ('a, 'b) t ‑> 'a ‑> 'b ‑> unit
val find : ('a, 'b) t ‑> 'a ‑> 'b
val find_opt : ('a, 'b) t ‑> 'a ‑> 'b option
val find_all : ('a, 'b) t ‑> 'a ‑> 'b list
val mem : ('a, 'b) t ‑> 'a ‑> bool
val remove : ('a, 'b) t ‑> 'a ‑> unit
val replace : ('a, 'b) t ‑> 'a ‑> 'b ‑> unit
val iter : ('a ‑> 'b ‑> unit) ‑> ('a, 'b) t ‑> unit
val filter_map_inplace : ('a ‑> 'b ‑> 'b option) ‑> ('a, 'b) t ‑> unit
val fold : ('a ‑> 'b ‑> 'c ‑> 'c) ‑> ('a, 'b) t ‑> 'c ‑> 'c
val length : ('a, 'b) t ‑> int
val stats : ('a, 'b) t ‑> statistics
module type HashedType : sig ... end
module type S : sig ... end
module type SeededHashedType : sig ... end
module type SeededS : sig ... end
module MakeSeeded : functor (H : SeededHashedType) -> sig ... end
include CCHashtbl.Poly
val get_or : ('a, 'b) Hashtbl.t ‑> 'a ‑> default:'b ‑> 'b
get_or tbl k ~default
returns the value associated to k
if present,
and returns default
otherwise (if k
doesn't belong in tbl
).
val keys : ('a, 'b) Hashtbl.t ‑> 'a CCHashtbl.sequence
Iterate on keys (similar order as Hashtbl.iter).
val keys_list : ('a, 'b) Hashtbl.t ‑> 'a list
keys_list t
is the list of keys in t
.
If the key is in the Hashtable multiple times, all occurrences will be returned.
val map_list : ('a ‑> 'b ‑> 'c) ‑> ('a, 'b) Hashtbl.t ‑> 'c list
Map on a hashtable's items, collect into a list.
val incr : ?by:int ‑> ('a, int) Hashtbl.t ‑> 'a ‑> unit
incr ?by tbl x
increments or initializes the counter associated with x
.
If get tbl x = None
, then after update, get tbl x = Some 1
;
otherwise, if get tbl x = Some n
, now get tbl x = Some (n+1)
.
by
rather than 1.val decr : ?by:int ‑> ('a, int) Hashtbl.t ‑> 'a ‑> unit
Like incr but subtract 1 (or the value of by
).
If the value reaches 0, the key is removed from the table.
This does nothing if the key is not already present in the table.
val add_list : ('a, 'b list) Hashtbl.t ‑> 'a ‑> 'b ‑> unit
add_list tbl x y
adds y
to the list x
is bound to. If x
is
not bound, it becomes bound to y
.
val add_seq : ('a, 'b) Hashtbl.t ‑> ('a * 'b) CCHashtbl.sequence ‑> unit
Add the corresponding pairs to the table, using Hashtbl.add.
val of_seq : ('a * 'b) CCHashtbl.sequence ‑> ('a, 'b) Hashtbl.t
From the given bindings, added in order.
val add_seq_count : ('a, int) Hashtbl.t ‑> 'a CCHashtbl.sequence ‑> unit
add_seq_count tbl seq
increments the count of each element of seq
by calling incr. This is useful for counting how many times each
element of seq
occurs.
val of_seq_count : 'a CCHashtbl.sequence ‑> ('a, int) Hashtbl.t
Like add_seq_count, but allocates a new table and returns it.
val of_list : ('a * 'b) list ‑> ('a, 'b) Hashtbl.t
Build a table from the given list of bindings k_i -> v_i
,
added in order using add. If a key occurs several times,
it will be added several times, and the visible binding
will be the last one.
val update : ('a, 'b) Hashtbl.t ‑> f:('a ‑> 'b option ‑> 'b option) ‑> k:'a ‑> unit
update tbl ~f ~k
updates key k
by calling f k (Some v)
if
k
was mapped to v
, or f k None
otherwise; if the call
returns None
then k
is removed/stays removed, if the call
returns Some v'
then the binding k -> v'
is inserted
using Hashtbl.replace.
val get_or_add : ('a, 'b) Hashtbl.t ‑> f:('a ‑> 'b) ‑> k:'a ‑> 'b
get_or_add tbl ~k ~f
finds and returns the binding of k
in tbl
, if it exists. If it does not exist, then f k
is called to obtain a new binding v
; k -> v
is added
to tbl
and v
is returned.
val pp : 'a CCHashtbl.printer ‑> 'b CCHashtbl.printer ‑> ('a, 'b) Hashtbl.t CCHashtbl.printer
Printer for table.
Renamed from print
since 2.0.
module type S' = CCHashtbl.S
module Make' = CCHashtbl.Make