Skip to content

Commit 1f01517

Browse files
committed
fix(search): make the experimental-search feature compile
And simplify the code for parsing in the event cache.
1 parent 4f0415d commit 1f01517

File tree

2 files changed

+14
-19
lines changed

2 files changed

+14
-19
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,11 @@ impl TimelineEventKind {
762762
self.raw().get_field::<OwnedEventId>("event_id").ok().flatten()
763763
}
764764

765+
/// Whether we could not decrypt the event (i.e. it is a UTD).
766+
pub fn is_utd(&self) -> bool {
767+
matches!(self, TimelineEventKind::UnableToDecrypt { .. })
768+
}
769+
765770
/// If the event was a decrypted event that was successfully decrypted, get
766771
/// its encryption info. Otherwise, `None`.
767772
pub fn encryption_info(&self) -> Option<&Arc<EncryptionInfo>> {

crates/matrix-sdk/src/event_cache/room/mod.rs

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -640,8 +640,6 @@ mod private {
640640
sync::Timeline,
641641
};
642642
use matrix_sdk_common::executor::spawn;
643-
#[cfg(feature = "experimental-search")]
644-
use ruma::events::AnyMessageLikeEvent;
645643
use ruma::{
646644
events::{
647645
relation::RelationType, room::redaction::SyncRoomRedactionEvent,
@@ -1464,28 +1462,20 @@ mod private {
14641462

14651463
#[cfg(feature = "experimental-search")]
14661464
fn parse_timeline_event(&self, event: &TimelineEvent) -> Option<AnySyncMessageLikeEvent> {
1467-
let maybe_try_event = match &event.kind {
1468-
TimelineEventKind::Decrypted(d) => {
1469-
Some(d.event.deserialize().map(AnyMessageLikeEvent::into))
1470-
}
1471-
TimelineEventKind::PlainText { event } => match event.deserialize() {
1472-
Ok(event_obj) => match event_obj {
1473-
AnySyncTimelineEvent::MessageLike(sync_event) => Some(Ok(sync_event)),
1474-
AnySyncTimelineEvent::State(_) => None,
1475-
},
1476-
Err(e) => Some(Err(e)),
1477-
},
1465+
if event.kind.is_utd() {
1466+
return None;
1467+
}
14781468

1479-
TimelineEventKind::UnableToDecrypt { event: _, utd_info: _ } => None,
1480-
};
1469+
match event.raw().deserialize() {
1470+
Ok(event) => match event {
1471+
AnySyncTimelineEvent::MessageLike(event) => Some(event),
1472+
AnySyncTimelineEvent::State(_) => None,
1473+
},
14811474

1482-
match maybe_try_event {
1483-
Some(Ok(event)) => Some(event),
1484-
Some(Err(e)) => {
1475+
Err(e) => {
14851476
warn!("failed to parse event: {e:?}");
14861477
None
14871478
}
1488-
None => None,
14891479
}
14901480
}
14911481

0 commit comments

Comments
 (0)