bevy/crates/bevy_ui/src
Carter Anderson 1553ee98ff Switch ChildOf back to tuple struct (#18672)
# Objective

In #17905 we swapped to a named field on `ChildOf` to help resolve
variable naming ambiguity of child vs parent (ex: `child_of.parent`
clearly reads as "I am accessing the parent of the child_of
relationship", whereas `child_of.0` is less clear).

Unfortunately this has the side effect of making initialization less
ideal. `ChildOf { parent }` reads just as well as `ChildOf(parent)`, but
`ChildOf { parent: root }` doesn't read nearly as well as
`ChildOf(root)`.

## Solution

Move back to `ChildOf(pub Entity)` but add a `child_of.parent()`
function and use it for all accesses. The downside here is that users
are no longer "forced" to access the parent field with `parent`
nomenclature, but I think this strikes the right balance.

Take a look at the diff. I think the results provide strong evidence for
this change. Initialization has the benefit of reading much better _and_
of taking up significantly less space, as many lines go from 3 to 1, and
we're cutting out a bunch of syntax in some cases.

Sadly I do think this should land in 0.16 as the cost of doing this
_after_ the relationships migration is high.
2025-04-03 21:45:43 +02:00
..
experimental Switch ChildOf back to tuple struct (#18672) 2025-04-03 21:45:43 +02:00
layout Switch ChildOf back to tuple struct (#18672) 2025-04-03 21:45:43 +02:00
render Remove the entity index from the UI phase's sort key (#18273) 2025-03-12 17:11:02 +00:00
widget Improved Require Syntax (#18555) 2025-03-26 19:07:30 +01:00
accessibility.rs Generic system config (#17962) 2025-03-12 00:12:30 +00:00
focus.rs Rename EntityBorrow/TrustedEntityBorrow to ContainsEntity/EntityEquivalent (#18470) 2025-03-30 10:24:00 +02:00
geometry.rs Use UiRect::all to build the UiRect constants (#18372) 2025-03-17 21:51:11 +00:00
lib.rs register ComputedNodeTarget (#18503) 2025-03-25 22:39:04 +01:00
measurement.rs Use CosmicFontSystem in public bevy_text APIs and remove cosmic_text re-export (#16063) 2024-10-23 20:05:28 +00:00
picking_backend.rs Unify picking backends (#17348) 2025-03-18 21:18:06 +01:00
stack.rs Move hashbrown and foldhash out of bevy_utils (#17460) 2025-01-23 16:46:08 +00:00
ui_material.rs Fix Component require() IDE integration (#18165) 2025-03-06 02:44:47 +00:00
ui_node.rs bevy_reflect: Add clone registrations project-wide (#18307) 2025-03-17 18:32:35 +00:00
update.rs Switch ChildOf back to tuple struct (#18672) 2025-04-03 21:45:43 +02:00