pub trait Interface {
type Error;
// Required methods
fn read(&mut self, reg: Register) -> Result<u8, Self::Error>;
fn read_many<'b>(
&mut self,
reg: Register,
buf: &'b mut [u8]
) -> Result<&'b [u8], Self::Error>;
fn write(&mut self, reg: Register, val: u8) -> Result<(), Self::Error>;
fn write_many(
&mut self,
reg: Register,
bytes: &[u8]
) -> Result<(), Self::Error>;
// Provided method
fn rmw<F>(&mut self, reg: Register, f: F) -> Result<(), Self::Error>
where F: FnOnce(u8) -> u8 { ... }
}
Expand description
Abstraction over the different communication interfaces
Required Associated Types§
Required Methods§
sourcefn read_many<'b>(
&mut self,
reg: Register,
buf: &'b mut [u8]
) -> Result<&'b [u8], Self::Error>
fn read_many<'b>( &mut self, reg: Register, buf: &'b mut [u8] ) -> Result<&'b [u8], Self::Error>
Read the value of a register larger than a single byte (the FIFO)
Provided Methods§
Object Safety§
This trait is not object safe.