package irmin-pack
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=11fc2570bdbfd48478c89113fc801084a84a9a2c12d9bf8c64e05ce64ae19bd7
sha512=2171699ca24dec5c9c908a2676b272e034c14eb17f7052a794535e52af0be40be68a689e59c0a640ee244b11703320483f4d0c261542e6242ba23a8f1272b9b0
doc/irmin-pack.unix/Irmin_pack_unix/Mapping_file/Make/index.html
Module Mapping_file.Make
Source
Parameters
Signature
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
val 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.
open_map ~root ~generation
opens a mapping file.
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
).
Similar to iter mapping f
but raises exceptions.
find_nearest_leq t off
returns the entry in t
whose offset is the nearest <=
the given off