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§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.