1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
use bool_to_option::BoolToOption; use call::Call; use container::Container; use get::Get; use inject::Inject; use syn::parse_macro_input; mod bool_to_option; mod call; mod container; mod get; mod inject; #[proc_macro_attribute] pub fn inject( arguments: proc_macro::TokenStream, method: proc_macro::TokenStream, ) -> proc_macro::TokenStream { let inject = match Inject::try_parse(arguments, method) { Ok(inject) => inject, Err(err) => return err.to_compile_error().into(), }; inject.expand().into() } #[proc_macro] pub fn get(input: proc_macro::TokenStream) -> proc_macro::TokenStream { parse_macro_input!(input as Get).expand().into() } #[proc_macro] pub fn call(input: proc_macro::TokenStream) -> proc_macro::TokenStream { parse_macro_input!(input as Call).expand().into() } #[proc_macro] pub fn container(input: proc_macro::TokenStream) -> proc_macro::TokenStream { parse_macro_input!(input as Container).expand().into() }