package aches
Install
Dune Dependency
Authors
Maintainers
Sources
md5=c9c5400e7ae19100b945279835ff3e5c
sha512=7f37b721e2ca32e5e96fbf8df1bbd72c9060b6826bd95a21ea81af5fdd0c1961d3d7fb41210966aac7c277ec7f91fd32e3e284b583cb02121dc589646642f5c0
doc/aches.vache/Vache/EmptyMap/index.html
Module Vache.EmptyMap
Source
EmptyMap(H)
is a map module but it only supports the empty map: a map with zero elements.
The create
function ignores its size-limit parameter: the size limit is hardcoded.
Note that all policies are equivalent in the case of an empty map. This is why the empty map does not require the user to specify any policy.
A Mutable structure akin to a hash-table, but with a size bound. Note that, different caches have different policies towards the size bounds: some uphold the bound strictly, some treat the bound as a suggestion. In addition, some caches count their elements somewhat sloppily.
In general, the caches of Aches are intended to be used in settings that do not require strict, by-the-number, extremely-predictable behaviors.
See Vache
(or Functors
) for more information.
Parameters
module H : Hashtbl.HashedType
Signature
The type of caches holding bindings from key
to 'a
create n
creates a cache with a size-bound of n
. Remember that the size-bound is not upheld strictly by all caches. Moreover, caches instantiated with a specialised size (i.e., empty and singleton caches) ignore the size parameter entirely.
replace c k v
binds the key k
to the value v
in the cache c
. This may or may not cause another binding to be removed from the cache, depending on the number of bindings already present in the cache c
, the size-bound of the cache c
, and the policy of the cache c
towards its size-bound.
If k
is already bound to a value in c
, the previous binding disappears and is replaced by the new binding to v
.
Note that in caches with a Sloppy
accounting policy, the old (removed) binding may still count towards the size bound for some time.
fold f c init
folds the function f
and value init
over the bindings of c
from newest to oldest.
Note that for caches with a Weak
overflow policy, this function may fold over a subset of the bindings of c
. See Vache
(or Functors
) for more details.
fold_oldest_first
is like fold
but in reversed order: oldest elements of c
first. This function has the same limitation as fold
.
find_opt c k
is Some v
if k
is bound to v
in c
. It is None
otherwise.
Note that the in caches with a non-FIFO
replacement policy, this may have a side effect on the k
-to-v
binding. Specifically, in those caches, it might make it less likely to be removed when supernumerary bindings are inserted.
remove c k
removes the binding from k
in c
. If k
is not bound in c
, it does nothing.
Note that in caches with a Sloppy
accounting policy, removed bindings can still count towards the size bound for some time.
capacity c
is the number of bindings c
can hold: capacity (create n) = n