1use proc_macro::{self, TokenStream};
2use quote::quote;
3use syn::{parse_macro_input, DeriveInput};
4
5#[proc_macro_derive(BotState)]
6pub fn mobot_derive_botstate(input: TokenStream) -> TokenStream {
7 let DeriveInput { ident, .. } = parse_macro_input!(input);
8 let output = quote! {
9 impl mobot::handler::BotState for #ident {}
10 };
11 output.into()
12}
13
14#[proc_macro_derive(BotRequest)]
15pub fn mobot_derive_request(input: TokenStream) -> TokenStream {
16 let DeriveInput { ident, .. } = parse_macro_input!(input);
17 let output = quote! {
18 impl super::Request for #ident {}
19 };
20 output.into()
21}