package colibri2

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Functor building an implementation of the hashtable structure. The functor Hashtbl.Make returns a structure containing a type key of keys and a type 'a t of hash tables associating data of type 'a to keys of type key. The operations perform similarly to those of the generic interface, but use the hashing and equality functions specified in the functor argument H instead of generic equality and hashing. Since the hash function is not seeded, the create operation of the result structure always returns non-randomized hash tables.

Parameters

module H : HashedType

Signature

type key = H.t
type 'a t
val create : int -> 'a t
val clear : 'a t -> unit
val reset : 'a t -> unit
val copy : 'a t -> 'a t
val add : 'a t -> key -> 'a -> unit
val remove : 'a t -> key -> unit
val find : 'a t -> key -> 'a
val find_all : 'a t -> key -> 'a list
val replace : 'a t -> key -> 'a -> unit
val mem : 'a t -> key -> bool
val iter : (key -> 'a -> unit) -> 'a t -> unit
val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b
val length : 'a t -> int
val stats : 'a t -> statistics
val find_def : 'a t -> 'a -> key -> 'a

return the first binding or the given value if none found

val find_opt : 'a t -> key -> 'a option

return the first binding or None if none found

val find_exn : 'a t -> exn -> key -> 'a

return the first binding or raise the given exception if none found

val choose : 'a t -> (key * 'a) option
val mapi : (key -> 'a -> 'a) -> 'a t -> unit

change the value of all the key. The table should not be modified externally during this run

val filter_mapi : (key -> 'a -> 'a option) -> 'a t -> unit

change the value of all the key. The table should not be modified externally during this run

val memo : (key -> 'a) -> 'a t -> key -> 'a

convenience function, memoize a function

val is_empty : 'a t -> bool

test if the hashtbl is empty

val remove_all : 'a t -> key -> unit

remove_all binding

val change : ('a option -> 'a option) -> 'a t -> key -> unit
val add_new : exn -> 'a t -> key -> 'a -> unit
OCaml

Innovation. Community. Security.