scuffle_bootstrap_derive/
lib.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
use proc_macro::TokenStream;

mod main_impl;
// mod service_impl;

// #[proc_macro_attribute]
// pub fn service(args: TokenStream, input: TokenStream) -> TokenStream {
// 	handle_error(service_impl::impl_service(args.into(), input.into()))
// }

#[proc_macro]
pub fn main(input: TokenStream) -> TokenStream {
	handle_error(main_impl::impl_main(input.into()))
}

fn handle_error(input: Result<proc_macro2::TokenStream, syn::Error>) -> TokenStream {
	match input {
		Ok(value) => value.into(),
		Err(err) => return err.to_compile_error().into(),
	}
}