[−][src]Macro synstructure::decl_derive
The decl_derive! macro declares a custom derive wrapper. It will parse the
incoming TokenStream into a synstructure::Structure object, and pass it
into the inner function.
Your inner function should take a synstructure::Structure by value, and
return a type implementing synstructure::MacroResult, for example:
fn derive_simple(input: synstructure::Structure) -> proc_macro2::TokenStream { unimplemented!() } fn derive_result(input: synstructure::Structure) -> syn::Result<proc_macro2::TokenStream> { unimplemented!() }
Usage
Without Attributes
fn derive_interesting(_input: synstructure::Structure) -> proc_macro2::TokenStream { quote::quote! { ... } } decl_derive!([Interesting] => derive_interesting);
With Attributes
fn derive_interesting(_input: synstructure::Structure) -> proc_macro2::TokenStream { quote::quote! { ... } } decl_derive!([Interesting, attributes(interesting_ignore)] => derive_interesting);
Decl Attributes & Doc Comments
fn derive_interesting(_input: synstructure::Structure) -> proc_macro2::TokenStream { quote::quote! { ... } } decl_derive! { [Interesting] => #[allow(some_lint)] /// Documentation Comments derive_interesting }
This macro is available if synstructure is built with the "proc-macro"
feature.