pub trait FileSystem:
Send
+ Sync
+ Debug {
// Required methods
fn exists(&self, path: &Path) -> bool;
fn is_file(&self, path: &Path) -> bool;
fn is_dir(&self, path: &Path) -> bool;
fn is_symlink(&self, path: &Path) -> bool;
fn metadata(&self, path: &Path) -> Result<FileMetadata>;
fn symlink_metadata(&self, path: &Path) -> Result<FileMetadata>;
fn read_to_string(&self, path: &Path) -> LintResult<String>;
fn write(&self, path: &Path, content: &str) -> LintResult<()>;
fn canonicalize(&self, path: &Path) -> Result<PathBuf>;
fn read_dir(&self, path: &Path) -> Result<Vec<DirEntry>>;
}Expand description
Trait for abstracting file system operations.
This trait must be Send + Sync to support rayon parallel validation.
It also requires Debug for use in config structs that derive Debug.
Required Methods§
Sourcefn is_symlink(&self, path: &Path) -> bool
fn is_symlink(&self, path: &Path) -> bool
Check if a path is a symlink
Sourcefn metadata(&self, path: &Path) -> Result<FileMetadata>
fn metadata(&self, path: &Path) -> Result<FileMetadata>
Get metadata for a path (follows symlinks)
Sourcefn symlink_metadata(&self, path: &Path) -> Result<FileMetadata>
fn symlink_metadata(&self, path: &Path) -> Result<FileMetadata>
Get metadata for a path without following symlinks
Sourcefn read_to_string(&self, path: &Path) -> LintResult<String>
fn read_to_string(&self, path: &Path) -> LintResult<String>
Read file contents to string (with security checks)
Sourcefn write(&self, path: &Path, content: &str) -> LintResult<()>
fn write(&self, path: &Path, content: &str) -> LintResult<()>
Write content to file (with security checks)
Sourcefn canonicalize(&self, path: &Path) -> Result<PathBuf>
fn canonicalize(&self, path: &Path) -> Result<PathBuf>
Canonicalize a path