pub struct InactiveReceiver<T> { /* private fields */ }
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§

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));

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));
Examples found in repository?
src/lib.rs (line 1655)
1654
1655
1656
    pub fn activate(self) -> Receiver<T> {
        self.activate_cloned()
    }

Returns the channel capacity.

See Receiver::capacity documentation for examples.

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.

If overflow mode is enabled on this channel.

See Receiver::overflow documentation for examples.

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.

If sender will wait for active receivers.

If set to false, Send will resolve immediately with a SendError. Defaults to true.

Examples
use async_broadcast::broadcast;

let (_, r) = broadcast::<i32>(5);
let r = r.deactivate();
assert!(r.await_active());

Specify if sender will wait for active receivers.

If set to false, Send will resolve immediately with a SendError. Defaults to true.

Examples
use async_broadcast::broadcast;

let (s, r) = broadcast::<i32>(2);
s.broadcast(1).await.unwrap();

let mut r = r.deactivate();
r.set_await_active(false);
assert!(s.broadcast(2).await.is_err());

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.

Returns true if the channel is closed.

See Receiver::is_closed documentation for examples.

Returns true if the channel is empty.

See Receiver::is_empty documentation for examples.

Returns true if the channel is full.

See Receiver::is_full documentation for examples.

Returns the number of messages in the channel.

See Receiver::len documentation for examples.

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);

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);

Returns the number of senders for the channel.

See Receiver::sender_count documentation for examples.

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Executes the destructor for this type. Read more

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.