workflow_rpc_macros/
lib.rs1use proc_macro::TokenStream;
6use proc_macro_error3::proc_macro_error;
7use quote::quote;
8use syn::parse_macro_input;
9mod method;
10
11#[proc_macro]
15#[proc_macro_error]
16pub fn server_method(input: TokenStream) -> TokenStream {
17 let result = parse_macro_input!(input as method::Method);
18 let ts = quote! {
19 workflow_rpc::server::Method::new(#result)
20 };
21 ts.into()
22}
23
24#[proc_macro]
28#[proc_macro_error]
29pub fn server_notification(input: TokenStream) -> TokenStream {
30 let result = parse_macro_input!(input as method::Method);
31 let ts = quote! {
32 workflow_rpc::server::Notification::new(#result)
33 };
34 ts.into()
35}
36
37#[proc_macro]
41#[proc_macro_error]
42pub fn client_notification(input: TokenStream) -> TokenStream {
43 let result = parse_macro_input!(input as method::Method);
44 let ts = quote! {
45 workflow_rpc::client::Notification::new(#result)
46 };
47 ts.into()
48}