events-macros: Improve function / variable names

This commit is contained in:
Jonas Platte 2021-10-06 20:51:19 +02:00
parent 4e2fdcb990
commit ce8cbff3fd
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67
2 changed files with 21 additions and 32 deletions

View File

@ -43,7 +43,7 @@ const EVENT_FIELDS: &[(&str, EventKindFn)] = &[
]; ];
/// Create a content enum from `EventEnumInput`. /// Create a content enum from `EventEnumInput`.
pub fn expand_event_enum(input: &EventEnumDecl) -> syn::Result<TokenStream> { pub fn expand_event_enums(input: &EventEnumDecl) -> syn::Result<TokenStream> {
let ruma_events = crate::import_ruma_events(); let ruma_events = crate::import_ruma_events();
let name = &input.name; let name = &input.name;
@ -52,25 +52,13 @@ pub fn expand_event_enum(input: &EventEnumDecl) -> syn::Result<TokenStream> {
let variants: Vec<_> = let variants: Vec<_> =
input.events.iter().map(EventEnumEntry::to_variant).collect::<syn::Result<_>>()?; input.events.iter().map(EventEnumEntry::to_variant).collect::<syn::Result<_>>()?;
let event_enum = expand_any_with_deser( let event_enum =
name, expand_event_enum(name, &events, attrs, &variants, &EventKindVariation::Full, &ruma_events);
&events,
attrs,
&variants,
&EventKindVariation::Full,
&ruma_events,
);
let sync_event_enum = expand_any_with_deser( let sync_event_enum =
name, expand_event_enum(name, &events, attrs, &variants, &EventKindVariation::Sync, &ruma_events);
&events,
attrs,
&variants,
&EventKindVariation::Sync,
&ruma_events,
);
let stripped_event_enum = expand_any_with_deser( let stripped_event_enum = expand_event_enum(
name, name,
&events, &events,
attrs, attrs,
@ -79,7 +67,7 @@ pub fn expand_event_enum(input: &EventEnumDecl) -> syn::Result<TokenStream> {
&ruma_events, &ruma_events,
); );
let initial_event_enum = expand_any_with_deser( let initial_event_enum = expand_event_enum(
name, name,
&events, &events,
attrs, attrs,
@ -88,7 +76,8 @@ pub fn expand_event_enum(input: &EventEnumDecl) -> syn::Result<TokenStream> {
&ruma_events, &ruma_events,
); );
let redacted_event_enums = expand_any_redacted(name, &events, attrs, &variants, &ruma_events); let redacted_event_enums =
expand_redacted_event_enum(name, &events, attrs, &variants, &ruma_events);
let event_content_enum = expand_content_enum(name, &events, attrs, &variants, &ruma_events); let event_content_enum = expand_content_enum(name, &events, attrs, &variants, &ruma_events);
Ok(quote! { Ok(quote! {
@ -101,7 +90,7 @@ pub fn expand_event_enum(input: &EventEnumDecl) -> syn::Result<TokenStream> {
}) })
} }
fn expand_any_with_deser( fn expand_event_enum(
kind: &EventKind, kind: &EventKind,
events: &[LitStr], events: &[LitStr],
attrs: &[Attribute], attrs: &[Attribute],
@ -126,7 +115,7 @@ fn expand_any_with_deser(
let (custom_variant, custom_deserialize) = let (custom_variant, custom_deserialize) =
generate_custom_variant(&event_struct, var, ruma_events); generate_custom_variant(&event_struct, var, ruma_events);
let any_enum = quote! { let event_enum = quote! {
#( #attrs )* #( #attrs )*
#[derive(Clone, Debug, #serde::Serialize)] #[derive(Clone, Debug, #serde::Serialize)]
#[serde(untagged)] #[serde(untagged)]
@ -179,7 +168,7 @@ fn expand_any_with_deser(
let from_impl = expand_from_impl(ident, &content, variants); let from_impl = expand_from_impl(ident, &content, variants);
Some(quote! { Some(quote! {
#any_enum #event_enum
#event_enum_to_from_sync #event_enum_to_from_sync
#field_accessor_impl #field_accessor_impl
#redact_impl #redact_impl
@ -281,7 +270,7 @@ fn expand_conversion_impl(
/// ///
/// No content enums are generated since no part of the API deals with /// No content enums are generated since no part of the API deals with
/// redacted event's content. There are only five state variants that contain content. /// redacted event's content. There are only five state variants that contain content.
fn expand_any_redacted( fn expand_redacted_event_enum(
kind: &EventKind, kind: &EventKind,
events: &[LitStr], events: &[LitStr],
attrs: &[Attribute], attrs: &[Attribute],
@ -293,9 +282,9 @@ fn expand_any_redacted(
match kind { match kind {
EventKind::State => { EventKind::State => {
let full_state = let full_state =
expand_any_with_deser(kind, events, attrs, variants, &V::Redacted, ruma_events); expand_event_enum(kind, events, attrs, variants, &V::Redacted, ruma_events);
let sync_state = let sync_state =
expand_any_with_deser(kind, events, attrs, variants, &V::RedactedSync, ruma_events); expand_event_enum(kind, events, attrs, variants, &V::RedactedSync, ruma_events);
quote! { quote! {
#full_state #full_state
@ -304,9 +293,9 @@ fn expand_any_redacted(
} }
EventKind::Message => { EventKind::Message => {
let full_message = let full_message =
expand_any_with_deser(kind, events, attrs, variants, &V::Redacted, ruma_events); expand_event_enum(kind, events, attrs, variants, &V::Redacted, ruma_events);
let sync_message = let sync_message =
expand_any_with_deser(kind, events, attrs, variants, &V::RedactedSync, ruma_events); expand_event_enum(kind, events, attrs, variants, &V::RedactedSync, ruma_events);
quote! { quote! {
#full_message #full_message
@ -601,7 +590,7 @@ fn accessor_methods(
}; };
let content = quote! { let content = quote! {
/// Returns the any content enum for this event. /// Returns the content enum for this event.
pub fn content(&self) -> #content_enum { pub fn content(&self) -> #content_enum {
match self { match self {
#( #self_variants(event) => #content_variants(event.content.clone()), )* #( #self_variants(event) => #content_variants(event.content.clone()), )*
@ -614,7 +603,7 @@ fn accessor_methods(
let prev_content = has_prev_content_field(kind, var).then(|| { let prev_content = has_prev_content_field(kind, var).then(|| {
quote! { quote! {
/// Returns the any content enum for this events prev_content. /// Returns the content enum for this events prev_content.
pub fn prev_content(&self) -> Option<#content_enum> { pub fn prev_content(&self) -> Option<#content_enum> {
match self { match self {
#( #(

View File

@ -18,7 +18,7 @@ use syn::{parse_macro_input, DeriveInput};
use crate::event_enum::expand_from_impls_derived; use crate::event_enum::expand_from_impls_derived;
use self::{ use self::{
event::expand_event, event_content::expand_event_content, event_enum::expand_event_enum, event::expand_event, event_content::expand_event_content, event_enum::expand_event_enums,
event_type::expand_event_type_enum, event_type::expand_event_type_enum,
}; };
@ -62,7 +62,7 @@ pub fn event_enum(input: TokenStream) -> TokenStream {
let enums = event_enum_input let enums = event_enum_input
.enums .enums
.iter() .iter()
.map(expand_event_enum) .map(expand_event_enums)
.collect::<syn::Result<pm2::TokenStream>>(); .collect::<syn::Result<pm2::TokenStream>>();
let event_types = expand_event_type_enum(event_enum_input, ruma_events); let event_types = expand_event_type_enum(event_enum_input, ruma_events);
event_types event_types