events: Remove redacted event content enums
They weren't being used anywhere.
This commit is contained in:
parent
3550ed9b1e
commit
4e2fdcb990
@ -325,7 +325,6 @@ fn expand_content_enum(
|
||||
variants: &[EventEnumVariant],
|
||||
ruma_events: &TokenStream,
|
||||
) -> TokenStream {
|
||||
let ruma_identifiers = quote! { #ruma_events::exports::ruma_identifiers };
|
||||
let serde = quote! { #ruma_events::exports::serde };
|
||||
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 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);
|
||||
|
||||
quote! {
|
||||
#content_enum
|
||||
#event_content_impl
|
||||
#marker_trait_impl
|
||||
#redacted_content_enum
|
||||
#from_impl
|
||||
}
|
||||
}
|
||||
|
@ -150,11 +150,6 @@ impl EventKind {
|
||||
pub fn to_content_enum(&self) -> Ident {
|
||||
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 {
|
||||
|
@ -8,6 +8,7 @@ Breaking changes:
|
||||
* Require `room::message::MessageType` to always contain a body
|
||||
* The `new` constructor now also has a body parameter
|
||||
* Rename `*ToDeviceEventContent` structs to `ToDevice*Content`
|
||||
* Remove unneeded redacted event content enums
|
||||
|
||||
Improvements:
|
||||
|
||||
|
@ -5,15 +5,14 @@ use ruma_events::{
|
||||
custom::RedactedCustomEventContent,
|
||||
room::{
|
||||
aliases::RedactedRoomAliasesEventContent,
|
||||
create::RedactedRoomCreateEventContent,
|
||||
message::RedactedRoomMessageEventContent,
|
||||
create::{RedactedRoomCreateEventContent, RoomCreateEventContent},
|
||||
message::{RedactedRoomMessageEventContent, RoomMessageEventContent},
|
||||
redaction::{RoomRedactionEventContent, SyncRoomRedactionEvent},
|
||||
},
|
||||
AnyMessageEvent, AnyMessageEventContent, AnyRedactedMessageEvent,
|
||||
AnyRedactedMessageEventContent, AnyRedactedStateEventContent, AnyRedactedSyncMessageEvent,
|
||||
AnyRedactedSyncStateEvent, AnyRoomEvent, AnyStateEventContent, AnySyncRoomEvent, EventContent,
|
||||
Redact, RedactContent, RedactedMessageEvent, RedactedSyncMessageEvent, RedactedSyncStateEvent,
|
||||
RedactedUnsigned, Unsigned,
|
||||
AnyMessageEvent, AnyRedactedMessageEvent, AnyRedactedSyncMessageEvent,
|
||||
AnyRedactedSyncStateEvent, AnyRoomEvent, AnySyncRoomEvent, EventContent, Redact, RedactContent,
|
||||
RedactedMessageEvent, RedactedSyncMessageEvent, RedactedSyncStateEvent, RedactedUnsigned,
|
||||
Unsigned,
|
||||
};
|
||||
use ruma_identifiers::{event_id, room_id, user_id, RoomVersionId};
|
||||
use serde_json::{
|
||||
@ -322,11 +321,11 @@ fn redact_message_content() {
|
||||
});
|
||||
|
||||
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!(
|
||||
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 content = AnyStateEventContent::from_parts("m.room.create", &raw_json).unwrap();
|
||||
let content = RoomCreateEventContent::from_parts("m.room.create", &raw_json).unwrap();
|
||||
|
||||
assert_matches!(
|
||||
content.redact(&RoomVersionId::Version6),
|
||||
AnyRedactedStateEventContent::RoomCreate(RedactedRoomCreateEventContent {
|
||||
RedactedRoomCreateEventContent {
|
||||
creator,
|
||||
..
|
||||
}) if creator == user_id!("@carl:example.com")
|
||||
} if creator == user_id!("@carl:example.com")
|
||||
);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user