async_ecs_derive/
lib.rs

1#![recursion_limit = "256"]
2
3extern crate proc_macro;
4extern crate proc_macro2;
5#[macro_use]
6extern crate quote;
7#[macro_use]
8extern crate syn;
9
10mod component;
11mod system_data;
12
13use proc_macro::TokenStream;
14
15#[proc_macro_derive(SystemData)]
16pub fn system_data(input: TokenStream) -> TokenStream {
17    let ast = syn::parse(input).unwrap();
18
19    let gen = system_data::execute(&ast);
20
21    gen.into()
22}
23
24#[proc_macro_derive(Component, attributes(storage))]
25pub fn component(input: TokenStream) -> TokenStream {
26    let ast = syn::parse(input).unwrap();
27
28    let gen = component::execute(&ast);
29
30    gen.into()
31}