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