Contents specifies how user-defined contents need to be serializable and mergeable.
The user needs to provide:
- a type
tto be used as store contents.
- a value type for
t(built using the Irmin.Type combinators).
- a 3-way
mergefunction, to handle conflicts between multiple versions of the same contents.
module type S = sig ... end
Contents of type
string, with the default 3-way merge strategy: assume that update operations are idempotent and conflict iff values are modified concurrently.
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 V1 : sig ... end
module type STORE = sig ... end