macro serde_default

Generate a Default impl using serde attributes

2 unstable releases

0.2.0 Jul 8, 2024
0.1.0 Jan 14, 2022

#175 in Procedural macros

Download history 7210/week @ 2024-06-21 5360/week @ 2024-06-28 8857/week @ 2024-07-05 8477/week @ 2024-07-12 7467/week @ 2024-07-19 7031/week @ 2024-07-26 6316/week @ 2024-08-02 9935/week @ 2024-08-09 6438/week @ 2024-08-16 5187/week @ 2024-08-23 6291/week @ 2024-08-30 7125/week @ 2024-09-06 9445/week @ 2024-09-13 9102/week @ 2024-09-20 8179/week @ 2024-09-27 6960/week @ 2024-10-04

35,410 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.6–1MB
~23K SLoC