events: Refactor Event derive

This commit is contained in:
Jonas Platte 2021-08-13 00:12:57 +02:00
parent e9cb896bf7
commit c24890f82b
No known key found for this signature in database
GPG Key ID: 7D261D771D915378

View File

@ -192,9 +192,11 @@ fn expand_deserialize_event(
}
} else if is_generic {
quote! {
let json =
content.ok_or_else(|| #serde::de::Error::missing_field("content"))?;
let content = C::from_parts(&event_type, &json).map_err(A::Error::custom)?;
let content = {
let json = content
.ok_or_else(|| #serde::de::Error::missing_field("content"))?;
C::from_parts(&event_type, &json).map_err(A::Error::custom)?
};
}
} else {
quote! {
@ -206,11 +208,9 @@ fn expand_deserialize_event(
} else if name == "prev_content" {
if is_generic {
quote! {
let prev_content = if let Some(json) = prev_content {
Some(C::from_parts(&event_type, &json).map_err(A::Error::custom)?)
} else {
None
};
let prev_content = prev_content.map(|json| {
C::from_parts(&event_type, &json).map_err(A::Error::custom)
}).transpose()?;
}
} else {
TokenStream::new()