1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
extern crate proc_macro; mod args; mod throws; use proc_macro::*; use args::Args; use throws::Throws; #[proc_macro_attribute] pub fn throws(args: TokenStream, input: TokenStream) -> TokenStream { let args = syn::parse_macro_input!(args as Args); Throws::new(args).fold(input) }