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;

use syn::parse_macro_input;

mod implement;
mod model;
mod parse;

#[proc_macro]
pub fn fwd(input: TokenStream) -> TokenStream {
    parse_macro_input!(input as model::FwdDecl)
        .implement()
        .into()
}

#[proc_macro]
pub fn fwd_pub(input: TokenStream) -> TokenStream {
    parse_macro_input!(input as model::FwdDecl)
        .implement_pub()
        .into()
}