Macro synstructure::decl_derive
source · macro_rules! decl_derive {
([$derives:ident $($derive_t:tt)*] => $inner:path) => { ... };
}
Expand description
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 have the following type:
fn derive(input: synstructure::Structure) -> proc_macro2::TokenStream {
unimplemented!()
}
Usage
Without Attributes
fn derive_interesting(_input: synstructure::Structure) -> proc_macro2::TokenStream {
quote! { ... }
}
decl_derive!([Interesting] => derive_interesting);
With Attributes
fn derive_interesting(_input: synstructure::Structure) -> proc_macro2::TokenStream {
quote! { ... }
}
decl_derive!([Interesting, attributes(interesting_ignore)] => derive_interesting);