eserde
: 更友好的序列化/反序列化框架
众所周知,serde
是 Rust 生态中的一个非常强大的序列化/反序列化框架。今天介绍的这个 eserde
是由 Mainmatter 开发的,它在 serde
之上构建,旨在提供更好的错误处理。serde
在反序列化的时候,遇到第一个错误就会停止解析,而 eserde
能够一次性报告多个错误,可以大大节省调试时间,减少 API 交互次数。
下面是一个示例:
#[derive(Debug, eserde::Deserialize)]
// ^^^^^^^^^^^^^^^^^^^
// Using `eserde::Deserialize`
// instead of `serde::Deserialize`!
struct Package {
version: Version,
source: String,
}
#[derive(Debug, eserde::Deserialize)]
struct Version {
major: u32,
minor: u32,
patch: u32,
}
let payload = r#"
{
"version": {
"major": 1,
"minor": "2"
},
"source": nu