service!() { /* proc-macro */ }Expand description
Module-level macro for defining an RPC service.
Generates a module containing Service trait, Client struct,
server() wrapper function, and all request/response types.
By default, both server and client code are generated.
Use #[server] or #[client] to generate only one side.
§Examples
ⓘ
// Generate both server and client (default)
mill_rpc::service! {
service Calculator {
fn add(a: i32, b: i32) -> i32;
fn divide(a: f64, b: f64) -> f64;
}
}
// Server only
mill_rpc::service! {
#[server]
service Calculator {
fn add(a: i32, b: i32) -> i32;
}
}
// Client only (e.g. in a separate client crate)
mill_rpc::service! {
#[client]
service Calculator {
fn add(a: i32, b: i32) -> i32;
}
}