Structs

Enums

Traits

Be able to derive a set of identifiers from a given item. Semantically this is Get “children” but not all graph operations are parent-child.

A type is able to extract an Identifer from itself. The identifier type is provided as an argument to the trait

Marker trait that some type corresponds to the identity of some value. Used for graph traversal book-keeping (seen set, querying, etc)

Label for a node. The label type must be very cheap to clone and move around. for strings, Arc or Rc is preferred when implementing this type.

Be able to query some type given an identifier. It must return a type that can be queried for more values like itself.