bevy/crates/bevy_transform/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
..
components Move required components doc to type doc (#16575) 2024-12-03 19:45:20 +00:00
bundles.rs Migrate visibility to required components (#15474) 2024-09-27 19:06:16 +00:00
commands.rs Turn apply_deferred into a ZST System (#16642) 2024-12-05 18:14:05 +00:00
helper.rs Remove thiserror from bevy_transform (#15761) 2024-10-09 14:27:30 +00:00
lib.rs Migrate bevy_transform to required components (#14964) 2024-09-27 17:06:48 +00:00
plugins.rs bevy_transform split up to allow feature gate modularity (#13599) 2024-05-31 16:40:36 +00:00
systems.rs Migrate bevy_transform to required components (#14964) 2024-09-27 17:06:48 +00:00
traits.rs Conversions for Isometry3d ⟷ Transform/GlobalTransform (#14478) 2024-07-25 20:23:32 +00:00