Value.MakeThe functor to make the OCaml representation of the Git object by a specific hash implementation, an S.INFLATE implementation for the decompression and a S.DEFLATE implementation for the compression.
The constraints on git objects can cut the path to let the user to make the value module and keep the structural equality. If the Hash module is the same. That means:
```ocaml module V1 = Value.Make(SHA1)(C_inflate)(C_deflate) module V2 = Value.Make(SHA1)(OCaml_inflate)(OCaml_deflate) ```
Types V1.t and V2.t are equal.
module Hash : sig ... endtype hash = Hash.tval kind : t -> [ `Commit | `Blob | `Tree | `Tag ]kind o returns the kind of the Git object.
val format : t Encore.tdigest 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 hash : t -> inthash 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.
module Set : Stdlib.Set.S with type elt = tmodule Map : Stdlib.Map.S with type key = tval length : t -> int64val length_with_header : t -> int64length_with_header t is length t plus the length of the header.
val to_raw : t -> stringval to_raw_without_header : t -> stringval of_raw_with_header :
?off:int ->
?len:int ->
string ->
(t, [> `Msg of string ]) Stdlib.resultval of_raw :
kind:[ `Commit | `Blob | `Tree | `Tag ] ->
Cstruct.t ->
(t, [> `Msg of string ]) Stdlib.resultval stream : t -> unit -> string option Lwt.t