[−][src]Macro syn::parse_macro_input
Parse the input TokenStream of a macro, triggering a compile error if the tokens fail to parse.
Refer to the parse
module documentation for more details about parsing
in Syn.
Intended usage
This macro must be called from a function that returns
proc_macro::TokenStream
. Usually this will be your proc macro entry point,
the function that has the #[proc_macro] / #[proc_macro_derive] /
#[proc_macro_attribute] attribute.
extern crate proc_macro; use proc_macro::TokenStream; use syn::{parse_macro_input, Result}; use syn::parse::{Parse, ParseStream}; struct MyMacroInput { /* ... */ } impl Parse for MyMacroInput { fn parse(input: ParseStream) -> Result<Self> { /* ... */ } } #[proc_macro] pub fn my_macro(tokens: TokenStream) -> TokenStream { let input = parse_macro_input!(tokens as MyMacroInput); /* ... */ }