mesh_channel

Struct Receiver

Source
pub struct Receiver<T>(/* private fields */);
Expand description

The receiving half of a channel returned by channel.

Implementations§

Source§

impl<T> Receiver<T>

Source

pub fn new() -> Receiver<T>

Creates a new receiver with no senders.

Receives will fail with RecvError::Closed until Self::sender is called.

Source

pub fn recv(&mut self) -> Recv<'_, T>

Consumes and returns the next message, waiting until one is available.

Returns immediately when the channel is closed or failed.

let (send, mut recv) = channel();
send.send(5u32);
drop(send);
assert_eq!(recv.recv().await.unwrap(), 5);
assert!(matches!(recv.recv().await.unwrap_err(), RecvError::Closed));
Source

pub fn try_recv(&mut self) -> Result<T, TryRecvError>

Consumes and returns the next message, if there is one.

Otherwise, returns whether the channel is empty, closed, or failed.

let (send, mut recv) = channel();
send.send(5u32);
drop(send);
assert_eq!(recv.try_recv().unwrap(), 5);
assert!(matches!(recv.try_recv().unwrap_err(), TryRecvError::Closed));
Source

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

Polls for the next message.

If one is available, consumes and returns it. If the channel is closed or failed, fails. Otherwise, registers the current task to wake when a message is available or the channel is closed or fails.

Source

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

Creates a new sender for sending data to this receiver.

Note that this may transition the channel from the closed to open state.

Source§

impl<T> Receiver<T>
where T: MeshField,

Source

pub fn bridge(self, sender: Sender<T>)

Bridges this and sender together, consuming both self and sender.

See Sender::bridge for more details.

Trait Implementations§

Source§

impl<T> Debug for Receiver<T>

Source§

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

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

impl<T> Default for Receiver<T>

Source§

fn default() -> Receiver<T>

Returns the “default value” for a type. Read more
Source§

impl<T> DefaultEncoding for Receiver<T>
where T: MeshField,

Source§

type Encoding = PortField

The encoding to use for the serialization. Read more
Source§

impl<T> From<Port> for Receiver<T>
where T: MeshField,

Source§

fn from(port: Port) -> Receiver<T>

Converts to this type from the input type.
Source§

impl<T> FusedStream for Receiver<T>

Source§

fn is_terminated(&self) -> bool

Returns true if the stream should no longer be polled.
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

Auto Trait Implementations§

§

impl<T> Freeze for Receiver<T>

§

impl<T> !RefUnwindSafe for Receiver<T>

§

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

§

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

§

impl<T> Unpin for Receiver<T>

§

impl<T> !UnwindSafe 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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more