rpcx_client/
lib.rs

1pub mod client;
2pub mod discovery;
3pub mod selector;
4pub mod xclient;
5
6pub use client::*;
7pub use discovery::*;
8pub use selector::*;
9pub use xclient::*;
10
11use async_trait::async_trait;
12
13use rpcx_protocol::{CallFuture, Metadata, Result, RpcxParam};
14
15#[async_trait]
16pub trait RpcxClient {
17    fn call<T>(
18        &mut self,
19        service_method: &str,
20        is_oneway: bool,
21        metadata: &Metadata,
22        args: &dyn RpcxParam,
23    ) -> Option<Result<T>>
24    where
25        T: RpcxParam + Default;
26
27    fn send<T>(
28        &mut self,
29        service_method: &str,
30        is_oneway: bool,
31        metadata: &Metadata,
32        args: &dyn RpcxParam,
33    ) -> CallFuture
34    where
35        T: RpcxParam + Default + Sync + Send + 'static;
36}