Module Chat_response.Agent_LRU

type 'a entry = 'a Ttl_lru_cache.Make(Agent_key).entry
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 compare_entry : ('a -> 'a -> int) -> 'a entry -> 'a entry -> int
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:Agent_key.t -> data:'a -> ttl:Core.Time_ns.Span.t -> unit
val set : 'a t -> key:Agent_key.t -> data:'a entry -> unit
val find : 'a t -> Agent_key.t -> 'a option
val mem : 'a t -> Agent_key.t -> bool
val remove : 'a t -> Agent_key.t -> [ `No_such_key | `Ok ]
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:(Agent_key.t -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
val is_empty : 'a t -> bool
val to_alist : 'a t -> (Agent_key.t * 'a entry) list
val set_max_size : 'a t -> max_size:int -> [ `Dropped of int ]
val find_or_add : 'a t -> Agent_key.t -> default:(unit -> 'a) -> ttl:Core.Time_ns.Span.t -> 'a
val find_and_remove : 'a t -> Agent_key.t -> 'a option