dir_view/
read_dir_utf8.rs

1use crate::{DirEntryViewUtf8, ViewKind};
2use std::{fmt, io};
3
4/// Iterator over the entries in a directory.
5///
6/// This corresponds to [`std::fs::ReadDir`].
7///
8/// There is no `from_std` method, as `std::fs::ReadDir` doesn't provide a way
9/// to construct a `ReadDir` without opening directories by ambient paths.
10pub struct ReadDirViewUtf8 {
11    pub(crate) read_dir: cap_std::fs_utf8::ReadDir,
12    pub(crate) view_kind: ViewKind,
13}
14
15impl Iterator for ReadDirViewUtf8 {
16    type Item = io::Result<DirEntryViewUtf8>;
17
18    #[inline]
19    fn next(&mut self) -> Option<Self::Item> {
20        self.read_dir.next().map(|entry| {
21            entry.map(|entry| DirEntryViewUtf8 {
22                entry,
23                view_kind: self.view_kind,
24            })
25        })
26    }
27}
28
29impl fmt::Debug for ReadDirViewUtf8 {
30    fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
31        self.read_dir.fmt(f)
32    }
33}