#kdl #serde #deserialize #opinionated #node

knurdy

使用 Serde 的最小化、有偏见的 KDL 反序列化

4 个版本

0.2.0 2023 年 7 月 25 日
0.1.2 2023 年 1 月 6 日
0.1.1 2022 年 10 月 11 日
0.1.0 2022 年 9 月 30 日

#12#kdl


用于 2 crates

MIT 许可证

30KB
944

Knurdy

一个从 kdl 库到 serde 的最小化、低复制、非常有偏见的转换层。

这主要针对我的 Dialga 库,这是一个类似 Qud 洞穴蓝图实例化系统,它本身又是为 Palkia 设计的。

我对现有的所有 Rust KDL 库都存在一些不足

  • Knuffel 非常强大,但它有自己的反序列化系统和宏,而不是使用 Serde。(当然,这适合它试图做的事情;KDL 并不完全映射到 Serde 的数据模型。)它在内存中存储 AST,但也需要存储它从其中解析的文本的范围,而我只想让纯 AST 留在周围。
  • Kaydle 是一个使用 Serde 的 KDL 库,但它的功能不如 Knuffel 完整,并且不存储 AST 到内存中。

使用

调用 knurdy::deserialize_node,或直接使用 KdlNodeDeser

依赖项

~2.9–4MB
~67K SLoC