Files
bevy_controls/crate/bevy_controls_derive/src/lib.rs
T
2024-02-17 05:21:17 +03:00

30 lines
741 B
Rust

extern crate proc_macro;
use proc_macro::TokenStream;
use quote::quote;
use syn;
#[proc_macro_derive(Action)]
pub fn action(input: TokenStream) -> TokenStream {
let ast = syn::parse::<syn::DeriveInput>(input).unwrap();
let name = &ast.ident;
let gen = quote! {
impl bevy_controls::contract::Action for #name {}
impl bevy_controls::contract::ActionInner for #name {}
};
gen.into()
}
#[proc_macro_derive(GameState)]
pub fn game_state(input: TokenStream) -> TokenStream {
let ast = syn::parse::<syn::DeriveInput>(input).unwrap();
let name = &ast.ident;
let gen = quote! {
impl bevy_controls::contract::GameState for #name {}
impl bevy_controls::contract::GameStateInner for #name {}
};
gen.into()
}