pub trait Spi {
// Required methods
fn len(&mut self) -> Result<usize, SpiError>;
fn read(&mut self, address: usize, buf: &mut [u8]) -> Result<usize, SpiError>;
fn erase(&mut self, address: usize) -> Result<(), SpiError>;
fn write(&mut self, address: usize, buf: &[u8]) -> Result<usize, SpiError>;
}