[−][src]Crate gsgdt
Generic Stringly typed Graph DataType
Create graphs which have a list of strings as nodes and compute the diff between them.
Use match_graphs to get the mapping (isomorphism) between the nodes.
Use visualize_diff to get a MultiGraph which can then be converted into dot using the to_dot method. The dot file generated can be rendered to various formats using graphviz.
use gsgdt::*; let label1: String = "bb0__0_3".into(); let label2: String = "bb0__1_3".into(); let style: NodeStyle = Default::default(); let nodes = vec![ Node::from_list( vec!["_1 = const 1_i32".into(), "_2 = const 2_i32".into()], label1.clone(), "0".into(), style.clone(), ), Node::from_list( vec!["return".into()], label2.clone(), "1".into(), style.clone(), ), ]; let g = Graph::new( "Mir_0_3".into(), nodes, vec![Edge::new(label1, label2, "return".into())], );
Structs
DiffGraph | A wrapper around Graph to assist diffing. |
Edge | A directed graph edge |
EdgeStyle | EdgeStyle defines some style of Edge |
Graph | Graph represents a directed graph as a list of nodes and list of edges. |
GraphvizSettings | |
Matching | A Match from a node in the first graph to the second. |
MultiGraph | A collection of graphs. |
Node | A graph node |
NodeStyle | NodeStyle defines some style of Node |
Enums
GraphKind | |
Match | Enum describing the type of a match. |
Functions
match_graphs | Matches both graphs and returns the mapping of nodes from g1 to g2. |
visualize_diff | Returns a MultiGraph containing the diff of the two graphs. To be visualized with dot. |
Type Definitions
AdjList | |
Mapping |