package index

  1. Overview
  2. Docs
A platform-agnostic multi-level index for OCaml

Install

Dune Dependency

Authors

Maintainers

Sources

index-1.2.0.tbz
sha256=c639104eacbf50254c2edc053a46e38107c79148ec14f8c1bbbbdf2a5ad08434
sha512=630fca9e2262c6fdb849e3f5b5dd8e17f3d972c80be10ee97c70f3926433a2cda697b2bb87da9aee731689e3ad25a7089b8e1f37bb0602223f0b2ecf50657262

doc/index.unix/Index_unix/Make/index.html

Module Index_unix.Make

Parameters

module K : Index.Key
module V : Index.Value

Signature

type t

The type for indexes.

type key = K.t

The type for keys.

type value = V.t

The type for values.

val v : ?fresh:bool -> ?readonly:bool -> log_size:int -> string -> t

The constructor for indexes.

  • parameter fresh

    whether an existing index should be overwritten.

  • parameter read_only

    whether read-only mode is enabled for this index.

  • parameter log_size

    the maximum number of bindings in the `log` IO.

val clear : t -> unit

clear t clears t so that there are no more bindings in it.

val find : t -> key -> value

find t k is the binding of k in t.

val mem : t -> key -> bool

mem t k is true iff k is bound in t.

exception Invalid_key_size of key
exception Invalid_value_size of value

The exceptions raised when trying to add a key or a value of different size than encoded_size

val replace : t -> key -> value -> unit

replace t k v binds k to v in t, replacing any existing binding of k.

val filter : t -> ((key * value) -> bool) -> unit

filter t p removes all the bindings (k, v) that do not satisfy p. This operation is costly and blocking.

val iter : (key -> value -> unit) -> t -> unit

Iterates over the index bindings. Limitations:

  • Order is not specified.
  • In case of recent replacements of existing values (since the last merge), this will hit both the new and old bindings.
  • May not observe recent concurrent updates to the index by other processes.
val flush : ?with_fsync:bool -> t -> unit

Flushes all internal buffers of the IO instances. If with_fsync is true, this also flushes the OS caches for each IO instance.

val close : t -> unit

Closes all resources used by t.

OCaml

Innovation. Community. Security.