Skip to content

Commit 3bc73c7

Browse files
committed
refactor: Adapt to new type of bundled thread
Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
1 parent 8f598b6 commit 3bc73c7

File tree

4 files changed

+19
-11
lines changed

4 files changed

+19
-11
lines changed

crates/matrix-sdk-common/src/deserialized_responses.rs

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,10 @@ use std::{collections::BTreeMap, fmt, sync::Arc};
1717
#[cfg(doc)]
1818
use ruma::events::AnyTimelineEvent;
1919
use ruma::{
20-
events::{AnyMessageLikeEvent, AnySyncTimelineEvent, AnyToDeviceEvent, MessageLikeEventType},
20+
events::{
21+
AnyMessageLikeEvent, AnySyncMessageLikeEvent, AnySyncTimelineEvent, AnyToDeviceEvent,
22+
MessageLikeEventType,
23+
},
2124
push::Action,
2225
serde::{
2326
AsRefStr, AsStrAsRefStr, DebugAsRefStr, DeserializeFromCowStr, FromString, JsonObject, Raw,
@@ -542,7 +545,7 @@ impl TimelineEvent {
542545
/// encryption status for it.
543546
fn from_bundled_latest_event(
544547
this: &TimelineEventKind,
545-
latest_event: Option<Raw<AnyMessageLikeEvent>>,
548+
latest_event: Option<Raw<AnySyncMessageLikeEvent>>,
546549
) -> Option<Box<Self>> {
547550
let latest_event = latest_event?;
548551

@@ -559,7 +562,9 @@ impl TimelineEvent {
559562
// information around.
560563
return Some(Box::new(TimelineEvent::from_decrypted(
561564
DecryptedRoomEvent {
562-
event: latest_event,
565+
// Safety: A decrypted event always includes a room_id in its
566+
// payload.
567+
event: latest_event.cast(),
563568
encryption_info: encryption_info.clone(),
564569
// A bundled latest event is never a thread root. It could have
565570
// a replacement event, but we don't carry this information

crates/matrix-sdk-common/src/serde_helpers.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
//! to access some fields.
1717
1818
use ruma::{
19-
events::{relation::BundledThread, AnyMessageLikeEvent, AnySyncTimelineEvent},
19+
events::{relation::BundledThread, AnySyncMessageLikeEvent, AnySyncTimelineEvent},
2020
serde::Raw,
2121
OwnedEventId,
2222
};
@@ -76,7 +76,7 @@ struct Unsigned {
7676
/// Try to extract a bundled thread summary of a timeline event, if available.
7777
pub fn extract_bundled_thread_summary(
7878
event: &Raw<AnySyncTimelineEvent>,
79-
) -> (ThreadSummaryStatus, Option<Raw<AnyMessageLikeEvent>>) {
79+
) -> (ThreadSummaryStatus, Option<Raw<AnySyncMessageLikeEvent>>) {
8080
match event.get_field::<Unsigned>("unsigned") {
8181
Ok(Some(Unsigned { relations: Some(Relations { thread: Some(bundled_thread) }) })) => {
8282
// Take the count from the bundled thread summary, if available. If it can't be

crates/matrix-sdk-crypto/src/machine/tests/mod.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@ use ruma::{
3636
room::message::{
3737
AddMentions, MessageType, Relation, ReplyWithinThread, RoomMessageEventContent,
3838
},
39-
AnyMessageLikeEvent, AnyMessageLikeEventContent, AnyToDeviceEvent, MessageLikeEvent,
40-
OriginalMessageLikeEvent, ToDeviceEventType,
39+
AnyMessageLikeEvent, AnyMessageLikeEventContent, AnySyncMessageLikeEvent, AnyToDeviceEvent,
40+
MessageLikeEvent, OriginalMessageLikeEvent, ToDeviceEventType,
4141
},
4242
room_id,
4343
serde::Raw,
@@ -1579,7 +1579,10 @@ async fn test_unsigned_decryption() {
15791579
assert!(first_message.unsigned.relations.replace.is_some());
15801580
// Deserialization of the thread event succeeded, but it is still encrypted.
15811581
let thread = first_message.unsigned.relations.thread.as_ref().unwrap();
1582-
assert_matches!(thread.latest_event.deserialize(), Ok(AnyMessageLikeEvent::RoomEncrypted(_)));
1582+
assert_matches!(
1583+
thread.latest_event.deserialize(),
1584+
Ok(AnySyncMessageLikeEvent::RoomEncrypted(_))
1585+
);
15831586

15841587
let unsigned_encryption_info = raw_decrypted_event.unsigned_encryption_info.unwrap();
15851588
assert_eq!(unsigned_encryption_info.len(), 2);
@@ -1625,7 +1628,7 @@ async fn test_unsigned_decryption() {
16251628
let thread = &first_message.unsigned.relations.thread.as_ref().unwrap();
16261629
assert_matches!(
16271630
thread.latest_event.deserialize(),
1628-
Ok(AnyMessageLikeEvent::RoomMessage(third_message))
1631+
Ok(AnySyncMessageLikeEvent::RoomMessage(third_message))
16291632
);
16301633
let third_message = third_message.as_original().unwrap();
16311634
assert_eq!(third_message.content.body(), third_message_text);

testing/matrix-sdk-test/src/event_factory.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ use ruma::{
6464
},
6565
sticker::StickerEventContent,
6666
typing::TypingEventContent,
67-
AnyMessageLikeEvent, AnyStateEvent, AnySyncStateEvent, AnySyncTimelineEvent,
67+
AnyStateEvent, AnySyncMessageLikeEvent, AnySyncStateEvent, AnySyncTimelineEvent,
6868
AnyTimelineEvent, BundledMessageLikeRelations, Mentions, RedactedMessageLikeEventContent,
6969
RedactedStateEventContent, StateEventContent, StaticEventContent,
7070
},
@@ -201,7 +201,7 @@ impl<E: StaticEventContent> EventBuilder<E> {
201201
/// this event.
202202
pub fn with_bundled_thread_summary(
203203
mut self,
204-
latest_event: Raw<AnyMessageLikeEvent>,
204+
latest_event: Raw<AnySyncMessageLikeEvent>,
205205
count: usize,
206206
current_user_participated: bool,
207207
) -> Self {

0 commit comments

Comments
 (0)