1#![cfg_attr(docsrs, feature(doc_cfg))]
5#![doc(html_favicon_url = "https://nil.dev.br/favicon.png")]
6#![feature(trim_prefix_suffix)]
7
8mod infrastructure;
9mod npc;
10mod report;
11mod unit;
12
13use proc_macro::TokenStream;
14
15#[proc_macro_derive(Building)]
16pub fn derive_building(input: TokenStream) -> TokenStream {
17 infrastructure::impl_building(&syn::parse(input).unwrap())
18}
19
20#[proc_macro_derive(Mine)]
21pub fn derive_mine(input: TokenStream) -> TokenStream {
22 infrastructure::impl_mine(&syn::parse(input).unwrap())
23}
24
25#[proc_macro_derive(Precursor)]
26pub fn derive_precursor(input: TokenStream) -> TokenStream {
27 npc::impl_precursor(&syn::parse(input).unwrap())
28}
29
30#[proc_macro_derive(Report)]
31pub fn derive_report(input: TokenStream) -> TokenStream {
32 report::impl_report(&syn::parse(input).unwrap())
33}
34
35#[proc_macro_derive(Storage)]
36pub fn derive_storage(input: TokenStream) -> TokenStream {
37 infrastructure::impl_storage(&syn::parse(input).unwrap())
38}
39
40#[proc_macro_derive(Unit)]
41pub fn derive_unit(input: TokenStream) -> TokenStream {
42 unit::impl_unit(&syn::parse(input).unwrap())
43}