pub trait FileSystem: Debug + Sync + Send + 'static {
    fn read_dir(
        &self,
        path: &str
    ) -> VfsResult<Box<dyn Iterator<Item = String>>>;
fn create_dir(&self, path: &str) -> VfsResult<()>;
fn open_file(&self, path: &str) -> VfsResult<Box<dyn SeekAndRead>>;
fn create_file(&self, path: &str) -> VfsResult<Box<dyn Write>>;
fn append_file(&self, path: &str) -> VfsResult<Box<dyn Write>>;
fn metadata(&self, path: &str) -> VfsResult<VfsMetadata>;
fn exists(&self, path: &str) -> VfsResult<bool>;
fn remove_file(&self, path: &str) -> VfsResult<()>;
fn remove_dir(&self, path: &str) -> VfsResult<()>; fn copy_file(&self, _src: &str, _dest: &str) -> VfsResult<()> { ... }
fn move_file(&self, _src: &str, _dest: &str) -> VfsResult<()> { ... }
fn move_dir(&self, _src: &str, _dest: &str) -> VfsResult<()> { ... } }
Expand description

File system implementations mus implement this trait

Required methods

Iterates over all entries of this directory path

Creates the directory at this path

Note that the parent directory must exist.

Opens the file at this path for reading

Creates a file at this path for writing

Opens the file at this path for appending

Returns the file metadata for the file at this path

Returns true if a file or directory at path exists, false otherwise

Removes the file at this path

Removes the directory at this path

Provided methods

Copies the src path to the destination path within the same filesystem (optional)

Moves the src path to the destination path within the same filesystem (optional)

Moves the src directory to the destination path within the same filesystem (optional)

Implementors