Node is a trait that abstracts out common information and behavior needed within the
GraphNode and TreeNode implementations.
Both these nodes handle their connections differently, but they share
this common interface. Within this crate, we also handle these data structures a little differently
than they would usually be defined, so we leave the core implementation up to the struct, and allow
this trait to supply the ‘radiate’ interface for working with nodes.
NodeExt is an extension trait for the Node trait that provides additional
functionality for working with nodes. Super stupid little thing but I got
tired of writing out the same code over and over again.