Skip to main content

service

Macro service 

Source
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;
    }
}