Struct NonBlockingSender

Source
pub struct NonBlockingSender<T> { /* private fields */ }
Expand description

A SPSC sender guaranteed to never block when sending a message. This is a strong constraint, enforced by WebAssembly on the main thread, so this should only be preferred over other mpsc channels where non-blocking behaviour is required.

Cannot be cloned, so if you want multiple clients to send messages then you need a sender that may block for very short periods when sending a message - see NonBlockingSender::mpsc.

Implementations§

Source§

impl<T> NonBlockingSender<T>

Source

pub fn try_send(&mut self, message: T) -> SendResult<T>

Tries to send a message to the receiving channel without ever blocking, even briefly.

§Result

This method fails if the receiving queue is full, or if the receiver has been dropped.

Source

pub fn mpsc(self) -> MicroBlockingSender<T>

Makes this channel into a mpsc channel, but where the sender is allowed to block for very small durations.

Trait Implementations§

Source§

impl<T> Drop for NonBlockingSender<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more

Auto Trait Implementations§

§

impl<T> Freeze for NonBlockingSender<T>

§

impl<T> RefUnwindSafe for NonBlockingSender<T>
where T: RefUnwindSafe,

§

impl<T> Send for NonBlockingSender<T>
where T: Send,

§

impl<T> Sync for NonBlockingSender<T>
where T: Sync + Send,

§

impl<T> Unpin for NonBlockingSender<T>
where T: Unpin,

§

impl<T> UnwindSafe for NonBlockingSender<T>

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.