#irox #graph #dot #graphviz #compatible #writer #description

irox-dot

DOT 图形描述语言编写器,兼容 GraphViz

1 个不稳定版本

0.1.0 2024年6月27日

#132数据格式


用于 irox

MIT/Apache

69KB
1K SLoC

IROX-DOT

DOT 图形描述语言编写器,兼容 GraphViz

支持 No-STD

  • 需要 std

功能

示例


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(())
}

产生

digraph TestGraph {
    landscape=true
    "Node 1" 
    "Node 1" -> "Node 2"
}

lib.rs:

DOT 图形描述语言编写器,兼容 GraphViz

示例

#
    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"
);

依赖项