mvrocketlib_macro/lib.rs
1use proc_macro::TokenStream;
2use quote::quote;
3use syn::{parse_macro_input, ItemFn};
4#[proc_macro_attribute]
5pub fn main(_attrs: TokenStream, input: TokenStream) -> TokenStream {
6 let input_fn = parse_macro_input!(input as ItemFn);
7
8 let fn_name = &input_fn.sig.ident;
9
10 let output = quote! {
11 #input_fn
12
13 #[no_mangle]
14 pub extern "C" fn mvrocket_launch() {
15 #fn_name();
16 }
17 };
18
19 TokenStream::from(output)
20}