summaryrefslogtreecommitdiff
path: root/engine-macros/src/reflection.rs
blob: 825094bd00993edd6c71201169ed482a25688290 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
mod enum_impl;
mod field;
mod struct_impl;
mod visibility;

pub fn derive(input: proc_macro2::TokenStream) -> proc_macro2::TokenStream
{
    let input = syn::parse2::<syn::Item>(input).unwrap();

    match input {
        syn::Item::Struct(input) => struct_impl::generate(input),
        syn::Item::Enum(input) => enum_impl::generate(input),
        _ => panic!("Invalid input"),
    }
}