Trait Directory
Source pub trait Directory: Send + Sync {
// Required methods
fn open_read(&self, path: &Path) -> Result<Box<dyn FileRead>, Error>;
fn open_write(&self, path: &Path) -> Result<Box<dyn FileWrite>, Error>;
fn open_create(&self, path: &Path) -> Result<Box<dyn FileWrite>, Error>;
fn list(
&self,
prefix: Option<&Path>,
) -> Result<Vec<Box<dyn FileStat>>, Error>;
fn stat(&self, path: &Path) -> Result<Box<dyn FileStat>, Error>;
fn exists(&self, path: &Path) -> bool;
fn delete(&self, path: &Path) -> Result<(), Error>;
fn clone(&self) -> DynDirectory;
fn as_os_path(&self) -> Result<PathBuf, Error>;
// Provided methods
fn scope(&self, path: PathBuf) -> DynDirectory { ... }
fn copy_to(&self, to: DynDirectory) -> Result<(), Error> { ... }
}