package irmin-pack
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=d84fa343a841f663969ed6b08e5fc1b704d3ab7974858aa29471fe291a6a2f86
sha512=ab5eb4bd08ab69b97c8b9a72181c5b59d3d515e4ba63550d8a4551ec8ea72cd2d3b302fe0812379553e52891f81a9ae5d4d668382155d9c6c6eb75844a48477e
doc/irmin-pack.unix/Irmin_pack_unix/Pack_store/Maker/Make/index.html
Module Maker.Make
Source
Parameters
module V :
Irmin_pack.Pack_value.Persistent
with type hash := hash
and type key := hash Irmin_pack.Pack_key.t
Signature
include Irmin_pack.Indexable.S
with type key = hash Irmin_pack.Pack_key.t
with type hash = hash
with type value = V.t
include Irmin.Indexable.S
with type key = hash Irmin_pack.Pack_key.t
with type hash = hash
with type value = V.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 :
?fresh:bool ->
?readonly:bool ->
?lru_size:int ->
index:Index.t ->
indexing_strategy:Irmin_pack.Pack_store.Indexing_strategy.t ->
string ->
Irmin.Perms.read t Lwt.t
Syncs a readonly instance with the files on disk. The same file instance is shared between several pack instances.
clear_cache t
clears all the in-memory caches of t
. Persistent data are not removed.
val integrity_check :
offset:Optint.Int63.t ->
length:int ->
hash ->
_ t ->
(unit, [ `Wrong_hash | `Absent_value ]) result