Version: v0.4.17 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Jul 27, 2018 License: MIT Imports: 3 Imported by: 0



Package traverse provides merkledag traversal functions



This section is empty.


This section is empty.


func Traverse

func Traverse(root ipld.Node, o Options) error

Traverse initiates a DAG traversal with the given options starting at the given root.


type ErrFunc

type ErrFunc func(err error) error

ErrFunc is provided to handle problems when walking to the Node. Traverse will call ErrFunc with the error encountered. ErrFunc can decide how to handle that error, and return an error back to Traversal with how to proceed:

* nil - skip the Node and its children, but continue processing
* all other errors halt processing immediately.

If ErrFunc is nil, Traversal will stop, as if:

opts.ErrFunc = func(err error) { return err }

type Func

type Func func(current State) error

Func is the type of the function called for each dag.Node visited by Traverse. The traversal argument contains the current traversal state. If an error is returned, processing stops.

type Options

type Options struct {
	DAG     ipld.NodeGetter // the dagservice to fetch nodes
	Order   Order           // what order to traverse in
	Func    Func            // the function to perform at each step
	ErrFunc ErrFunc         // see ErrFunc. Optional

	SkipDuplicates bool // whether to skip duplicate nodes

Options specifies a series of traversal options

type Order

type Order int

Order is an identifier for traversal algorithm orders

const (
	// DFSPre defines depth-first pre-order
	DFSPre Order = iota
	// DFSPost defines depth-first post-order
	// BFS defines breadth-first order

These constants define different traversing methods

type State

type State struct {
	Node  ipld.Node
	Depth int

State is a current traversal state

Source Files

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL