From 7d303fff7e61977607d32a414eee24708c668148 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Thu, 4 Jun 2020 11:09:06 +0200 Subject: [PATCH] Fix unsigned field not being serialized for MessageEvent, StateEvent --- src/message.rs | 8 +++++++- src/state.rs | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) 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() } }