Skip to main content

Client

Struct Client 

Source
pub struct Client<P: Protocol> { /* private fields */ }
Expand description

RPC client handle.

Implementations§

Source§

impl<P: Protocol> Client<P>

Source

pub fn is_same_session(&self, other: &Self) -> bool

Returns whether both clients refer to the same RPC session.

Source

pub async fn close(self)

Gracefully closes the session.

This prevents new calls from being sent and completes all pending calls with Error::ConnectionClosed. It then drains committed writes, closes the outgoing transport, and waits for the peer to close its outgoing transport. It affects every clone of this client handle.

This operation has no timeout. A peer that does not close its transport can make it wait indefinitely; callers that need a bound should apply a timeout and use Client::abort if the peer does not cooperate. Windows named pipes do not support half-close, so after draining the writer this closes the shared pipe instead of waiting for peer EOF.

Source

pub async fn abort(self)

Abruptly closes the session.

This prevents new calls from being sent, completes all pending calls with Error::ConnectionClosed, and stops the reader without waiting for the peer to close its transport. Committed writes are allowed to finish their current fragments before the writer exits. It affects every clone of this client handle.

Source

pub fn call(&self, request: P::Request) -> Call<P>

Issue a call request.

Source

pub fn call_with_trailer(&self, request: P::Request) -> TrailerSend<Call<P>>

Issue a call request with a byte trailer.

Write the trailer through the returned TrailerSend, then call TrailerSend::finish to obtain the Call. Dropping it sender without finishing aborts the trailer and cancels the partially sent request.

Trait Implementations§

Source§

impl<P: Protocol> Clone for Client<P>

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<P> !RefUnwindSafe for Client<P>

§

impl<P> !UnwindSafe for Client<P>

§

impl<P> Freeze for Client<P>
where Arc<Inner<P>>: Freeze,

§

impl<P> Send for Client<P>
where Arc<Inner<P>>: Send,

§

impl<P> Sync for Client<P>
where Arc<Inner<P>>: Sync,

§

impl<P> Unpin for Client<P>
where Arc<Inner<P>>: Unpin,

§

impl<P> UnsafeUnpin for Client<P>
where Arc<Inner<P>>: UnsafeUnpin,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.