#default #serde #attributes #generate #impl #derive #derive-debug

serde_default

使用 serde 属性生成 Default 实现

2 个不稳定版本

0.2.0 2024年7月8日
0.1.0 2022年1月14日

#140过程宏

Download history 8657/week @ 2024-05-02 10671/week @ 2024-05-09 8481/week @ 2024-05-16 6980/week @ 2024-05-23 5458/week @ 2024-05-30 7334/week @ 2024-06-06 6340/week @ 2024-06-13 6990/week @ 2024-06-20 6674/week @ 2024-06-27 7961/week @ 2024-07-04 8836/week @ 2024-07-11 7176/week @ 2024-07-18 7552/week @ 2024-07-25 6017/week @ 2024-08-01 8610/week @ 2024-08-08 8281/week @ 2024-08-15

32,254 每月下载量
6 crate 中使用 (5 直接)

MIT 许可证

11KB
191 代码行数(不包括注释)

serde_default

这是一个生成从 serde 属性中 impl 的库。


lib.rs:

基于 serde 属性中字段级别的默认值生成 Default 实现。

用法

在一个派生自 SerializeDeserialize 的结构体上,添加 DefaultFromSerde

#[derive(Debug, DefaultFromSerde, PartialEq, Eq)]
pub struct MyStruct {
    #[serde(default = "field_1_default")]
    field1: u16,
    #[serde(default)]
    field2: String,
}

fn field_1_default() -> u16 {
    3
}

fn main() {
    assert_eq!(MyStruct::default(), MyStruct { field1: 3, field2: "".into() });
}

依赖

~0.6–1MB
~24K SLoC