Struct async_broadcast::InactiveReceiver[][src]

pub struct InactiveReceiver<T> { /* fields omitted */ }
Expand description

An inactive receiver.

An inactive receiver is a receiver that is unable to receive messages. It’s only useful for keeping a channel open even when no associated active receivers exist.

Implementations

impl<T> InactiveReceiver<T>[src]

pub fn activate(self) -> Receiver<T>[src]

Convert to an activate Receiver.

Consumes self. Use InactiveReceiver::activate_cloned if you want to keep self.

Examples

use async_broadcast::{broadcast, TrySendError};

let (s, r) = broadcast(1);
let inactive = r.deactivate();
assert_eq!(s.try_broadcast(10), Err(TrySendError::Inactive(10)));

let mut r = inactive.activate();
assert_eq!(s.try_broadcast(10), Ok(None));
assert_eq!(r.try_recv(), Ok(10));

pub fn activate_cloned(&self) -> Receiver<T>[src]

Create an activate Receiver for the associated channel.

Examples

use async_broadcast::{broadcast, TrySendError};

let (s, r) = broadcast(1);
let inactive = r.deactivate();
assert_eq!(s.try_broadcast(10), Err(TrySendError::Inactive(10)));

let mut r = inactive.activate_cloned();
assert_eq!(s.try_broadcast(10), Ok(None));
assert_eq!(r.try_recv(), Ok(10));

pub fn capacity(&self) -> usize[src]

Returns the channel capacity.

See Receiver::capacity documentation for examples.

pub fn set_capacity(&mut self, new_cap: usize)[src]

Set the channel capacity.

There are times when you need to change the channel’s capacity after creating it. If the new_cap is less than the number of messages in the channel, the oldest messages will be dropped to shrink the channel.

See Receiver::set_capacity documentation for examples.

pub fn overflow(&self) -> bool[src]

If overflow mode is enabled on this channel.

See Receiver::overflow documentation for examples.

pub fn set_overflow(&mut self, overflow: bool)[src]

Set overflow mode on the channel.

When overflow mode is set, broadcasting to the channel will succeed even if the channel is full. It achieves that by removing the oldest message from the channel.

See Receiver::set_overflow documentation for examples.

pub fn close(&self) -> bool[src]

Closes the channel.

Returns true if this call has closed the channel and it was not closed already.

The remaining messages can still be received.

See Receiver::close documentation for examples.

pub fn is_closed(&self) -> bool[src]

Returns true if the channel is closed.

See Receiver::is_closed documentation for examples.

pub fn is_empty(&self) -> bool[src]

Returns true if the channel is empty.

See Receiver::is_empty documentation for examples.

pub fn is_full(&self) -> bool[src]

Returns true if the channel is full.

See Receiver::is_full documentation for examples.

pub fn len(&self) -> usize[src]

Returns the number of messages in the channel.

See Receiver::len documentation for examples.

pub fn receiver_count(&self) -> usize[src]

Returns the number of receivers for the channel.

This does not include inactive receivers. Use InactiveReceiver::inactive_receiver_count if you’re interested in that.

Examples

use async_broadcast::broadcast;

let (s, r) = broadcast::<()>(1);
assert_eq!(s.receiver_count(), 1);
let r = r.deactivate();
assert_eq!(s.receiver_count(), 0);

let r2 = r.activate_cloned();
assert_eq!(r.receiver_count(), 1);
assert_eq!(r.inactive_receiver_count(), 1);

pub fn inactive_receiver_count(&self) -> usize[src]

Returns the number of inactive receivers for the channel.

Examples

use async_broadcast::broadcast;

let (s, r) = broadcast::<()>(1);
assert_eq!(s.receiver_count(), 1);
let r = r.deactivate();
assert_eq!(s.receiver_count(), 0);

let r2 = r.activate_cloned();
assert_eq!(r.receiver_count(), 1);
assert_eq!(r.inactive_receiver_count(), 1);

pub fn sender_count(&self) -> usize[src]

Returns the number of senders for the channel.

See Receiver::sender_count documentation for examples.

Trait Implementations

impl<T> Clone for InactiveReceiver<T>[src]

fn clone(&self) -> Self[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl<T: Debug> Debug for InactiveReceiver<T>[src]

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

Formats the value using the given formatter. Read more

impl<T> Drop for InactiveReceiver<T>[src]

fn drop(&mut self)[src]

Executes the destructor for this type. Read more

Auto Trait Implementations

impl<T> RefUnwindSafe for InactiveReceiver<T>

impl<T> Send for InactiveReceiver<T> where
    T: Send

impl<T> Sync for InactiveReceiver<T> where
    T: Send

impl<T> Unpin for InactiveReceiver<T>

impl<T> UnwindSafe for InactiveReceiver<T>

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

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

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

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

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

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

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

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

Performs the conversion.