From 076de488e75bfcff713c698d8f6cc99b23dd5814 Mon Sep 17 00:00:00 2001 From: ismailgulek Date: Mon, 12 Sep 2022 17:54:55 +0300 Subject: [PATCH] Avoid too much indentation --- examples/emoji_verification/src/main.rs | 290 ++++++++++++------------ 1 file changed, 143 insertions(+), 147 deletions(-) diff --git a/examples/emoji_verification/src/main.rs b/examples/emoji_verification/src/main.rs index 6502c721a..59783427d 100644 --- a/examples/emoji_verification/src/main.rs +++ b/examples/emoji_verification/src/main.rs @@ -80,155 +80,151 @@ async fn sync(client: Client) -> matrix_sdk::Result<()> { let client = &client_ref; let initial = &initial_ref; - if let Ok(sync_response) = response { - for event in - sync_response.to_device.events.iter().filter_map(|e| e.deserialize().ok()) - { - match event { - AnyToDeviceEvent::KeyVerificationRequest(e) => { - let request = client - .encryption() - .get_verification_request(&e.sender, &e.content.transaction_id) - .await - .expect("Request object wasn't created"); - - request.accept().await.expect("Can't accept verification request"); - } - AnyToDeviceEvent::KeyVerificationStart(e) => { - if let Some(Verification::SasV1(sas)) = client - .encryption() - .get_verification(&e.sender, e.content.transaction_id.as_str()) - .await - { - println!( - "Starting verification with {} {}", - &sas.other_device().user_id(), - &sas.other_device().device_id() - ); - print_devices(&e.sender, client).await; - sas.accept().await.unwrap(); - } - } - - AnyToDeviceEvent::KeyVerificationKey(e) => { - if let Some(Verification::SasV1(sas)) = client - .encryption() - .get_verification(&e.sender, e.content.transaction_id.as_str()) - .await - { - tokio::spawn(wait_for_confirmation((*client).clone(), sas)); - } - } - - AnyToDeviceEvent::KeyVerificationDone(e) => { - if let Some(Verification::SasV1(sas)) = client - .encryption() - .get_verification(&e.sender, e.content.transaction_id.as_str()) - .await - { - if sas.is_done() { - print_result(&sas); - print_devices(&e.sender, client).await; - } - } - } - - _ => (), - } - } - - if !initial.load(Ordering::SeqCst) { - for (_room_id, room_info) in sync_response.rooms.join { - for event in room_info - .timeline - .events - .iter() - .filter_map(|e| e.event.deserialize().ok()) - { - if let AnySyncTimelineEvent::MessageLike(event) = event { - match event { - AnySyncMessageLikeEvent::RoomMessage( - SyncMessageLikeEvent::Original(m), - ) => { - if let MessageType::VerificationRequest(_) = - &m.content.msgtype - { - let request = client - .encryption() - .get_verification_request(&m.sender, &m.event_id) - .await - .expect("Request object wasn't created"); - - request - .accept() - .await - .expect("Can't accept verification request"); - } - } - AnySyncMessageLikeEvent::KeyVerificationStart( - SyncMessageLikeEvent::Original(e), - ) => { - if let Some(Verification::SasV1(sas)) = client - .encryption() - .get_verification( - &e.sender, - e.content.relates_to.event_id.as_str(), - ) - .await - { - println!( - "Starting verification with {} {}", - &sas.other_device().user_id(), - &sas.other_device().device_id() - ); - print_devices(&e.sender, client).await; - sas.accept().await.unwrap(); - } - } - AnySyncMessageLikeEvent::KeyVerificationKey( - SyncMessageLikeEvent::Original(e), - ) => { - if let Some(Verification::SasV1(sas)) = client - .encryption() - .get_verification( - &e.sender, - e.content.relates_to.event_id.as_str(), - ) - .await - { - tokio::spawn(wait_for_confirmation( - (*client).clone(), - sas, - )); - } - } - AnySyncMessageLikeEvent::KeyVerificationDone( - SyncMessageLikeEvent::Original(e), - ) => { - if let Some(Verification::SasV1(sas)) = client - .encryption() - .get_verification( - &e.sender, - e.content.relates_to.event_id.as_str(), - ) - .await - { - if sas.is_done() { - print_result(&sas); - print_devices(&e.sender, client).await; - } - } - } - _ => (), - } - } - } - } - } - - initial.store(false, Ordering::SeqCst); + if response.is_err() { + return LoopCtrl::Break; } + let sync_response = response.ok().unwrap(); + + for event in sync_response.to_device.events.iter().filter_map(|e| e.deserialize().ok()) + { + match event { + AnyToDeviceEvent::KeyVerificationRequest(e) => { + let request = client + .encryption() + .get_verification_request(&e.sender, &e.content.transaction_id) + .await + .expect("Request object wasn't created"); + + request.accept().await.expect("Can't accept verification request"); + } + AnyToDeviceEvent::KeyVerificationStart(e) => { + if let Some(Verification::SasV1(sas)) = client + .encryption() + .get_verification(&e.sender, e.content.transaction_id.as_str()) + .await + { + println!( + "Starting verification with {} {}", + &sas.other_device().user_id(), + &sas.other_device().device_id() + ); + print_devices(&e.sender, client).await; + sas.accept().await.unwrap(); + } + } + + AnyToDeviceEvent::KeyVerificationKey(e) => { + if let Some(Verification::SasV1(sas)) = client + .encryption() + .get_verification(&e.sender, e.content.transaction_id.as_str()) + .await + { + tokio::spawn(wait_for_confirmation((*client).clone(), sas)); + } + } + + AnyToDeviceEvent::KeyVerificationDone(e) => { + if let Some(Verification::SasV1(sas)) = client + .encryption() + .get_verification(&e.sender, e.content.transaction_id.as_str()) + .await + { + if sas.is_done() { + print_result(&sas); + print_devices(&e.sender, client).await; + } + } + } + + _ => (), + } + } + + if !initial.load(Ordering::SeqCst) { + for (_room_id, room_info) in sync_response.rooms.join { + for event in + room_info.timeline.events.iter().filter_map(|e| e.event.deserialize().ok()) + { + if let AnySyncTimelineEvent::MessageLike(event) = event { + match event { + AnySyncMessageLikeEvent::RoomMessage( + SyncMessageLikeEvent::Original(m), + ) => { + if let MessageType::VerificationRequest(_) = &m.content.msgtype + { + let request = client + .encryption() + .get_verification_request(&m.sender, &m.event_id) + .await + .expect("Request object wasn't created"); + + request + .accept() + .await + .expect("Can't accept verification request"); + } + } + AnySyncMessageLikeEvent::KeyVerificationStart( + SyncMessageLikeEvent::Original(e), + ) => { + if let Some(Verification::SasV1(sas)) = client + .encryption() + .get_verification( + &e.sender, + e.content.relates_to.event_id.as_str(), + ) + .await + { + println!( + "Starting verification with {} {}", + &sas.other_device().user_id(), + &sas.other_device().device_id() + ); + print_devices(&e.sender, client).await; + sas.accept().await.unwrap(); + } + } + AnySyncMessageLikeEvent::KeyVerificationKey( + SyncMessageLikeEvent::Original(e), + ) => { + if let Some(Verification::SasV1(sas)) = client + .encryption() + .get_verification( + &e.sender, + e.content.relates_to.event_id.as_str(), + ) + .await + { + tokio::spawn(wait_for_confirmation((*client).clone(), sas)); + } + } + AnySyncMessageLikeEvent::KeyVerificationDone( + SyncMessageLikeEvent::Original(e), + ) => { + if let Some(Verification::SasV1(sas)) = client + .encryption() + .get_verification( + &e.sender, + e.content.relates_to.event_id.as_str(), + ) + .await + { + if sas.is_done() { + print_result(&sas); + print_devices(&e.sender, client).await; + } + } + } + _ => (), + } + } + } + } + } + + initial.store(false, Ordering::SeqCst); + LoopCtrl::Continue }) .await;