state-res: Replace map_or_else with simpler alternatives
This commit is contained in:
		
							parent
							
								
									4d0064330a
								
							
						
					
					
						commit
						d8637d3b30
					
				| @ -289,14 +289,12 @@ where | |||||||
|     // Allow if and only if sender's current power level is greater than
 |     // Allow if and only if sender's current power level is greater than
 | ||||||
|     // or equal to the invite level
 |     // or equal to the invite level
 | ||||||
|     if incoming_event.event_type() == EventType::RoomThirdPartyInvite { |     if incoming_event.event_type() == EventType::RoomThirdPartyInvite { | ||||||
|         let invite_level = power_levels_event.as_ref().map_or_else( |         let invite_level = match &power_levels_event { | ||||||
|             || Ok::<_, Error>(int!(50)), |             Some(power_levels) => { | ||||||
|             |power_levels| { |                 serde_json::from_value::<PowerLevelsEventContent>(power_levels.content())?.invite | ||||||
|                 serde_json::from_value::<PowerLevelsEventContent>(power_levels.content()) |             } | ||||||
|                     .map(|pl| pl.invite) |             None => int!(50), | ||||||
|                     .map_err(Into::into) |         }; | ||||||
|             }, |  | ||||||
|         )?; |  | ||||||
| 
 | 
 | ||||||
|         if sender_power_level < invite_level { |         if sender_power_level < invite_level { | ||||||
|             warn!("sender's cannot send invites in this room"); |             warn!("sender's cannot send invites in this room"); | ||||||
| @ -417,24 +415,17 @@ fn valid_membership_change<E: Event>( | |||||||
|             )?) |             )?) | ||||||
|         })?; |         })?; | ||||||
| 
 | 
 | ||||||
|     let power_levels = power_levels_event.map_or_else( |     let power_levels: PowerLevelsEventContent = match power_levels_event { | ||||||
|         || Ok::<_, Error>(PowerLevelsEventContent::default()), |         Some(ev) => serde_json::from_value(ev.content())?, | ||||||
|         |power_levels| { |         None => PowerLevelsEventContent::default(), | ||||||
|             serde_json::from_value::<PowerLevelsEventContent>(power_levels.content()) |     }; | ||||||
|                 .map_err(Into::into) |  | ||||||
|         }, |  | ||||||
|     )?; |  | ||||||
| 
 | 
 | ||||||
|     let sender_power = power_levels.users.get(sender).map_or_else( |     let sender_power = power_levels.users.get(sender).or_else(|| { | ||||||
|         || (sender_membership == MembershipState::Join).then(|| &power_levels.users_default), |         (sender_membership == MembershipState::Join).then(|| &power_levels.users_default) | ||||||
|         // If it's okay, wrap with Some(_)
 |     }); | ||||||
|         Some, |     let target_power = power_levels.users.get(target_user).or_else(|| { | ||||||
|     ); |         (target_membership == MembershipState::Join).then(|| &power_levels.users_default) | ||||||
|     let target_power = power_levels.users.get(target_user).map_or_else( |     }); | ||||||
|         || (target_membership == MembershipState::Join).then(|| &power_levels.users_default), |  | ||||||
|         // If it's okay, wrap with Some(_)
 |  | ||||||
|         Some, |  | ||||||
|     ); |  | ||||||
| 
 | 
 | ||||||
|     let mut join_rules = JoinRule::Invite; |     let mut join_rules = JoinRule::Invite; | ||||||
|     if let Some(jr) = join_rules_event { |     if let Some(jr) = join_rules_event { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user