package irmin-pack

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Abstraction that governs the lifetime of the various files that are part of a pack store (except the branch store).

module Mapping_file : Mapping_file.S with module Io = Fm.Io
type t
val v : root:string -> Fm.t -> (t, [> Fm.Errs.t ]) Stdlib.result
val read_exn : t -> off:Optint.Int63.t -> len:int -> bytes -> unit

read_exn either reads in the prefix or the suffix file, depending on off. See Io.read_exn for the arguments. If it tries to read a gced object, an exception is raised.

val read_at_most_exn : t -> off:Optint.Int63.t -> len:int -> bytes -> int

read_at_most_exn is similar to read_exn but if the end of file is reached while reading len bytes, then only the available bytes are read. No `Read_out_of_bounds error is raised. The number of bytes read are returned.

val end_offset : t -> Optint.Int63.t

end_offset is the end offsets of the pack entries, counting that the prefix doesn't start at 0. It counts the entries not yet flushed from the prefix.

val read_if_not_gced : t -> off:Optint.Int63.t -> len:int -> bytes -> bool

Similar to read_exn but returns false if the object was gced, instead of raising an expection.

val offset_of_suffix_off : t -> Optint.Int63.t -> Optint.Int63.t

offset_of_suffix_off t suffix_off converts a suffix offset into a (global) offset.

val read_in_prefix_and_suffix_exn : t -> off:Optint.Int63.t -> len:int -> bytes -> unit

Simlar to read_exn but if off + len is greater than the end of the prefix, it will read the remaining in the prefix.