mirror of
https://github.com/Llewellynvdm/exa.git
synced 2024-11-23 12:32:00 +00:00
Simplify filetype detection code
This commit is contained in:
parent
cf38f90aa9
commit
3e7357819b
@ -83,45 +83,42 @@ pub trait HasType {
|
|||||||
|
|
||||||
impl<'a> HasType for File<'a> {
|
impl<'a> HasType for File<'a> {
|
||||||
fn get_type(&self) -> FileType {
|
fn get_type(&self) -> FileType {
|
||||||
let name = &self.name[..];
|
|
||||||
if self.stat.kind == io::FileType::Directory {
|
match self.stat.kind {
|
||||||
return Directory;
|
io::FileType::Directory => return Directory,
|
||||||
|
io::FileType::Symlink => return Symlink,
|
||||||
|
io::FileType::BlockSpecial => return Special,
|
||||||
|
io::FileType::NamedPipe => return Special,
|
||||||
|
io::FileType::Unknown => return Special,
|
||||||
|
_ => {}
|
||||||
}
|
}
|
||||||
else if self.stat.kind == io::FileType::Symlink {
|
|
||||||
return Symlink;
|
if self.name.starts_with("README") || BUILD_TYPES.contains(&&self.name[..]) {
|
||||||
}
|
|
||||||
else if self.stat.kind == io::FileType::BlockSpecial || self.stat.kind == io::FileType::NamedPipe || self.stat.kind == io::FileType::Unknown {
|
|
||||||
return Special;
|
|
||||||
}
|
|
||||||
else if self.stat.perm.contains(io::USER_EXECUTE) {
|
|
||||||
return Executable;
|
|
||||||
}
|
|
||||||
else if name.starts_with("README") || BUILD_TYPES.iter().any(|&s| s == name) {
|
|
||||||
return Immediate;
|
return Immediate;
|
||||||
}
|
}
|
||||||
else if let Some(ref ext) = self.ext {
|
else if let Some(ref ext) = self.ext {
|
||||||
if IMAGE_TYPES.iter().any(|&s| s == *ext) {
|
if IMAGE_TYPES.contains(&&ext[..]) {
|
||||||
return Image;
|
return Image;
|
||||||
}
|
}
|
||||||
else if VIDEO_TYPES.iter().any(|&s| s == *ext) {
|
else if VIDEO_TYPES.contains(&&ext[..]) {
|
||||||
return Video;
|
return Video;
|
||||||
}
|
}
|
||||||
else if MUSIC_TYPES.iter().any(|&s| s == *ext) {
|
else if MUSIC_TYPES.contains(&&ext[..]) {
|
||||||
return Music;
|
return Music;
|
||||||
}
|
}
|
||||||
else if MUSIC_LOSSLESS.iter().any(|&s| s == *ext) {
|
else if MUSIC_LOSSLESS.contains(&&ext[..]) {
|
||||||
return Lossless;
|
return Lossless;
|
||||||
}
|
}
|
||||||
else if CRYPTO_TYPES.iter().any(|&s| s == *ext) {
|
else if CRYPTO_TYPES.contains(&&ext[..]) {
|
||||||
return Crypto;
|
return Crypto;
|
||||||
}
|
}
|
||||||
else if DOCUMENT_TYPES.iter().any(|&s| s == *ext) {
|
else if DOCUMENT_TYPES.contains(&&ext[..]) {
|
||||||
return Document;
|
return Document;
|
||||||
}
|
}
|
||||||
else if COMPRESSED_TYPES.iter().any(|&s| s == *ext) {
|
else if COMPRESSED_TYPES.contains(&&ext[..]) {
|
||||||
return Compressed;
|
return Compressed;
|
||||||
}
|
}
|
||||||
else if self.is_tmpfile() || TEMP_TYPES.iter().any(|&s| s == *ext) {
|
else if self.is_tmpfile() || TEMP_TYPES.contains(&&ext[..]) {
|
||||||
return Temp;
|
return Temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -132,7 +129,7 @@ impl<'a> HasType for File<'a> {
|
|||||||
else if source_files.iter().any(|path| self.dir.map(|d| d.contains(path)).unwrap_or(false)) {
|
else if source_files.iter().any(|path| self.dir.map(|d| d.contains(path)).unwrap_or(false)) {
|
||||||
return Temp;
|
return Temp;
|
||||||
}
|
}
|
||||||
else if COMPILED_TYPES.iter().any(|&s| s == *ext) {
|
else if COMPILED_TYPES.contains(&&ext[..]) {
|
||||||
return Compiled;
|
return Compiled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user