1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
extern crate proc_macro; mod spatial_component; mod spatial_enum; mod spatial_type; mod utils; use crate::spatial_component::generate_component; use crate::spatial_enum::generate_enum; use crate::spatial_type::generate_type; use proc_macro::TokenStream; #[macro_use] extern crate quote; #[proc_macro_derive(SpatialComponent, attributes(id, field_id))] pub fn spatial_component(item: TokenStream) -> TokenStream { generate_component(item) } #[proc_macro_derive(SpatialType, attributes(field_id))] pub fn spatial_type(item: TokenStream) -> TokenStream { generate_type(item) } #[proc_macro_derive(SpatialEnum)] pub fn spatial_enum(item: TokenStream) -> TokenStream { generate_enum(item) }