[@@deriving sexp_of] but not
[@@deriving sexp] because we want people to
be explicit about the hash and comparison functions used when creating hashtables.
One can use
Hashtbl.Poly.t, which does have
[@@deriving sexp], to use
polymorphic comparison and hashing.
Merge two hashtables.
The result of
merge f h1 h2 has as keys the set of all
k in the
union of the sets of keys of
h2 for which
d(k) is not
h1 is to d1, and
h2 does not map
h2 is to d2, and
h1 does not map
h1 is to
h2 is to
k is mapped to a single piece of data x, where
d(k) = Some x.
Returns the list of all data for given hashtable.
filter_inplace t ~f removes all the elements from
t that don't satisfy
map_inplace t ~f applies f to all elements in
t, transforming them in place
filter_map_inplace combines the effects of
resize t size ensures that
t can hold at least
size entries without resizing
(again), provided that
t has growth enabled. This is useful for sizing global
tables during application initialization, to avoid subsequent, expensive growth
online. See Zero.Immediate.String.resize, for example.
on_grow ~before ~after allows you to connect higher level loggers to the point where
these hashtbls grow.
before is called before the table grows, and
after after it.
This permits you to e.g. measure the time elapsed between the two.
This is only meant for debugging and profiling, e.g. note that once a callback is installed, there is no way to remove it.