3 个版本
0.1.2 | 2023 年 10 月 16 日 |
---|---|
0.1.1 | 2023 年 10 月 15 日 |
0.1.0 | 2023 年 10 月 15 日 |
2110 in 数据结构
10KB
166 行
graphiti
graphiti
提供了一个 Rust 宏 DSL 和构建器,用于创建和描述任意相关的数据集,这些数据集由 Description
类型表示。
一个常见的用例是用于模拟物理模拟,其中您可能想利用实体组件系统,但又想通过有向图来描述模拟成员之间的关系。
使用 graphiti
,可以使用类型安全的 Rust 宏 DSL 描述模拟,该 DSL 驱动构建器模式构建最终的 Description
类型。有了这个 Description
,数据被组织起来,便于业务逻辑使用存储的数据。这可能用于游戏(ECS + Scenegraphs)、硬件模拟等。
使用方法
将以下内容添加到您的 Cargo.toml
graphiti = "0.1.2"
示例
fn main() {
let description = graphiti::describe! {
nodes: {
device: "device",
safety: "safety",
controller: "controller",
power: "power",
control: "control",
io: "io"
},
edges: {
"config_standard": {
device: [safety, controller, power, control, io],
safety: [controller, power]
},
"config_alternate": {
device: [controller, control, io],
controller: [power]
}
}
};
println!("{description:#?}");
}
依赖项
~6MB
~91K SLoC