tree

package
v0.0.16 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2023 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Traverse

func Traverse[T NodeTraverser](node T, f TraversalFunc) (T, error)

Traverse takes a NodeTraverser Node and enters into a recursive loop (traverseRecursor) that applies a given function to the Node.

Types

type Metadata

type Metadata map[string]string

type Node

type Node struct {
	Name string
	// contains filtered or unexported fields
}

func (*Node) GetBasePath

func (n *Node) GetBasePath() string

func (*Node) GetMetadata

func (n *Node) GetMetadata() Metadata

GetMetadata reads metadata from the root node of the tree

func (*Node) GetName

func (n *Node) GetName() []string

func (*Node) GetParent

func (n *Node) GetParent() NodeTraverser

func (*Node) SetBasePath

func (n *Node) SetBasePath(path string)

func (*Node) SetMetadata

func (n *Node) SetMetadata(metadata Metadata)

SetMetadata sets metadata for the root node of the tree

func (*Node) SetName

func (n *Node) SetName(name string)

func (*Node) SetParent

func (n *Node) SetParent(parent NodeTraverser)

type NodeTraverser

type NodeTraverser interface {
	Traverser
	Noder
}

func ResolveRefs

func ResolveRefs(key string, parent, node NodeTraverser) (NodeTraverser, error)

ResolveRefs calls readRef on references with the ref path modified appropriately for it's use

type Noder

type Noder interface {
	SetName(name string)
	GetName() []string

	GetBasePath() string
	SetBasePath(path string)

	GetRef() string
	SetMetadata(metadata Metadata)
	GetMetadata() Metadata
}

type TraversalFunc

type TraversalFunc func(key string, parent, child NodeTraverser) (NodeTraverser, error)

type Traverser

type Traverser interface {
	GetChildren() map[string]NodeTraverser
	SetChild(i string, t NodeTraverser)

	GetParent() NodeTraverser
	SetParent(parent NodeTraverser)
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL