Type Definition syn::AttributeArgs

source · []
pub type AttributeArgs = Vec<NestedMeta>;
Available on crate features full or derive only.
Expand description

Conventional argument type associated with an invocation of an attribute macro.

For example if we are developing an attribute macro that is intended to be invoked on function items as follows:

#[my_attribute(path = "/v1/refresh")]
pub fn refresh() {
    /* ... */
}

The implementation of this macro would want to parse its attribute arguments as type AttributeArgs.

use proc_macro::TokenStream;
use syn::{parse_macro_input, AttributeArgs, ItemFn};

#[proc_macro_attribute]
pub fn my_attribute(args: TokenStream, input: TokenStream) -> TokenStream {
    let args = parse_macro_input!(args as AttributeArgs);
    let input = parse_macro_input!(input as ItemFn);

    /* ... */
}