Struct SignalReceiver

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

The SignalReceiver is used to asynchronously receive messages from the shared message queue. Only one receiver can be active at a time; new receivers are created by cloning the original. When a receiver is cloned, it becomes the active receiver, and the previous receiver will no longer receive messages.

Implementations§

Source§

impl<T> SignalReceiver<T>

Source

pub fn recv(&self) -> impl Future<Output = Option<T>>

Asynchronously receives the next message from the queue. Only the active receiver is allowed to receive messages. If there are no messages in the queue, the receiver will wait until a new message is sent. If this receiver is not active, the future will return None.

Trait Implementations§

Source§

impl<T> Clone for SignalReceiver<T>

Source§

fn clone(&self) -> Self

Clones the receiver and makes the new receiver the active one. The original receiver will no longer receive messages after this clone. This ensures only the most recent receiver can access the message queue.

1.0.0 · Source§

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

Performs copy-assignment from source. Read more

Auto Trait Implementations§

§

impl<T> Freeze for SignalReceiver<T>

§

impl<T> RefUnwindSafe for SignalReceiver<T>

§

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

§

impl<T> Sync for SignalReceiver<T>
where T: Send,

§

impl<T> Unpin for SignalReceiver<T>

§

impl<T> UnwindSafe for SignalReceiver<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> 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 = 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.