package irmin-pack
Irmin backend which stores values in a pack file
Install
Dune Dependency
Authors
Maintainers
Sources
irmin-3.5.1.tbz
sha256=cd788a8d3f4a3dd18dc160a153d4aec91eaf6b0fb41ad41464d26c79c304a98e
sha512=4f97862678d35e0b4aa814a1df51d6f8c59bcf5b611c73f0a475f9b5386ca42a4a18e65ce80fc425ddad93fcdacfcb563c52f6423777610a0bc567902f4db088
doc/src/irmin-pack.unix/mapping_file_intf.ml.html
Source file mapping_file_intf.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
(* * Copyright (c) 2022 Tarides <contact@tarides.com> * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. *) open! Import module type S = sig type 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.S module Errs : Io_errors.S with module Io = Io type open_error := [ `Corrupted_mapping_file of string | `No_such_file_or_directory ] type file_sizes := int63 * int63 * int63 val create : ?report_file_sizes:(file_sizes -> unit) -> root:string -> generation:int -> register_entries:(register_entry:(off:int63 -> len:int -> unit) -> unit) -> unit -> (t, Errs.t) result (** [create] creates inside the directory [root] a mapping file. It never raises exceptions. [register_entries] is a user callback that is responsible for calling [register_entry] for each live entry. Duplicates allowed, no specfic order expected. Returns an error if the platform is not 64bits. Creates temporary files in [root] that are unlinked before the function returns. *) val open_map : root:string -> generation:int -> (t, [> open_error ]) result (** [open_map ~root ~generation] opens a mapping file. *) val iter : t -> (off:int63 -> 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]). *) val iter_exn : t -> (off:int63 -> len:int -> unit) -> unit (** Similar to [iter mapping f] but raises exceptions. *) type entry = { off : int63; poff : int63; len : int } val find_nearest_leq : t -> int63 -> entry option (** [find_nearest_leq t off] returns the entry in [t] whose offset is the nearest [<=] the given [off] *) end module type Sigs = sig module type S = S module Make (Io : module type of Io.Unix) : S with module Io = Io end
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>