UiSurface::upsert_node refactor (#8831)

# Objective

Simplify the `UiSurface::upsert_node` method by directly matching on
HashMap entry states.
This commit is contained in:
ickshonpe 2025-01-28 18:05:59 +00:00 committed by GitHub
parent 5bbcf646a7
commit d4356062bf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,5 +1,6 @@
use core::fmt; use core::fmt;
use bevy_platform_support::collections::hash_map::Entry;
use taffy::TaffyTree; use taffy::TaffyTree;
use bevy_ecs::{ use bevy_ecs::{
@ -74,36 +75,36 @@ impl UiSurface {
) { ) {
let taffy = &mut self.taffy; let taffy = &mut self.taffy;
let mut added = false; match self.entity_to_taffy.entry(entity) {
let taffy_node_id = *self.entity_to_taffy.entry(entity).or_insert_with(|| { Entry::Occupied(entry) => {
added = true; let taffy_node_id = *entry.get();
if let Some(measure) = new_node_context.take() { let has_measure = if new_node_context.is_some() {
taffy taffy
.new_leaf_with_context(convert::from_node(node, layout_context, true), measure) .set_node_context(taffy_node_id, new_node_context)
.unwrap() .unwrap();
} else { true
taffy } else {
.new_leaf(convert::from_node(node, layout_context, false)) taffy.get_node_context(taffy_node_id).is_some()
.unwrap() };
}
});
if !added {
let has_measure = if new_node_context.is_some() {
taffy taffy
.set_node_context(taffy_node_id, new_node_context) .set_style(
taffy_node_id,
convert::from_node(node, layout_context, has_measure),
)
.unwrap(); .unwrap();
true }
} else { Entry::Vacant(entry) => {
taffy.get_node_context(taffy_node_id).is_some() let taffy_node_id = if let Some(measure) = new_node_context.take() {
}; taffy.new_leaf_with_context(
convert::from_node(node, layout_context, true),
taffy measure,
.set_style( )
taffy_node_id, } else {
convert::from_node(node, layout_context, has_measure), taffy.new_leaf(convert::from_node(node, layout_context, false))
) };
.unwrap(); entry.insert(taffy_node_id.unwrap());
}
} }
} }