Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var SkipNode = errors.New("skip this node")
SkipNode is returned by WalkFunc when a dir node should not be walked.
Functions ¶
func Walk ¶
func Walk(ctx context.Context, repo TreeLoader, root restic.ID, ignoreTrees restic.IDSet, walkFn WalkFunc) error
Walk calls walkFn recursively for each node in root. If walkFn returns an error, it is passed up the call stack. The trees in ignoreTrees are not walked. If walkFn ignores trees, these are added to the set.
Types ¶
type TreeLoader ¶
TreeLoader loads a tree from a repository.
type WalkFunc ¶
type WalkFunc func(parentTreeID restic.ID, path string, node *restic.Node, nodeErr error) (ignore bool, err error)
WalkFunc is the type of the function called for each node visited by Walk. Path is the slash-separated path from the root node. If there was a problem loading a node, err is set to a non-nil error. WalkFunc can chose to ignore it by returning nil.
When the special value SkipNode is returned and node is a dir node, it is not walked. When the node is not a dir node, the remaining items in this tree are skipped.
Setting ignore to true tells Walk that it should not visit the node again. For tree nodes, this means that the function is not called for the referenced tree. If the node is not a tree, and all nodes in the current tree have ignore set to true, the current tree will not be visited again. When err is not nil and different from SkipNode, the value returned for ignore is ignored.