sprint_dir/
lib.rs

1mod getdent;
2mod walker;
3#[cfg(test)]
4mod tests;
5
6pub use walker::{DirEntry, Error, FilterEntry, IntoIter, WalkDir};
7
8#[derive(Clone, Copy, Debug, PartialEq)]
9enum UnixFileType {
10    BlockDevice = 1,
11    CharDevice,
12    Directory,
13    NamedPipe,
14    SymbolicLink,
15    File,
16    UnixSocket,
17}
18
19impl UnixFileType {
20    fn new(kind: libc::c_char) -> Option<Self> {
21        match kind as u8 {
22            libc::DT_BLK => Some(Self::BlockDevice),
23            libc::DT_CHR => Some(Self::CharDevice),
24            libc::DT_DIR => Some(Self::Directory),
25            libc::DT_FIFO => Some(Self::NamedPipe),
26            libc::DT_LNK => Some(Self::SymbolicLink),
27            libc::DT_REG => Some(Self::File),
28            libc::DT_SOCK => Some(Self::UnixSocket),
29            // Actually, we'd expect DT_UNKNOWN but this doesn't hurt.
30            _ => None,
31        }
32    }
33}