pub trait BusDevice<WD: Word>: Send {
// Required method
fn transaction(
&mut self,
operations: &mut [Operation<'_, WD>],
) -> Result<(), BusError>;
// Provided methods
fn write_read(
&mut self,
write: &[WD],
read: &mut [WD],
) -> Result<(), BusError> { ... }
fn read(&mut self, buf: &mut [WD]) -> Result<(), BusError> { ... }
fn write(&mut self, buf: &[WD]) -> Result<(), BusError> { ... }
}