pub struct LoadBalancedClient<T, C, S>{ /* private fields */ }Implementations§
Source§impl<T, C, S> LoadBalancedClient<T, C, S>where
T: MessageChannel<C> + 'static,
C: Codec + Clone + Default + 'static,
S: LoadBalanceStrategy + 'static,
impl<T, C, S> LoadBalancedClient<T, C, S>where
T: MessageChannel<C> + 'static,
C: Codec + Clone + Default + 'static,
S: LoadBalanceStrategy + 'static,
pub fn new( load_balancer: Arc<LoadBalancer<S>>, factory: Arc<dyn ClientFactory<T, C>>, ) -> Self
pub async fn init(&self) -> Result<()>
pub async fn call<Req, Resp>(&self, method: &str, request: &Req) -> Result<Resp>where
Req: Serialize,
Resp: for<'de> Deserialize<'de>,
pub async fn call_server_stream<Req, Resp>(
&self,
method: &str,
request: &Req,
) -> Result<StreamReceiver<Resp, C>>where
Req: Serialize,
Resp: for<'de> Deserialize<'de>,
pub async fn notify<Req: Serialize>( &self, method: &str, request: &Req, ) -> Result<()>
pub fn load_balancer(&self) -> &LoadBalancer<S>
pub fn connection_count(&self) -> usize
pub fn release_stream(&self, stream_id: StreamId)
Trait Implementations§
Source§impl<T, C, S> Debug for LoadBalancedClient<T, C, S>
impl<T, C, S> Debug for LoadBalancedClient<T, C, S>
Auto Trait Implementations§
impl<T, C, S> !Freeze for LoadBalancedClient<T, C, S>
impl<T, C, S> !RefUnwindSafe for LoadBalancedClient<T, C, S>
impl<T, C, S> Send for LoadBalancedClient<T, C, S>
impl<T, C, S> Sync for LoadBalancedClient<T, C, S>
impl<T, C, S> Unpin for LoadBalancedClient<T, C, S>
impl<T, C, S> UnsafeUnpin for LoadBalancedClient<T, C, S>
impl<T, C, S> !UnwindSafe for LoadBalancedClient<T, C, S>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more