Trait vfs::filesystem::FileSystem
source · [−]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
fn create_dir(&self, path: &str) -> VfsResult<()>
fn create_dir(&self, path: &str) -> VfsResult<()>
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
fn metadata(&self, path: &str) -> VfsResult<VfsMetadata>
fn metadata(&self, path: &str) -> VfsResult<VfsMetadata>
Returns the file metadata for the file at this path
Returns true if a file or directory at path exists, false otherwise
fn remove_file(&self, path: &str) -> VfsResult<()>
fn remove_file(&self, path: &str) -> VfsResult<()>
Removes the file at this path
fn remove_dir(&self, path: &str) -> VfsResult<()>
fn remove_dir(&self, path: &str) -> VfsResult<()>
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)