Module K1.MakeSource

Functor building an implementation of a weak hash table

Propose the same interface as usual hash table. However since the bindings are weak, even if mem h k is true, a subsequent find h k may raise Not_found because the garbage collector can run between the two.

Parameters

Signature

Sourcetype key = H.t
Sourcetype !'a t
Sourceval create : int -> 'a t
Sourceval clear : 'a t -> unit
Sourceval reset : 'a t -> unit
Sourceval copy : 'a t -> 'a t
Sourceval add : 'a t -> key -> 'a -> unit
Sourceval remove : 'a t -> key -> unit
Sourceval find : 'a t -> key -> 'a
Sourceval find_opt : 'a t -> key -> 'a option
Sourceval find_all : 'a t -> key -> 'a list
Sourceval replace : 'a t -> key -> 'a -> unit
Sourceval mem : 'a t -> key -> bool
Sourceval length : 'a t -> int
Sourceval stats : 'a t -> Hashtbl.statistics
Sourceval add_seq : 'a t -> (key * 'a) Seq.t -> unit
Sourceval replace_seq : 'a t -> (key * 'a) Seq.t -> unit
Sourceval of_seq : (key * 'a) Seq.t -> 'a t
Sourceval clean : 'a t -> unit

remove all dead bindings. Done automatically during automatic resizing.

Sourceval stats_alive : 'a t -> Hashtbl.statistics

same as Hashtbl.SeededS.stats but only count the alive bindings