Struct RouterAsyncReqChannel

Source
pub struct RouterAsyncReqChannel<'r> { /* private fields */ }
Expand description

A request channel.

Implementations§

Source§

impl<'r> RouterAsyncReqChannel<'r>

Source

pub fn tag_noexpire(&mut self) -> Result<()>

Set the tag to not expire. That allows multiple calls to send().

async_drop must be called prior to drop.

Source

pub async fn async_drop(self)

This must be called prior to drop whenever tag_noexpire() is used.

A workaround until async drop is implemented in Rust itself. https://github.com/rust-lang/rust/issues/126482

Trait Implementations§

Source§

impl AsyncReqChannel for RouterAsyncReqChannel<'_>

A request channel

Created with Router::req().

Source§

async fn send_vectored( &mut self, typ: MsgType, integrity_check: MsgIC, bufs: &[&[u8]], ) -> Result<()>

Send a message.

This will async block until the message has been enqueued to the physical port. Note that it will return failure immediately if the MCTP stack has no available tags, that behaviour may need changing in future.

Subsequent calls will fail unless tag_noexpire() was performed.

Source§

async fn recv<'f>( &mut self, buf: &'f mut [u8], ) -> Result<(MsgType, MsgIC, &'f mut [u8])>

Source§

fn remote_eid(&self) -> Eid

Return the remote Endpoint ID
Source§

fn send( &mut self, typ: MsgType, buf: &[u8], ) -> impl Future<Output = Result<(), Error>>

Source§

impl Drop for RouterAsyncReqChannel<'_>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

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>,

Source§

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>,

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.