2 unstable releases

0.2.0 Jul 8, 2024
0.1.0 Jan 14, 2022

#1846 in Procedural macros

Download history 9290/week @ 2024-10-26 8962/week @ 2024-11-02 11742/week @ 2024-11-09 7945/week @ 2024-11-16 10274/week @ 2024-11-23 7319/week @ 2024-11-30 8151/week @ 2024-12-07 10980/week @ 2024-12-14 1860/week @ 2024-12-21 4141/week @ 2024-12-28 10115/week @ 2025-01-04 6807/week @ 2025-01-11 7587/week @ 2025-01-18 8435/week @ 2025-01-25 6608/week @ 2025-02-01 7480/week @ 2025-02-08

31,052 downloads per month
Used in 6 crates (5 directly)

MIT license

11KB
191 lines

serde_default

This is a library for generating impls of Default from serde attributes.


lib.rs:

Generate a Default impl based on field-level defaults in serde attributes.

Usage

On a struct that derives Serialize or Deserialize, add 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() });
}

Dependencies

~0.5–1MB
~23K SLoC