Skip to content

Commit b33dae3

Browse files
Rename get_multiple APIs to get_many (#4384)
# Objective - std's new APIs do the same thing as `Query::get_multiple_mut`, but are called `get_many`: rust-lang/rust#83608 ## Solution - Find and replace `get_multiple` with `get_many`
1 parent 48ac955 commit b33dae3

6 files changed

+41
-41
lines changed

crates/bevy_ecs/src/query/state.rs

+24-24
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ where
158158
/// In case of a nonexisting entity or mismatched component, a [`QueryEntityError`] is
159159
/// returned instead.
160160
///
161-
/// Note that the unlike [`QueryState::get_multiple_mut`], the entities passed in do not need to be unique.
161+
/// Note that the unlike [`QueryState::get_many_mut`], the entities passed in do not need to be unique.
162162
///
163163
/// # Examples
164164
///
@@ -177,16 +177,16 @@ where
177177
///
178178
/// let mut query_state = world.query::<&A>();
179179
///
180-
/// let component_values = query_state.get_multiple(&world, entities).unwrap();
180+
/// let component_values = query_state.get_many(&world, entities).unwrap();
181181
///
182182
/// assert_eq!(component_values, [&A(0), &A(1), &A(2)]);
183183
///
184184
/// let wrong_entity = Entity::from_raw(365);
185185
///
186-
/// assert_eq!(query_state.get_multiple(&world, [wrong_entity]), Err(QueryEntityError::NoSuchEntity(wrong_entity)));
186+
/// assert_eq!(query_state.get_many(&world, [wrong_entity]), Err(QueryEntityError::NoSuchEntity(wrong_entity)));
187187
/// ```
188188
#[inline]
189-
pub fn get_multiple<'w, 's, const N: usize>(
189+
pub fn get_many<'w, 's, const N: usize>(
190190
&'s mut self,
191191
world: &'w World,
192192
entities: [Entity; N],
@@ -195,7 +195,7 @@ where
195195

196196
// SAFE: update_archetypes validates the `World` matches
197197
unsafe {
198-
self.get_multiple_read_only_manual(
198+
self.get_many_read_only_manual(
199199
world,
200200
entities,
201201
world.last_change_tick(),
@@ -244,25 +244,25 @@ where
244244
///
245245
/// let mut query_state = world.query::<&mut A>();
246246
///
247-
/// let mut mutable_component_values = query_state.get_multiple_mut(&mut world, entities).unwrap();
247+
/// let mut mutable_component_values = query_state.get_many_mut(&mut world, entities).unwrap();
248248
///
249249
/// for mut a in mutable_component_values.iter_mut(){
250250
/// a.0 += 5;
251251
/// }
252252
///
253-
/// let component_values = query_state.get_multiple(&world, entities).unwrap();
253+
/// let component_values = query_state.get_many(&world, entities).unwrap();
254254
///
255255
/// assert_eq!(component_values, [&A(5), &A(6), &A(7)]);
256256
///
257257
/// let wrong_entity = Entity::from_raw(57);
258258
/// let invalid_entity = world.spawn().id();
259259
///
260-
/// assert_eq!(query_state.get_multiple_mut(&mut world, [wrong_entity]).unwrap_err(), QueryEntityError::NoSuchEntity(wrong_entity));
261-
/// assert_eq!(query_state.get_multiple_mut(&mut world, [invalid_entity]).unwrap_err(), QueryEntityError::QueryDoesNotMatch(invalid_entity));
262-
/// assert_eq!(query_state.get_multiple_mut(&mut world, [entities[0], entities[0]]).unwrap_err(), QueryEntityError::AliasedMutability(entities[0]));
260+
/// assert_eq!(query_state.get_many_mut(&mut world, [wrong_entity]).unwrap_err(), QueryEntityError::NoSuchEntity(wrong_entity));
261+
/// assert_eq!(query_state.get_many_mut(&mut world, [invalid_entity]).unwrap_err(), QueryEntityError::QueryDoesNotMatch(invalid_entity));
262+
/// assert_eq!(query_state.get_many_mut(&mut world, [entities[0], entities[0]]).unwrap_err(), QueryEntityError::AliasedMutability(entities[0]));
263263
/// ```
264264
#[inline]
265-
pub fn get_multiple_mut<'w, 's, const N: usize>(
265+
pub fn get_many_mut<'w, 's, const N: usize>(
266266
&'s mut self,
267267
world: &'w mut World,
268268
entities: [Entity; N],
@@ -272,7 +272,7 @@ where
272272
// SAFE: method requires exclusive world access
273273
// and world has been validated via update_archetypes
274274
unsafe {
275-
self.get_multiple_unchecked_manual(
275+
self.get_many_unchecked_manual(
276276
world,
277277
entities,
278278
world.last_change_tick(),
@@ -368,7 +368,7 @@ where
368368
///
369369
/// This must be called on the same `World` that the `Query` was generated from:
370370
/// use `QueryState::validate_world` to verify this.
371-
pub(crate) unsafe fn get_multiple_read_only_manual<'s, 'w, const N: usize>(
371+
pub(crate) unsafe fn get_many_read_only_manual<'s, 'w, const N: usize>(
372372
&'s self,
373373
world: &'w World,
374374
entities: [Entity; N],
@@ -409,7 +409,7 @@ where
409409
///
410410
/// This must be called on the same `World` that the `Query` was generated from:
411411
/// use `QueryState::validate_world` to verify this.
412-
pub(crate) unsafe fn get_multiple_unchecked_manual<'s, 'w, const N: usize>(
412+
pub(crate) unsafe fn get_many_unchecked_manual<'s, 'w, const N: usize>(
413413
&'s self,
414414
world: &'w World,
415415
entities: [Entity; N],
@@ -941,7 +941,7 @@ mod tests {
941941
use crate::{prelude::*, query::QueryEntityError};
942942

943943
#[test]
944-
fn get_multiple_unchecked_manual_uniqueness() {
944+
fn get_many_unchecked_manual_uniqueness() {
945945
let mut world = World::new();
946946

947947
let entities: Vec<Entity> = (0..10).map(|_| world.spawn().id()).collect();
@@ -952,12 +952,12 @@ mod tests {
952952
let last_change_tick = world.last_change_tick();
953953
let change_tick = world.read_change_tick();
954954

955-
// It's best to test get_multiple_unchecked_manual directly,
955+
// It's best to test get_many_unchecked_manual directly,
956956
// as it is shared and unsafe
957957
// We don't care about aliased mutabilty for the read-only equivalent
958958
assert!(unsafe {
959959
query_state
960-
.get_multiple_unchecked_manual::<10>(
960+
.get_many_unchecked_manual::<10>(
961961
&world,
962962
entities.clone().try_into().unwrap(),
963963
last_change_tick,
@@ -969,7 +969,7 @@ mod tests {
969969
assert_eq!(
970970
unsafe {
971971
query_state
972-
.get_multiple_unchecked_manual(
972+
.get_many_unchecked_manual(
973973
&world,
974974
[entities[0], entities[0]],
975975
last_change_tick,
@@ -983,7 +983,7 @@ mod tests {
983983
assert_eq!(
984984
unsafe {
985985
query_state
986-
.get_multiple_unchecked_manual(
986+
.get_many_unchecked_manual(
987987
&world,
988988
[entities[0], entities[1], entities[0]],
989989
last_change_tick,
@@ -997,7 +997,7 @@ mod tests {
997997
assert_eq!(
998998
unsafe {
999999
query_state
1000-
.get_multiple_unchecked_manual(
1000+
.get_many_unchecked_manual(
10011001
&world,
10021002
[entities[9], entities[9]],
10031003
last_change_tick,
@@ -1021,21 +1021,21 @@ mod tests {
10211021

10221022
#[test]
10231023
#[should_panic]
1024-
fn right_world_get_multiple() {
1024+
fn right_world_get_many() {
10251025
let mut world_1 = World::new();
10261026
let world_2 = World::new();
10271027

10281028
let mut query_state = world_1.query::<Entity>();
1029-
let _panics = query_state.get_multiple(&world_2, []);
1029+
let _panics = query_state.get_many(&world_2, []);
10301030
}
10311031

10321032
#[test]
10331033
#[should_panic]
1034-
fn right_world_get_multiple_mut() {
1034+
fn right_world_get_many_mut() {
10351035
let mut world_1 = World::new();
10361036
let mut world_2 = World::new();
10371037

10381038
let mut query_state = world_1.query::<Entity>();
1039-
let _panics = query_state.get_multiple_mut(&mut world_2, []);
1039+
let _panics = query_state.get_many_mut(&mut world_2, []);
10401040
}
10411041
}

crates/bevy_ecs/src/system/query.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -623,17 +623,17 @@ where
623623
/// In case of a nonexisting entity or mismatched component, a [`QueryEntityError`] is
624624
/// returned instead.
625625
///
626-
/// Note that the unlike [`Query::get_multiple_mut`], the entities passed in do not need to be unique.
626+
/// Note that the unlike [`Query::get_many_mut`], the entities passed in do not need to be unique.
627627
///
628628
/// See [`Query::multiple`] for the infallible equivalent.
629629
#[inline]
630-
pub fn get_multiple<const N: usize>(
630+
pub fn get_many<const N: usize>(
631631
&self,
632632
entities: [Entity; N],
633633
) -> Result<[<Q::ReadOnlyFetch as Fetch<'_, 's>>::Item; N], QueryEntityError> {
634634
// SAFE: it is the scheduler's responsibility to ensure that `Query` is never handed out on the wrong `World`.
635635
unsafe {
636-
self.state.get_multiple_read_only_manual(
636+
self.state.get_many_read_only_manual(
637637
self.world,
638638
entities,
639639
self.last_change_tick,
@@ -644,7 +644,7 @@ where
644644

645645
/// Returns the read-only query items for the provided array of [`Entity`]
646646
///
647-
/// See [`Query::get_multiple`] for the [`Result`]-returning equivalent.
647+
/// See [`Query::get_many`] for the [`Result`]-returning equivalent.
648648
///
649649
/// # Examples
650650
/// ```rust, no_run
@@ -682,7 +682,7 @@ where
682682
&self,
683683
entities: [Entity; N],
684684
) -> [<Q::ReadOnlyFetch as Fetch<'_, 's>>::Item; N] {
685-
self.get_multiple(entities).unwrap()
685+
self.get_many(entities).unwrap()
686686
}
687687

688688
/// Returns the query result for the given [`Entity`].
@@ -733,13 +733,13 @@ where
733733
///
734734
/// See [`Query::multiple_mut`] for the infallible equivalent.
735735
#[inline]
736-
pub fn get_multiple_mut<const N: usize>(
736+
pub fn get_many_mut<const N: usize>(
737737
&mut self,
738738
entities: [Entity; N],
739739
) -> Result<[<Q::Fetch as Fetch<'_, 's>>::Item; N], QueryEntityError> {
740740
// SAFE: scheduler ensures safe Query world access
741741
unsafe {
742-
self.state.get_multiple_unchecked_manual(
742+
self.state.get_many_unchecked_manual(
743743
self.world,
744744
entities,
745745
self.last_change_tick,
@@ -750,7 +750,7 @@ where
750750

751751
/// Returns the query items for the provided array of [`Entity`]
752752
///
753-
/// See [`Query::get_multiple_mut`] for the [`Result`]-returning equivalent.
753+
/// See [`Query::get_many_mut`] for the [`Result`]-returning equivalent.
754754
///
755755
/// # Examples
756756
///
@@ -794,7 +794,7 @@ where
794794
&mut self,
795795
entities: [Entity; N],
796796
) -> [<Q::Fetch as Fetch<'_, 's>>::Item; N] {
797-
self.get_multiple_mut(entities).unwrap()
797+
self.get_many_mut(entities).unwrap()
798798
}
799799

800800
/// Returns the query result for the given [`Entity`].

crates/bevy_ecs_compile_fail_tests/tests/ui/system_query_get_multiple_lifetime_safety.rs crates/bevy_ecs_compile_fail_tests/tests/ui/system_query_get_many_lifetime_safety.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use bevy_ecs::prelude::*;
44
struct A(usize);
55

66
fn system(mut query: Query<&mut A>, e: Res<Entity>) {
7-
let a1 = query.get_multiple([*e, *e]).unwrap();
7+
let a1 = query.get_many([*e, *e]).unwrap();
88
let a2 = query.get_mut(*e).unwrap();
99
// this should fail to compile
1010
println!("{} {}", a1[0].0, a2.0);

crates/bevy_ecs_compile_fail_tests/tests/ui/system_query_get_multiple_lifetime_safety.stderr crates/bevy_ecs_compile_fail_tests/tests/ui/system_query_get_many_lifetime_safety.stderr

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
error[E0502]: cannot borrow `query` as mutable because it is also borrowed as immutable
2-
--> tests/ui/system_query_get_multiple_lifetime_safety.rs:8:14
2+
--> tests/ui/system_query_get_many_lifetime_safety.rs:8:14
33
|
4-
7 | let a1 = query.get_multiple([*e, *e]).unwrap();
5-
| ---------------------------- immutable borrow occurs here
4+
7 | let a1 = query.get_many([*e, *e]).unwrap();
5+
| ------------------------ immutable borrow occurs here
66
8 | let a2 = query.get_mut(*e).unwrap();
77
| ^^^^^^^^^^^^^^^^^ mutable borrow occurs here
88
9 | // this should fail to compile

crates/bevy_ecs_compile_fail_tests/tests/ui/system_query_get_multiple_mut_lifetime_safety.rs crates/bevy_ecs_compile_fail_tests/tests/ui/system_query_get_many_mut_lifetime_safety.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use bevy_ecs::prelude::*;
44
struct A(usize);
55

66
fn system(mut query: Query<&mut A>, e: Res<Entity>) {
7-
let a1 = query.get_multiple_mut([*e, *e]).unwrap();
7+
let a1 = query.get_many_mut([*e, *e]).unwrap();
88
let a2 = query.get_mut(*e).unwrap();
99
// this should fail to compile
1010
println!("{} {}", a1[0].0, a2.0);

crates/bevy_ecs_compile_fail_tests/tests/ui/system_query_get_multiple_mut_lifetime_safety.stderr crates/bevy_ecs_compile_fail_tests/tests/ui/system_query_get_many_mut_lifetime_safety.stderr

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
error[E0499]: cannot borrow `query` as mutable more than once at a time
2-
--> tests/ui/system_query_get_multiple_mut_lifetime_safety.rs:8:14
2+
--> tests/ui/system_query_get_many_mut_lifetime_safety.rs:8:14
33
|
4-
7 | let a1 = query.get_multiple_mut([*e, *e]).unwrap();
5-
| -------------------------------- first mutable borrow occurs here
4+
7 | let a1 = query.get_many_mut([*e, *e]).unwrap();
5+
| ---------------------------- first mutable borrow occurs here
66
8 | let a2 = query.get_mut(*e).unwrap();
77
| ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here
88
9 | // this should fail to compile

0 commit comments

Comments
 (0)