refactor Pdu::copy_redacts to use early returns

This commit is contained in:
Olivia Lee 2025-07-20 12:24:41 -07:00
parent 88ad596e8d
commit 9a142c7557
No known key found for this signature in database
GPG key ID: 54D568A15B9CD1F9

View file

@ -161,26 +161,27 @@ impl PduEvent {
pub(crate) fn copy_redacts(
&self,
) -> (Option<Arc<EventId>>, Box<RawJsonValue>) {
if self.kind == TimelineEventType::RoomRedaction {
if let Ok(mut content) = serde_json::from_str::<
RoomRedactionEventContent,
>(self.content.get())
{
if let Some(redacts) = content.redacts {
return (Some(redacts.into()), self.content.clone());
} else if let Some(redacts) = self.redacts.clone() {
content.redacts = Some(redacts.into());
return (
self.redacts.clone(),
to_raw_value(&content).expect(
"Must be valid, we only added redacts field",
),
);
}
}
if self.kind != TimelineEventType::RoomRedaction {
return (self.redacts.clone(), self.content.clone());
}
let Ok(mut content) = serde_json::from_str::<RoomRedactionEventContent>(
self.content.get(),
) else {
return (self.redacts.clone(), self.content.clone());
};
(self.redacts.clone(), self.content.clone())
if let Some(redacts) = content.redacts {
(Some(redacts.into()), self.content.clone())
} else if let Some(redacts) = self.redacts.clone() {
content.redacts = Some(redacts.into());
(
self.redacts.clone(),
to_raw_value(&content)
.expect("Must be valid, we only added redacts field"),
)
} else {
(self.redacts.clone(), self.content.clone())
}
}
#[tracing::instrument(skip(self))]