11 个版本
0.2.0 | 2023年7月26日 |
---|---|
0.2.0-alpha.1 | 2023年7月18日 |
0.1.6 | 2023年7月12日 |
0.1.5 | 2023年2月3日 |
0.1.4 | 2023年1月29日 |
#2748 在 解析器实现
97KB
3K SLoC
tot-rs
是 Tot 的 Rust 实现。
注意:严重处于开发阶段
已完成的特性
- 序列化
- 反序列化
- 通过 nom 实现了基本反序列化。尚不支持 S-表达式
许可证
MPL-2.0
lib.rs
:
是 Tot 的 Rust 实现。
托特是一种旨在手动编辑的配置语言。
特性
- 基于空白格的格式,不需要 缩进
- 简单、有限的语法
- 类似 JSON 的对象和列表
- 引用值(WIP)
- 文件导入(WIP)
- 非图灵完备的 Lisp 样式表达式(WIP)
- 兼容于
- JSON
- YAML
- TOML
示例
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize)]
struct Person {
name: String,
age: u32,
}
fn main() {
let person = Person {
name: "youwin".to_string(),
age: 100
};
let output = tot::to_string(&person).unwrap();
assert_eq!("\
name \"youwin\"
age 100.0
", output);
let person = tot::from_str::<Person>(output.as_str()).unwrap();
assert_eq!(person.name, "youwin");
assert_eq!(person.age, 100);
}
依赖项
~1.3–2.2MB
~45K SLoC