From 3abd2842f5cb84517bfdcf5a3efcd7653a2501d3 Mon Sep 17 00:00:00 2001 From: Ryan Cao <70191398+ryanccn@users.noreply.github.com> Date: Sat, 11 Nov 2023 19:06:10 +0800 Subject: [PATCH] refactor: use `Vec::retain` instead of filtering and collecting --- src/commands/ls_remote.rs | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/commands/ls_remote.rs b/src/commands/ls_remote.rs index d120d7a..fe5d276 100644 --- a/src/commands/ls_remote.rs +++ b/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)?; if let Some(lts) = &self.lts { - all_versions = all_versions - .into_iter() - .filter(|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(); + 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)), + }); } 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 {