5个版本
0.1.5 | 2023年6月9日 |
---|---|
0.1.4 | 2023年6月4日 |
0.1.2 | 2023年5月28日 |
2463 在 解析器实现 中
每月下载量 245
24KB
447 行
Serde Buckets
为Serde反序列化创建的'Buckets'
Bucket
根据serde数据模型存储数据(及其类型),允许对任何自描述类型进行格式类似表示。
此类型旨在用于反序列化过程,其中结构在解析给定字段之前是未知的。此类型可以存储这些数据,而无需复制或拥有堆分配的类型(与serde_value
不同)。
在内部,Bucket
类型是一个表示类型、其值和其他属性的'节点'的向量。这使得它更容易使用,并消除了递归数据结构中发现的某些堆分配。
这是一个为我的项目创建的crate,因此不太可能维护。可以说‘bucket’,而使用
serde_value
代替。
示例
以下示例使用serde_json
作为格式
use serde_bucket::Bucket;
// parse an input using your favourite serde library
// deserialise it into the `Bucket` type.
let input = r#"{"a": 10, "b": false}"#;
let mut bucket: Bucket = serde_json::from_str(&input).unwrap();
// our example structure
#[derive(Deserialize)]
struct Example {
a: u8,
b: bool
}
// use `deserialize_into` to "deserialise into" a given type.
// the error type (in this `serde_json::Error`) must implement `serde::de::Error`
let value = bucket.deserialize_into::<Example, serde_json::Error>().unwrap();
assert_eq!(value, Example { a: 10, b: false });
谢谢
Merci Buckets,感谢您停留 <3
- 如果您想打招呼,请访问我的Twitter
依赖项
~110–345KB