diff --git a/src/message.rs b/src/message.rs index da2d2340..9ed05695 100644 --- a/src/message.rs +++ b/src/message.rs @@ -90,12 +90,18 @@ where }; let mut message = serializer.serialize_struct("MessageEvent", 7)?; + + message.serialize_field("type", event_type)?; message.serialize_field("content", &self.content)?; message.serialize_field("event_id", &self.event_id)?; message.serialize_field("sender", &self.sender)?; message.serialize_field("origin_server_ts", ×tamp)?; message.serialize_field("room_id", &self.room_id)?; - message.serialize_field("type", event_type)?; + + if !self.unsigned.is_empty() { + message.serialize_field("unsigned", &self.unsigned)?; + } + message.end() } } diff --git a/src/state.rs b/src/state.rs index 44b926b0..4bfe7c74 100644 --- a/src/state.rs +++ b/src/state.rs @@ -95,16 +95,23 @@ where }; let mut state = serializer.serialize_struct("StateEvent", 7)?; + + state.serialize_field("type", event_type)?; state.serialize_field("content", &self.content)?; state.serialize_field("event_id", &self.event_id)?; state.serialize_field("sender", &self.sender)?; state.serialize_field("origin_server_ts", ×tamp)?; state.serialize_field("room_id", &self.room_id)?; state.serialize_field("state_key", &self.state_key)?; + if let Some(content) = self.prev_content.as_ref() { state.serialize_field("prev_content", content)?; } - state.serialize_field("type", event_type)?; + + if !self.unsigned.is_empty() { + state.serialize_field("unsigned", &self.unsigned)?; + } + state.end() } }