1extern crate proc_macro;
2
3use proc_macro::TokenStream;
4use syn::parse_macro_input;
5
6mod expand;
7
8#[proc_macro_derive(Typology, attributes(typology))]
9pub fn typology_derive(input: TokenStream) -> TokenStream {
10 let input = parse_macro_input!(input);
11 expand::expand(input).unwrap_or_else(syn::Error::into_compile_error).into()
12}
13
14#[proc_macro]
15pub fn type_of(input: TokenStream) -> TokenStream {
16 let input = parse_macro_input!(input);
17 expand::expand_type_of(input).into()
18}