Skip to main content

WeightedReceiver

Struct WeightedReceiver 

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

The receiving half of a weighted channel.

Dropping the receiver closes the channel: any producer waiting for room in WeightedSender::send wakes with SendError::Closed.

Implementations§

Source§

impl<T> WeightedReceiver<T>

Source

pub async fn recv(&mut self) -> Option<Lease<T>>

Receive the next message, or None once every sender is dropped and the channel is drained.

The returned Lease holds the message’s budget until it is dropped, so hold it while the message is in use, or call Lease::into_inner to take the value and free the budget now.

Source

pub fn close(&mut self)

Close the channel without dropping the receiver: senders stop, but messages already in the channel can still be drained with recv.

Trait Implementations§

Source§

impl<T> Debug for WeightedReceiver<T>

Source§

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

Formats the value using the given formatter. Read more
Source§

impl<T> Drop for WeightedReceiver<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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 = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

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.