Represents a single directed Edge and an optional label,
which can be removed by using the zero-sized type ().
It is recommended to use the corresponding ::new_* methods.
A GraphGrammar yields different graphs, that are constructible using a starting graph and a
list of transformations (productions). It is also used to further transform generated graphs
using evolve. Refer to generate_random.
An Isomorphism is a map from the matching graph to the matched subgraph. You most likely
don’t want to construct it, but use the match_subgraph-method.
Used for randomly evolving a graph using a GraphGrammar to specify
when to stop trying random productions. All fields are optional, but
at least one must be used. Options can be set using the builder pattern
on a newly created struct.
Checks if the two given graphs are (totally) isomorphic to each other, by checking if there
exists a partial isomorphism from lhs to rhs and in the other direcetion. This function is
very expensive.