pub enum Operation<'a, Word: 'static> {
Read(&'a mut [Word]),
Write(&'a [Word]),
Transfer(&'a mut [Word], &'a [Word]),
TransferInPlace(&'a mut [Word]),
DelayNs(u32),
}
Expand description
SPI transaction operation.
This allows composition of SPI operations into a single bus transaction.
Variants§
Read(&'a mut [Word])
Read data into the provided buffer.
Equivalent to SpiBus::read
.
Write(&'a [Word])
Write data from the provided buffer, discarding read data.
Equivalent to SpiBus::write
.
Transfer(&'a mut [Word], &'a [Word])
Read data into the first buffer, while writing data from the second buffer.
Equivalent to SpiBus::transfer
.
TransferInPlace(&'a mut [Word])
Write data out while reading data into the provided buffer.
Equivalent to SpiBus::transfer_in_place
.
DelayNs(u32)
Delay for at least the specified number of nanoseconds.
Trait Implementations§
impl<'a, Word: Eq + 'static> Eq for Operation<'a, Word>
impl<'a, Word: 'static> StructuralPartialEq for Operation<'a, Word>
Auto Trait Implementations§
impl<'a, Word> Freeze for Operation<'a, Word>
impl<'a, Word> RefUnwindSafe for Operation<'a, Word>where
Word: RefUnwindSafe,
impl<'a, Word> Send for Operation<'a, Word>
impl<'a, Word> Sync for Operation<'a, Word>where
Word: Sync,
impl<'a, Word> Unpin for Operation<'a, Word>
impl<'a, Word> !UnwindSafe for Operation<'a, Word>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
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: 20 bytes
Size for each variant:
Read
: 8 bytesWrite
: 8 bytesTransfer
: 16 bytesTransferInPlace
: 8 bytesDelayNs
: 4 bytes