Worker

Struct Worker 

Source
pub struct Worker<IO, I2C, SPI, UART>
where IO: WorkerIo, I2C: Write + Read + WriteRead, SPI: Write<u8> + Transfer<u8>, UART: Write<u8> + Read<u8>,
{ pub io: IO, pub i2c: I2C, pub spi: SPI, pub uart: UART, /* private fields */ }
Expand description

A Pretty HAL Machine Worker

This struct is intended to contain all of the shared logic between workers. It is highly generic, which should allow the logic to execute regardless of the MCU the worker is executing on.

Fields§

§io: IO§i2c: I2C§spi: SPI§uart: UART

Implementations§

Source§

impl<IO, I2C, SPI, UART> Worker<IO, I2C, SPI, UART>
where IO: WorkerIo, I2C: Write + Read + WriteRead, SPI: Write<u8> + Transfer<u8>, UART: Write<u8> + Read<u8>,

Source

pub fn new(io: IO, i2c: I2C, spi: SPI, uart: UART) -> Self

Source

pub fn step(&mut self) -> Result<(), Error>

Process any pending messages to the worker

Auto Trait Implementations§

§

impl<IO, I2C, SPI, UART> Freeze for Worker<IO, I2C, SPI, UART>
where IO: Freeze, I2C: Freeze, SPI: Freeze, UART: Freeze,

§

impl<IO, I2C, SPI, UART> RefUnwindSafe for Worker<IO, I2C, SPI, UART>

§

impl<IO, I2C, SPI, UART> Send for Worker<IO, I2C, SPI, UART>
where IO: Send, I2C: Send, SPI: Send, UART: Send,

§

impl<IO, I2C, SPI, UART> Sync for Worker<IO, I2C, SPI, UART>
where IO: Sync, I2C: Sync, SPI: Sync, UART: Sync,

§

impl<IO, I2C, SPI, UART> Unpin for Worker<IO, I2C, SPI, UART>
where IO: Unpin, I2C: Unpin, SPI: Unpin, UART: Unpin,

§

impl<IO, I2C, SPI, UART> UnwindSafe for Worker<IO, I2C, SPI, UART>
where IO: UnwindSafe, I2C: UnwindSafe, SPI: UnwindSafe, UART: UnwindSafe,

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.