7个版本 (4个重大更新)
0.5.0 | 2021年3月19日 |
---|---|
0.4.2 | 2020年11月2日 |
0.4.1 | 2020年7月14日 |
0.4.0 | 2020年4月21日 |
0.1.0 | 2019年8月23日 |
在数据结构分类中排名 1554
每月下载 216 次
用于 2 crates
330KB
7K SLoC
Kurt的 Self Explicable Rust Data.
简介
kserd
提供了一种表示程序化数据的数据结构(主要用于Rust)。数据存储在枚举变体中,包括基本原始数据类型,以及元组、容器、序列和映射等嵌套结构。 kserd
通过提供数据结构作为序列化格式和编程语言结构之间的内存中介来区分自己。序列化格式受到TOML的启发,使kserd
尽可能易于阅读。
入门
默认启用功能的情况下,使用kserd
非常简单,只需导入根模块,它将包含所有重要的项。
use kserd::*;
# #[cfg(feature = "encode")] {
// Kserd and Value are the building blocks of the data.
let mut kserd = Kserd::with_id("greeting", Value::new_str("Hello")).unwrap();
// Kserd/Value are meant to be useable in their memory form
// not just simple data holding structure!
assert_eq!(kserd.str(), Some("Hello"));
// you can mutate in place as well
kserd.str_mut().map(|s| { s.push_str(", world!"); });
assert_eq!(kserd.str(), Some("Hello, world!"));
// encode data structures that implement serde::Serialize
let kserd = Kserd::enc(&vec![0, 1, 2, 4]).unwrap();
// can format the kserd into a human-readable string
println!("{}", kserd.as_str()); // should print [0, 1, 2, 4]
# }
建议查阅API文档,其中包含大量示例和解释。
特性
kserd库具有特性门控功能,但所有特性默认启用。
特性 | 描述 | 进一步阅读 |
---|---|---|
encode | 将数据结构转换为Kserd ,或将Kserd 转换为数据结构。使用serde 的Serialize 和Deserialize 特性。 |
kserd::encode |
format | 将Kserd 格式化为可读字符串。 |
kserd::format |
parse | 将字符串解析为Kserd 。 |
kserd::parse |
依赖项
~0.3–0.9MB
~17K SLoC