summaryrefslogtreecommitdiff
path: root/src/service/pdu.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/service/pdu.rs')
-rw-r--r--src/service/pdu.rs19
1 files changed, 16 insertions, 3 deletions
diff --git a/src/service/pdu.rs b/src/service/pdu.rs
index 9d284c0..d24e174 100644
--- a/src/service/pdu.rs
+++ b/src/service/pdu.rs
@@ -1,9 +1,9 @@
use crate::Error;
use ruma::{
events::{
- room::member::RoomMemberEventContent, AnyEphemeralRoomEvent, AnyMessageLikeEvent,
- AnyStateEvent, AnyStrippedStateEvent, AnySyncStateEvent, AnySyncTimelineEvent,
- AnyTimelineEvent, StateEvent, TimelineEventType,
+ room::member::RoomMemberEventContent, space::child::HierarchySpaceChildEvent,
+ AnyEphemeralRoomEvent, AnyMessageLikeEvent, AnyStateEvent, AnyStrippedStateEvent,
+ AnySyncStateEvent, AnySyncTimelineEvent, AnyTimelineEvent, StateEvent, TimelineEventType,
},
serde::Raw,
state_res, CanonicalJsonObject, CanonicalJsonValue, EventId, MilliSecondsSinceUnixEpoch,
@@ -249,6 +249,19 @@ impl PduEvent {
}
#[tracing::instrument(skip(self))]
+ pub fn to_stripped_spacechild_state_event(&self) -> Raw<HierarchySpaceChildEvent> {
+ let json = json!({
+ "content": self.content,
+ "type": self.kind,
+ "sender": self.sender,
+ "state_key": self.state_key,
+ "origin_server_ts": self.origin_server_ts,
+ });
+
+ serde_json::from_value(json).expect("Raw::from_value always works")
+ }
+
+ #[tracing::instrument(skip(self))]
pub fn to_member_event(&self) -> Raw<StateEvent<RoomMemberEventContent>> {
let mut json = json!({
"content": self.content,