chain_width to 50

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-04-22 04:42:26 +00:00
parent 9b658d86b2
commit 76509830e6
190 changed files with 3469 additions and 930 deletions

View File

@@ -92,14 +92,23 @@ impl crate::Service for Service {
}
async fn memory_usage(&self, out: &mut (dyn Write + Send)) -> Result {
let roomid_spacehierarchy_cache = self.roomid_spacehierarchy_cache.lock().await.len();
let roomid_spacehierarchy_cache = self
.roomid_spacehierarchy_cache
.lock()
.await
.len();
writeln!(out, "roomid_spacehierarchy_cache: {roomid_spacehierarchy_cache}")?;
Ok(())
}
async fn clear_cache(&self) { self.roomid_spacehierarchy_cache.lock().await.clear(); }
async fn clear_cache(&self) {
self.roomid_spacehierarchy_cache
.lock()
.await
.clear();
}
fn name(&self) -> &str { crate::service::make_name(std::module_path!()) }
}
@@ -121,7 +130,11 @@ pub async fn get_summary_and_children_local(
| None => (), // cache miss
| Some(None) => return Ok(None),
| Some(Some(cached)) => {
let allowed_rooms = cached.summary.allowed_room_ids.iter().map(AsRef::as_ref);
let allowed_rooms = cached
.summary
.allowed_room_ids
.iter()
.map(AsRef::as_ref);
let is_accessible_child = self.is_accessible_child(
current_room,
@@ -154,10 +167,13 @@ pub async fn get_summary_and_children_local(
return Ok(None);
};
self.roomid_spacehierarchy_cache.lock().await.insert(
current_room.to_owned(),
Some(CachedSpaceHierarchySummary { summary: summary.clone() }),
);
self.roomid_spacehierarchy_cache
.lock()
.await
.insert(
current_room.to_owned(),
Some(CachedSpaceHierarchySummary { summary: summary.clone() }),
);
Ok(Some(SummaryAccessibility::Accessible(summary)))
}
@@ -196,10 +212,13 @@ async fn get_summary_and_children_federation(
};
let summary = response.room;
self.roomid_spacehierarchy_cache.lock().await.insert(
current_room.to_owned(),
Some(CachedSpaceHierarchySummary { summary: summary.clone() }),
);
self.roomid_spacehierarchy_cache
.lock()
.await
.insert(
current_room.to_owned(),
Some(CachedSpaceHierarchySummary { summary: summary.clone() }),
);
response
.children
@@ -304,7 +323,11 @@ async fn get_room_summary(
children_state: Vec<Raw<HierarchySpaceChildEvent>>,
identifier: &Identifier<'_>,
) -> Result<SpaceHierarchyParentSummary, Error> {
let join_rule = self.services.state_accessor.get_join_rules(room_id).await;
let join_rule = self
.services
.state_accessor
.get_join_rules(room_id)
.await;
let is_accessible_child = self
.is_accessible_child(
@@ -319,15 +342,33 @@ async fn get_room_summary(
return Err!(Request(Forbidden("User is not allowed to see the room")));
}
let name = self.services.state_accessor.get_name(room_id).ok();
let name = self
.services
.state_accessor
.get_name(room_id)
.ok();
let topic = self.services.state_accessor.get_room_topic(room_id).ok();
let topic = self
.services
.state_accessor
.get_room_topic(room_id)
.ok();
let room_type = self.services.state_accessor.get_room_type(room_id).ok();
let room_type = self
.services
.state_accessor
.get_room_type(room_id)
.ok();
let world_readable = self.services.state_accessor.is_world_readable(room_id);
let world_readable = self
.services
.state_accessor
.is_world_readable(room_id);
let guest_can_join = self.services.state_accessor.guest_can_join(room_id);
let guest_can_join = self
.services
.state_accessor
.guest_can_join(room_id);
let num_joined_members = self
.services
@@ -392,7 +433,10 @@ async fn get_room_summary(
room_version,
room_id: room_id.to_owned(),
num_joined_members: num_joined_members.try_into().unwrap_or_default(),
allowed_room_ids: join_rule.allowed_rooms().map(Into::into).collect(),
allowed_room_ids: join_rule
.allowed_rooms()
.map(Into::into)
.collect(),
join_rule: join_rule.clone().into(),
};
@@ -425,9 +469,15 @@ where
}
if let Identifier::UserId(user_id) = identifier {
let is_joined = self.services.state_cache.is_joined(user_id, current_room);
let is_joined = self
.services
.state_cache
.is_joined(user_id, current_room);
let is_invited = self.services.state_cache.is_invited(user_id, current_room);
let is_invited = self
.services
.state_cache
.is_invited(user_id, current_room);
pin_mut!(is_joined, is_invited);
if is_joined.or(is_invited).await {
@@ -444,9 +494,15 @@ where
.stream()
.any(async |room| match identifier {
| Identifier::UserId(user) =>
self.services.state_cache.is_joined(user, room).await,
self.services
.state_cache
.is_joined(user, room)
.await,
| Identifier::ServerName(server) =>
self.services.state_cache.server_in_room(server, room).await,
self.services
.state_cache
.server_in_room(server, room)
.await,
})
.await,