golem_rpc_macros/lib.rs
1#![recursion_limit = "128"]
2extern crate proc_macro;
3
4use proc_macro::TokenStream;
5use quote::quote;
6use syn::parse_macro_input;
7
8mod settings;
9
10#[proc_macro]
11pub fn gen_settings(input: TokenStream) -> TokenStream {
12 let f: syn::File = parse_macro_input!(input as syn::File);
13 match settings::gen_settings(f) {
14 Ok(v) => v.into(),
15 Err(e) => {
16 let err_msg = format!("{}", e);
17 (quote! {
18 compile_error!(#err_msg);
19 })
20 .into()
21 }
22 }
23}