Deprecate the EventType enum

This commit is contained in:
Jonas Platte 2022-03-15 17:13:18 +01:00
parent e86ee7dd31
commit e9c60cf36c
No known key found for this signature in database
GPG Key ID: BBA95679259D342F
2 changed files with 14 additions and 3 deletions

View File

@ -12,9 +12,9 @@ use ruma_common::{
}, },
AnyEphemeralRoomEvent, AnyMessageLikeEvent, AnyRoomEvent, AnyStateEvent, AnyEphemeralRoomEvent, AnyMessageLikeEvent, AnyRoomEvent, AnyStateEvent,
AnyStateEventContent, AnySyncMessageLikeEvent, AnySyncRoomEvent, AnySyncStateEvent, AnyStateEventContent, AnySyncMessageLikeEvent, AnySyncRoomEvent, AnySyncStateEvent,
EphemeralRoomEventType, EventType, GlobalAccountDataEventType, MessageLikeEvent, EphemeralRoomEventType, GlobalAccountDataEventType, MessageLikeEvent, MessageLikeEventType,
MessageLikeEventType, RoomAccountDataEventType, StateEvent, StateEventType, RoomAccountDataEventType, StateEvent, StateEventType, SyncMessageLikeEvent, SyncStateEvent,
SyncMessageLikeEvent, SyncStateEvent, ToDeviceEventType, Unsigned, ToDeviceEventType, Unsigned,
}, },
MilliSecondsSinceUnixEpoch, MilliSecondsSinceUnixEpoch,
}; };
@ -323,7 +323,10 @@ fn ephemeral_event_deserialization() {
} }
#[test] #[test]
#[allow(deprecated)]
fn serialize_and_deserialize_from_display_form() { fn serialize_and_deserialize_from_display_form() {
use ruma_common::events::EventType;
serde_json_eq(EventType::CallAnswer, json!("m.call.answer")); serde_json_eq(EventType::CallAnswer, json!("m.call.answer"));
serde_json_eq(MessageLikeEventType::CallAnswer, json!("m.call.answer")); serde_json_eq(MessageLikeEventType::CallAnswer, json!("m.call.answer"));
serde_json_eq(EventType::CallCandidates, json!("m.call.candidates")); serde_json_eq(EventType::CallCandidates, json!("m.call.candidates"));

View File

@ -65,6 +65,12 @@ fn generate_enum(
let byte_doc = format!("Creates a byte slice from this `{}`.", ident); let byte_doc = format!("Creates a byte slice from this `{}`.", ident);
let enum_doc = format!("The type of `{}` this is.", ident.strip_suffix("Type").unwrap()); let enum_doc = format!("The type of `{}` this is.", ident.strip_suffix("Type").unwrap());
let deprecated_attr = (ident == "EventType").then(|| {
quote! {
#[deprecated = "use a fine-grained event type enum like RoomEventType instead"]
}
});
let ident = Ident::new(ident, Span::call_site()); let ident = Ident::new(ident, Span::call_site());
let mut deduped: Vec<&EventEnumEntry> = vec![]; let mut deduped: Vec<&EventEnumEntry> = vec![];
@ -88,6 +94,7 @@ fn generate_enum(
/// ///
/// This type can hold an arbitrary string. To check for events that are not available as a /// This type can hold an arbitrary string. To check for events that are not available as a
/// documented variant here, use its string representation, obtained through `.as_str()`. /// documented variant here, use its string representation, obtained through `.as_str()`.
#deprecated_attr
#[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, #ruma_common::serde::StringEnum)] #[derive(Clone, Debug, PartialEq, Eq, PartialOrd, Ord, Hash, #ruma_common::serde::StringEnum)]
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)] #[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
pub enum #ident { pub enum #ident {
@ -100,6 +107,7 @@ fn generate_enum(
_Custom(crate::PrivOwnedStr), _Custom(crate::PrivOwnedStr),
} }
#[allow(deprecated)]
impl #ident { impl #ident {
#[doc = #str_doc] #[doc = #str_doc]
pub fn as_str(&self) -> &str { pub fn as_str(&self) -> &str {