workflow_rpc_macros/
lib.rs1use proc_macro::TokenStream;
2use proc_macro_error::proc_macro_error;
3use quote::quote;
4use syn::parse_macro_input;
5mod method;
6
7#[proc_macro]
8#[proc_macro_error]
9pub fn server_method(input: TokenStream) -> TokenStream {
10 let result = parse_macro_input!(input as method::Method);
11 let ts = quote! {
12 workflow_rpc::server::Method::new(#result)
13 };
14 ts.into()
15}
16
17#[proc_macro]
18#[proc_macro_error]
19pub fn server_notification(input: TokenStream) -> TokenStream {
20 let result = parse_macro_input!(input as method::Method);
21 let ts = quote! {
22 workflow_rpc::server::Notification::new(#result)
23 };
24 ts.into()
25}
26
27#[proc_macro]
28#[proc_macro_error]
29pub fn client_notification(input: TokenStream) -> TokenStream {
30 let result = parse_macro_input!(input as method::Method);
31 let ts = quote! {
32 workflow_rpc::client::Notification::new(#result)
33 };
34 ts.into()
35}