diff options
author | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2020-12-11 21:07:13 -0500 |
---|---|---|
committer | Jiayi Zhao <jeff.no.zhao@gmail.com> | 2020-12-11 21:07:13 -0500 |
commit | 916d72c42cfc7bcb8fc560e17cb3bd75c00757da (patch) | |
tree | a8024fc9bd9a48065cd6b65375109482ac9b7983 /src/fs | |
parent | bf9c102a4cfb85a9fd910195e6372dcd1d062c16 (diff) |
add a view for showing worker progress
Diffstat (limited to 'src/fs')
-rw-r--r-- | src/fs/entry.rs | 41 | ||||
-rw-r--r-- | src/fs/metadata.rs | 23 |
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, |