is_empty 0.3.0

Easily check if the struct is empty.
Documentation
use is_empty::{is_option_really_empty, IsEmpty};

#[derive(IsEmpty)]
struct Foo {
    a: Option<u8>,
}

#[derive(IsEmpty)]
struct RootWithCheck {
    #[is_empty(if = "is_empty::is_option_really_empty")]
    foo: Option<Foo>,
}

#[test]
fn test_option_wrapped() {
    let empty_root = RootWithCheck { foo: None };
    assert!(empty_root.is_empty());

    let empty_root = RootWithCheck {
        foo: Some(Foo { a: None }),
    };
    assert!(empty_root.is_empty());

    let empty_root = RootWithCheck {
        foo: Some(Foo { a: Some(1) }),
    };
    assert!(!empty_root.is_empty());
}