pub trait AsyncFileSystem: Debug + Sync + Send + 'static {
Show 15 methods // Required methods fn read_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<Box<dyn Unpin + Stream<Item = String> + Send>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn open_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<Box<dyn SeekAndRead + Send + Unpin>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn create_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<Box<dyn Write + Send + Unpin>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn append_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<Box<dyn Write + Send + Unpin>>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn metadata<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<VfsMetadata>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn exists<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<bool>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn remove_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; fn remove_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait; // Provided methods fn set_creation_time<'life0, 'life1, 'async_trait>( &'life0 self, _path: &'life1 str, _time: SystemTime ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn set_modification_time<'life0, 'life1, 'async_trait>( &'life0 self, _path: &'life1 str, _time: SystemTime ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn set_access_time<'life0, 'life1, 'async_trait>( &'life0 self, _path: &'life1 str, _time: SystemTime ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait { ... } fn copy_file<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _src: &'life1 str, _dest: &'life2 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn move_file<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _src: &'life1 str, _dest: &'life2 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... } fn move_dir<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _src: &'life1 str, _dest: &'life2 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>> where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait { ... }
}
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_async_vfs!] and [test_macros::test_async_vfs_readonly!]

Required Methods§

source

fn read_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<Box<dyn Unpin + Stream<Item = String> + Send>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

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

source

fn create_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Creates the directory at this path

Note that the parent directory must already exist.

source

fn open_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<Box<dyn SeekAndRead + Send + Unpin>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Opens the file at this path for reading

source

fn create_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<Box<dyn Write + Send + Unpin>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Creates a file at this path for writing

source

fn append_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<Box<dyn Write + Send + Unpin>>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Opens the file at this path for appending

source

fn metadata<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<VfsMetadata>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Returns the file metadata for the file at this path

source

fn exists<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<bool>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

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

source

fn remove_file<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Removes the file at this path

source

fn remove_dir<'life0, 'life1, 'async_trait>( &'life0 self, path: &'life1 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Removes the directory at this path

Provided Methods§

source

fn set_creation_time<'life0, 'life1, 'async_trait>( &'life0 self, _path: &'life1 str, _time: SystemTime ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sets the files creation timestamp, if the implementation supports it

source

fn set_modification_time<'life0, 'life1, 'async_trait>( &'life0 self, _path: &'life1 str, _time: SystemTime ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sets the files modification timestamp, if the implementation supports it

source

fn set_access_time<'life0, 'life1, 'async_trait>( &'life0 self, _path: &'life1 str, _time: SystemTime ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sets the files access timestamp, if the implementation supports it

source

fn copy_file<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _src: &'life1 str, _dest: &'life2 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

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

source

fn move_file<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _src: &'life1 str, _dest: &'life2 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

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

source

fn move_dir<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, _src: &'life1 str, _dest: &'life2 str ) -> Pin<Box<dyn Future<Output = VfsResult<()>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

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

Implementors§