rpc_router_macros/
lib.rs

1// region:    --- Modules
2
3mod derive_handler_error;
4mod derive_params;
5mod derive_resource;
6
7use proc_macro::TokenStream;
8
9use crate::derive_handler_error::drive_rpc_handler_error_inner;
10use crate::derive_params::derive_rpc_params_inner;
11use crate::derive_resource::derive_rpc_resource_inner;
12
13// endregion: --- Modules
14
15/// Will implement `IntoHandlerError` for this target type.
16/// The target type must implement `std::error::Error`
17#[proc_macro_derive(RpcHandlerError)]
18pub fn derive_rpc_handler_error(input: TokenStream) -> TokenStream {
19	drive_rpc_handler_error_inner(input)
20}
21
22/// Will implement `IntoParams` for this target type.
23/// The target type must implement `Deserialize`
24#[proc_macro_derive(RpcParams)]
25pub fn derive_rpc_params(input: TokenStream) -> TokenStream {
26	derive_rpc_params_inner(input)
27}
28
29/// Will implement `FromResources` for this target type.
30/// The target type must implement `Clone + Send + Sync`
31#[proc_macro_derive(RpcResource)]
32pub fn derive_rpc_resource(input: TokenStream) -> TokenStream {
33	derive_rpc_resource_inner(input)
34}