Module Checks.Integrity_checks

Parameters

module XKey : Pack_key.S
module X : Irmin.Backend.S with type Commit.key = XKey.t and type Node.key = XKey.t and type Schema.Hash.t = XKey.hash
module Index : sig ... end

Signature

val check_always : ?ppf:Stdlib.Format.formatter -> auto_repair:bool -> check: (kind:[> `Commit | `Contents | `Node ] -> offset:Optint.Int63.t -> length:int -> Index.key -> (unit, [< `Absent_value | `Wrong_hash ]) Stdlib.result) -> Index.t -> ([> `Fixed of int | `No_error ], [> `Cannot_fix of string | `Corrupted of int ]) Stdlib.result
val check_minimal : ?ppf:Stdlib.Format.formatter -> pred: (X.Node.value -> (X.Node.Path.step option * [< `Contents of XKey.t | `Inode of XKey.t | `Node of XKey.t ]) list) -> iter: (contents:(XKey.hash Pack_key.t -> unit Lwt.t) -> node:(XKey.t -> unit Lwt.t) -> pred_node: (X.Repo.t -> XKey.t -> [> `Contents of XKey.t | `Node of XKey.t ] list Lwt.t) -> pred_commit:(X.Repo.t -> XKey.t -> [> `Node of XKey.t ] list Lwt.t) -> X.Repo.t -> unit Lwt.t) -> check: (offset:Optint.Int63.t -> length:int -> XKey.hash -> (unit, [< `Absent_value | `Wrong_hash ]) Stdlib.result) -> recompute_hash:(X.Node.value -> XKey.hash) -> X.Repo.t -> ([> `No_error ], [> `Cannot_fix of string ]) Stdlib.result Lwt.t
val check_inodes : ?ppf:Stdlib.Format.formatter -> iter: (pred_node: (X.Repo.t -> XKey.t -> [> `Contents of XKey.t | `Node of XKey.t ] as 'a list Lwt.t) -> node:(XKey.t -> unit Lwt.t) -> commit:(XKey.t -> unit Lwt.t) -> X.Repo.t -> unit Lwt.t) -> pred:(X.Repo.t -> XKey.t -> 'a list Lwt.t) -> check:(XKey.t -> (unit, string) Stdlib.result Lwt.t) -> X.Repo.t -> ([> `No_error ], [> `Cannot_fix of string ]) Stdlib.result Lwt.t