From c24890f82ba692faa0fd6f612a8445b67ef45077 Mon Sep 17 00:00:00 2001 From: Jonas Platte Date: Fri, 13 Aug 2021 00:12:57 +0200 Subject: [PATCH] events: Refactor Event derive --- crates/ruma-events-macros/src/event.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/ruma-events-macros/src/event.rs b/crates/ruma-events-macros/src/event.rs index b2b1946b..ad6c925d 100644 --- a/crates/ruma-events-macros/src/event.rs +++ b/crates/ruma-events-macros/src/event.rs @@ -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()