Module Make_1.With_bucket
Parameters
S : sig ... end
Signature
val len_sorted : unit -> intval set_len_sorted : int -> unitval len_unsorted : unit -> intval set_len_unsorted : int -> unitval sorted : Kv_hash__.Util.int_bigarrayval unsorted : Kv_hash__.Util.int_bigarray
module U : sig ... endmodule S : sig ... endval find_sorted : int -> int optionval find_unsorted : int -> int optionJust scan through unsorted, newest elts first
val find : int -> int optionval unsorted_to_sorted : (Kv_hash__.Util.Map_i.key * int) list -> (Kv_hash__.Util.Map_i.key * int) arrayval merge_unsorted : unit -> unitmerge unsorted into sorted; NOTE assumes there is enough space to insert
val sorted_to_map : unit -> int Kv_hash__.Util.Map_i.tval unsorted_to_map : int Kv_hash__.Util.Map_i.t -> int Kv_hash__.Util.Map_i.tval split_with_addition : (Kv_hash__.Util.Map_i.key * int) -> (Kv_hash__.Util.Map_i.key * int) Base.List.t * Kv_hash__.Util.Map_i.key * (Kv_hash__.Util.Map_i.key * int) Base.List.tThe kv parameter is an extra key-value that we need to add to the split. Return value is a triple (kvs1,k,kvs2) where kvs1 < k <= kvs2, and |kvs1|,|kvs2| < max_sorted, and kvs1 and kvs2 are sorted i.e. safe to construct a new bucket for kvs1 and kvs2, separated by k
val add : Kv_hash__.Util.Map_i.key -> Kv_hash__.Util.Map_i.key -> [> `Ok | `Split of (Kv_hash__.Util.Map_i.key * Kv_hash__.Util.Map_i.key) Base.List.t * Kv_hash__.Util.Map_i.key * (Kv_hash__.Util.Map_i.key * Kv_hash__.Util.Map_i.key) Base.List.t ]val init_sorted : (int * int) list -> unitval export : unit -> Bucket_intf.exported_bucket