package irmin
Install
    
    dune-project
 Dependency
Authors
Maintainers
Sources
sha256=09996fbcc2c43e117a9bd8e9028c635e81cccb264d5e02d425ab8b06bbacdbdb
    
    
  sha512=0391a6bf7b94a1edd50a3a8df9e58961739fa78d7d689d61f56bc87144483bad2ee539df595c33d9d52c29b3458da5dddf3a73b5eb85e49c4667c26d2cd46be1
    
    
  doc/irmin.mem/Irmin_mem/Make/Backend/Contents/index.html
Module Backend.ContentsSource
A contents store.
include Irmin.Indexable.S
  with type hash = Hash.t
  with type value = Schema.Contents.t
  with type key = contents_key
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.
The type for raw values.
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.
Write 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.
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 keydoesn't guarantee- mem t key: the value with hash- hashmay still be absent from the store;
- index t hash = Nonedoesn't guarantee that there is no- keysuch that- mem t keyand- Key.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.tbatch t f applies the writes in f in a separate batch. The exact guarantees depend on the implementation.
merge t lifts the merge functions defined on contents values to contents key. The merge function will: (i) read the values associated with the given keys, (ii) use the merge function defined on values and (iii) write the resulting values into the store to get the resulting key. See val-S.merge.
If any of these operations fail, return `Conflict.