pub struct SentRequestHandle<Body> { /* private fields */ }
Expand description

A handle for a sent request.

The handle can be used to receive updates and the response from the remote peer, and to send update messages to the remote peer.

Implementations§

source§

impl<Body> SentRequestHandle<Body>

source

pub fn request_id(&self) -> u32

Get the request ID of the sent request.

source

pub fn service_id(&self) -> i32

Get the service ID of the initial request message.

source

pub fn write_handle(&self) -> SentRequestWriteHandle<Body>

Create a write handle for this request.

The write handle can be cloned and used even while this handle is mutably borrowed.

source

pub async fn recv_update(&mut self) -> Option<Message<Body>>

Receive the next update message of the request from the remote peer.

This function returns None if the final response is received instead of an update message. If that happens, the response message can be read using Self::recv_response.

source

pub async fn recv_response(&mut self) -> Result<Message<Body>, Error>

Receive the final response of the request from the remote peer.

This function returns an error if the received message is an update message. You can detect this situation using Error::is_unexpected_message_type(). Afterwards, the update message can be read using Self::recv_update. To ensure that there are no update messages left, keep calling Self::recv_update untill it returns Ok(None).

source

pub async fn send_update( &self, service_id: i32, body: impl Into<Body> ) -> Result<(), Error>

Send an update for the request to the remote peer.

Trait Implementations§

source§

impl<Body> Debug for SentRequestHandle<Body>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<Body> !RefUnwindSafe for SentRequestHandle<Body>

§

impl<Body> Send for SentRequestHandle<Body>
where Body: Send,

§

impl<Body> Sync for SentRequestHandle<Body>
where Body: Send + Sync,

§

impl<Body> Unpin for SentRequestHandle<Body>
where Body: Unpin,

§

impl<Body> !UnwindSafe for SentRequestHandle<Body>

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> 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, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

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

§

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.