package irmin-pack

  1. Overview
  2. Docs
Irmin backend which stores values in a pack file

Install

Dune Dependency

Authors

Maintainers

Sources

irmin-3.6.1.tbz
sha256=11fc2570bdbfd48478c89113fc801084a84a9a2c12d9bf8c64e05ce64ae19bd7
sha512=2171699ca24dec5c9c908a2676b272e034c14eb17f7052a794535e52af0be40be68a689e59c0a640ee244b11703320483f4d0c261542e6242ba23a8f1272b9b0

doc/irmin-pack.unix/Irmin_pack_unix/Mapping_file/Make/index.html

Module Mapping_file.MakeSource

Parameters

module Io : module type of Io.Unix

Signature

Sourcetype t

A mapping file is a collection of chunks which contain 3 integers. A length, the global offset (off) of the chunk and the offset of the chunk in the prefix file (poff).

The chunks have consecutive poff with respect to their lengths.

There is no need to close a t because its underlying file-descriptor is always closed.

module Io = Io
Sourcemodule Errs : Io_errors.S with module Io = Io
type open_error := [
  1. | `Corrupted_mapping_file of string
  2. | `No_such_file_or_directory
]
Sourceval create : ?report_mapping_size:(Optint.Int63.t -> unit) -> root:string -> generation:int -> register_entries: (register_entry:(off:Optint.Int63.t -> len:int -> unit) -> unit) -> unit -> (t, Errs.t) result

create creates a mapping file inside the directory root.

register_entries is a user callback that is responsible for calling register_entry for each live entry. It must be called with strictly decreasing offsets (or fails otherwise).

Returns an error if the platform is not 64bits.

Sourceval open_map : root:string -> generation:int -> (t, [> open_error ]) result

open_map ~root ~generation opens a mapping file.

Sourceval iter : t -> (off:Optint.Int63.t -> len:int -> unit) -> (unit, Errs.t) result

iter mapping f calls f on each (off,len) pair in mapping.

It is guaranteed for the offsets to be iterated in monotonic order.

It is guaranteed that entries don't overlap.

The exceptions raised by f are caught and returned (as long as they are known by Errs).

Sourceval iter_exn : t -> (off:Optint.Int63.t -> len:int -> unit) -> unit

Similar to iter mapping f but raises exceptions.

Sourcetype entry = {
  1. off : Optint.Int63.t;
  2. poff : Optint.Int63.t;
  3. len : int;
}
Sourceval find_nearest_leq : t -> Optint.Int63.t -> entry option

find_nearest_leq t off returns the entry in t whose offset is the nearest <= the given off

OCaml

Innovation. Community. Security.