Skip to main content

FileSystem

Trait FileSystem 

Source
pub trait FileSystem:
    Debug
    + Send
    + Sync
    + 'static
    + Upcastable {
    // Required methods
    fn readlink(&self, path: &Path) -> Result<PathBuf>;
    fn read_dir(&self, path: &Path) -> Result<ReadDir>;
    fn create_dir(&self, path: &Path) -> Result<()>;
    fn remove_dir(&self, path: &Path) -> Result<()>;
    fn rename<'a>(
        &'a self,
        from: &'a Path,
        to: &'a Path,
    ) -> BoxFuture<'a, Result<()>>;
    fn metadata(&self, path: &Path) -> Result<Metadata>;
    fn symlink_metadata(&self, path: &Path) -> Result<Metadata>;
    fn remove_file(&self, path: &Path) -> Result<()>;
    fn new_open_options(&self) -> OpenOptions<'_>;

    // Provided methods
    fn create_symlink(&self, _source: &Path, _target: &Path) -> Result<()> { ... }
    fn hard_link(&self, _source: &Path, _target: &Path) -> Result<()> { ... }
}

Required Methods§

Source

fn read_dir(&self, path: &Path) -> Result<ReadDir>

Source

fn create_dir(&self, path: &Path) -> Result<()>

Source

fn remove_dir(&self, path: &Path) -> Result<()>

Source

fn rename<'a>( &'a self, from: &'a Path, to: &'a Path, ) -> BoxFuture<'a, Result<()>>

Source

fn metadata(&self, path: &Path) -> Result<Metadata>

This method gets metadata without following symlinks in the path. Currently identical to metadata because symlinks aren’t implemented yet.

Source

fn remove_file(&self, path: &Path) -> Result<()>

Source

fn new_open_options(&self) -> OpenOptions<'_>

Provided Methods§

Implementations§

Source§

impl dyn FileSystem + 'static

Source

pub fn downcast_ref<T: 'static>(&self) -> Option<&T>

Source

pub fn downcast_mut<T: 'static>(&mut self) -> Option<&mut T>

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§

Source§

impl FileSystem for ArcFileSystem

Source§

impl FileSystem for EmptyFileSystem

Source§

impl FileSystem for virtual_fs::host_fs::FileSystem

Source§

impl FileSystem for virtual_fs::mem_fs::FileSystem

Source§

impl FileSystem for MountFileSystem

Source§

impl FileSystem for PassthruFileSystem

Source§

impl FileSystem for TmpFileSystem

Source§

impl FileSystem for WebcVolumeFileSystem

Source§

impl<D, F> FileSystem for D
where D: Deref<Target = F> + Debug + Send + Sync + 'static, F: FileSystem + ?Sized,

Source§

impl<F> FileSystem for TraceFileSystem<F>
where F: FileSystem,

Source§

impl<P, S> FileSystem for OverlayFileSystem<P, S>
where P: FileSystem + Send + 'static, S: for<'a> FileSystems<'a> + Send + Sync + 'static, for<'a> <<S as FileSystems<'a>>::Iter as IntoIterator>::IntoIter: Send,