riot_wrappers::msg::v2

Struct NoConfiguredMessages

Source
pub struct NoConfiguredMessages;
Available on riot_module_core_msg and crate feature with_msg_v2 only.

Implementations§

Source§

impl NoConfiguredMessages

The MessageSemantics of a thread that has made no previous commitment to receive any messages.

Source

pub(crate) unsafe fn new() -> Self

Create a new MessageSemantics object to split into ReceivePorts.

Conditions, violating which is a safety violation:

  • The thread must currently not allow sending any messages to it, or even created an otherwise unused NoConfiguredMessages

  • The thread must not terminate.

TBD: Add a version of the thread spawner that comes with all kinds of once-per-thread gadgets.

Trait Implementations§

Source§

impl MessageSemantics for NoConfiguredMessages

Source§

unsafe fn drop(_message: &mut ReceivedMessage<'_, Self>)

Panicking because if a thread receives unknown messages, it may for the same reason receive mistyped messages, and that’d be a safety violation that’s better shown in the most visible way.

If this is undesired, think twice about whether the source of the message really can’t happen to send messages of a number this threads expects (and handles as something different) as well. If it is still undesired, you can core::mem::forget() the message after having decoded all desired types.

Source§

fn typeno_is_known(&self, _typeno: u16) -> bool

Source§

fn split_off<NewType: Send, const NEW_TYPENO: u16>( self, ) -> (Processing<Self, NewType, NEW_TYPENO>, ReceivePort<NewType, NEW_TYPENO>, SendPort<NewType, NEW_TYPENO>)

Reduce the type into a new MessageSemantics that knows about one more typeno, and a ReceivePort that can be used to create a SendPort or to process incoming messages. Read more
Source§

fn receive(&self) -> ReceivedMessage<'_, Self>

Block to receive a single message
Source§

fn try_receive(&self) -> Option<ReceivedMessage<'_, Self>>

Receive a single message if one is available in the queue (or another thread is blocking to send a message, if no queue is used)

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> IntoSwitch for T

Source§

fn into_switch<ActiveLevel>(self) -> Switch<T, ActiveLevel>

Consumes the IoPin returning a Switch of the appropriate ActiveLevel. Read more
Source§

fn into_active_low_switch(self) -> Switch<Self, ActiveLow>
where Self: Sized,

Consumes the IoPin returning a Switch<IoPin, ActiveLow>. Read more
Source§

fn into_active_high_switch(self) -> Switch<Self, ActiveHigh>
where Self: Sized,

Consumes the IoPin returning a Switch<IoPin, ActiveHigh>. Read more
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.

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 0 bytes