aspartial 0.0.4

Typescript-like 'partial' types
Documentation
use ::aspartial::AsPartial;

#[allow(dead_code)]
#[derive(AsPartial, serde::Serialize)]
#[aspartial(name=PartialSomeStruct)]
#[derive(::serde::Deserialize)]
struct SomeStruct {
    normal_string_field: String,
    #[serde(default = "_seven")]
    defaults_to_7: u32,
    #[serde(default)]
    defaults_to_default: bool,
}

fn _seven() -> u32 {
    7
}

#[test]
fn test_derive_struct(){
    let raw = serde_json::json!(
        {
        }
    );
    let parsed:  PartialSomeStruct = serde_json::from_value(raw).unwrap();
    assert_eq!(parsed.normal_string_field, None);
    assert_eq!(parsed.defaults_to_7, 7);
    assert_eq!(parsed.defaults_to_default, <bool as Default>::default());
}