state-res: Replace two uses of map_or with simpler match

This commit is contained in:
Jonas Platte 2021-09-04 01:35:42 +02:00
parent d1fa58abb2
commit 22cee51e1a
No known key found for this signature in database
GPG Key ID: CC154DE0E30B7C67

View File

@ -396,28 +396,25 @@ fn valid_membership_change<E: Event>(
let join_rules_event = join_rules_event.as_ref();
let sender_is_joined = {
let sender_membership =
sender_membership_event.map_or(Ok::<_, Error>(MembershipState::Leave), |pdu| {
Ok(serde_json::from_value::<MembershipState>(
pdu.content()
.get("membership")
.expect("we assume existing events are valid")
.clone(),
)?)
})?;
sender_membership == MembershipState::Join
};
let target_user_current_membership =
target_user_membership_event.map_or(Ok::<_, Error>(MembershipState::Leave), |pdu| {
Ok(serde_json::from_value::<MembershipState>(
let sender_membership = match sender_membership_event {
Some(pdu) => serde_json::from_value(
pdu.content()
.get("membership")
.expect("we assume existing events are valid")
.clone(),
)?)
})?;
)?,
None => MembershipState::Leave,
};
sender_membership == MembershipState::Join
};
let target_user_current_membership = match target_user_membership_event {
Some(pdu) => serde_json::from_value(
pdu.content().get("membership").expect("we assume existing events are valid").clone(),
)?,
None => MembershipState::Leave,
};
let power_levels: PowerLevelsEventContent = match power_levels_event {
Some(ev) => serde_json::from_value(ev.content())?,