package octez-internal-libs
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=ddfb5076eeb0b32ac21c1eed44e8fc86a6743ef18ab23fff02d36e365bb73d61
sha512=d22a827df5146e0aa274df48bc2150b098177ff7e5eab52c6109e867eb0a1f0ec63e6bfbb0e3645a6c2112de3877c91a17df32ccbff301891ce4ba630c997a65
doc/octez-internal-libs.irmin/Irmin/Contents/index.html
Module Irmin.Contents
Source
Contents
specifies how user-defined contents need to be serializable and mergeable.
The user needs to provide:
- a type
t
to be used as store contents. - a value type for
t
(built using the Irmin.Type combinators). - a 3-way
merge
function, to handle conflicts between multiple versions of the same contents.
Default implementations for idempotent string and JSON contents are provided.
Values.
Contents of type string
, with the default 3-way merge strategy: assume that update operations are idempotent and conflict iff values are modified concurrently.
Similar to String
above, but the hash computation is compatible with versions older than irmin.3.0
Json
contents are associations from strings to json
values stored as JSON encoded strings. If the same JSON key has been modified concurrently with different values then the merge
function conflicts.
Json_value
allows any kind of json value to be stored, not only objects.
module Store
(S : Content_addressable.S)
(H : Hash.S with type t = S.key)
(C : S with type t = S.value) :
Store
with type 'a t = 'a S.t
and type key = H.t
and type hash = H.t
and type value = C.t
Store
creates a contents store.
module Store_indexable
(S : Indexable.S)
(H : Hash.S with type t = S.hash)
(C : S with type t = S.value) :
Store
with type 'a t = 'a S.t
and type key = S.key
and type value = S.value
and type hash = S.hash
Store_indexable
is like Store
but uses an indexable store as a backend (rather than a content-addressable one).