1 unstable release

0.1.0 Jan 14, 2022

#1727 in Procedural macros

Download history 17209/week @ 2024-01-03 15098/week @ 2024-01-10 13943/week @ 2024-01-17 10323/week @ 2024-01-24 11411/week @ 2024-01-31 6927/week @ 2024-02-07 6913/week @ 2024-02-14 8877/week @ 2024-02-21 8098/week @ 2024-02-28 7997/week @ 2024-03-06 8794/week @ 2024-03-13 9703/week @ 2024-03-20 8792/week @ 2024-03-27 7178/week @ 2024-04-03 8071/week @ 2024-04-10 7895/week @ 2024-04-17

33,911 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

~1.5MB
~40K SLoC