Module Make_json.Contents

Contents provides base functions for the store's contents.

include Irmin.Contents.S with type t = contents

Signature for store contents

type t = contents

The type for user-defined contents.

val t : t Irmin.Type.t
val merge : t option Irmin.Merge.t

Merge function. Evaluates to `Conflict msg if the values cannot be merged properly. The arguments of the merge function can take None to mean that the key does not exists for either the least-common ancestor or one of the two merging points. The merge function returns None when the key's value should be deleted.

Import/Export

val hash : contents -> hash

hash c it c's hash.

val of_key : repo -> contents_key -> contents option Lwt.t

of_key r k is the contents object in r with key k, or None if no such contents object exists.

val of_hash : repo -> hash -> contents option Lwt.t

of_hash r h is the contents object in r with hash h, or None if no such contents object is indexed in r.

Note: in stores for which contents_key = hash, this function has identical behaviour to of_key.