bevy/crates/bevy_ecs/src/system
Joshua Chapman 274ace790b Implement iter() for mutable Queries (#2305)
A sample implementation of how to have `iter()` work on mutable queries without breaking aliasing rules.

# Objective

- Fixes #753

## Solution

- Added a ReadOnlyFetch to WorldQuery that is the `&T` version of `&mut T` that is used to specify the return type for read only operations like `iter()`.
- ~~As the comment suggests specifying the bound doesn't work due to restrictions on defining recursive implementations (like `Or`). However bounds on the functions are fine~~ Never mind I misread how `Or` was constructed, bounds now exist.
- Note that the only mutable one has a new `Fetch` for readonly as the `State` has to be the same for any of this to work


Co-authored-by: Carter Anderson <mcanders1@gmail.com>
2021-12-01 23:28:10 +00:00
..
commands Implement and require #[derive(Component)] on all component structs (#2254) 2021-10-03 19:23:44 +00:00
exclusive_system.rs remove Box from ExclusiveSystemFn (#3063) 2021-11-04 20:55:28 +00:00
function_system.rs Merge New Renderer 2021-11-22 23:57:42 -08:00
mod.rs Implement iter() for mutable Queries (#2305) 2021-12-01 23:28:10 +00:00
query.rs Implement iter() for mutable Queries (#2305) 2021-12-01 23:28:10 +00:00
system_chaining.rs Unique WorldId (#2827) 2021-09-30 20:54:47 +00:00
system_param.rs Merge New Renderer 2021-11-22 23:57:42 -08:00
system.rs Unique WorldId (#2827) 2021-09-30 20:54:47 +00:00