1#![recursion_limit = "128"]
2
3extern crate proc_macro;
4
5use proc_macro::TokenStream;
6use syn::parse_macro_input;
7
8mod action;
9mod player;
10mod players;
11mod public;
12
13#[proc_macro_derive(Action, attributes(action))]
14pub fn derive_action(input: TokenStream) -> TokenStream {
15 action::derive(parse_macro_input!(input)).into()
16}
17
18#[proc_macro_derive(Public, attributes(public_fields))]
19pub fn derive_public(input: TokenStream) -> TokenStream {
20 public::derive(parse_macro_input!(input)).into()
21}
22
23#[proc_macro_derive(Player, attributes(player_fields))]
24pub fn derive_player(input: TokenStream) -> TokenStream {
25 player::derive(parse_macro_input!(input)).into()
26}
27
28#[proc_macro]
29pub fn use_default_players(input: TokenStream) -> TokenStream {
30 players::use_default(parse_macro_input!(input)).into()
31}