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>;
}