#[non_exhaustive]
pub enum ControllerCommand { Transmit { byte: u8, }, Receive { count: u8, }, Stop, ReceiveAndDiscard { drop: u8, }, Start { addr: u8, expect: Response, }, }
Expand description

LPI2C controller commands.

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Transmit

Fields

§byte: u8

The data byte to enqueue.

A transmit command.

§

Receive

Fields

§count: u8

How many bytes to receive.

A receive command.

§

Stop

Generate a STOP condition.

§

ReceiveAndDiscard

Fields

§drop: u8

How many bytes to receive and drop.

Receive and discard.

§

Start

Fields

§addr: u8

The device you’re addressing.

You’re responsible for shifting the address, and setting the read/write bit. Consider using the read() and write() methods for this purpose.

§expect: Response

The expected response from the device.

Generate a (repeated) start, transmit the address addr, and expect the expect response from a device.

Implementations§

source§

impl ControllerCommand

source

pub const fn read(addr: u8) -> Self

Creates a (repeat) start command that describes a read from a device with address addr.

The expected response is ACK.

source

pub const fn write(addr: u8) -> Self

Creates a (repeat) start command that describes a write to a device with address addr.

The expected response is ACK.

Trait Implementations§

source§

impl Clone for ControllerCommand

source§

fn clone(&self) -> ControllerCommand

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for ControllerCommand

source§

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

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

impl PartialEq for ControllerCommand

source§

fn eq(&self, other: &ControllerCommand) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for ControllerCommand

source§

impl Eq for ControllerCommand

source§

impl StructuralEq for ControllerCommand

source§

impl StructuralPartialEq for ControllerCommand

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, U> TryFrom<U> for T
where U: Into<T>,

§

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>,

§

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.