Modules
Structs
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 Graph
is in principle a owning tuple of Nodes and Edges.
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.
Represents a single Node
. It has an id
entifier and an optional label
,
which can be removed by using the zero-sized type ()
A double-pushout production (DPO). For a description of the theory behind
it please refer to the crates README.md
.
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 new
ly created struct.
Functions
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.
Tries to find an partial isomorphism from subgraph
to graph
. subgraph
can be a
disconnected graph. If None
is returned if there is no mapping.