From 4d7bbe9fb463014ae9ab7d1df15e5a059d5d8800 Mon Sep 17 00:00:00 2001 From: strawberry Date: Fri, 20 Sep 2024 23:34:49 -0400 Subject: [PATCH] tiny micro-optimisations in some config stuff Signed-off-by: strawberry --- src/core/config/mod.rs | 20 ++++++++++++-------- src/service/globals/mod.rs | 15 +++++++++------ 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/src/core/config/mod.rs b/src/core/config/mod.rs index d5ed845b..d2d583a8 100644 --- a/src/core/config/mod.rs +++ b/src/core/config/mod.rs @@ -473,7 +473,11 @@ impl Config { #[must_use] pub fn get_bind_addrs(&self) -> Vec { - let mut addrs = Vec::new(); + let mut addrs = Vec::with_capacity( + self.get_bind_hosts() + .len() + .saturating_add(self.get_bind_ports().len()), + ); for host in &self.get_bind_hosts() { for port in &self.get_bind_ports() { addrs.push(SocketAddr::new(*host, *port)); @@ -704,7 +708,7 @@ impl fmt::Display for Config { }); line("Turn TTL", &self.turn_ttl.to_string()); line("Turn URIs", { - let mut lst = vec![]; + let mut lst = Vec::with_capacity(self.turn_uris.len()); for item in self.turn_uris.iter().cloned().enumerate() { let (_, uri): (usize, String) = item; lst.push(uri); @@ -712,7 +716,7 @@ impl fmt::Display for Config { &lst.join(", ") }); line("Auto Join Rooms", { - let mut lst = vec![]; + let mut lst = Vec::with_capacity(self.auto_join_rooms.len()); for room in &self.auto_join_rooms { lst.push(room); } @@ -764,28 +768,28 @@ impl fmt::Display for Config { line("Allow legacy (unauthenticated) media", &self.allow_legacy_media.to_string()); line("Freeze legacy (unauthenticated) media", &self.freeze_legacy_media.to_string()); line("Prevent Media Downloads From", { - let mut lst = vec![]; + let mut lst = Vec::with_capacity(self.prevent_media_downloads_from.len()); for domain in &self.prevent_media_downloads_from { lst.push(domain.host()); } &lst.join(", ") }); line("Forbidden Remote Server Names (\"Global\" ACLs)", { - let mut lst = vec![]; + let mut lst = Vec::with_capacity(self.forbidden_remote_server_names.len()); for domain in &self.forbidden_remote_server_names { lst.push(domain.host()); } &lst.join(", ") }); line("Forbidden Remote Room Directory Server Names", { - let mut lst = vec![]; + let mut lst = Vec::with_capacity(self.forbidden_remote_room_directory_server_names.len()); for domain in &self.forbidden_remote_room_directory_server_names { lst.push(domain.host()); } &lst.join(", ") }); - line("Outbound Request IP Range Denylist", { - let mut lst = vec![]; + line("Outbound Request IP Range (CIDR) Denylist", { + let mut lst = Vec::with_capacity(self.ip_range_denylist.len()); for item in self.ip_range_denylist.iter().cloned().enumerate() { let (_, ip): (usize, String) = item; lst.push(ip); diff --git a/src/service/globals/mod.rs b/src/service/globals/mod.rs index a044d30a..87f8f492 100644 --- a/src/service/globals/mod.rs +++ b/src/service/globals/mod.rs @@ -275,12 +275,15 @@ impl Service { pub fn block_non_admin_invites(&self) -> bool { self.config.block_non_admin_invites } pub fn supported_room_versions(&self) -> Vec { - let mut room_versions: Vec = Vec::with_capacity(self.stable_room_versions.len()); - room_versions.extend(self.stable_room_versions.clone()); - if self.allow_unstable_room_versions() { - room_versions.extend(self.unstable_room_versions.clone()); - }; - room_versions + if self.config.allow_unstable_room_versions { + self.stable_room_versions + .clone() + .into_iter() + .chain(self.unstable_room_versions.clone()) + .collect() + } else { + self.stable_room_versions.clone() + } } /// This returns an empty `Ok(BTreeMap<..>)` when there are no keys found