Struct mesh_channel::MpscReceiver

source ·
pub struct MpscReceiver<T> { /* private fields */ }
Expand description

Receiver type for mpsc_channel().

Implementations§

source§

impl<T: MeshField> MpscReceiver<T>

source

pub fn upcast<U: MeshField>(self) -> MpscReceiver<U>
where Self: Upcast<MpscReceiver<U>>,

Upcasts this receiver to one that can receive values whose encoding is a superset of T’s.

source

pub fn force_downcast<U: MeshField>(self) -> MpscReceiver<U>
where MpscReceiver<U>: Upcast<Self>,

Downcasts this receiver to one that can receive values whose encoding is a subset of T’s.

Although this is memory safe, it can cause decoding failures if the associated sender sends values that don’t decode to U.

source§

impl<T: 'static + Send> MpscReceiver<T>

source

pub fn new() -> Self

Creates a new receiver with no senders.

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

source

pub fn sender(&mut self) -> MpscSender<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

pub fn recv(&mut self) -> impl Future<Output = Result<T, RecvError>> + '_

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

Returns immediately when the channel is closed or failed.

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

Trait Implementations§

source§

impl<T> Debug for MpscReceiver<T>

source§

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

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

impl<T: 'static + Send> Default for MpscReceiver<T>

source§

fn default() -> Self

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

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

source§

type Encoding = TableEncoder

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

impl<T: 'static + Send> FusedStream for MpscReceiver<T>

source§

fn is_terminated(&self) -> bool

Returns true if the stream should no longer be polled.
source§

impl<T: 'static + Send> Stream for MpscReceiver<T>

source§

type Item = T

Values yielded by the stream.
source§

fn poll_next( self: Pin<&mut Self>, cx: &mut Context<'_>, ) -> Poll<Option<Self::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<'encoding, T> StructDecodeMetadata<'encoding, Resource> for MpscReceiver<T>
where T: MeshField,

source§

const DECODERS: &'static [ErasedDecoderEntry] = _

The list of decoder vtables.
source§

impl<T> StructEncodeMetadata<Resource> for MpscReceiver<T>
where T: MeshField,

source§

const ENCODERS: &'static [ErasedEncoderEntry] = _

The list of encoder vtables.
source§

impl<T> StructMetadata for MpscReceiver<T>
where T: MeshField,

source§

const NUMBERS: &'static [u32] = _

The field numbers for each field.
source§

const OFFSETS: &'static [usize] = _

The byte offset to each field within the struct.
source§

impl<T, U> Downcast<MpscReceiver<U>> for MpscReceiver<T>
where T: Downcast<U>,

Auto Trait Implementations§

§

impl<T> Freeze for MpscReceiver<T>

§

impl<T> !RefUnwindSafe for MpscReceiver<T>

§

impl<T> Send for MpscReceiver<T>

§

impl<T> Sync for MpscReceiver<T>

§

impl<T> Unpin for MpscReceiver<T>

§

impl<T> !UnwindSafe for MpscReceiver<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> SerializeMessage for T
where T: MeshPayload,

source§

type Concrete = T

The underlying concrete message type.
source§

fn compute_message_size(&mut self, sizer: MessageSizer<'_>)

Computes the message size, as in MessageEncode::compute_message_size.
source§

fn write_message(self, writer: MessageWriter<'_, '_, Resource>)

Writes the message, as in MessageEncode::write_message.
source§

fn extract(self) -> <T as SerializeMessage>::Concrete

Extract the concrete message.
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
source§

impl<T, U> Upcast<U> for T
where U: Downcast<T>,