From 05be778fbbd09257fe26865f6b6c2449419ce704 Mon Sep 17 00:00:00 2001 From: Charles Hall Date: Thu, 16 May 2024 01:08:08 -0700 Subject: [PATCH] stop putting comments in the middle of call chains `rustfmt` doesn't handle this very well. --- src/api/client_server/directory.rs | 2 -- src/api/client_server/message.rs | 4 +-- src/api/client_server/space.rs | 2 +- src/api/client_server/state.rs | 1 - src/api/client_server/sync.rs | 1 - src/database/key_value/rooms/user.rs | 2 +- src/database/key_value/users.rs | 2 +- src/main.rs | 52 +++++++++++++++------------- src/service/rooms/pdu_metadata.rs | 6 ++-- src/service/rooms/spaces.rs | 1 - 10 files changed, 35 insertions(+), 38 deletions(-) diff --git a/src/api/client_server/directory.rs b/src/api/client_server/directory.rs index 3da2ca55..1e0e145f 100644 --- a/src/api/client_server/directory.rs +++ b/src/api/client_server/directory.rs @@ -266,7 +266,6 @@ pub(crate) async fn get_public_rooms_filtered_helper( }) }) .transpose()? - // url is now an Option so we must flatten .flatten(), join_rule: services() .rooms @@ -336,7 +335,6 @@ pub(crate) async fn get_public_rooms_filtered_helper( true } }) - // We need to collect all, so we can sort by member count .collect(); all_rooms.sort_by(|l, r| r.num_joined_members.cmp(&l.num_joined_members)); diff --git a/src/api/client_server/message.rs b/src/api/client_server/message.rs index 852a3514..2b920295 100644 --- a/src/api/client_server/message.rs +++ b/src/api/client_server/message.rs @@ -165,7 +165,7 @@ pub(crate) async fn get_message_events_route( .user_can_see_event(sender_user, &body.room_id, &pdu.event_id) .unwrap_or(false) }) - .take_while(|&(k, _)| Some(k) != to) // Stop at `to` + .take_while(|&(k, _)| Some(k) != to) .collect(); for (_, event) in &events_after { @@ -217,7 +217,7 @@ pub(crate) async fn get_message_events_route( .user_can_see_event(sender_user, &body.room_id, &pdu.event_id) .unwrap_or(false) }) - .take_while(|&(k, _)| Some(k) != to) // Stop at `to` + .take_while(|&(k, _)| Some(k) != to) .collect(); for (_, event) in &events_before { diff --git a/src/api/client_server/space.rs b/src/api/client_server/space.rs index 43463184..f01d888c 100644 --- a/src/api/client_server/space.rs +++ b/src/api/client_server/space.rs @@ -22,9 +22,9 @@ pub(crate) async fn get_hierarchy_route( .try_into() .expect("0-100 should fit in usize"); + // Plus one to skip the space room itself let max_depth = usize::try_from(body.max_depth.map(|x| x.min(uint!(10))).unwrap_or(uint!(3))) .expect("0-10 should fit in usize") - // Skip the space room itself + 1; services() diff --git a/src/api/client_server/state.rs b/src/api/client_server/state.rs index dda83e10..518ae621 100644 --- a/src/api/client_server/state.rs +++ b/src/api/client_server/state.rs @@ -211,7 +211,6 @@ async fn send_state_event_for_key_helper( .rooms .alias .resolve_local_alias(&alias)? - // Make sure it's the right room .filter(|room| room == room_id) .is_none() { diff --git a/src/api/client_server/sync.rs b/src/api/client_server/sync.rs index 9f7a2626..8fb823e3 100644 --- a/src/api/client_server/sync.rs +++ b/src/api/client_server/sync.rs @@ -678,7 +678,6 @@ async fn load_joined_room( } }) .filter_map(Result::ok) - // Filter for possible heroes .flatten() { if heroes.contains(&hero) || hero == sender_user.as_str() { diff --git a/src/database/key_value/rooms/user.rs b/src/database/key_value/rooms/user.rs index f3564272..7c253d3f 100644 --- a/src/database/key_value/rooms/user.rs +++ b/src/database/key_value/rooms/user.rs @@ -117,13 +117,13 @@ impl service::rooms::user::Data for KeyValueDatabase { self.userroomid_joined .scan_prefix(prefix) .map(|(key, _)| { + // Plus one because the room id starts AFTER the separator let roomid_index = key .iter() .enumerate() .find(|(_, &b)| b == 0xff) .ok_or_else(|| Error::bad_database("Invalid userroomid_joined in db."))? .0 - // +1 because the room id starts AFTER the separator + 1; let room_id = key[roomid_index..].to_vec(); diff --git a/src/database/key_value/users.rs b/src/database/key_value/users.rs index d437803f..840e4788 100644 --- a/src/database/key_value/users.rs +++ b/src/database/key_value/users.rs @@ -828,9 +828,9 @@ impl service::users::Data for KeyValueDatabase { let mut last = prefix.clone(); last.extend_from_slice(&until.to_be_bytes()); + // Include last for (key, _) in self .todeviceid_events - // this includes last .iter_from(&last, true) .take_while(move |(k, _)| k.starts_with(&prefix)) .map(|(key, _)| { diff --git a/src/main.rs b/src/main.rs index bd266bb4..4bb9db10 100644 --- a/src/main.rs +++ b/src/main.rs @@ -378,29 +378,6 @@ fn routes(config: &Config) -> Router { .ruma_route(client_server::send_state_event_for_key_route) .ruma_route(client_server::get_state_events_route) .ruma_route(client_server::get_state_events_for_key_route) - // Ruma doesn't have support for multiple paths for a single endpoint yet, and these routes - // share one Ruma request / response type pair with {get,send}_state_event_for_key_route - .route( - "/_matrix/client/r0/rooms/:room_id/state/:event_type", - get(client_server::get_state_events_for_empty_key_route) - .put(client_server::send_state_event_for_empty_key_route), - ) - .route( - "/_matrix/client/v3/rooms/:room_id/state/:event_type", - get(client_server::get_state_events_for_empty_key_route) - .put(client_server::send_state_event_for_empty_key_route), - ) - // These two endpoints allow trailing slashes - .route( - "/_matrix/client/r0/rooms/:room_id/state/:event_type/", - get(client_server::get_state_events_for_empty_key_route) - .put(client_server::send_state_event_for_empty_key_route), - ) - .route( - "/_matrix/client/v3/rooms/:room_id/state/:event_type/", - get(client_server::get_state_events_for_empty_key_route) - .put(client_server::send_state_event_for_empty_key_route), - ) .ruma_route(client_server::sync_events_route) .ruma_route(client_server::sync_events_v4_route) .ruma_route(client_server::get_context_route) @@ -431,7 +408,34 @@ fn routes(config: &Config) -> Router { .ruma_route(client_server::get_relating_events_with_rel_type_and_event_type_route) .ruma_route(client_server::get_relating_events_with_rel_type_route) .ruma_route(client_server::get_relating_events_route) - .ruma_route(client_server::get_hierarchy_route) + .ruma_route(client_server::get_hierarchy_route); + + // Ruma doesn't have support for multiple paths for a single endpoint yet, and these routes + // share one Ruma request / response type pair with {get,send}_state_event_for_key_route. + // These two endpoints also allow trailing slashes. + let router = router + .route( + "/_matrix/client/r0/rooms/:room_id/state/:event_type", + get(client_server::get_state_events_for_empty_key_route) + .put(client_server::send_state_event_for_empty_key_route), + ) + .route( + "/_matrix/client/v3/rooms/:room_id/state/:event_type", + get(client_server::get_state_events_for_empty_key_route) + .put(client_server::send_state_event_for_empty_key_route), + ) + .route( + "/_matrix/client/r0/rooms/:room_id/state/:event_type/", + get(client_server::get_state_events_for_empty_key_route) + .put(client_server::send_state_event_for_empty_key_route), + ) + .route( + "/_matrix/client/v3/rooms/:room_id/state/:event_type/", + get(client_server::get_state_events_for_empty_key_route) + .put(client_server::send_state_event_for_empty_key_route), + ); + + let router = router .route( "/_matrix/client/r0/rooms/:room_id/initialSync", get(initial_sync), diff --git a/src/service/rooms/pdu_metadata.rs b/src/service/rooms/pdu_metadata.rs index 636a3a58..5a778f6b 100644 --- a/src/service/rooms/pdu_metadata.rs +++ b/src/service/rooms/pdu_metadata.rs @@ -61,10 +61,10 @@ impl Service { //TODO: Fix ruma: match body.dir { match ruma::api::Direction::Backward { ruma::api::Direction::Forward => { + // TODO: should be relations_after let events_after: Vec<_> = services() .rooms .pdu_metadata - // TODO: should be relations_after .relations_until(sender_user, room_id, target, from)? .filter(|r| { r.as_ref().map_or(true, |(_, pdu)| { @@ -91,15 +91,14 @@ impl Service { .user_can_see_event(sender_user, room_id, &pdu.event_id) .unwrap_or(false) }) - // Stop at `to` .take_while(|&(k, _)| Some(k) != to) .collect(); next_token = events_after.last().map(|(count, _)| count).copied(); + // Reversed because relations are always most recent first let events_after: Vec<_> = events_after .into_iter() - // relations are always most recent first .rev() .map(|(_, pdu)| pdu.to_message_like_event()) .collect(); @@ -140,7 +139,6 @@ impl Service { .user_can_see_event(sender_user, room_id, &pdu.event_id) .unwrap_or(false) }) - // Stop at `to` .take_while(|&(k, _)| Some(k) != to) .collect(); diff --git a/src/service/rooms/spaces.rs b/src/service/rooms/spaces.rs index c478b2f2..7e97dbd4 100644 --- a/src/service/rooms/spaces.rs +++ b/src/service/rooms/spaces.rs @@ -371,7 +371,6 @@ impl Service { .map_err(|_| Error::bad_database("Invalid room avatar event in database.")) }) .transpose()? - // url is now an Option so we must flatten .flatten(), join_rule: { let join_rule = services()