1use std::fs::FileType;
2
3#[derive(Clone, Copy, PartialEq)]
4pub enum FileFlags {
5 File,
6 Dir,
7 Link,
8 Other,
9}
10
11impl FileFlags {
12 pub fn from_type(file_type: FileType, zip_archive: bool) -> Self {
13 if file_type.is_dir() || zip_archive {
14 Self::Dir
15 } else if file_type.is_file() {
16 Self::File
17 } else if file_type.is_symlink() {
18 Self::Link
19 } else {
20 Self::Other
21 }
22 }
23
24 #[cfg(test)]
25 pub fn from_char(file_type: char) -> Self {
26 match file_type {
27 'f' => Self::File,
28 'd' => Self::Dir,
29 'l' => Self::Link,
30 _ => Self::Other,
31 }
32 }
33}