1 use crate::ARBITRARY_ATTRIBUTE_NAME; 2 use syn::*; 3 not_skipped(variant: &&Variant) -> bool4pub fn not_skipped(variant: &&Variant) -> bool { 5 !should_skip(variant) 6 } 7 8 fn should_skip(Variant { attrs, .. }: &Variant) -> bool { 9 attrs 10 .iter() 11 .filter_map(|attr| { 12 attr.path() 13 .is_ident(ARBITRARY_ATTRIBUTE_NAME) 14 .then(|| attr.parse_args::<Meta>()) 15 .and_then(Result::ok) 16 }) 17 .any(|meta| match meta { 18 Meta::Path(path) => path.is_ident("skip"), 19 _ => false, 20 }) 21 } 22