3个版本
0.1.2 | 2024年2月28日 |
---|---|
0.1.1 | 2022年10月29日 |
0.1.0 | 2022年10月29日 |
#128 in 可视化
415KB
5K SLoC
布局
Layout 是一个 Rust 库和一个独立的实用工具,可以绘制图形。Layout 可以解析 Graphviz dot 文件并将其渲染。
库使用方法
将以下内容添加到 Cargo.toml
layout-rs = "0.1.1" # or
layout-rs = { version = "0.1.1", features = ["log"] }
加载、解析并打印抽象语法树(AST)
use layout::gv;
let contents = "digraph { a -> b [label=\"foo\"]; }";
let mut parser = gv::DotParser::new(&contents);
match parser.process() {
Ok(g) => gv::dump_ast(&g),
Err(err) => {
parser.print_error();
# #[cfg(feature = "log")]
log::error!("Error: {}", err);
}
}
上述示例将打印程序的 AST 或可读的错误消息,例如
digraph {
node [fillcolor="purple"] A B;
node [fillcolor="orange"] Z;
node [fillcolor="green"] G; a = ;
^
Error: Expected an identifier.
命令行使用方法
使用以下命令构建软件包并渲染一些 dot 文件
cargo run --bin run ./inputs/bk.dot -o output.svg
画廊
本节展示了从 dot 文件渲染的几个图形
一个简单的图形。
一个包含多个形状和标签的简单图形。
一个具有一些样式属性的图形。
一个演示边交叉消除优化的大型图形。
支持 Unicode、表情符号和从右到左的语言
支持记录(嵌套结构)
调试模式渲染,有助于可视化布局决策
依赖关系
~4–13MB
~127K SLoC