# Functions
AssociateChildren is a generic function to associate child dependencies with an object.
AssociateParents is a generic function to associate parent dependencies with an object.
HasChild determines if a direct child relationship exists between host (parent) and question (supposed child).
HasIndirectChild determines if a transitive parent relationship exists between host (parent) and question (supposed child).
HasIndirectParent determines if a transitive parent relationship exists between host (child) and question (supposed parent).
HasParent determines if a direct parent relationship exists between host (child) and question (supposed parent).
NewDotWriter creates a new writer to generate DOT graphs.
ToNode converts a relationship to a node.
WalkRelationship is a recursive walk similar to filepath.Walk except it traverses relationships.
# Constants
InfiniteDepth is used as a flag to instruct the walker to traverse infinite depth.
TraverseChildren is a flag to denote the Relationship should walk children.
TraverseParents is a flag to denote the Relationship should walk parents.
# Variables
ErrRelationshipWalkHalted is thrown when a walk is intended to discontinue walking.
ErrTraversalPathEnded is thrown when the walker has hit the final element in the tree.
ErrWalkDirectionUndefined is thrown when a direction is neither TraverseChildren or TraverseParents.
# Interfaces
DotNode is an interface to describe the DOT requirements for traversing graphs.
Hasher is an interface to allow types to be checksumed for potentially build breaking changes.
Relationship is an interface to allow core objects to build relationships between them.
# Type aliases
RelationshipWalkFunc allows for recursive relation traversal.
WalkDirection allows the directon of the walk to be specified.