#[serde_individual_default]Expand description
This procedural macro create default deserealization functions for each structure attribute based on std::Default impl.
It applies default values only for fields missing from the deserialized input.
ยงExample
use serde::Deserialize;
use your_proc_macro_crate::serde_individual_default;
#[derive(Deserialize, Getters)]
#[serde_individual_default]
struct Example {
#[getter(skip)]
test_1: i64,
test_2: i64,
test_3: String,
}
impl Default for Example {
fn default() -> Self {
Example {
test_1: 3942,
test_2: 42390,
test_3: "a".to_string(),
}
}
}
let json_data_1 = serde_json::json!({
"test_1": 500,
"test_2": 100
});
let example_struct_1: Example = serde_json::from_value(json_data_1).unwrap();
assert_eq!(example_struct_1.test_1, 500);
assert_eq!(example_struct_1.test_2, 100);
assert_eq!(example_struct_1.test_3, "a".to_string());