Module Value.Tree

type perm = [
| `Normal

A Blob.t.

| `Everybody
| `Exec

An executable.

| `Dir

A sub-Tree.t.

| `Commit

A sub-module (Commit.t).

]
type entry = private {
perm : perm;
name : string;
node : H.t;
}
val pp_entry : entry Fmt.t

Pretty-printer of entry.

val entry : string -> perm -> H.t -> entry

entry name perm node is a new entry. Raise Invalid_argument if name contains '\000'.

type t

A Git Tree object. Git stores content in a manner similar to a UNIX filesystem, but a bit simplified. All the content is stored as tree and Blob.t objects, with trees corresponding to UNIX directory entries and blobs corresponding more or less to inodes or file contents. A single tree object contains one or more tree entries, each of which contains a hash pointer to a Blob.t or sub-tree with its associated mode, type, and filename.

val remove : name:string -> t -> t

remove ~name t is t without the entry name.

val add : t -> entry -> t

add t e is t with the addition of the enty e.

val is_empty : t -> bool
val perm_of_string : string -> perm
val string_of_perm : perm -> string
module MakeMeta : functor (Meta : Encore.Meta.S) -> sig ... end
module A : sig ... end
module M : sig ... end
module D : sig ... end
module E : sig ... end
val digest : t -> H.t
val pp : t Fmt.t
val compare : t -> t -> int
val hash : t -> int
val equal : t -> t -> bool
module Set : Stdlib.Set.S with type elt = t
module Map : Stdlib.Map.S with type key = t
val length : t -> int64

length t returns the length of the tree object t.

val hashes : t -> H.t list

hashes t returns all pointer of the tree t.

val to_list : t -> entry list
val of_list : entry list -> t
val iter : (entry -> unit) -> t -> unit