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. 22
      src/commands/ls_remote.rs

22
src/commands/ls_remote.rs

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

Loading…
Cancel
Save