2 个版本
0.0.2 | 2022年10月5日 |
---|---|
0.0.1 | 2022年10月4日 |
#2260 in 数据结构
39KB
746 行
此 Rust 库帮助您为 reo 编译器构建 EO 程序的对象树。
创建树
use sot::Sot;
let mut sot = Sot::empty();
sot.add(0)?; // add a vertex no.0
sot.add(1)?; // add a vertex no.1
sot.bind(0, 1, "foo")?; // connect v0 to v1 with label "foo"
sot.put(1, "Hello, world!".as_bytes().to_vec())?; // attach data to v1
您可以通过从另一个顶点出发的边的标签找到一个顶点
let id = sot.kid(0, "foo")?; // returns 1
您可以找到顶点的所有子节点
let kids: Vec<(String, u32)> = sot.kids(0);
您可以读取顶点的数据
let bytes: Vec<u8> = sot.data(1)?; // empty if no data written before
然后,您可以打印树
println!("{:?}", sot);
此外,您还可以序列化和反序列化树。
依赖项
~5–6.5MB
~126K SLoC