1#![recursion_limit = "128"]
2
3extern crate proc_macro;
4#[macro_use]
5extern crate quote;
6extern crate syn;
7
8use proc_macro::TokenStream;
9use syn::ItemStruct;
10
11#[proc_macro_attribute]
12pub fn module(_: TokenStream, input: TokenStream) -> TokenStream {
13 let expanded = match syn::parse::<ItemStruct>(input) {
16 Ok(item) => {
17 let src = format!("/{}.rs", item.ident);
18 quote! {
19 include!(concat!(env!("OUT_DIR"), #src));
20 }
21 }
22 Err(..) => quote!{},
23 };
24
25 expanded.into()
26}