Browse Source

refactor: use `Vec::retain` instead of filtering and collecting

remotes/origin/list-filter
Ryan Cao 1 year ago
parent
commit
3abd2842f5
No known key found for this signature in database
  1. 12
      src/commands/ls_remote.rs

12
src/commands/ls_remote.rs

@ -26,23 +26,17 @@ impl super::command::Command for LsRemote { @@ -26,23 +26,17 @@ impl super::command::Command for LsRemote {
let mut all_versions = remote_node_index::list(&config.node_dist_mirror, &self.sort)?;
if let Some(lts) = &self.lts {
all_versions = all_versions
.into_iter()
.filter(|v| match lts {
all_versions.retain(|v| match lts {
None => v.lts.is_some(),
Some(lts) => v
.lts
.as_ref()
.is_some_and(|this_lts| this_lts.eq_ignore_ascii_case(lts)),
})
.collect();
});
}
if let Some(filter) = &self.filter {
all_versions = all_versions
.into_iter()
.filter(|v| filter.matches(&v.version, config))
.collect();
all_versions.retain(|v| filter.matches(&v.version, config));
}
for version in &all_versions {

Loading…
Cancel
Save