mobot_derive/
lib.rs

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}