1
2
3
4
5
6
7
8
9
10
11
12
13
use proc_macro::TokenStream;

mod traits;
mod type_;

use traits::Derive;
use type_::Type;

#[proc_macro_derive(IsTree, attributes(tree))]
pub fn is_tree(input: TokenStream) -> TokenStream {
    let ast = syn::parse_macro_input!(input as syn::DeriveInput);
    Type::from(ast).derive().into()
}