Module Store.Value

type hash = hash
type nonrec t = hash Value.t

OCaml value which represents a Git object.

module Blob : Blob.S with type hash = hash
module Commit : Commit.S with type hash = hash
module Tree : Tree.S with type hash = hash
module Tag : Tag.S with type hash = hash
val blob : Blob.t -> t
val commit : Commit.t -> t
val tree : Tree.t -> t
val tag : Tag.t -> t
val kind : t -> [ `Commit | `Blob | `Tree | `Tag ]

kind o returns the kind of the Git object.

val format : t Encore.t
val digest : t -> hash

digest t associates a hash to any value of t. It is guaranteed that if x = y or compare x y = 0, then digest x = digest y.

val pp : t Fmt.t

Pretty-printer of t.

val compare : t -> t -> int

The comparison function for t.

val hash : t -> int

hash blob associates a non-negative integer to any value of t. It is guaranteed that if x = y or compare x y = 0, then hash x = hash y.

val equal : t -> t -> bool

The equal function for t.

Sets and Maps.

module Set : Stdlib.Set.S with type elt = t
module Map : Stdlib.Map.S with type key = t
val length : t -> int64
val length_with_header : t -> int64

length_with_header t is length t plus the length of the header.

val to_raw : t -> string
val to_raw_without_header : t -> string
val of_raw_with_header : ?off:int -> ?len:int -> string -> (t, [> `Msg of string ]) Stdlib.result
val of_raw : kind:[ `Commit | `Blob | `Tree | `Tag ] -> Cstruct.t -> (t, [> `Msg of string ]) Stdlib.result
val stream : t -> unit -> string option Lwt.t