summaryrefslogtreecommitdiff
path: root/src/fsiter.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/fsiter.rs')
-rw-r--r--src/fsiter.rs8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/fsiter.rs b/src/fsiter.rs
index 2325793..2747cce 100644
--- a/src/fsiter.rs
+++ b/src/fsiter.rs
@@ -1,3 +1,5 @@
+//! Iterate over directory tree.
+
use crate::fsentry::{FilesystemEntry, FsEntryError};
use log::{debug, warn};
use std::path::{Path, PathBuf};
@@ -5,6 +7,7 @@ use walkdir::{DirEntry, IntoIter, WalkDir};
/// Filesystem entry along with additional info about it.
pub struct AnnotatedFsEntry {
+ /// The file system entry being annotated.
pub inner: FilesystemEntry,
/// Is `entry` a valid CACHEDIR.TAG?
pub is_cachedir_tag: bool,
@@ -15,19 +18,24 @@ pub struct FsIterator {
iter: SkipCachedirs,
}
+/// Possible errors from iterating over a directory tree.
#[derive(Debug, thiserror::Error)]
pub enum FsIterError {
+ /// Error from the walkdir crate.
#[error("walkdir failed: {0}")]
WalkDir(walkdir::Error),
+ /// Error reading a file's metadata.
#[error("failed to get file system metadata for {0}: {1}")]
Metadata(PathBuf, std::io::Error),
+ /// Error related to file system entries.
#[error(transparent)]
FsEntryError(#[from] FsEntryError),
}
impl FsIterator {
+ /// Create a new iterator.
pub fn new(root: &Path, exclude_cache_tag_directories: bool) -> Self {
Self {
iter: SkipCachedirs::new(