Module Make.LRUSource

Sourcetype (!'k, !'v) node = ('k, 'v) Async_lru.Make(Impl.IO)(Evict).node = {
  1. mutable prev : ('k, 'v) node option;
  2. mutable next : ('k, 'v) node option;
  3. key : 'k;
  4. value : 'v;
}
Sourcetype (!'k, !'v) t = ('k, 'v) Async_lru.Make(Impl.IO)(Evict).t = {
  1. mutable head : ('k, 'v) node option;
  2. mutable tail : ('k, 'v) node option;
  3. hash : ('k, ('k, 'v) node) Hashtbl.t;
  4. capacity : int;
  5. mutable size : int;
}
Sourceval create : int -> ('a, 'b) t
Sourceval remove_node : ('a, 'b) t -> ('a, 'b) node -> unit
Sourceval add_to_head : ('a, 'b) t -> ('a, 'b) node -> unit
Sourceval move_to_head : ('a, 'b) t -> ('a, 'b) node -> unit
Sourceval remove_tail : ('a, 'b) t -> ('a, 'b) node option
Sourceval add : 'a -> Evict.value -> ('a, Evict.value) t -> unit Impl.IO.future
Sourceval find : 'a -> ('a, 'b) t -> 'b option
Sourceval remove : 'a -> ('a, Evict.value) t -> bool Impl.IO.future
Sourceval size : ('a, 'b) t -> int
Sourceval capacity : ('a, 'b) t -> int
Sourceval is_empty : ('a, 'b) t -> bool
Sourceval clear : ('a, Evict.value) t -> unit Impl.IO.future