atterate 0.0.2

Extrenal iteration style parsing of proc-macro attributes
Documentation
use atterate::AttrArg;

fn main() {
    let tokens = quote::quote! {
        #[example(a = 1)]
        struct Foo {
            #[example(b(2))]
            bar: u32,
        }
    };
    let derive_input: syn::DeriveInput = syn::parse2(tokens).unwrap();

    for attr in AttrArg::iter_in_list_attributes(&derive_input.attrs, "example").unwrap() {
        eprintln!("{attr:?}");
    }

    if let syn::Data::Struct(struct_data) = derive_input.data {
        for field in struct_data.fields {
            for attr in AttrArg::iter_in_list_attributes(&field.attrs, "example").unwrap() {
                eprintln!("{attr:?}");
            }
        }
    }
}