Tree.MakeSourceFunctor building an implementation of the tree structure. The functor returns a structure containing a type hash of digests and a type t of trees (structurally equal to t).
module Hash : sig ... endentry ~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 = 8d14531846b95bfa3564b58ccfb7913a034323b8add 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.
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.
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.
hashes tree returns the list of all node references of the given tree.