diff --git a/crates/ruma-events-macros/src/event_enum.rs b/crates/ruma-events-macros/src/event_enum.rs index 52ff4c9e..52dcc417 100644 --- a/crates/ruma-events-macros/src/event_enum.rs +++ b/crates/ruma-events-macros/src/event_enum.rs @@ -63,8 +63,6 @@ fn expand_event_enum( variants: &[EventEnumVariant], ruma_events: &TokenStream, ) -> TokenStream { - let serde = quote! { #ruma_events::exports::serde }; - let event_struct = kind.to_event_ident(var); let ident = kind.to_event_enum_ident(var); @@ -78,8 +76,7 @@ fn expand_event_enum( quote! { #( #attrs )* - #[derive(Clone, Debug, #serde::Serialize)] - #[serde(untagged)] + #[derive(Clone, Debug)] #[allow(clippy::large_enum_variant)] #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] pub enum #ident { @@ -377,8 +374,7 @@ fn expand_possibly_redacted_enum( quote! { /// An enum that holds either regular un-redacted events or redacted events. - #[derive(Clone, Debug, #serde::Serialize)] - #[serde(untagged)] + #[derive(Clone, Debug)] #[allow(clippy::exhaustive_enums)] pub enum #ident { /// An un-redacted event. diff --git a/crates/ruma-events/src/enums.rs b/crates/ruma-events/src/enums.rs index 8a8f913c..2f2dfb37 100644 --- a/crates/ruma-events/src/enums.rs +++ b/crates/ruma-events/src/enums.rs @@ -2,7 +2,7 @@ use ruma_common::MilliSecondsSinceUnixEpoch; use ruma_events_macros::{event_enum, EventEnumFromEvent}; use ruma_identifiers::{EventId, RoomId, RoomVersionId, UserId}; use ruma_serde::from_raw_json_value; -use serde::{de, Deserialize, Serialize}; +use serde::{de, Deserialize}; use serde_json::value::RawValue as RawJsonValue; use crate::{ @@ -123,8 +123,7 @@ macro_rules! room_ev_accessor { /// Any room event. #[allow(clippy::large_enum_variant, clippy::exhaustive_enums)] -#[derive(Clone, Debug, Serialize, EventEnumFromEvent)] -#[serde(untagged)] +#[derive(Clone, Debug, EventEnumFromEvent)] pub enum AnyRoomEvent { /// Any message event. Message(AnyMessageEvent), @@ -150,8 +149,7 @@ impl AnyRoomEvent { /// /// Sync room events are room event without a `room_id`, as returned in `/sync` responses. #[allow(clippy::large_enum_variant, clippy::exhaustive_enums)] -#[derive(Clone, Debug, Serialize, EventEnumFromEvent)] -#[serde(untagged)] +#[derive(Clone, Debug, EventEnumFromEvent)] pub enum AnySyncRoomEvent { /// Any sync message event. Message(AnySyncMessageEvent), diff --git a/crates/ruma-events/tests/event_enums.rs b/crates/ruma-events/tests/event_enums.rs index a32114e4..04509e7b 100644 --- a/crates/ruma-events/tests/event_enums.rs +++ b/crates/ruma-events/tests/event_enums.rs @@ -1,15 +1,12 @@ -use assign::assign; use js_int::{uint, UInt}; use matches::assert_matches; use ruma_common::MilliSecondsSinceUnixEpoch; -use ruma_identifiers::{event_id, mxc_uri, room_id, user_id}; -use serde_json::{from_value as from_json_value, json, to_value as to_json_value}; +use ruma_identifiers::{event_id, room_id, user_id}; +use serde_json::{from_value as from_json_value, json}; use ruma_events::{ call::{answer::CallAnswerEventContent, SessionDescription, SessionDescriptionType}, - room::{ImageInfo, ThumbnailInfo}, - sticker::StickerEventContent, - AnyMessageEvent, MessageEvent, Unsigned, + AnyMessageEvent, MessageEvent, }; #[test] @@ -65,59 +62,3 @@ fn deserialize_message_event() { && unsigned.is_empty() ); } - -#[test] -fn serialize_message_event() { - let aliases_event = AnyMessageEvent::Sticker(MessageEvent { - content: StickerEventContent::new( - "Hello".into(), - assign!(ImageInfo::new(), { - height: UInt::new(423), - width: UInt::new(1011), - mimetype: Some("image/png".into()), - size: UInt::new(84242), - thumbnail_info: Some(Box::new(assign!(ThumbnailInfo::new(), { - width: UInt::new(800), - height: UInt::new(334), - mimetype: Some("image/png".into()), - size: UInt::new(82595), - }))), - thumbnail_url: Some(mxc_uri!("mxc://matrix.org/mnrsnsRRS787TSts").to_owned()), - }), - mxc_uri!("mxc://matrix.org/arsrns98rsRSR").to_owned(), - ), - event_id: event_id!("$h29iv0s8:example.com").to_owned(), - origin_server_ts: MilliSecondsSinceUnixEpoch(uint!(1)), - room_id: room_id!("!roomid:room.com").to_owned(), - sender: user_id!("@carl:example.com").to_owned(), - unsigned: Unsigned::default(), - }); - - let actual = to_json_value(&aliases_event).unwrap(); - let expected = json!({ - "content": { - "body": "Hello", - "info": { - "h": 423, - "mimetype": "image/png", - "size": 84242, - "thumbnail_info": { - "h": 334, - "mimetype": "image/png", - "size": 82595, - "w": 800 - }, - "thumbnail_url": "mxc://matrix.org/mnrsnsRRS787TSts", - "w": 1011 - }, - "url": "mxc://matrix.org/arsrns98rsRSR" - }, - "event_id": "$h29iv0s8:example.com", - "origin_server_ts": 1, - "room_id": "!roomid:room.com", - "sender": "@carl:example.com", - "type": "m.sticker", - }); - - assert_eq!(actual, expected); -} diff --git a/crates/ruma-events/tests/message_event.rs b/crates/ruma-events/tests/message_event.rs index c0529fd0..b1f01242 100644 --- a/crates/ruma-events/tests/message_event.rs +++ b/crates/ruma-events/tests/message_event.rs @@ -242,12 +242,8 @@ fn deserialize_message_then_convert_to_full() { let sync_ev: AnySyncMessageEvent = from_json_value(json_data).unwrap(); - // Test conversion method - let full = sync_ev.into_full_event(rid.to_owned()); - let full_json = to_json_value(full).unwrap(); - assert_matches!( - from_json_value::(full_json).unwrap(), + sync_ev.into_full_event(rid.to_owned()), AnyMessageEvent::CallAnswer(MessageEvent { content: CallAnswerEventContent { answer: SessionDescription { diff --git a/crates/ruma-events/tests/state_event.rs b/crates/ruma-events/tests/state_event.rs index f922f630..c76470ba 100644 --- a/crates/ruma-events/tests/state_event.rs +++ b/crates/ruma-events/tests/state_event.rs @@ -287,12 +287,8 @@ fn deserialize_full_event_convert_to_sync() { let full_ev: AnyStateEvent = from_json_value(json_data).unwrap(); - // Test conversion to sync event (without room_id field) - let sync: AnySyncStateEvent = full_ev.into(); - let sync_json = to_json_value(sync).unwrap(); - assert_matches!( - from_json_value::(sync_json).unwrap(), + AnySyncStateEvent::from(full_ev), AnySyncStateEvent::RoomAliases(SyncStateEvent { content, event_id, diff --git a/crates/ruma-events/tests/stripped.rs b/crates/ruma-events/tests/stripped.rs index 771e6934..2c315091 100644 --- a/crates/ruma-events/tests/stripped.rs +++ b/crates/ruma-events/tests/stripped.rs @@ -28,26 +28,6 @@ fn serialize_stripped_state_event_any_content() { assert_eq!(to_json_value(&event).unwrap(), json_data); } -#[test] -fn serialize_stripped_state_event_any_event() { - let event = AnyStrippedStateEvent::RoomTopic(StrippedStateEvent { - content: RoomTopicEventContent::new("Testing room".into()), - state_key: "".into(), - sender: user_id!("@example:localhost").to_owned(), - }); - - let json_data = json!({ - "content": { - "topic": "Testing room" - }, - "type": "m.room.topic", - "state_key": "", - "sender": "@example:localhost" - }); - - assert_eq!(to_json_value(&event).unwrap(), json_data); -} - #[test] fn deserialize_stripped_state_events() { let name_event = json!({