# README
This is a small library for working with modified Merkle Trees. We store one of these data structures in block storage (e.g. S3) for each PFS commit, so that we know, with each subsequent commit, what files changed and need to be reprocessed by any pipelines.
# Functions
Code returns the "error code" of 'err' if it was returned by one of the HashTree methods, or "Unknown" if 'err' was emitted by some other function (error codes are defined in interface.go).
Deserialize deserializes a hash tree so that it can be read or modified.
NewHashTree creates a new hash tree implementing Interface.
Serialize serializes a HashTree so that it can be persisted.
# Constants
CannotDeserialize is returned when Deserialize(bytes) fails, perhaps due to 'bytes' being corrupted.
Internal is returned when a HashTree encounters a bug (usually due to the violation of an internal invariant).
MalformedGlob is returned when Glob() is called with an invalid glob pattern.
OK is returned on success.
PathConflict is returned when a path that is expected to point to a directory in fact points to a file, or the reverse.
PathNotFound is returned when Get() or DeleteFile() is called with a path that doesn't lead to a node.
Unknown is returned by Code() when an error wasn't emitted by the HashTree implementation.
Unsupported is returned when Deserialize(bytes) encounters an unsupported (likely old) serialized HashTree.
# Variables
No description provided by the author
No description provided by the author
# Structs
DirectoryNodeProto is a node corresponding to a directory.
FileNodeProto is a node corresponding to a file (which is also a leaf node).
HashTreeProto is a tree corresponding to the complete file contents of a pachyderm repo at a given commit (based on a Merkle Tree).
NodeProto is a node in the file tree (either a file or a directory).
OpenNode is similar to NodeProto, except that it doesn't include the Hash field (which is not generally meaningful in an OpenHashTree).
# Interfaces
HashTree is the signature of a hash tree provided by this library.
OpenHashTree is like HashTree, except that it can be modified.
# Type aliases
ErrCode identifies different kinds of errors returned by methods in HashTree below.