1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
use PathBuf;
/// A single item produced by a [`Source`](crate::traits::Source) during traversal.
///
/// Intentionally generic — not filesystem-specific. `name` and `kind` are neutral
/// enough to represent directory entries, database records, API results, or anything
/// else a custom `Source` might produce.
///
/// `metadata` is populated lazily — only when a matcher explicitly requests it
/// (e.g. [`StaleMatcher`]). This avoids unnecessary `stat()` syscalls on every
/// entry when no metadata-aware matcher is in use.
/// The kind of a traversed entry.
///
/// Kept generic so parex can represent non-filesystem sources cleanly.
/// Filesystem sources map `DirEntry` file types to these variants.