4 个版本
新增 0.1.3 | 2024年8月8日 |
---|---|
0.1.2 | 2024年1月5日 |
0.1.1 | 2023年12月1日 |
0.1.0 | 2023年12月1日 |
#1468 在 解析器实现
每月 32 次下载
14KB
365 代码行
default-from-serde
使用 Default
推导 serde::Deserialize
!Default
和 Deserialize
之间不再存在不匹配!
用法
Cargo.toml
:
default-from-serde = "0.1"
有关 Rust 代码,请参阅 docs.rs。
许可证
APACHE-2.0。
部分源代码来自 serde_json
。该库实际上使用 serde_json
和 {}
进行反序列化。
lib.rs
:
此软件包提供了一个名为 SerdeDefault
的推导宏,它从 serde::Deserialize
推导出 Default
。
用法
use default_from_serde::SerdeDefault;
#[derive(SerdeDefault, Deserialize)]
pub struct ComplexTypewithDefault {
#[serde(default)]
pub a: i32,
#[serde(default = "default_b")]
pub b: String,
#[serde(default)]
pub c: Vec<i32>,
}
fn default_b() -> String {
"default".to_string()
}
fn main() {
let x = ComplexTypewithDefault::default();
assert_eq!(x.b, "default");
}
依赖关系
~0.4–1MB
~22K SLoC