3个版本

0.1.2 2024年2月28日
0.1.1 2022年10月29日
0.1.0 2022年10月29日

#26 in 可视化

Download history 1086/week @ 2024-04-20 482/week @ 2024-04-27 984/week @ 2024-05-04 1282/week @ 2024-05-11 952/week @ 2024-05-18 924/week @ 2024-05-25 725/week @ 2024-06-01 494/week @ 2024-06-08 1037/week @ 2024-06-15 1187/week @ 2024-06-22 834/week @ 2024-06-29 1113/week @ 2024-07-06 1317/week @ 2024-07-13 1335/week @ 2024-07-20 1535/week @ 2024-07-27 1205/week @ 2024-08-03

5,626 每月下载量
用于 9 个crate(6 个直接使用)

MIT 协议

185KB
4.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.

命令行使用

使用命令构建crate并渲染一些dot文件

cargo run --bin run ./inputs/bk.dot -o output.svg

本节展示了从dot文件渲染的几个图形

一个简单的图形。

一个具有多个形状和标签的简单图形。

具有一些样式属性的图形。

一个展示边缘交叉消除优化的大型图形。

支持Unicode、emoji和从右向左的语言

支持记录(嵌套结构)

调试模式渲染,有助于可视化布局决策

依赖项