2 个不稳定版本

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

#140过程宏

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

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