#serde-default #serde #default #deserialize

no-std default-from-serde

Derive default using #[serde(default)]

4 releases

0.1.3 Aug 8, 2024
0.1.2 Jan 5, 2024
0.1.1 Dec 1, 2023
0.1.0 Dec 1, 2023

#774 in Encoding

Download history 3/week @ 2025-01-01 6/week @ 2025-01-08 1/week @ 2025-01-15 15/week @ 2025-01-29 20/week @ 2025-02-05 22/week @ 2025-02-12 11/week @ 2025-02-19 15/week @ 2025-02-26 8/week @ 2025-03-05 26/week @ 2025-03-12 15/week @ 2025-03-19 28/week @ 2025-03-26 7/week @ 2025-04-02 15/week @ 2025-04-09

68 downloads per month
Used in swc_sdk

Apache-2.0

14KB
365 lines

This crate provides a derive macro named SerdeDefault which derives Default from serde::Deserialize.

Usage

use default_from_serde::SerdeDefault;

#[derive(SerdeDefault, Deserialize)]
pub struct ComplexTypewithDefault {
    #[serde(default)]
    pub a: i32,
    #[serde(default = "default_b")]
    pub b: String,
    #[serde(default)]
    pub c: Vec<i32>,
}

fn default_b() -> String {
    "default".to_string()
}

fn main() {
    let x = ComplexTypewithDefault::default();

    assert_eq!(x.b, "default");
}

default-from-serde

Derive Default using serde::Deserialize! No mismatch between Default and Deserialize anymore!

Usage

Cargo.toml:

default-from-serde = "0.1"

See docs.rs for the Rust code.

License

APACHE-2.0.

Some source code are copied from serde_json. This library is practically deserialize using serde_json with {}.

Dependencies

~0.3–0.9MB
~20K SLoC