UiSurface::upsert_node refactor (#8831)
# Objective Simplify the `UiSurface::upsert_node` method by directly matching on HashMap entry states.
This commit is contained in:
parent
5bbcf646a7
commit
d4356062bf
@ -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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user