Value.Tree
type hash = hash
type nonrec entry = hash Git.Tree.entry
type nonrec t = hash Git.Tree.t
val entry : name:string -> Git.Tree.perm -> hash -> entry
entry ~name perm node
is the entry to node
with the name name
and the mode perm
.
v entries
ties all entries
into one tree object. It does not remove duplicate but re-order the given list such as:
Tree.digest (Tree.v [ { name= a; _ }; { name= b; _ }] ) ;;
- : hash = 8d14531846b95bfa3564b58ccfb7913a034323b8
Tree.digest (Tree.v [ { name= b; _ }; { name= a; _ }] ) ;;
- : hash = 8d14531846b95bfa3564b58ccfb7913a034323b8
add entry tree
returns a tree containing all elements of tree
, plus entry
. If entry
was already in tree
, tree
is unchanged.
remove ~name tree
returns a tree
containing all elements of tree
, except one with the name name
. If any entries of the given tree
don't have the name name
, tree
is returned unchanged.
val is_empty : t -> bool
is_empty tree
tests whether the given tree
is empty or not.
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 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
.
module Set : Stdlib.Set.S with type elt = t
module Map : Stdlib.Map.S with type key = t
val length : t -> int64
length tree
is the length of the given tree object.