events-macros: Refactor expand_event
This commit is contained in:
parent
15553e1da9
commit
b84cc8d905
@ -20,8 +20,11 @@ pub fn expand_event(input: DeriveInput) -> syn::Result<TokenStream> {
|
|||||||
syn::Error::new_spanned(ident, "not a valid ruma event struct identifier")
|
syn::Error::new_spanned(ident, "not a valid ruma event struct identifier")
|
||||||
})?;
|
})?;
|
||||||
|
|
||||||
let fields: Vec<_> = if let Data::Struct(DataStruct { fields, .. }) = input.data.clone() {
|
let fields: Vec<_> = if let Data::Struct(DataStruct {
|
||||||
if let Fields::Named(FieldsNamed { named, .. }) = fields {
|
fields: Fields::Named(FieldsNamed { named, .. }),
|
||||||
|
..
|
||||||
|
}) = &input.data
|
||||||
|
{
|
||||||
if !named.iter().any(|f| f.ident.as_ref().unwrap() == "content") {
|
if !named.iter().any(|f| f.ident.as_ref().unwrap() == "content") {
|
||||||
return Err(syn::Error::new(
|
return Err(syn::Error::new(
|
||||||
Span::call_site(),
|
Span::call_site(),
|
||||||
@ -29,13 +32,7 @@ pub fn expand_event(input: DeriveInput) -> syn::Result<TokenStream> {
|
|||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
named.into_iter().collect()
|
named.iter().cloned().collect()
|
||||||
} else {
|
|
||||||
return Err(syn::Error::new_spanned(
|
|
||||||
fields,
|
|
||||||
"the `Event` derive only supports named fields",
|
|
||||||
));
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
return Err(syn::Error::new_spanned(
|
return Err(syn::Error::new_spanned(
|
||||||
input.ident,
|
input.ident,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user