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.
Since Oxygen-20120901
type
internal_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.
Since Fluorine-20130401
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
.
Since Fluorine-20130401