events: Remove redacted event content enums

They weren't being used anywhere.
This commit is contained in:
Jonas Platte 2021-10-06 20:33:12 +02:00
parent 3550ed9b1e
commit 4e2fdcb990
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67
4 changed files with 12 additions and 68 deletions

View File

@ -325,7 +325,6 @@ fn expand_content_enum(
variants: &[EventEnumVariant], variants: &[EventEnumVariant],
ruma_events: &TokenStream, ruma_events: &TokenStream,
) -> TokenStream { ) -> TokenStream {
let ruma_identifiers = quote! { #ruma_events::exports::ruma_identifiers };
let serde = quote! { #ruma_events::exports::serde }; let serde = quote! { #ruma_events::exports::serde };
let serde_json = quote! { #ruma_events::exports::serde_json }; let serde_json = quote! { #ruma_events::exports::serde_json };
@ -395,62 +394,12 @@ fn expand_content_enum(
let marker_trait_impl = marker_trait(kind, ruma_events); let marker_trait_impl = marker_trait(kind, ruma_events);
let redacted_content_enum = matches!(kind, EventKind::State | EventKind::Message).then(|| {
let redacted_ident = kind.to_redacted_content_enum();
let redacted_variants = variants.iter().map(|v| v.ctor(&redacted_ident));
let redacted_content: Vec<_> = events
.iter()
.map(|ev| to_event_content_path(kind, ev, Some("Redacted"), ruma_events))
.collect();
quote! {
#( #attrs )*
#[derive(Clone, Debug, #serde::Serialize)]
#[serde(untagged)]
#[allow(clippy::large_enum_variant)]
#[cfg_attr(not(feature = "unstable-exhaustive-types"), non_exhaustive)]
pub enum #redacted_ident {
#(
#[doc = #event_type_str]
#variant_decls(#redacted_content),
)*
#[doc(hidden)]
_Custom {
#[serde(skip)]
event_type: ::std::string::String,
},
}
impl #ruma_events::RedactContent for #ident {
type Redacted = #redacted_ident;
/// Redacts `Self` given a `RoomVersionId`.
fn redact(
self,
version: &#ruma_identifiers::RoomVersionId,
) -> #redacted_ident {
match self {
#(
#variant_arms(content) => {
#redacted_variants(
#ruma_events::RedactContent::redact(content, version),
)
}
)*
Self::_Custom { event_type } => #redacted_ident::_Custom { event_type },
}
}
}
}
});
let from_impl = expand_from_impl(ident, &content, variants); let from_impl = expand_from_impl(ident, &content, variants);
quote! { quote! {
#content_enum #content_enum
#event_content_impl #event_content_impl
#marker_trait_impl #marker_trait_impl
#redacted_content_enum
#from_impl #from_impl
} }
} }

View File

@ -150,11 +150,6 @@ impl EventKind {
pub fn to_content_enum(&self) -> Ident { pub fn to_content_enum(&self) -> Ident {
format_ident!("Any{}Content", self) format_ident!("Any{}Content", self)
} }
/// `AnyRedacted[kind]EventContent`
pub fn to_redacted_content_enum(&self) -> Ident {
format_ident!("AnyRedacted{}Content", self)
}
} }
impl Parse for EventKind { impl Parse for EventKind {

View File

@ -8,6 +8,7 @@ Breaking changes:
* Require `room::message::MessageType` to always contain a body * Require `room::message::MessageType` to always contain a body
* The `new` constructor now also has a body parameter * The `new` constructor now also has a body parameter
* Rename `*ToDeviceEventContent` structs to `ToDevice*Content` * Rename `*ToDeviceEventContent` structs to `ToDevice*Content`
* Remove unneeded redacted event content enums
Improvements: Improvements:

View File

@ -5,15 +5,14 @@ use ruma_events::{
custom::RedactedCustomEventContent, custom::RedactedCustomEventContent,
room::{ room::{
aliases::RedactedRoomAliasesEventContent, aliases::RedactedRoomAliasesEventContent,
create::RedactedRoomCreateEventContent, create::{RedactedRoomCreateEventContent, RoomCreateEventContent},
message::RedactedRoomMessageEventContent, message::{RedactedRoomMessageEventContent, RoomMessageEventContent},
redaction::{RoomRedactionEventContent, SyncRoomRedactionEvent}, redaction::{RoomRedactionEventContent, SyncRoomRedactionEvent},
}, },
AnyMessageEvent, AnyMessageEventContent, AnyRedactedMessageEvent, AnyMessageEvent, AnyRedactedMessageEvent, AnyRedactedSyncMessageEvent,
AnyRedactedMessageEventContent, AnyRedactedStateEventContent, AnyRedactedSyncMessageEvent, AnyRedactedSyncStateEvent, AnyRoomEvent, AnySyncRoomEvent, EventContent, Redact, RedactContent,
AnyRedactedSyncStateEvent, AnyRoomEvent, AnyStateEventContent, AnySyncRoomEvent, EventContent, RedactedMessageEvent, RedactedSyncMessageEvent, RedactedSyncStateEvent, RedactedUnsigned,
Redact, RedactContent, RedactedMessageEvent, RedactedSyncMessageEvent, RedactedSyncStateEvent, Unsigned,
RedactedUnsigned, Unsigned,
}; };
use ruma_identifiers::{event_id, room_id, user_id, RoomVersionId}; use ruma_identifiers::{event_id, room_id, user_id, RoomVersionId};
use serde_json::{ use serde_json::{
@ -322,11 +321,11 @@ fn redact_message_content() {
}); });
let raw_json = to_raw_value(&json).unwrap(); let raw_json = to_raw_value(&json).unwrap();
let content = AnyMessageEventContent::from_parts("m.room.message", &raw_json).unwrap(); let content = RoomMessageEventContent::from_parts("m.room.message", &raw_json).unwrap();
assert_matches!( assert_matches!(
content.redact(&RoomVersionId::Version6), content.redact(&RoomVersionId::Version6),
AnyRedactedMessageEventContent::RoomMessage(RedactedRoomMessageEventContent { .. }) RedactedRoomMessageEventContent { .. }
); );
} }
@ -339,13 +338,13 @@ fn redact_state_content() {
}); });
let raw_json = to_raw_value(&json).unwrap(); let raw_json = to_raw_value(&json).unwrap();
let content = AnyStateEventContent::from_parts("m.room.create", &raw_json).unwrap(); let content = RoomCreateEventContent::from_parts("m.room.create", &raw_json).unwrap();
assert_matches!( assert_matches!(
content.redact(&RoomVersionId::Version6), content.redact(&RoomVersionId::Version6),
AnyRedactedStateEventContent::RoomCreate(RedactedRoomCreateEventContent { RedactedRoomCreateEventContent {
creator, creator,
.. ..
}) if creator == user_id!("@carl:example.com") } if creator == user_id!("@carl:example.com")
); );
} }