1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//! Utility functions for the storage module.

use anyhow::Result;


pub trait FileSystem {
    fn open(&self, file_path: &str) -> Result<FileHandle>;
    fn create(&mut self, file_path: &str) -> Result<()>;
    fn write(&mut self, file: &mut FileHandle, data: &[u8]) -> Result<()>;
    fn read(&self, file: &FileHandle, buffer: &mut [u8]) -> Result<usize>;
    fn delete(&mut self, file_path: &str) -> Result<()>;
}

pub struct FileHandle;


#[cfg(test)]
mod test {}