package irmin-pack
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=11fc2570bdbfd48478c89113fc801084a84a9a2c12d9bf8c64e05ce64ae19bd7
sha512=2171699ca24dec5c9c908a2676b272e034c14eb17f7052a794535e52af0be40be68a689e59c0a640ee244b11703320483f4d0c261542e6242ba23a8f1272b9b0
doc/irmin-pack.unix/Irmin_pack_unix/Pack_store/Make/index.html
Module Pack_store.Make
Source
Parameters
module Fm : File_manager.S
module Dispatcher : Dispatcher.S with module Fm = Fm
module Hash : Irmin.Hash.S with type t = Fm.Index.key
module Val :
Pack_value.Persistent
with type hash := Hash.t
and type key := Hash.t Pack_key.t
module Errs : Io_errors.S with module Io = Fm.Io
Signature
include Irmin_pack.Indexable.S
with type key = Hash.t Pack_key.t
with type hash = Hash.t
with type value = Val.t
include Irmin.Indexable.S
with type key = Hash.t Pack_key.t
with type hash = Hash.t
with type value = Val.t
Read-only stores
Read-only stores are store where it is only possible to read existing values.
The type for stores. The 'a
phantom type carries information about the store mutability.
The type for keys.
mem t k
is true iff k
is present in t
.
find t k
is Some v
if k
is associated to v
in t
and None
is k
is not present in t
.
close t
frees up all the resources associated with t
. Any operations run on a closed handle will raise Closed
.
Indexing maps the hash of a value to a corresponding key of that value in the store. For stores that are addressed by hashes directly, this is typically fun _t h -> Lwt.return (Key.of_hash h)
; for stores with more complex addressing schemes, index
may attempt a lookup operation in the store.
In general, indexing is best-effort and reveals no information about the membership of the value in the store. In particular:
index t hash = Some key
doesn't guaranteemem t key
: the value with hashhash
may still be absent from the store;
index t hash = None
doesn't guarantee that there is nokey
such thatmem t key
andKey.to_hash key = hash
: the value may still be present in the store under a key that is not indexed.
val batch :
Irmin.Perms.read t ->
([ Irmin.Perms.read | Irmin.Perms.write ] t -> 'a Lwt.t) ->
'a Lwt.t
batch t f
applies the writes in f
in a separate batch. The exact guarantees depend on the implementation.
Overwrite unsafe_add
to work with a read-only database handler.
val v :
config:Irmin.Backend.Conf.t ->
fm:file_manager ->
dict:dict ->
dispatcher:dispatcher ->
Irmin.Perms.read t
val integrity_check :
offset:Optint.Int63.t ->
length:int ->
hash ->
_ t ->
(unit, [ `Wrong_hash | `Absent_value ]) result
Read the entry prefix at offset off
.
Returns the key and the kind of an object indexed by hash.
Returns the key associated with the offset.
Similar to unsafe_find
, returns the value associated with the key
in the store but without prefetching the hash
and length
of the children (or doing any integrity check). As a result, the produced children keys only contain their offset
and are not usable without calling key_of_offset
first. This function only exists to optimize the GC reachability traversal.