1 unstable release
0.1.0 | Jun 27, 2024 |
---|
#145 in Data formats
Used in irox
86KB
1.5K
SLoC
IROX-DOT
DOT Graph Description Language writer, compatible with GraphViz
No-STD support:
- Requires
std
Features:
- None
Example:
use irox_dot::*;
fn main() -> Result<(), irox_bits::Error> {
let mut graph = Graph::named("TestGraph");
graph.graph_type = GraphType::Digraph;
// add a top-level graph attribute
graph.add_graph_attr("landscape", "true");
// add a basic node with no attributes
graph.add_node(Node::new("Node 1"));
// add an edge
graph.add_edge(Edge::new(&graph, "Node 1", "Node 2"));
let mut out = String::with_capacity(256);
graph.write_to(&mut out)?;
println!("{out}");
Ok(())
}
produces:
digraph TestGraph {
landscape=true
"Node 1"
"Node 1" -> "Node 2"
}
lib.rs
:
DOT Graph Description Language writer, compatible with GraphViz
Example:
#
let mut graph = Graph::named("TestGraph");
graph.graph_type = GraphType::Digraph;
// add a top-level graph attribute
graph.add_graph_attr("landscape", "true");
// add a basic node with no attributes
graph.add_node(Node::new("Node 1"));
// add an edge
graph.add_edge(Edge::new(&graph, "Node 1", "Node 2"));
let mut out = String::with_capacity(256);
graph.write_to(&mut out)?;
println!("{out}");
assert_eq!(out, "\
digraph TestGraph {\n\
\tlandscape=true\n\
\t\"Node 1\" \n\
\t\"Node 1\" -> \"Node 2\" \n\
}\n"
);