summaryrefslogtreecommitdiff
path: root/src/fsiter.rs
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2021-04-29 07:56:37 +0000
committerLars Wirzenius <liw@liw.fi>2021-04-29 07:56:37 +0000
commit5486f3441ed45a86350c1b83b368170f53a76fc2 (patch)
treeaca3860996a6ebd622802d6a41493008189203ab /src/fsiter.rs
parentbf645f3645fd2ee57495eafd1ccfb4afbe917bec (diff)
parent80ae98bf87c57aa361a13c3dd925455fb67e3f03 (diff)
downloadobnam2-5486f3441ed45a86350c1b83b368170f53a76fc2.tar.gz
Merge branch 'error-messages' into 'main'
feat: improve error messages Closes #108 See merge request larswirzenius/obnam!140
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 6c18404..56630fa 100644
--- a/src/fsiter.rs
+++ b/src/fsiter.rs
@@ -10,11 +10,11 @@ pub struct FsIterator {
#[derive(Debug, thiserror::Error)]
pub enum FsIterError {
- #[error(transparent)]
- WalkError(#[from] walkdir::Error),
+ #[error("walkdir failed: {0}")]
+ WalkDir(walkdir::Error),
- #[error("I/O error on {0}: {1}")]
- IoError(PathBuf, #[source] std::io::Error),
+ #[error("failed to get file system metadata for {0}: {1}")]
+ Metadata(PathBuf, std::io::Error),
#[error(transparent)]
FsEntryError(#[from] FsEntryError),
@@ -110,7 +110,7 @@ impl Iterator for SkipCachedirs {
debug!("walkdir found: {:?}", next);
match next {
None => None,
- Some(Err(err)) => Some(Err(err.into())),
+ Some(Err(err)) => Some(Err(FsIterError::WalkDir(err))),
Some(Ok(entry)) => {
self.try_enqueue_cachedir_tag(&entry);
Some(new_entry(entry.path()))
@@ -127,7 +127,7 @@ fn new_entry(path: &Path) -> FsIterResult<FilesystemEntry> {
Ok(meta) => meta,
Err(err) => {
warn!("failed to get metadata for {}: {}", path.display(), err);
- return Err(FsIterError::IoError(path.to_path_buf(), err));
+ return Err(FsIterError::Metadata(path.to_path_buf(), err));
}
};
let entry = FilesystemEntry::from_metadata(path, &meta)?;