Trait Filesystem

Source
pub trait Filesystem {
Show 14 methods // Required methods fn create_directory( &mut self, path: impl AsRef<Utf8Path>, attrs: SetAttrs<'_>, ) -> Result<()>; fn create_file( &mut self, path: impl AsRef<Utf8Path>, attrs: SetAttrs<'_>, content: String, ) -> Result<()>; fn create_symlink( &mut self, path: impl AsRef<Utf8Path>, target: impl AsRef<Utf8Path>, ) -> Result<()>; fn exists(&self, path: impl AsRef<Utf8Path>) -> bool; fn is_directory(&self, path: impl AsRef<Utf8Path>) -> bool; fn is_file(&self, path: impl AsRef<Utf8Path>) -> bool; fn is_link(&self, path: impl AsRef<Utf8Path>) -> bool; fn list_directory(&self, path: impl AsRef<Utf8Path>) -> Result<Vec<String>>; fn read_file(&self, path: impl AsRef<Utf8Path>) -> Result<String>; fn read_link(&self, path: impl AsRef<Utf8Path>) -> Result<Utf8PathBuf>; fn attributes(&self, path: impl AsRef<Utf8Path>) -> Result<Attrs<'_>>; fn set_attributes( &mut self, path: impl AsRef<Utf8Path>, attrs: SetAttrs<'_>, ) -> Result<()>; // Provided methods fn create_directory_all( &mut self, path: impl AsRef<Utf8Path>, attrs: SetAttrs<'_>, ) -> Result<()> { ... } fn canonicalize(&self, path: impl AsRef<Utf8Path>) -> Result<Utf8PathBuf> { ... }
}
Expand description

Operations of a file system

Required Methods§

Source

fn create_directory( &mut self, path: impl AsRef<Utf8Path>, attrs: SetAttrs<'_>, ) -> Result<()>

Create a directory at the given path, with any number of attributes set

Source

fn create_file( &mut self, path: impl AsRef<Utf8Path>, attrs: SetAttrs<'_>, content: String, ) -> Result<()>

Create a file with the given content and any number of attributes set

Create a symlink pointing to the given target

Source

fn exists(&self, path: impl AsRef<Utf8Path>) -> bool

Returns true if the path exists

Source

fn is_directory(&self, path: impl AsRef<Utf8Path>) -> bool

Returns true if the path is a directory

Source

fn is_file(&self, path: impl AsRef<Utf8Path>) -> bool

Returns true if the path is a regular file

Returns true if the path is a symbolic link

Source

fn list_directory(&self, path: impl AsRef<Utf8Path>) -> Result<Vec<String>>

Lists the contents of the given directory

Source

fn read_file(&self, path: impl AsRef<Utf8Path>) -> Result<String>

Reads the contents of the given file

Reads the path pointed to by the given symbolic link

Source

fn attributes(&self, path: impl AsRef<Utf8Path>) -> Result<Attrs<'_>>

Returns the attributes of the given file, directory

If the path is a symlink, the file/directory pointed to by the symlink will be checked and its attributes returned (i.e. paths are dereferenced)

Source

fn set_attributes( &mut self, path: impl AsRef<Utf8Path>, attrs: SetAttrs<'_>, ) -> Result<()>

Sets the attributes of the given file or directory

If the path is a symlink, the file/directory pointed to by the symlink will be updated with the given attributes (i.e. paths are dereferenced)

Provided Methods§

Source

fn create_directory_all( &mut self, path: impl AsRef<Utf8Path>, attrs: SetAttrs<'_>, ) -> Result<()>

Create a directory and all of its parents

Source

fn canonicalize(&self, path: impl AsRef<Utf8Path>) -> Result<Utf8PathBuf>

Returns the path after following all symlinks, normalized and absolute

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§