summaryrefslogtreecommitdiff
path: root/src/fsiter.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fsiter.rs')
-rw-r--r--src/fsiter.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/fsiter.rs b/src/fsiter.rs
index 57b6fd5..b778cf3 100644
--- a/src/fsiter.rs
+++ b/src/fsiter.rs
@@ -1,6 +1,6 @@
use crate::fsentry::{FilesystemEntry, FsEntryError};
-use log::{debug, error};
-use std::path::Path;
+use log::{debug, warn};
+use std::path::{Path, PathBuf};
use walkdir::{DirEntry, IntoIter, WalkDir};
/// Iterator over file system entries in a directory tree.
@@ -13,8 +13,8 @@ pub enum FsIterError {
#[error(transparent)]
WalkError(#[from] walkdir::Error),
- #[error(transparent)]
- IoError(#[from] std::io::Error),
+ #[error("I/O error on {0}: {1}")]
+ IoError(PathBuf, #[source] std::io::Error),
#[error(transparent)]
FsEntryError(#[from] FsEntryError),
@@ -50,8 +50,8 @@ fn new_entry(e: &DirEntry) -> FsIterResult<FilesystemEntry> {
let meta = match meta {
Ok(meta) => meta,
Err(err) => {
- error!("failed to get metadata: {}", err);
- return Err(err.into());
+ warn!("failed to get metadata for {}: {}", path.display(), err);
+ return Err(FsIterError::IoError(path.to_path_buf(), err));
}
};
let entry = FilesystemEntry::from_metadata(path, &meta)?;