#serde #format #data-model #heap-allocated #serde-value

serde_bucket

使用serde表示任何自描述类型的格式类似表示

5个版本

0.1.5 2023年6月9日
0.1.4 2023年6月4日
0.1.2 2023年5月28日

2463解析器实现

Download history 15/week @ 2024-06-16 76/week @ 2024-06-23 30/week @ 2024-06-30 103/week @ 2024-07-07 23/week @ 2024-07-14 47/week @ 2024-07-21 61/week @ 2024-07-28

每月下载量 245

GPL-3.0-or-later

24KB
447

Serde Buckets

为Serde反序列化创建的'Buckets'

crates.io badge docs.rs badge Downloads badge


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