Temporarily add back Serialize implementations for non-DAG events
… since they are being used by Conduit.
This commit is contained in:
		
							parent
							
								
									e6c995ef1a
								
							
						
					
					
						commit
						67d0f3cc04
					
				| @ -23,6 +23,18 @@ pub struct GlobalAccountDataEvent<C: GlobalAccountDataEventContent> { | ||||
|     pub content: C, | ||||
| } | ||||
| 
 | ||||
| impl<C: GlobalAccountDataEventContent> Serialize for GlobalAccountDataEvent<C> { | ||||
|     fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> | ||||
|     where | ||||
|         S: serde::Serializer, | ||||
|     { | ||||
|         let mut state = serializer.serialize_struct("GlobalAccountDataEvent", 2)?; | ||||
|         state.serialize_field("type", &self.content.event_type())?; | ||||
|         state.serialize_field("content", &self.content)?; | ||||
|         state.end() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /// A room account data event.
 | ||||
| #[derive(Clone, Debug, Event)] | ||||
| pub struct RoomAccountDataEvent<C: RoomAccountDataEventContent> { | ||||
| @ -30,6 +42,18 @@ pub struct RoomAccountDataEvent<C: RoomAccountDataEventContent> { | ||||
|     pub content: C, | ||||
| } | ||||
| 
 | ||||
| impl<C: RoomAccountDataEventContent> Serialize for RoomAccountDataEvent<C> { | ||||
|     fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> | ||||
|     where | ||||
|         S: serde::Serializer, | ||||
|     { | ||||
|         let mut state = serializer.serialize_struct("RoomAccountDataEvent", 2)?; | ||||
|         state.serialize_field("type", &self.content.event_type())?; | ||||
|         state.serialize_field("content", &self.content)?; | ||||
|         state.end() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /// An ephemeral room event.
 | ||||
| #[derive(Clone, Debug, Event)] | ||||
| pub struct EphemeralRoomEvent<C: EphemeralRoomEventContent> { | ||||
| @ -40,6 +64,19 @@ pub struct EphemeralRoomEvent<C: EphemeralRoomEventContent> { | ||||
|     pub room_id: OwnedRoomId, | ||||
| } | ||||
| 
 | ||||
| impl<C: EphemeralRoomEventContent> Serialize for EphemeralRoomEvent<C> { | ||||
|     fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> | ||||
|     where | ||||
|         S: serde::Serializer, | ||||
|     { | ||||
|         let mut state = serializer.serialize_struct("EphemeralRoomEvent", 2)?; | ||||
|         state.serialize_field("type", &self.content.event_type())?; | ||||
|         state.serialize_field("content", &self.content)?; | ||||
|         state.serialize_field("room_id", &self.room_id)?; | ||||
|         state.end() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /// An ephemeral room event without a `room_id`.
 | ||||
| #[derive(Clone, Debug, Event)] | ||||
| pub struct SyncEphemeralRoomEvent<C: EphemeralRoomEventContent> { | ||||
| @ -47,6 +84,18 @@ pub struct SyncEphemeralRoomEvent<C: EphemeralRoomEventContent> { | ||||
|     pub content: C, | ||||
| } | ||||
| 
 | ||||
| impl<C: EphemeralRoomEventContent> Serialize for SyncEphemeralRoomEvent<C> { | ||||
|     fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> | ||||
|     where | ||||
|         S: serde::Serializer, | ||||
|     { | ||||
|         let mut state = serializer.serialize_struct("SyncEphemeralRoomEvent", 2)?; | ||||
|         state.serialize_field("type", &self.content.event_type())?; | ||||
|         state.serialize_field("content", &self.content)?; | ||||
|         state.end() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /// An unredacted message-like event.
 | ||||
| ///
 | ||||
| /// `OriginalMessageLikeEvent` implements the comparison traits using only the `event_id` field, a
 | ||||
|  | ||||
| @ -4,9 +4,9 @@ | ||||
| 
 | ||||
| use js_int::UInt; | ||||
| use ruma_macros::{Event, EventContent}; | ||||
| use serde::{Deserialize, Serialize}; | ||||
| use serde::{ser::SerializeStruct, Deserialize, Serialize}; | ||||
| 
 | ||||
| use super::{EventKind, StaticEventContent}; | ||||
| use super::{EventContent, EventKind, StaticEventContent}; | ||||
| use crate::{presence::PresenceState, OwnedMxcUri, OwnedUserId}; | ||||
| 
 | ||||
| /// Presence event.
 | ||||
| @ -20,6 +20,19 @@ pub struct PresenceEvent { | ||||
|     pub sender: OwnedUserId, | ||||
| } | ||||
| 
 | ||||
| impl Serialize for PresenceEvent { | ||||
|     fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error> | ||||
|     where | ||||
|         S: serde::Serializer, | ||||
|     { | ||||
|         let mut state = serializer.serialize_struct("PresenceEvent", 3)?; | ||||
|         state.serialize_field("type", &self.content.event_type())?; | ||||
|         state.serialize_field("content", &self.content)?; | ||||
|         state.serialize_field("sender", &self.sender)?; | ||||
|         state.end() | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| /// Informs the room of members presence.
 | ||||
| ///
 | ||||
| /// This is the only type a `PresenceEvent` can contain as its `content` field.
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user