From f57dd5a3c7c80ace3bba631437c2820f3d922346 Mon Sep 17 00:00:00 2001 From: Tunglies Date: Wed, 15 Apr 2026 03:00:03 -0700 Subject: [PATCH] chore(lint): clippy rules needless_collect (#2522) --- Cargo.toml | 1 + crates/e2e_test/src/reliant/sql.rs | 13 +++++++++---- crates/filemeta/src/filemeta.rs | 6 +++--- crates/targets/src/target/webhook.rs | 3 +-- rustfs/src/server/layer.rs | 7 +++++-- 5 files changed, 19 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index d1214894c..bfbc75454 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -73,6 +73,7 @@ unsafe_code = "deny" [workspace.lints.clippy] all = "warn" +needless_collect = "warn" [workspace.dependencies] # RustFS Internal Crates diff --git a/crates/e2e_test/src/reliant/sql.rs b/crates/e2e_test/src/reliant/sql.rs index 4ca02d682..35ef8bcae 100644 --- a/crates/e2e_test/src/reliant/sql.rs +++ b/crates/e2e_test/src/reliant/sql.rs @@ -281,8 +281,11 @@ async fn test_select_object_content_csv_limit() -> Result<(), Box> { println!("CSV Limit result: {result_str}"); // Verify only first 2 records are returned - let lines: Vec<&str> = result_str.lines().filter(|line| !line.trim().is_empty()).collect(); - assert_eq!(lines.len(), 2, "Should return exactly 2 records"); + assert_eq!( + result_str.lines().filter(|line| !line.trim().is_empty()).count(), + 2, + "Should return exactly 2 records" + ); Ok(()) } @@ -321,8 +324,10 @@ async fn test_select_object_content_csv_order_by() -> Result<(), Box> println!("CSV Order By result: {result_str}"); // Verify ordered by age descending - let lines: Vec<&str> = result_str.lines().filter(|line| !line.trim().is_empty()).collect(); - assert!(lines.len() >= 2, "Should return at least 2 records"); + assert!( + result_str.lines().filter(|line| !line.trim().is_empty()).count() >= 2, + "Should return at least 2 records" + ); // Check if contains highest age records assert!(result_str.contains("Charlie,35")); diff --git a/crates/filemeta/src/filemeta.rs b/crates/filemeta/src/filemeta.rs index aea74b605..5c66b4426 100644 --- a/crates/filemeta/src/filemeta.rs +++ b/crates/filemeta/src/filemeta.rs @@ -1488,12 +1488,12 @@ mod test { } // Verify stable ordering - let original_order: Vec<_> = fm.versions.iter().map(|v| v.header.version_id).collect(); + let original_order = fm.versions.iter().map(|v| v.header.version_id).len(); fm.sort_by_mod_time(); - let sorted_order: Vec<_> = fm.versions.iter().map(|v| v.header.version_id).collect(); + let sorted_order = fm.versions.iter().map(|v| v.header.version_id).len(); // Sorting should remain stable for identical timestamps - assert_eq!(original_order.len(), sorted_order.len()); + assert_eq!(original_order, sorted_order); } #[test] diff --git a/crates/targets/src/target/webhook.rs b/crates/targets/src/target/webhook.rs index d247d2f7c..875c6499c 100644 --- a/crates/targets/src/target/webhook.rs +++ b/crates/targets/src/target/webhook.rs @@ -293,8 +293,7 @@ where if !self.args.auth_token.is_empty() { // Split auth_token string to check if the authentication type is included - let tokens: Vec<&str> = self.args.auth_token.split_whitespace().collect(); - match tokens.len() { + match self.args.auth_token.split_whitespace().count() { 2 => { // Already include authentication type and token, such as "Bearer token123" req_builder = req_builder.header("Authorization", &self.args.auth_token); diff --git a/rustfs/src/server/layer.rs b/rustfs/src/server/layer.rs index 09f6cf10a..f9dfeb87a 100644 --- a/rustfs/src/server/layer.rs +++ b/rustfs/src/server/layer.rs @@ -454,8 +454,11 @@ impl ConditionalCorsLayer { let allowed_origin = match (origin, &self.cors_origins) { (Some(orig), Some(config)) if config == "*" => Some(orig), (Some(orig), Some(config)) => { - let origins: Vec<&str> = config.split(',').map(|s| s.trim()).collect(); - if origins.contains(&orig.as_str()) { Some(orig) } else { None } + if config.split(',').map(|s| s.trim()).any(|x| x == orig.as_str()) { + Some(orig) + } else { + None + } } (Some(orig), None) => Some(orig), // Default: allow all if not configured _ => None,