1use proc_macro::TokenStream;
4use syn::{parse_macro_input, DeriveInput};
5
6mod event;
7mod rpc;
8mod subscribe;
9
10#[proc_macro_derive(Event, attributes(event))]
12pub fn event(input: TokenStream) -> TokenStream {
13 let input = parse_macro_input!(input as DeriveInput);
14 event::derive_event_impl(input)
15}
16
17#[proc_macro_attribute]
19pub fn subscribe(args: TokenStream, input: TokenStream) -> TokenStream {
20 let input = parse_macro_input!(input as syn::ItemFn);
21 subscribe::subscribe_impl(args, input)
22}
23
24#[proc_macro_attribute]
28pub fn rpc(args: TokenStream, input: TokenStream) -> TokenStream {
29 rpc::rpc_impl(args, input)
30}
31
32#[proc_macro_attribute]
34pub fn method(_args: TokenStream, input: TokenStream) -> TokenStream {
35 input
37}
38
39#[proc_macro_attribute]
41pub fn subscription(_args: TokenStream, input: TokenStream) -> TokenStream {
42 input
44}