//#![feature(trace_macros)] use proc_macro::TokenStream; use quote::quote; use syn::{parse_macro_input, ItemFn}; //trace_macros!(true); #[proc_macro_attribute] pub fn export_fn(_args: TokenStream, input: TokenStream) -> TokenStream { let ItemFn { attrs, vis, sig, block, } = parse_macro_input!(input); let stmts = &block.stmts; quote! { #(#attrs)* #vis #sig { #(#stmts)* } } .into() }