Module type CCPersistentHashtbl.S
val empty : unit -> 'a tEmpty table. The table will be allocated at the first binding.
val create : int -> 'a tCreate a new hashtable, with the given initial capacity.
val is_empty : 'a t -> boolIs the table empty?
val find : 'a t -> key -> 'aFind the value for this key, or fails.
- raises Not_found
if the key is not present in the table.
val length : _ t -> intNumber of bindings.
val add : 'a t -> key -> 'a -> 'a tAdd the binding to the table, returning a new table. The old binding for this key, if it exists, is shadowed and will be restored upon
remove tbl k.- since
- 0.14
val replace : 'a t -> key -> 'a -> 'a tAdd the binding to the table, returning a new table. This erases the current binding for
key, if any.
val update : 'a t -> key -> ('a option -> 'a option) -> 'a tupdate tbl key fcallsf Noneifkeydoesn't belong intbl,f (Some v)ifkey -> votherwise; IffreturnsNonethenkeyis removed, else it returnsSome v'andkey -> v'is added.
val copy : 'a t -> 'a tFresh copy of the table; the underlying structure is not shared anymore, so using both tables alternatively will be efficient.
val merge : f:(key -> [ `Left of 'a | `Right of 'b | `Both of 'a * 'b ] -> 'c option) -> 'a t -> 'b t -> 'c tMerge two tables together into a new table. The function's argument correspond to values associated with the key (if present); if the function returns
Nonethe key will not appear in the result.
val filter : (key -> 'a -> bool) -> 'a t -> 'a tval filter_map : (key -> 'a -> 'b option) -> 'a t -> 'b tval for_all : (key -> 'a -> bool) -> 'a t -> boolval exists : (key -> 'a -> bool) -> 'a t -> bool