Mapping_file.MakeSourceA 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 = Ioval 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) resultcreate 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