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 must implement this trait All path parameters are absolute, starting with ‘/’, except for the root directory which is simply the empty string (i.e. “”) The character ‘/’ is used to delimit directories on all platforms. Path components may be any UTF-8 string, except “/”, “.” and “..”

Please use the test_macros [test_macros::test_vfs!] and [test_macros::test_vfs_readonly!]

Required methods

Iterates over all direct children of this directory path NOTE: the returned String items denote the local bare filenames, i.e. they should not contain “/” anywhere

Creates the directory at this path

Note that the parent directory must already 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