From 4e16f79ad27b278541f51babb1bc40ba6c4cd97a Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Mon, 2 May 2022 16:35:33 +0200 Subject: [PATCH] chore(base): Store tombstone event's ID in BaseRoomInfo --- crates/matrix-sdk-base/src/rooms/mod.rs | 6 +++--- crates/matrix-sdk-base/src/rooms/normal.rs | 6 +++++- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/crates/matrix-sdk-base/src/rooms/mod.rs b/crates/matrix-sdk-base/src/rooms/mod.rs index 03d3b7bf9..5a7d90898 100644 --- a/crates/matrix-sdk-base/src/rooms/mod.rs +++ b/crates/matrix-sdk-base/src/rooms/mod.rs @@ -162,7 +162,7 @@ pub struct BaseRoomInfo { /// The `m.room.name` of this room. name: Option>, /// The `m.room.tombstone` event content of this room. - pub(crate) tombstone: Option, + tombstone: Option>, /// The topic of this room. pub(crate) topic: Option, } @@ -220,7 +220,7 @@ impl BaseRoomInfo { self.topic = t.as_original().map(|t| t.content.topic.clone()); } AnySyncStateEvent::RoomTombstone(t) => { - self.tombstone = t.as_original().map(|t| t.content.clone()); + self.tombstone = Some(t.into()); } AnySyncStateEvent::RoomPowerLevels(p) => { self.max_power_level = p @@ -269,7 +269,7 @@ impl BaseRoomInfo { self.topic = Some(t.content.topic.clone()); } AnyStrippedStateEvent::RoomTombstone(t) => { - self.tombstone = Some(t.content.clone()); + self.tombstone = Some(t.into()); } AnyStrippedStateEvent::RoomPowerLevels(p) => { self.max_power_level = p diff --git a/crates/matrix-sdk-base/src/rooms/normal.rs b/crates/matrix-sdk-base/src/rooms/normal.rs index 679b275a8..e0fa592cc 100644 --- a/crates/matrix-sdk-base/src/rooms/normal.rs +++ b/crates/matrix-sdk-base/src/rooms/normal.rs @@ -262,7 +262,7 @@ impl Room { /// Get the `m.room.tombstone` content of this room if there is one. pub fn tombstone(&self) -> Option { - self.inner.read().unwrap().base_info.tombstone.clone() + self.inner.read().unwrap().tombstone().cloned() } /// Get the topic of the room. @@ -784,6 +784,10 @@ impl RoomInfo { fn name(&self) -> Option<&str> { Some(self.base_info.name.as_ref()?.as_original()?.content.name.as_ref()?.as_ref()) } + + fn tombstone(&self) -> Option<&RoomTombstoneEventContent> { + Some(&self.base_info.tombstone.as_ref()?.as_original()?.content) + } } #[cfg(test)]