summaryrefslogtreecommitdiffstats
path: root/src/fs
diff options
context:
space:
mode:
authorJiayi Zhao <jeff.no.zhao@gmail.com>2020-12-11 21:07:13 -0500
committerJiayi Zhao <jeff.no.zhao@gmail.com>2020-12-11 21:07:13 -0500
commit916d72c42cfc7bcb8fc560e17cb3bd75c00757da (patch)
treea8024fc9bd9a48065cd6b65375109482ac9b7983 /src/fs
parentbf9c102a4cfb85a9fd910195e6372dcd1d062c16 (diff)
add a view for showing worker progress
Diffstat (limited to 'src/fs')
-rw-r--r--src/fs/entry.rs41
-rw-r--r--src/fs/metadata.rs23
2 files changed, 17 insertions, 47 deletions
diff --git a/src/fs/entry.rs b/src/fs/entry.rs
index f39082a..4e06c0c 100644
--- a/src/fs/entry.rs
+++ b/src/fs/entry.rs
@@ -99,15 +99,12 @@ impl JoshutoDirEntry {
}
pub fn get_modifier(&self) -> Modifier {
- let metadata = &self.metadata;
- let filetype = &metadata.file_type;
+ let filetype = &self.metadata.file_type;
- if filetype.is_dir() {
- THEME_T.directory.modifier
- } else if filetype.is_symlink() {
- THEME_T.link.modifier
- } else {
- match self.file_path().extension() {
+ match filetype {
+ FileType::Directory => THEME_T.directory.modifier,
+ FileType::Symlink(_) => THEME_T.link.modifier,
+ _ => match self.file_path().extension() {
None => Modifier::empty(),
Some(os_str) => match os_str.to_str() {
None => Modifier::empty(),
@@ -116,7 +113,7 @@ impl JoshutoDirEntry {
Some(t) => t.modifier,
},
},
- }
+ },
}
}
@@ -124,28 +121,24 @@ impl JoshutoDirEntry {
let metadata = &self.metadata;
let filetype = &metadata.file_type;
- if self.is_selected() {
- Style::default()
+ match filetype {
+ _ if self.is_selected() => Style::default()
.fg(THEME_T.selection.fg)
.bg(THEME_T.selection.bg)
- .add_modifier(THEME_T.selection.modifier)
- } else if filetype.is_dir() {
- Style::default()
+ .add_modifier(THEME_T.selection.modifier),
+ FileType::Directory => Style::default()
.fg(THEME_T.directory.fg)
.bg(THEME_T.directory.bg)
- .add_modifier(THEME_T.directory.modifier)
- } else if filetype.is_symlink() {
- Style::default()
+ .add_modifier(THEME_T.directory.modifier),
+ FileType::Symlink(_) => Style::default()
.fg(THEME_T.link.fg)
.bg(THEME_T.link.bg)
- .add_modifier(THEME_T.link.modifier)
- } else if unix::is_executable(metadata.mode) {
- Style::default()
+ .add_modifier(THEME_T.link.modifier),
+ _ if unix::is_executable(metadata.mode) => Style::default()
.fg(THEME_T.executable.fg)
.bg(THEME_T.executable.bg)
- .add_modifier(THEME_T.executable.modifier)
- } else {
- match self.file_path().extension() {
+ .add_modifier(THEME_T.executable.modifier),
+ _ => match self.file_path().extension() {
None => Style::default(),
Some(os_str) => match os_str.to_str() {
None => Style::default(),
@@ -154,7 +147,7 @@ impl JoshutoDirEntry {
Some(t) => Style::default().fg(t.fg).bg(t.bg).add_modifier(t.modifier),
},
},
- }
+ },
}
}
}
diff --git a/src/fs/metadata.rs b/src/fs/metadata.rs
index 9a3fb60..e71f793 100644
--- a/src/fs/metadata.rs
+++ b/src/fs/metadata.rs
@@ -7,29 +7,6 @@ pub enum FileType {
File,
}
-impl FileType {
- pub fn is_dir(&self) -> bool {
- match *self {
- Self::Directory => true,
- _ => false,
- }
- }
-
- pub fn is_symlink(&self) -> bool {
- match *self {
- Self::Symlink(_) => true,
- _ => false,
- }
- }
-
- pub fn is_file(&self) -> bool {
- match *self {
- Self::File => true,
- _ => false,
- }
- }
-}
-
#[derive(Clone, Debug)]
pub struct JoshutoMetadata {
pub len: u64,