module Make_table:functor (
H
:
Datatype.Hashtbl
) ->
functor (
E
:
sig
include Datatype.S_with_collections
val local_clear :H.key -> 'a Hashtbl.t -> unit
val usable_get :t -> Emitter.Usable_emitter.t
val get :t -> Emitter.emitter
end
) ->
functor (
D
:
Datatype.S
) ->
functor (
Info
:
sig
include State_builder.Info_with_size
val kinds :Emitter.kind list
end
) ->
sig
..end
Table indexing: key -> emitter (or equivalent data) -> value. Quick access + handle cleaning in the right way (only remove relevant bindings when required.
Parameters: |
|
typeinternal_tbl =
D.t E.Hashtbl.t
val self : State.t
val add : H.key -> internal_tbl -> unit
val find : H.key -> internal_tbl
val mem : H.key -> bool
val iter : (H.key -> internal_tbl -> unit) -> unit
val fold : (H.key -> internal_tbl -> 'a -> 'a) -> 'a -> 'a
val iter_sorted : cmp:(H.key -> H.key -> int) ->
(H.key -> internal_tbl -> unit) -> unit
val fold_sorted : cmp:(H.key -> H.key -> int) ->
(H.key -> internal_tbl -> 'a -> 'a) -> 'a -> 'a
val remove : H.key -> unit
val add_hook_on_remove : (E.t -> H.key -> D.t -> unit) -> unit
Register a hook to be applied whenever a binding is removed from the table.
val apply_hooks_on_remove : E.t -> H.key -> D.t -> unit
This function must be called on each binding which is removed from the
table without directly calling the function remove
.