use proc_macro::TokenStream;
use syn::{parse_macro_input, DeriveInput};
mod event;
mod rpc;
mod subscribe;
#[proc_macro_derive(Event, attributes(event))]
pub fn event(input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as DeriveInput);
event::derive_event_impl(input)
}
#[proc_macro_attribute]
pub fn subscribe(args: TokenStream, input: TokenStream) -> TokenStream {
let input = parse_macro_input!(input as syn::ItemFn);
subscribe::subscribe_impl(args, input)
}
#[proc_macro_attribute]
pub fn rpc(args: TokenStream, input: TokenStream) -> TokenStream {
rpc::rpc_impl(args, input)
}
#[proc_macro_attribute]
pub fn method(_args: TokenStream, input: TokenStream) -> TokenStream {
input
}
#[proc_macro_attribute]
pub fn subscription(_args: TokenStream, input: TokenStream) -> TokenStream {
input
}