@@ -54,7 +54,7 @@ use ruma::{
5454 MilliSecondsSinceUnixEpoch , OwnedUserId , RoomId , UInt , UserId ,
5555} ;
5656use tokio:: sync:: RwLock ;
57- use tracing:: { debug, info, trace, warn} ;
57+ use tracing:: { debug, info, instrument , trace, warn} ;
5858
5959use crate :: {
6060 deserialized_responses:: { AmbiguityChanges , MembersResponse , SyncTimelineEvent } ,
@@ -297,6 +297,7 @@ impl BaseClient {
297297 }
298298
299299 #[ allow( clippy:: too_many_arguments) ]
300+ #[ instrument( skip_all, fields( room_id = ?room_info. room_id) ) ]
300301 pub ( crate ) async fn handle_timeline (
301302 & self ,
302303 room : & Room ,
@@ -438,6 +439,7 @@ impl BaseClient {
438439 Ok ( timeline)
439440 }
440441
442+ #[ instrument( skip_all, fields( room_id = ?room_info. room_id) ) ]
441443 pub ( crate ) fn handle_invited_state (
442444 & self ,
443445 events : & [ Raw < AnyStrippedStateEvent > ] ,
@@ -467,6 +469,7 @@ impl BaseClient {
467469 changes. stripped_state . insert ( room_info. room_id ( ) . to_owned ( ) , state_events) ;
468470 }
469471
472+ #[ instrument( skip_all, fields( room_id = ?room_info. room_id) ) ]
470473 pub ( crate ) async fn handle_state (
471474 & self ,
472475 events : & [ Raw < AnySyncStateEvent > ] ,
@@ -478,21 +481,19 @@ impl BaseClient {
478481 let mut user_ids = BTreeSet :: new ( ) ;
479482 let mut profiles = BTreeMap :: new ( ) ;
480483
481- let room_id = room_info. room_id . clone ( ) ;
482-
483484 for raw_event in events {
484485 let event = match raw_event. deserialize ( ) {
485- Ok ( e ) => e ,
486+ Ok ( ev ) => ev ,
486487 Err ( e) => {
487- warn ! ( ?room_id , "Couldn't deserialize state event: {e:? }" ) ;
488+ warn ! ( "Couldn't deserialize state event: {e}" ) ;
488489 continue ;
489490 }
490491 } ;
491492
492493 room_info. handle_state_event ( & event) ;
493494
494495 if let AnySyncStateEvent :: RoomMember ( member) = & event {
495- ambiguity_cache. handle_event ( changes, & room_id, member) . await ?;
496+ ambiguity_cache. handle_event ( changes, & room_info . room_id , member) . await ?;
496497
497498 match member. membership ( ) {
498499 MembershipState :: Join | MembershipState :: Invite => {
@@ -516,12 +517,13 @@ impl BaseClient {
516517 . insert ( event. state_key ( ) . to_owned ( ) , raw_event. clone ( ) ) ;
517518 }
518519
519- changes. profiles . insert ( ( * room_id) . to_owned ( ) , profiles) ;
520- changes. state . insert ( ( * room_id) . to_owned ( ) , state_events) ;
520+ changes. profiles . insert ( ( * room_info . room_id ) . to_owned ( ) , profiles) ;
521+ changes. state . insert ( ( * room_info . room_id ) . to_owned ( ) , state_events) ;
521522
522523 Ok ( user_ids)
523524 }
524525
526+ #[ instrument( skip_all, fields( ?room_id) ) ]
525527 pub ( crate ) async fn handle_room_account_data (
526528 & self ,
527529 room_id : & RoomId ,
@@ -535,6 +537,7 @@ impl BaseClient {
535537 }
536538 }
537539
540+ #[ instrument( skip_all) ]
538541 pub ( crate ) async fn handle_account_data (
539542 & self ,
540543 events : & [ Raw < AnyGlobalAccountDataEvent > ] ,
@@ -580,6 +583,7 @@ impl BaseClient {
580583 }
581584
582585 #[ cfg( feature = "e2e-encryption" ) ]
586+ #[ instrument( skip_all) ]
583587 pub ( crate ) async fn preprocess_to_device_events (
584588 & self ,
585589 to_device_events : Vec < Raw < ruma:: events:: AnyToDeviceEvent > > ,
@@ -656,6 +660,7 @@ impl BaseClient {
656660 /// # Arguments
657661 ///
658662 /// * `response` - The response that we received after a successful sync.
663+ #[ instrument( skip_all) ]
659664 pub async fn receive_sync_response (
660665 & self ,
661666 response : api:: sync:: sync_events:: v3:: Response ,
@@ -720,13 +725,21 @@ impl BaseClient {
720725 )
721726 . await ?;
722727
723- if let Some ( event) =
724- new_info. ephemeral . events . iter ( ) . find_map ( |e| match e. deserialize ( ) {
725- Ok ( AnySyncEphemeralRoomEvent :: Receipt ( event) ) => Some ( event. content ) ,
726- _ => None ,
727- } )
728- {
729- changes. add_receipts ( & room_id, event) ;
728+ for raw in & new_info. ephemeral . events {
729+ match raw. deserialize ( ) {
730+ Ok ( AnySyncEphemeralRoomEvent :: Receipt ( event) ) => {
731+ changes. add_receipts ( & room_id, event. content ) ;
732+ }
733+ Ok ( _) => { }
734+ Err ( e) => {
735+ let event_id: Option < String > = raw. get_field ( "event_id" ) . ok ( ) . flatten ( ) ;
736+ #[ rustfmt:: skip]
737+ info ! (
738+ ?room_id, event_id,
739+ "Failed to deserialize ephemeral room event: {e}"
740+ ) ;
741+ }
742+ }
730743 }
731744
732745 if new_info. timeline . limited {
@@ -907,6 +920,7 @@ impl BaseClient {
907920 /// * `room_id` - The room id this response belongs to.
908921 ///
909922 /// * `response` - The raw response that was received from the server.
923+ #[ instrument( skip_all, fields( ?room_id) ) ]
910924 pub async fn receive_members (
911925 & self ,
912926 room_id : & RoomId ,
0 commit comments