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

Download history 44/week @ 2024-03-29 13/week @ 2024-04-05 4/week @ 2024-05-31 5/week @ 2024-06-07 3/week @ 2024-06-14

每月下载 216
用于 2 crates

MIT许可 MIT

330KB
7K SLoC

Build Status Latest Version Rust Documentation codecov

Kurt的 Self Explicable Rust Data.

查看rs文档。在github上查看进度和贡献。

简介

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转换为数据结构。使用serdeSerializeDeserialize特性。 kserd::encode
format Kserd格式化为可读字符串。 kserd::format
parse 将字符串解析为Kserd kserd::parse

依赖项

~0.3–0.9MB
~17K SLoC