Functor Emitter.Make_table

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
Parameters:
H : Datatype.Hashtbl
E : sig include Datatype.S_with_collections val local_clear: H.key -> 'a Hashtbl.t -> unit val usable_get: t -> Usable_emitter.t val get: t -> emitter end
D : Datatype.S
Info : sig include State_builder.Info_with_size val kinds: kind list end

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