Module Cache.T

module Key : sig ... end
type 'a t = 'a Hash_heap.Make(Transaction_snark.Statement).t
val create : ?min_size:int -> ( 'a -> 'a -> int ) -> 'a t
val copy : 'a t -> 'a t
val push : 'a t -> key:Key.t -> data:'a -> [ `Key_already_present | `Ok ]
val push_exn : 'a t -> key:Key.t -> data:'a -> unit
val replace : 'a t -> key:Key.t -> data:'a -> unit
val remove : 'a t -> Key.t -> unit
val mem : 'a t -> Key.t -> bool
val top : 'a t -> 'a option
val top_exn : 'a t -> 'a
val top_with_key : 'a t -> (Key.t * 'a) option
val top_with_key_exn : 'a t -> Key.t * 'a
val pop_with_key : 'a t -> (Key.t * 'a) option
val pop_with_key_exn : 'a t -> Key.t * 'a
val pop : 'a t -> 'a option
val pop_exn : 'a t -> 'a
val pop_if_with_key : 'a t -> ( key:Key.t -> data:'a -> bool ) -> (Key.t * 'a) option
val pop_if : 'a t -> ( 'a -> bool ) -> 'a option
val find : 'a t -> Key.t -> 'a option
val find_pop : 'a t -> Key.t -> 'a option
val find_exn : 'a t -> Key.t -> 'a
val find_pop_exn : 'a t -> Key.t -> 'a
val iter_keys : 'a t -> f:( Key.t -> unit ) -> unit
val iter : 'a t -> f:( 'a -> unit ) -> unit
val iteri : 'a t -> f:( key:Key.t -> data:'a -> unit ) -> unit
val to_alist : 'a t -> (Key.t * 'a) list
val length : 'a t -> int