package octez-internal-libs
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/octez-internal-libs.irmin/Irmin/Backend/Slice/Make/argument-2-N/index.html
Parameter Make.N
include Indexable.S
Read-only stores
Read-only stores are store where it is only possible to read existing values.
val mem : [> Perms.read ] t -> key -> bool Lwt.tmem t k is true iff k is present in t.
val find : [> Perms.read ] t -> key -> value option Lwt.tfind 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.
val add : [> Perms.write ] t -> value -> key Lwt.tWrite the contents of a value to the store, and obtain its key.
Same as add but allows specifying the value's hash directly. The backend might choose to discard that hash and/or can be corrupt if the hash is not consistent.
val index : [> Perms.read ] t -> hash -> key option Lwt.tIndexing 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 keydoesn't guaranteemem t key: the value with hashhashmay still be absent from the store;
index t hash = Nonedoesn't guarantee that there is nokeysuch thatmem t keyandKey.to_hash key = hash: the value may still be present in the store under a key that is not indexed.
val batch :
Perms.read t ->
([ Perms.read | Perms.write ] t -> 'a Lwt.t) ->
'a Lwt.tbatch t f applies the writes in f in a separate batch. The exact guarantees depend on the implementation.
val merge : [> Perms.read_write ] t -> key option Merge.tmerge is the 3-way merge function for nodes keys.
module Metadata : Metadata.SMetadata provides base functions for node metadata.
module Val : sig ... endVal provides base functions for node values.
module Contents : Contents.Store with type key = Val.contents_keyContents is the underlying contents store.