Page
Library
Module
Module type
Parameter
Class
Class type
Source
M.MakeMake(K)(V) is the LRU map with bindings K.t -> V.t. The weight of an individual binding is the Weighted.weight of V.t.
module K : Hashtbl.HashedTypeval create : ?random:bool -> int -> tcreate ?random cap is a new map with capacity cap.
~random randomizes the underlying hash table, and defaults to false. See Hashtbl.create.
val is_empty : t -> boolis_empty t is true iff t is empty.
val items : t -> intitems t is the number of bindings in t.
val size : t -> intsize t is the combined size of bindings in t.
val capacity : t -> intcapacity t is the maximum combined weight of bindings this map will hold before they start being discarded in least-recently-used order.
val resize : int -> t -> unitresize cap t will change the capacity of t to cap. If the current size is greater than cap, least-recently-used elements are discarded to fit cap.
kfind k t is the v bound to k. The binding k -> v is promoted to most-recently-used. When k is not bound in t, the result is None.
add k v t adds the binding k -> v. If k is alread bound, the old binding is replaced. In either case, the binding k -> v becomes the most-recently used.
lru t is the least-recently-used binding in t, or None, when t is empty.
val drop_lru : t -> unitdrop_lru t removes the binding lru t.
Traversal direction for operations that visit all bindings.
`Up means least-to-most recently used, or increasing relevance.`Down means most-to-least recently used, or decreasing relevance.fold f z t is f k0 v0 (... (f kn vn z)). ~dir controls the order of folding, defaults to `Up.
iter f t applies f to all the bindings in t. ~dir controls the order of application, defaults to `Up.
to_list t are the bindings in t. ~dir controls the order, defaults to `Up.
of_list kvs is a new map with the bindings from kvs. If there are multiple bindings for k, the right-most is chosen.
~cap is the capacity of the new map. It defaults to the total weight of bindings in kvs. If given, and smaller than total weight of vs, bindings are discarded from the left of the list.
val pp :
?pp_size:(Format.formatter -> (int * int) -> unit) ->
?sep:(Format.formatter -> unit -> unit) ->
(Format.formatter -> (k * v) -> unit) ->
Format.formatter ->
t ->
unit