summaryrefslogtreecommitdiffstats
path: root/src/fs/dirlist.rs
diff options
context:
space:
mode:
authorJeff Zhao <jeff.no.zhao@gmail.com>2021-05-14 17:59:34 -0400
committerJeff Zhao <jeff.no.zhao@gmail.com>2021-05-14 18:04:16 -0400
commit1456b65de3d9b16ed4292af925928ec4da826a6a (patch)
treed6de9e8f87edc6e258adf5a74d12cd3c0163eb51 /src/fs/dirlist.rs
parent216ca0938f36476e221276f2f63d68bf8b9d770c (diff)
fix set_mode not working
Diffstat (limited to 'src/fs/dirlist.rs')
-rw-r--r--src/fs/dirlist.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/fs/dirlist.rs b/src/fs/dirlist.rs
index adc848a..b80e05b 100644
--- a/src/fs/dirlist.rs
+++ b/src/fs/dirlist.rs
@@ -108,13 +108,21 @@ impl JoshutoDirList {
Ok(())
}
- pub fn selected_entries(&self) -> impl Iterator<Item = &JoshutoDirEntry> {
+ pub fn any_selected(&self) -> bool {
+ self.contents.iter().any(|e| e.is_selected())
+ }
+
+ pub fn iter_selected(&self) -> impl Iterator<Item = &JoshutoDirEntry> {
self.contents.iter().filter(|entry| entry.is_selected())
}
+ pub fn iter_selected_mut(&mut self) -> impl Iterator<Item = &mut JoshutoDirEntry> {
+ self.contents.iter_mut().filter(|entry| entry.is_selected())
+ }
+
pub fn get_selected_paths(&self) -> Vec<path::PathBuf> {
let vec: Vec<path::PathBuf> = self
- .selected_entries()
+ .iter_selected()
.map(|e| e.file_path().to_path_buf())
.collect();
if !vec.is_empty() {