bevy/crates/bevy_ecs/src
Christian Hughes f87b9fe20c
Turn apply_deferred into a ZST System (#16642)
# Objective

- Required by #16622 due to differing implementations of `System` by
`FunctionSystem` and `ExclusiveFunctionSystem`.
- Optimize the memory usage of instances of `apply_deferred` in system
schedules.

## Solution

By changing `apply_deferred` from being an ordinary system that ends up
as an `ExclusiveFunctionSystem`, and instead into a ZST struct that
implements `System` manually, we save ~320 bytes per instance of
`apply_deferred` in any schedule.

## Testing

- All current tests pass.

---

## Migration Guide

- If you were previously calling the special `apply_deferred` system via
`apply_deferred(world)`, don't.
2024-12-05 18:14:05 +00:00
..
entity Add Immutable Component Support (#16372) 2024-12-05 14:27:48 +00:00
event Add World::get_resource_or_init as an alternative to World::get_resource_or_insert_with (#15758) 2024-10-09 20:56:26 +00:00
identifier Use en-us locale for typos (#16037) 2024-10-20 18:55:17 +00:00
observer Add Immutable Component Support (#16372) 2024-12-05 14:27:48 +00:00
query Add Immutable Component Support (#16372) 2024-12-05 14:27:48 +00:00
reflect Add Immutable Component Support (#16372) 2024-12-05 14:27:48 +00:00
schedule Turn apply_deferred into a ZST System (#16642) 2024-12-05 18:14:05 +00:00
storage Remove flush_and_reserve_invalid_assuming_no_entities (#16460) 2024-12-03 19:42:22 +00:00
system Turn apply_deferred into a ZST System (#16642) 2024-12-05 18:14:05 +00:00
world Add Immutable Component Support (#16372) 2024-12-05 14:27:48 +00:00
archetype.rs Add Trigger::components, which lists the component targets that were triggered (#15811) 2024-10-15 02:17:03 +00:00
batching.rs Fix *most* clippy lints (#15906) 2024-10-14 20:52:35 +00:00
bundle.rs Move all_tuples to a new crate (#16161) 2024-12-03 17:41:09 +00:00
change_detection.rs Migrate from Query::single and friends to Single (#15872) 2024-10-13 20:32:06 +00:00
component.rs Add Immutable Component Support (#16372) 2024-12-05 14:27:48 +00:00
intern.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
label.rs Add core and alloc over std Lints (#15281) 2024-09-27 00:59:59 +00:00
lib.rs Turn apply_deferred into a ZST System (#16642) 2024-12-05 18:14:05 +00:00
removal_detection.rs fix: add reflect to SceneInstanceReady and other observers/events (#16018) 2024-10-20 13:51:41 +00:00
traversal.rs Fix a couple typos (#16573) 2024-11-30 19:28:53 +00:00