tiny micro-optimisations in some config stuff

Signed-off-by: strawberry <strawberry@puppygock.gay>
This commit is contained in:
strawberry 2024-09-20 23:34:49 -04:00
parent 75be68fa61
commit 4d7bbe9fb4
2 changed files with 21 additions and 14 deletions

View file

@ -473,7 +473,11 @@ impl Config {
#[must_use] #[must_use]
pub fn get_bind_addrs(&self) -> Vec<SocketAddr> { pub fn get_bind_addrs(&self) -> Vec<SocketAddr> {
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 host in &self.get_bind_hosts() {
for port in &self.get_bind_ports() { for port in &self.get_bind_ports() {
addrs.push(SocketAddr::new(*host, *port)); 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 TTL", &self.turn_ttl.to_string());
line("Turn URIs", { 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() { for item in self.turn_uris.iter().cloned().enumerate() {
let (_, uri): (usize, String) = item; let (_, uri): (usize, String) = item;
lst.push(uri); lst.push(uri);
@ -712,7 +716,7 @@ impl fmt::Display for Config {
&lst.join(", ") &lst.join(", ")
}); });
line("Auto Join Rooms", { 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 { for room in &self.auto_join_rooms {
lst.push(room); lst.push(room);
} }
@ -764,28 +768,28 @@ impl fmt::Display for Config {
line("Allow legacy (unauthenticated) media", &self.allow_legacy_media.to_string()); line("Allow legacy (unauthenticated) media", &self.allow_legacy_media.to_string());
line("Freeze legacy (unauthenticated) media", &self.freeze_legacy_media.to_string()); line("Freeze legacy (unauthenticated) media", &self.freeze_legacy_media.to_string());
line("Prevent Media Downloads From", { 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 { for domain in &self.prevent_media_downloads_from {
lst.push(domain.host()); lst.push(domain.host());
} }
&lst.join(", ") &lst.join(", ")
}); });
line("Forbidden Remote Server Names (\"Global\" ACLs)", { 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 { for domain in &self.forbidden_remote_server_names {
lst.push(domain.host()); lst.push(domain.host());
} }
&lst.join(", ") &lst.join(", ")
}); });
line("Forbidden Remote Room Directory Server Names", { 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 { for domain in &self.forbidden_remote_room_directory_server_names {
lst.push(domain.host()); lst.push(domain.host());
} }
&lst.join(", ") &lst.join(", ")
}); });
line("Outbound Request IP Range Denylist", { line("Outbound Request IP Range (CIDR) Denylist", {
let mut lst = vec![]; let mut lst = Vec::with_capacity(self.ip_range_denylist.len());
for item in self.ip_range_denylist.iter().cloned().enumerate() { for item in self.ip_range_denylist.iter().cloned().enumerate() {
let (_, ip): (usize, String) = item; let (_, ip): (usize, String) = item;
lst.push(ip); lst.push(ip);

View file

@ -275,12 +275,15 @@ impl Service {
pub fn block_non_admin_invites(&self) -> bool { self.config.block_non_admin_invites } pub fn block_non_admin_invites(&self) -> bool { self.config.block_non_admin_invites }
pub fn supported_room_versions(&self) -> Vec<RoomVersionId> { pub fn supported_room_versions(&self) -> Vec<RoomVersionId> {
let mut room_versions: Vec<RoomVersionId> = Vec::with_capacity(self.stable_room_versions.len()); if self.config.allow_unstable_room_versions {
room_versions.extend(self.stable_room_versions.clone()); self.stable_room_versions
if self.allow_unstable_room_versions() { .clone()
room_versions.extend(self.unstable_room_versions.clone()); .into_iter()
}; .chain(self.unstable_room_versions.clone())
room_versions .collect()
} else {
self.stable_room_versions.clone()
}
} }
/// This returns an empty `Ok(BTreeMap<..>)` when there are no keys found /// This returns an empty `Ok(BTreeMap<..>)` when there are no keys found