From 4560c7fce0f3335fd9372a97803e48879a5f2bc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Joakim=20Frosteg=C3=A5rd?= Date: Sat, 19 Feb 2022 15:19:23 +0100 Subject: [PATCH] aquatic_common: possibly do less allocations in extract_response_peers --- aquatic_common/src/lib.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/aquatic_common/src/lib.rs b/aquatic_common/src/lib.rs index fdd242f..a1c5307 100644 --- a/aquatic_common/src/lib.rs +++ b/aquatic_common/src/lib.rs @@ -50,7 +50,9 @@ where let peer_map_len = peer_map.len(); if peer_map_len <= max_num_peers_to_take + 1 { - peer_map + let mut peers = Vec::with_capacity(peer_map_len); + + peers.extend(peer_map .iter() .filter_map(|(k, v)| { if *k == sender_peer_map_key { @@ -58,8 +60,9 @@ where } else { Some(peer_conversion_function(v)) } - }) - .collect() + })); + + peers } else { let half_num_to_take = max_num_peers_to_take / 2; let half_peer_map_len = peer_map_len / 2;