BlockDevice trait

```rust pub trait BlockDevice { const BLOCK_SIZE: u32 = 512;

type Error;
fn read(&self, buf: &mut [u8], address: usize, number_of_blocks: usize) -> Result<(), Self::Error>;
fn write(&self, buf: &[u8], address: usize, number_of_blocks: usize) -> Result<(), Self::Error>;

} ```