workflow_rpc_macros/
lib.rs

1use 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}