bevy/crates/bevy_ecs/src
Christian Hughes 2be3bc5310
Improve node encapsulation in ScheduleGraph (#20119)
# Objective

- Part of #20115

We want to encapsulate each part of `ScheduleGraph` into its own
specific struct to make parts of it easier to reuse and maintain.

## Solution

- Pulled `ScheduleGraph::systems` and `ScheduleGraph::system_conditions`
into a `Systems` struct and added a field for this new struct to
`ScheduleGraph`
- Broke up `ScheduleGraph::uninit` into `Systems::uninit` and
`SystemSets::uninit` to eliminate `ScheduleGraph`'s direct field access
of these types
- Removed node and condition accessors from `ScheduleGraph`; the same
operations are now available on `Systems` and `SystemSets` instead
(accessible via their `pub` fields on `ScheduleGraph`)
- Moved `Systems`, `SystemSets`, `SystemNode`, `SystemWithAccess`, and
`ConditionWithAccess` into a separate file.

## Testing

Added two new tests covering the API surface of `Systems` and
`SystemSets`, respectively.

---------

Co-authored-by: Chris Russell <8494645+chescock@users.noreply.github.com>
2025-07-15 06:29:52 +00:00
..
bundle allow EntityCloner to move components without Clone or Reflect (#20065) 2025-07-14 22:33:01 +00:00
component allow EntityCloner to move components without Clone or Reflect (#20065) 2025-07-14 22:33:01 +00:00
entity allow EntityCloner to move components without Clone or Reflect (#20065) 2025-07-14 22:33:01 +00:00
error Don't create errors for ignored failed commands (#19718) 2025-06-29 16:34:20 +00:00
event Split BufferedEvent from Event (#20101) 2025-07-14 21:31:48 +00:00
observer Observer trigger refactor (#19935) 2025-07-04 16:27:21 +00:00
query Have System::run_unsafe return Result. (#19145) 2025-07-03 21:48:09 +00:00
reflect ECS: put strings only used for debug behind a feature (#19558) 2025-06-18 20:15:25 +00:00
relationship allow EntityCloner to move components without Clone or Reflect (#20065) 2025-07-14 22:33:01 +00:00
schedule Improve node encapsulation in ScheduleGraph (#20119) 2025-07-15 06:29:52 +00:00
storage Bump typos to 1.34.0 (#20013) 2025-07-07 20:15:06 +00:00
system ReadOnlySystem diagnostics and type alias (#19138) 2025-07-15 00:14:06 +00:00
world allow EntityCloner to move components without Clone or Reflect (#20065) 2025-07-14 22:33:01 +00:00
archetype.rs Bump typos to 1.34.0 (#20013) 2025-07-07 20:15:06 +00:00
batching.rs
change_detection.rs Split BufferedEvent from Event (#20101) 2025-07-14 21:31:48 +00:00
entity_disabling.rs
hierarchy.rs Add parent ID to the B0004 log message (#19980) 2025-07-07 20:04:59 +00:00
intern.rs
label.rs
lib.rs Split BufferedEvent from Event (#20101) 2025-07-14 21:31:48 +00:00
lifecycle.rs Split BufferedEvent from Event (#20101) 2025-07-14 21:31:48 +00:00
name.rs Add newlines before impl blocks (#19746) 2025-06-22 23:07:02 +00:00
never.rs
resource.rs
spawn.rs Remove Bundle::register_required_components (#19967) 2025-07-06 18:15:28 +00:00
traversal.rs Let query items borrow from query state to avoid needing to clone (#15396) 2025-06-16 21:05:41 +00:00