[][src]Function proc_macro_roids::namespace_parameter

pub fn namespace_parameter(
    attrs: &[Attribute],
    namespace: &Path
) -> Option<NestedMeta>

Returns the parameter from #[namespace(parameter)].

Parameters

  • attrs: Attributes of the item to inspect.
  • namespace: The path() of the first-level attribute.

Examples

use proc_macro_roids::namespace_parameter;
use syn::{parse_quote, DeriveInput, Meta, NestedMeta, Path};

let ast: DeriveInput = parse_quote! {
    #[namespace(One)]
    pub struct MyEnum;
};

let ns: Path = parse_quote!(namespace);
let namespace_param = namespace_parameter(&ast.attrs, &ns);

let meta_one: Path = parse_quote!(One);
let param_one = NestedMeta::Meta(Meta::Path(meta_one));
assert_eq!(Some(param_one), namespace_param);

let ns_other: Path = parse_quote!(namespace_other);
let namespace_param_other = namespace_parameter(&ast.attrs, &ns_other);
assert_eq!(None, namespace_param_other);

Panics

Panics if the number of parameters for the tag is not exactly one.