1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
mod table;

use darling::FromDeriveInput;
use proc_macro::TokenStream;
use quote::quote;
use syn::parse_macro_input;

#[proc_macro_derive(TableData, attributes(table))]
pub fn derive(input: TokenStream) -> TokenStream {
    let input = parse_macro_input!(input as syn::DeriveInput);

    let ast = &input;
    let table_data = table::TableDataDeriveInput::from_derive_input(&ast).expect("Wrong options");
    let data = quote!(#table_data);
    data.into()
}