use crate::{bmalloc::AbsoluteBN, disknode::Ext4Timestamp, error::Ext4Result};
pub trait INeedBlockdevToWrite {}
pub trait BlockDevice {
fn write(&mut self, buffer: &[u8], block_id: AbsoluteBN, count: u32) -> Ext4Result<()>;
fn read(&mut self, buffer: &mut [u8], block_id: AbsoluteBN, count: u32) -> Ext4Result<()>;
fn open(&mut self) -> Ext4Result<()>;
fn close(&mut self) -> Ext4Result<()>;
fn total_blocks(&self) -> u64;
fn block_size(&self) -> u32 {
512
}
fn flush(&mut self) -> Ext4Result<()> {
Ok(())
}
fn is_open(&self) -> bool {
true
}
fn is_readonly(&self) -> bool {
false
}
fn current_time(&self) -> Ext4Result<Ext4Timestamp>;
}