Ttl_lru_cache.Make
module H : Lru_cache.H
val sexp_of_entry : ('a -> Sexplib0.Sexp.t) -> 'a entry -> Sexplib0.Sexp.t
val entry_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a entry
val bin_shape_entry : Bin_prot.Shape.t -> Bin_prot.Shape.t
val bin_size_entry : 'a Bin_prot.Size.sizer -> 'a entry Bin_prot.Size.sizer
val bin_write_entry :
'a Bin_prot.Write.writer ->
'a entry Bin_prot.Write.writer
val bin_writer_entry :
'a Bin_prot.Type_class.writer ->
'a entry Bin_prot.Type_class.writer
val bin_read_entry : 'a Bin_prot.Read.reader -> 'a entry Bin_prot.Read.reader
val __bin_read_entry__ :
'a Bin_prot.Read.reader ->
(int -> 'a entry) Bin_prot.Read.reader
val bin_reader_entry :
'a Bin_prot.Type_class.reader ->
'a entry Bin_prot.Type_class.reader
val bin_entry : 'a Bin_prot.Type_class.t -> 'a entry Bin_prot.Type_class.t
val hash_fold_entry :
(Ppx_hash_lib.Std.Hash.state -> 'a -> Ppx_hash_lib.Std.Hash.state) ->
Ppx_hash_lib.Std.Hash.state ->
'a entry ->
Ppx_hash_lib.Std.Hash.state
val create : max_size:int -> unit -> 'a t
val is_expired : 'a entry -> now:Core.Time_ns.Span.t -> bool
val remove_expired : 'a t -> unit
val set_with_ttl :
'a t ->
key:H.t ->
data:'a ->
ttl:Core.Time_ns.Span.t ->
unit
val clear : 'a t -> [ `Dropped of int ]
val length : 'a t -> int
val max_size : 'a t -> int
val hit_rate : 'a t -> float
val stats : ?sexp_of_key:(H.t -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
val is_empty : 'a t -> bool
val set_max_size : 'a t -> max_size:int -> [ `Dropped of int ]
val find_or_add :
'a t ->
H.t ->
default:(unit -> 'a) ->
ttl:Core.Time_ns.Span.t ->
'a