1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
use syn::{Meta, MetaList}; pub trait MetaHelpers { fn try_metalist(&self) -> Option<&MetaList>; fn try_path(&self) -> Option<&syn::Path>; fn try_namevalue(&self) -> Option<&syn::MetaNameValue>; } impl MetaHelpers for syn::Meta { fn try_metalist(&self) -> Option<&MetaList> { match self { Meta::List(list) => Some(list), _ => None, } } fn try_path(&self) -> Option<&syn::Path> { match self { Meta::Path(path) => Some(path), _ => None, } } fn try_namevalue(&self) -> Option<&syn::MetaNameValue> { match self { Meta::NameValue(pair) => Some(pair), _ => None, } } }