diff --git a/src/pdu.rs b/src/pdu.rs index 403e699903b1f7ed42a9bf12e25ef3b51cc25cb3..f55acaf37c71f8ee065bfc5befc60c09426a5a73 100644 --- a/src/pdu.rs +++ b/src/pdu.rs @@ -79,34 +79,40 @@ pub fn redact(&mut self) -> Result<()> { Ok(()) } - pub fn to_room_event_stub(&self) -> EventJson<AnySyncRoomEvent> { + pub fn to_sync_room_event(&self) -> EventJson<AnySyncRoomEvent> { let json = serde_json::to_string(&self).expect("PDUs are always valid"); - serde_json::from_str::<EventJson<AnySyncRoomEvent>>(&json) - .expect("EventJson::from_str always works") + serde_json::from_str::<AnySyncRoomEvent>(&json) + .map(EventJson::from) + .expect("AnySyncRoomEvent can always be built from a full PDU event") } pub fn to_room_event(&self) -> EventJson<AnyRoomEvent> { let json = serde_json::to_string(&self).expect("PDUs are always valid"); - serde_json::from_str::<EventJson<AnyRoomEvent>>(&json) - .expect("EventJson::from_str always works") + serde_json::from_str::<AnyRoomEvent>(&json) + .map(EventJson::from) + .expect("AnyRoomEvent can always be built from a full PDU event") } pub fn to_state_event(&self) -> EventJson<AnyStateEvent> { let json = serde_json::to_string(&self).expect("PDUs are always valid"); - serde_json::from_str::<EventJson<AnyStateEvent>>(&json) - .expect("EventJson::from_str always works") + serde_json::from_str::<AnyStateEvent>(&json) + .map(EventJson::from) + .expect("AnyStateEvent can always be built from a full PDU event") } - pub fn to_state_event_stub(&self) -> EventJson<AnySyncStateEvent> { + pub fn to_sync_state_event(&self) -> EventJson<AnySyncStateEvent> { let json = serde_json::to_string(&self).expect("PDUs are always valid"); - serde_json::from_str::<EventJson<AnySyncStateEvent>>(&json) - .expect("EventJson::from_str always works") + serde_json::from_str::<AnySyncStateEvent>(&json) + .map(EventJson::from) + .expect("AnySyncStateEvent can always be built from a full PDU event") } pub fn to_stripped_state_event(&self) -> EventJson<AnyStrippedStateEvent> { let json = serde_json::to_string(&self).expect("PDUs are always valid"); - serde_json::from_str::<EventJson<AnyStrippedStateEvent>>(&json) - .expect("EventJson::from_str always works") + serde_json::from_str::<AnyStrippedStateEvent>(&json) + .map(EventJson::from) + .expect("AnyStrippedStateEvent can always be built from a full PDU event") } pub fn to_member_event(&self) -> EventJson<StateEvent<MemberEventContent>> { let json = serde_json::to_string(&self).expect("PDUs are always valid"); - serde_json::from_str::<EventJson<StateEvent<MemberEventContent>>>(&json) - .expect("EventJson::from_str always works") + serde_json::from_str::<StateEvent<MemberEventContent>>(&json) + .map(EventJson::from) + .expect("StateEvent<MemberEventContent> can always be built from a full PDU event") } }