#![allow(dead_code)] use is_empty::IsEmpty; #[derive(IsEmpty)] struct Foo { a: Option, #[is_empty(if = "Vec::is_empty")] b: Vec, } #[test] fn test_is_empty_for_vec_with_attr() { let foo = Foo { a: None, b: vec![] }; assert!(foo.is_empty()); let bar = Foo { a: Some(1), b: vec![], }; assert!(!bar.is_empty()); }