Skip to main content

Receiver

Struct Receiver 

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

The receiving end of a channel which implements the Stream trait.

This is created by the channel function.

Implementations§

Source§

impl<T> Receiver<T>

Source

pub fn sender(&self) -> Sender<T>

Creates an additional sender for this channel.

Source

pub fn close(&self)

Closes the receiving half of a channel, without dropping it.

This prevents any further messages from being sent on the channel while still enabling the receiver to drain messages that are buffered.

Source

pub fn is_closed(&self) -> bool

Returns whether this channel is closed.

Source

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

Waits for the next message.

Returns None once the channel is closed or every sender has been dropped, and every buffered message has been received.

Source

pub fn poll_recv(&self, cx: &mut Context<'_>) -> Poll<Option<T>>

Polls for the next message.

Returns Ready(None) once the channel is closed or every sender has been dropped, and every buffered message has been received.

Trait Implementations§

Source§

impl<T> Debug for Receiver<T>
where T: Debug,

Source§

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

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

impl<T> Drop for Receiver<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
Source§

impl<T> FusedStream for Receiver<T>

Source§

fn is_terminated(&self) -> bool

Returns true once the channel is closed and every buffered message has been received.

Source§

impl<T> Stream for Receiver<T>

Source§

type Item = T

Values yielded by the stream.
Source§

fn poll_next( self: Pin<&mut Receiver<T>>, cx: &mut Context<'_>, ) -> Poll<Option<<Receiver<T> as Stream>::Item>>

Attempt to pull out the next value of this stream, registering the current task for wakeup if the value is not yet available, and returning None if the stream is exhausted. Read more
§

fn size_hint(&self) -> (usize, Option<usize>)

Returns the bounds on the remaining length of the stream. Read more
Source§

impl<T> Unpin for Receiver<T>

Source§

impl<T> UnwindSafe for Receiver<T>

Auto Trait Implementations§

§

impl<T> !RefUnwindSafe for Receiver<T>

§

impl<T> !Send for Receiver<T>

§

impl<T> !Sync for Receiver<T>

§

impl<T> Freeze for Receiver<T>

§

impl<T> UnsafeUnpin for Receiver<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.
§

impl<S, T, E> TryStream for S
where S: Stream<Item = Result<T, E>> + ?Sized,

§

type Ok = T

The type of successful values yielded by this future
§

type Error = E

The type of failures yielded by this future
§

fn try_poll_next( self: Pin<&mut S>, cx: &mut Context<'_>, ) -> Poll<Option<Result<<S as TryStream>::Ok, <S as TryStream>::Error>>>

Poll this TryStream as if it were a Stream. Read more