Trait FileSystem
Source pub trait FileSystem: Send + Sync {
// Required methods
fn mount(&mut self, device: Arc<dyn BlockDevice>) -> FsResult<()>;
fn unmount(&mut self) -> FsResult<()>;
fn lookup(&self, path: &str) -> FsResult<u64>;
fn read(&self, ino: u64, offset: u64, buf: &mut [u8]) -> FsResult<usize>;
fn write(&mut self, ino: u64, offset: u64, buf: &[u8]) -> FsResult<usize>;
fn create(
&mut self,
parent: u64,
name: &str,
file_type: FileType,
) -> FsResult<u64>;
fn remove(&mut self, parent: u64, name: &str) -> FsResult<()>;
fn stat(&self, ino: u64) -> FsResult<FileStat>;
fn readdir(&self, ino: u64) -> FsResult<Vec<(String, u64)>>;
}