Private.Fan
val v : hash_size:int -> entry_size:int -> int -> [ `Write ] t
v ~hash_size ~entry_size n
creates a fan_out for an index with hash_size
and entry_size
, containing n
elements.
val nb_fans : 'a t -> int
nb_fans t
is the number of fans in t
.
val search : [ `Read ] t -> int -> Optint.Int63.t * Optint.Int63.t
search t hash
is the interval of offsets containing hash
, if present.
val update : [ `Write ] t -> int -> Optint.Int63.t -> unit
update t hash off
updates t
so that hash
is registered to be at offset off
.
Finalizes the update of the fanout. This is mandatory before any search
query.
val exported_size : 'a t -> int
exported_size t
is the size of export t
. This does not actually compute the encoding of t
.
val export : [ `Read ] t -> string
export t
is a string encoded form of t
.
val import : hash_size:int -> string -> [ `Read ] t
import ~hash_size buf
decodes buf
such that import ~hash_size (export t) = t
if t
was initially created with ~hash_size.