cultivar/runtime-interface-macro/src/lib.rs

25 lines
409 B
Rust

//#![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()
}