bon_macros/util/
item.rs
1pub(crate) trait ItemExt {
2 fn attrs_mut(&mut self) -> Option<&mut Vec<syn::Attribute>>;
3}
4
5impl ItemExt for syn::Item {
6 fn attrs_mut(&mut self) -> Option<&mut Vec<syn::Attribute>> {
7 let attrs = match self {
8 Self::Const(item) => &mut item.attrs,
9 Self::Enum(item) => &mut item.attrs,
10 Self::ExternCrate(item) => &mut item.attrs,
11 Self::Fn(item) => &mut item.attrs,
12 Self::ForeignMod(item) => &mut item.attrs,
13 Self::Impl(item) => &mut item.attrs,
14 Self::Macro(item) => &mut item.attrs,
15 Self::Mod(item) => &mut item.attrs,
16 Self::Static(item) => &mut item.attrs,
17 Self::Struct(item) => &mut item.attrs,
18 Self::Trait(item) => &mut item.attrs,
19 Self::TraitAlias(item) => &mut item.attrs,
20 Self::Type(item) => &mut item.attrs,
21 Self::Union(item) => &mut item.attrs,
22 Self::Use(item) => &mut item.attrs,
23 _ => return None,
24 };
25
26 Some(attrs)
27 }
28}