nan-default 0.0.2

Derive macro for defaulting structs with floats to NAN
Documentation
#[cfg(test)]
mod test {
    use nan_default::NanDefault;
    const ARRAY_SIZE: usize = 17;

    #[derive(NanDefault)]
    struct Data {
        a: f32,
        b: f64,
        c: i32,
        x: [f32; ARRAY_SIZE],
        s: String,
    }

    #[test]
    fn all_defaults() {
        let d = Data::default();
        assert!(d.a.is_nan());
        assert!(d.b.is_nan());
        assert_eq!(d.c, 0);
        assert_eq!(d.x.len(), ARRAY_SIZE);
        assert!(d.x[ARRAY_SIZE - 1].is_nan());
        assert!(d.s.is_empty());
    }

    #[test]
    fn some_defaults() {
        let d = Data {
            c: 33,
            b: 355f64 / 113f64,
            ..Default::default()
        };
        assert!(d.a.is_nan());
        assert!(!d.b.is_nan());
        assert_eq!(d.c, 33);
    }

    #[test]
    fn no_defaults() {
        let d = Data {
            a: 1.0,
            b: 2.0,
            c: 33,
            x: [1.618; ARRAY_SIZE],
            s: "phi".to_string(),
        };
        assert_eq!(d.a, 1.0);
        assert_eq!(d.b, 2.0);
        assert_eq!(d.c, 33);
    }
}