use std::fs::FileType;
#[derive(Clone, Copy, PartialEq)]
pub enum FileFlags {
File,
Dir,
Link,
Other,
}
impl FileFlags {
pub fn from_type(file_type: FileType, zip_archive: bool) -> Self {
if file_type.is_dir() || zip_archive {
Self::Dir
} else if file_type.is_file() {
Self::File
} else if file_type.is_symlink() {
Self::Link
} else {
Self::Other
}
}
#[cfg(test)]
pub fn from_char(file_type: char) -> Self {
match file_type {
'f' => Self::File,
'd' => Self::Dir,
'l' => Self::Link,
_ => Self::Other,
}
}
}