| // force-host |
| // no-prefer-dynamic |
| |
| #![crate_type = "proc-macro"] |
| |
| extern crate proc_macro; |
| use proc_macro::TokenStream; |
| |
| #[proc_macro] |
| pub fn m_empty(input: TokenStream) -> TokenStream { |
| println!("PROC MACRO INPUT (PRETTY-PRINTED): {}", input); |
| println!("PROC MACRO INPUT: {:#?}", input); |
| TokenStream::new() |
| } |
| |
| #[proc_macro] |
| pub fn m(input: TokenStream) -> TokenStream { |
| println!("PROC MACRO INPUT (PRETTY-PRINTED): {}", input); |
| println!("PROC MACRO INPUT: {:#?}", input); |
| input.into_iter().collect() |
| } |
| |
| #[proc_macro_attribute] |
| pub fn a(_args: TokenStream, input: TokenStream) -> TokenStream { |
| println!("ATTRIBUTE INPUT (PRETTY-PRINTED): {}", input); |
| println!("ATTRIBUTE INPUT: {:#?}", input); |
| input.into_iter().collect() |
| } |
| |
| #[proc_macro_derive(d)] |
| pub fn d(input: TokenStream) -> TokenStream { |
| println!("DERIVE INPUT (PRETTY-PRINTED): {}", input); |
| println!("DERIVE INPUT: {:#?}", input); |
| input.into_iter().collect() |
| } |