pub struct ParamSet<'w, 's, T>where
T: SystemParam,{ /* private fields */ }
Expand description
A collection of potentially conflicting SystemParam
s allowed by disjoint access.
Allows systems to safely access and interact with up to 8 mutually exclusive SystemParam
s, such as
two queries that reference the same mutable data or an event reader and writer of the same type.
Each individual SystemParam
can be accessed by using the functions p0()
, p1()
, …, p7()
,
according to the order they are defined in the ParamSet
. This ensures that there’s either
only one mutable reference to a parameter at a time or any number of immutable references.
§Examples
The following system mutably accesses the same component two times, which is not allowed due to rust’s mutability rules.
// This will panic at runtime when the system gets initialized.
fn bad_system(
mut enemies: Query<&mut Health, With<Enemy>>,
mut allies: Query<&mut Health, With<Ally>>,
) {
// ...
}
Conflicting SystemParam
s like these can be placed in a ParamSet
,
which leverages the borrow checker to ensure that only one of the contained parameters are accessed at a given time.
// Given the following system
fn fancy_system(
mut set: ParamSet<(
Query<&mut Health, With<Enemy>>,
Query<&mut Health, With<Ally>>,
)>
) {
// This will access the first `SystemParam`.
for mut health in set.p0().iter_mut() {
// Do your fancy stuff here...
}
// The second `SystemParam`.
// This would fail to compile if the previous parameter was still borrowed.
for mut health in set.p1().iter_mut() {
// Do even fancier stuff here...
}
}
Of course, ParamSet
s can be used with any kind of SystemParam
, not just queries.
fn event_system(
mut set: ParamSet<(
// `EventReader`s and `EventWriter`s conflict with each other,
// since they both access the event queue resource for `MyEvent`.
EventReader<MyEvent>,
EventWriter<MyEvent>,
// `&World` reads the entire world, so a `ParamSet` is the only way
// that it can be used in the same system as any mutable accesses.
&World,
)>,
) {
for event in set.p0().read() {
// ...
}
set.p1().send(MyEvent::new());
let entities = set.p2().entities();
// ...
}
Implementations§
source§impl<'w, 's, P0> ParamSet<'w, 's, (P0,)>where
P0: SystemParam,
impl<'w, 's, P0> ParamSet<'w, 's, (P0,)>where
P0: SystemParam,
sourcepub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
pub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 0th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
source§impl<'w, 's, P0, P1> ParamSet<'w, 's, (P0, P1)>where
P0: SystemParam,
P1: SystemParam,
impl<'w, 's, P0, P1> ParamSet<'w, 's, (P0, P1)>where
P0: SystemParam,
P1: SystemParam,
sourcepub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
pub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 0th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
Examples found in repository?
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
fn send_and_receive_param_set(
mut param_set: ParamSet<(EventReader<DebugEvent>, EventWriter<DebugEvent>)>,
frame_count: Res<FrameCount>,
) {
println!(
"Sending and receiving events for frame {} with a `ParamSet`",
frame_count.0
);
// We must collect the events to resend, because we can't access the writer while we're iterating over the reader.
let mut events_to_resend = Vec::new();
// This is p0, as the first parameter in the `ParamSet` is the reader.
for event in param_set.p0().read() {
if event.resend_from_param_set {
events_to_resend.push(event.clone());
}
}
// This is p1, as the second parameter in the `ParamSet` is the writer.
for mut event in events_to_resend {
event.times_sent += 1;
param_set.p1().send(event);
}
}
More examples
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299
fn focus_camera(
time: Res<Time>,
mut game: ResMut<Game>,
mut transforms: ParamSet<(Query<&mut Transform, With<Camera3d>>, Query<&Transform>)>,
) {
const SPEED: f32 = 2.0;
// if there is both a player and a bonus, target the mid-point of them
if let (Some(player_entity), Some(bonus_entity)) = (game.player.entity, game.bonus.entity) {
let transform_query = transforms.p1();
if let (Ok(player_transform), Ok(bonus_transform)) = (
transform_query.get(player_entity),
transform_query.get(bonus_entity),
) {
game.camera_should_focus = player_transform
.translation
.lerp(bonus_transform.translation, 0.5);
}
// otherwise, if there is only a player, target the player
} else if let Some(player_entity) = game.player.entity {
if let Ok(player_transform) = transforms.p1().get(player_entity) {
game.camera_should_focus = player_transform.translation;
}
// otherwise, target the middle
} else {
game.camera_should_focus = Vec3::from(RESET_FOCUS);
}
// calculate the camera motion based on the difference between where the camera is looking
// and where it should be looking; the greater the distance, the faster the motion;
// smooth out the camera movement using the frame time
let mut camera_motion = game.camera_should_focus - game.camera_is_focus;
if camera_motion.length() > 0.2 {
camera_motion *= SPEED * time.delta_seconds();
// set the new camera's actual focus
game.camera_is_focus += camera_motion;
}
// look at that new camera's actual focus
for mut transform in transforms.p0().iter_mut() {
*transform = transform.looking_at(game.camera_is_focus, Vec3::Y);
}
}
sourcepub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
pub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 1st parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
Examples found in repository?
110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
fn send_and_receive_param_set(
mut param_set: ParamSet<(EventReader<DebugEvent>, EventWriter<DebugEvent>)>,
frame_count: Res<FrameCount>,
) {
println!(
"Sending and receiving events for frame {} with a `ParamSet`",
frame_count.0
);
// We must collect the events to resend, because we can't access the writer while we're iterating over the reader.
let mut events_to_resend = Vec::new();
// This is p0, as the first parameter in the `ParamSet` is the reader.
for event in param_set.p0().read() {
if event.resend_from_param_set {
events_to_resend.push(event.clone());
}
}
// This is p1, as the second parameter in the `ParamSet` is the writer.
for mut event in events_to_resend {
event.times_sent += 1;
param_set.p1().send(event);
}
}
More examples
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299
fn focus_camera(
time: Res<Time>,
mut game: ResMut<Game>,
mut transforms: ParamSet<(Query<&mut Transform, With<Camera3d>>, Query<&Transform>)>,
) {
const SPEED: f32 = 2.0;
// if there is both a player and a bonus, target the mid-point of them
if let (Some(player_entity), Some(bonus_entity)) = (game.player.entity, game.bonus.entity) {
let transform_query = transforms.p1();
if let (Ok(player_transform), Ok(bonus_transform)) = (
transform_query.get(player_entity),
transform_query.get(bonus_entity),
) {
game.camera_should_focus = player_transform
.translation
.lerp(bonus_transform.translation, 0.5);
}
// otherwise, if there is only a player, target the player
} else if let Some(player_entity) = game.player.entity {
if let Ok(player_transform) = transforms.p1().get(player_entity) {
game.camera_should_focus = player_transform.translation;
}
// otherwise, target the middle
} else {
game.camera_should_focus = Vec3::from(RESET_FOCUS);
}
// calculate the camera motion based on the difference between where the camera is looking
// and where it should be looking; the greater the distance, the faster the motion;
// smooth out the camera movement using the frame time
let mut camera_motion = game.camera_should_focus - game.camera_is_focus;
if camera_motion.length() > 0.2 {
camera_motion *= SPEED * time.delta_seconds();
// set the new camera's actual focus
game.camera_is_focus += camera_motion;
}
// look at that new camera's actual focus
for mut transform in transforms.p0().iter_mut() {
*transform = transform.looking_at(game.camera_is_focus, Vec3::Y);
}
}
source§impl<'w, 's, P0, P1, P2> ParamSet<'w, 's, (P0, P1, P2)>
impl<'w, 's, P0, P1, P2> ParamSet<'w, 's, (P0, P1, P2)>
sourcepub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
pub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 0th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
pub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 1st parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
pub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 2nd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
source§impl<'w, 's, P0, P1, P2, P3> ParamSet<'w, 's, (P0, P1, P2, P3)>
impl<'w, 's, P0, P1, P2, P3> ParamSet<'w, 's, (P0, P1, P2, P3)>
sourcepub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
pub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 0th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
Examples found in repository?
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
fn toggle_shadows(
mut commands: Commands,
input: Res<ButtonInput<KeyCode>>,
mut queries: ParamSet<(
Query<Entity, (With<Handle<Mesh>>, With<NotShadowCaster>)>,
Query<Entity, (With<Handle<Mesh>>, With<NotShadowReceiver>)>,
Query<Entity, (With<Handle<Mesh>>, Without<NotShadowCaster>)>,
Query<Entity, (With<Handle<Mesh>>, Without<NotShadowReceiver>)>,
)>,
) {
if input.just_pressed(KeyCode::KeyC) {
println!("Toggling casters");
for entity in queries.p0().iter() {
commands.entity(entity).remove::<NotShadowCaster>();
}
for entity in queries.p2().iter() {
commands.entity(entity).insert(NotShadowCaster);
}
}
if input.just_pressed(KeyCode::KeyR) {
println!("Toggling receivers");
for entity in queries.p1().iter() {
commands.entity(entity).remove::<NotShadowReceiver>();
}
for entity in queries.p3().iter() {
commands.entity(entity).insert(NotShadowReceiver);
}
}
}
sourcepub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
pub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 1st parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
Examples found in repository?
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
fn toggle_shadows(
mut commands: Commands,
input: Res<ButtonInput<KeyCode>>,
mut queries: ParamSet<(
Query<Entity, (With<Handle<Mesh>>, With<NotShadowCaster>)>,
Query<Entity, (With<Handle<Mesh>>, With<NotShadowReceiver>)>,
Query<Entity, (With<Handle<Mesh>>, Without<NotShadowCaster>)>,
Query<Entity, (With<Handle<Mesh>>, Without<NotShadowReceiver>)>,
)>,
) {
if input.just_pressed(KeyCode::KeyC) {
println!("Toggling casters");
for entity in queries.p0().iter() {
commands.entity(entity).remove::<NotShadowCaster>();
}
for entity in queries.p2().iter() {
commands.entity(entity).insert(NotShadowCaster);
}
}
if input.just_pressed(KeyCode::KeyR) {
println!("Toggling receivers");
for entity in queries.p1().iter() {
commands.entity(entity).remove::<NotShadowReceiver>();
}
for entity in queries.p3().iter() {
commands.entity(entity).insert(NotShadowReceiver);
}
}
}
sourcepub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
pub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 2nd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
Examples found in repository?
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
fn toggle_shadows(
mut commands: Commands,
input: Res<ButtonInput<KeyCode>>,
mut queries: ParamSet<(
Query<Entity, (With<Handle<Mesh>>, With<NotShadowCaster>)>,
Query<Entity, (With<Handle<Mesh>>, With<NotShadowReceiver>)>,
Query<Entity, (With<Handle<Mesh>>, Without<NotShadowCaster>)>,
Query<Entity, (With<Handle<Mesh>>, Without<NotShadowReceiver>)>,
)>,
) {
if input.just_pressed(KeyCode::KeyC) {
println!("Toggling casters");
for entity in queries.p0().iter() {
commands.entity(entity).remove::<NotShadowCaster>();
}
for entity in queries.p2().iter() {
commands.entity(entity).insert(NotShadowCaster);
}
}
if input.just_pressed(KeyCode::KeyR) {
println!("Toggling receivers");
for entity in queries.p1().iter() {
commands.entity(entity).remove::<NotShadowReceiver>();
}
for entity in queries.p3().iter() {
commands.entity(entity).insert(NotShadowReceiver);
}
}
}
sourcepub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
pub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 3rd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
Examples found in repository?
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
fn toggle_shadows(
mut commands: Commands,
input: Res<ButtonInput<KeyCode>>,
mut queries: ParamSet<(
Query<Entity, (With<Handle<Mesh>>, With<NotShadowCaster>)>,
Query<Entity, (With<Handle<Mesh>>, With<NotShadowReceiver>)>,
Query<Entity, (With<Handle<Mesh>>, Without<NotShadowCaster>)>,
Query<Entity, (With<Handle<Mesh>>, Without<NotShadowReceiver>)>,
)>,
) {
if input.just_pressed(KeyCode::KeyC) {
println!("Toggling casters");
for entity in queries.p0().iter() {
commands.entity(entity).remove::<NotShadowCaster>();
}
for entity in queries.p2().iter() {
commands.entity(entity).insert(NotShadowCaster);
}
}
if input.just_pressed(KeyCode::KeyR) {
println!("Toggling receivers");
for entity in queries.p1().iter() {
commands.entity(entity).remove::<NotShadowReceiver>();
}
for entity in queries.p3().iter() {
commands.entity(entity).insert(NotShadowReceiver);
}
}
}
source§impl<'w, 's, P0, P1, P2, P3, P4> ParamSet<'w, 's, (P0, P1, P2, P3, P4)>
impl<'w, 's, P0, P1, P2, P3, P4> ParamSet<'w, 's, (P0, P1, P2, P3, P4)>
sourcepub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
pub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 0th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
pub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 1st parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
pub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 2nd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
pub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 3rd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p4<'a>(&'a mut self) -> <P4 as SystemParam>::Item<'a, 'a>
pub fn p4<'a>(&'a mut self) -> <P4 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 4th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
source§impl<'w, 's, P0, P1, P2, P3, P4, P5> ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
impl<'w, 's, P0, P1, P2, P3, P4, P5> ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
sourcepub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
pub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 0th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
pub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 1st parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
pub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 2nd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
pub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 3rd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p4<'a>(&'a mut self) -> <P4 as SystemParam>::Item<'a, 'a>
pub fn p4<'a>(&'a mut self) -> <P4 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 4th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p5<'a>(&'a mut self) -> <P5 as SystemParam>::Item<'a, 'a>
pub fn p5<'a>(&'a mut self) -> <P5 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 5th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
source§impl<'w, 's, P0, P1, P2, P3, P4, P5, P6> ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
P6: SystemParam,
impl<'w, 's, P0, P1, P2, P3, P4, P5, P6> ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
P6: SystemParam,
sourcepub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
pub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 0th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
pub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 1st parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
pub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 2nd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
pub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 3rd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p4<'a>(&'a mut self) -> <P4 as SystemParam>::Item<'a, 'a>
pub fn p4<'a>(&'a mut self) -> <P4 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 4th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p5<'a>(&'a mut self) -> <P5 as SystemParam>::Item<'a, 'a>
pub fn p5<'a>(&'a mut self) -> <P5 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 5th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p6<'a>(&'a mut self) -> <P6 as SystemParam>::Item<'a, 'a>
pub fn p6<'a>(&'a mut self) -> <P6 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 6th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
source§impl<'w, 's, P0, P1, P2, P3, P4, P5, P6, P7> ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6, P7)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
P6: SystemParam,
P7: SystemParam,
impl<'w, 's, P0, P1, P2, P3, P4, P5, P6, P7> ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6, P7)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
P6: SystemParam,
P7: SystemParam,
sourcepub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
pub fn p0<'a>(&'a mut self) -> <P0 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 0th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
pub fn p1<'a>(&'a mut self) -> <P1 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 1st parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
pub fn p2<'a>(&'a mut self) -> <P2 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 2nd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
pub fn p3<'a>(&'a mut self) -> <P3 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 3rd parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p4<'a>(&'a mut self) -> <P4 as SystemParam>::Item<'a, 'a>
pub fn p4<'a>(&'a mut self) -> <P4 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 4th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p5<'a>(&'a mut self) -> <P5 as SystemParam>::Item<'a, 'a>
pub fn p5<'a>(&'a mut self) -> <P5 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 5th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p6<'a>(&'a mut self) -> <P6 as SystemParam>::Item<'a, 'a>
pub fn p6<'a>(&'a mut self) -> <P6 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 6th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
sourcepub fn p7<'a>(&'a mut self) -> <P7 as SystemParam>::Item<'a, 'a>
pub fn p7<'a>(&'a mut self) -> <P7 as SystemParam>::Item<'a, 'a>
Gets exclusive access to the 7th parameter in this ParamSet
.
No other parameters may be accessed while this one is active.
Trait Implementations§
source§impl<'_w, '_s, P0> SystemParam for ParamSet<'_w, '_s, (P0,)>where
P0: SystemParam,
impl<'_w, '_s, P0> SystemParam for ParamSet<'_w, '_s, (P0,)>where
P0: SystemParam,
§type State = (<P0 as SystemParam>::State,)
type State = (<P0 as SystemParam>::State,)
§type Item<'w, 's> = ParamSet<'w, 's, (P0,)>
type Item<'w, 's> = ParamSet<'w, 's, (P0,)>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(
world: &mut World,
system_meta: &mut SystemMeta
) -> <ParamSet<'_w, '_s, (P0,)> as SystemParam>::State
fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <ParamSet<'_w, '_s, (P0,)> as SystemParam>::State
World
access used by this SystemParam
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut <ParamSet<'_w, '_s, (P0,)> as SystemParam>::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut <ParamSet<'_w, '_s, (P0,)> as SystemParam>::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
, registers the components accessed by this SystemParam
(if applicable).source§fn apply(
state: &mut <ParamSet<'_w, '_s, (P0,)> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World
)
fn apply( state: &mut <ParamSet<'_w, '_s, (P0,)> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World )
SystemParam
’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut <ParamSet<'_w, '_s, (P0,)> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> <ParamSet<'_w, '_s, (P0,)> as SystemParam>::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut <ParamSet<'_w, '_s, (P0,)> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> <ParamSet<'_w, '_s, (P0,)> as SystemParam>::Item<'w, 's>
SystemParamFunction
. Read moresource§impl<'_w, '_s, P0, P1> SystemParam for ParamSet<'_w, '_s, (P0, P1)>where
P0: SystemParam,
P1: SystemParam,
impl<'_w, '_s, P0, P1> SystemParam for ParamSet<'_w, '_s, (P0, P1)>where
P0: SystemParam,
P1: SystemParam,
§type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State)
type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State)
§type Item<'w, 's> = ParamSet<'w, 's, (P0, P1)>
type Item<'w, 's> = ParamSet<'w, 's, (P0, P1)>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(
world: &mut World,
system_meta: &mut SystemMeta
) -> <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::State
fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::State
World
access used by this SystemParam
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
, registers the components accessed by this SystemParam
(if applicable).source§fn apply(
state: &mut <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World
)
fn apply( state: &mut <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World )
SystemParam
’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> <ParamSet<'_w, '_s, (P0, P1)> as SystemParam>::Item<'w, 's>
SystemParamFunction
. Read moresource§impl<'_w, '_s, P0, P1, P2> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2)>
impl<'_w, '_s, P0, P1, P2> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2)>
§type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State)
type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State)
§type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2)>
type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2)>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(
world: &mut World,
system_meta: &mut SystemMeta
) -> <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::State
fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::State
World
access used by this SystemParam
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
, registers the components accessed by this SystemParam
(if applicable).source§fn apply(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World
)
fn apply( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World )
SystemParam
’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> <ParamSet<'_w, '_s, (P0, P1, P2)> as SystemParam>::Item<'w, 's>
SystemParamFunction
. Read moresource§impl<'_w, '_s, P0, P1, P2, P3> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3)>
impl<'_w, '_s, P0, P1, P2, P3> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3)>
§type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State)
type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State)
§type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3)>
type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3)>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(
world: &mut World,
system_meta: &mut SystemMeta
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::State
fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::State
World
access used by this SystemParam
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
, registers the components accessed by this SystemParam
(if applicable).source§fn apply(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World
)
fn apply( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World )
SystemParam
’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3)> as SystemParam>::Item<'w, 's>
SystemParamFunction
. Read moresource§impl<'_w, '_s, P0, P1, P2, P3, P4> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)>
impl<'_w, '_s, P0, P1, P2, P3, P4> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)>
§type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State, <P4 as SystemParam>::State)
type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State, <P4 as SystemParam>::State)
§type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4)>
type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4)>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(
world: &mut World,
system_meta: &mut SystemMeta
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::State
fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::State
World
access used by this SystemParam
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
, registers the components accessed by this SystemParam
(if applicable).source§fn apply(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World
)
fn apply( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World )
SystemParam
’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4)> as SystemParam>::Item<'w, 's>
SystemParamFunction
. Read moresource§impl<'_w, '_s, P0, P1, P2, P3, P4, P5> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
impl<'_w, '_s, P0, P1, P2, P3, P4, P5> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
§type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State, <P4 as SystemParam>::State, <P5 as SystemParam>::State)
type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State, <P4 as SystemParam>::State, <P5 as SystemParam>::State)
§type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5)>
type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5)>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(
world: &mut World,
system_meta: &mut SystemMeta
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::State
fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::State
World
access used by this SystemParam
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
, registers the components accessed by this SystemParam
(if applicable).source§fn apply(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World
)
fn apply( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World )
SystemParam
’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)> as SystemParam>::Item<'w, 's>
SystemParamFunction
. Read moresource§impl<'_w, '_s, P0, P1, P2, P3, P4, P5, P6> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
P6: SystemParam,
impl<'_w, '_s, P0, P1, P2, P3, P4, P5, P6> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
P6: SystemParam,
§type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State, <P4 as SystemParam>::State, <P5 as SystemParam>::State, <P6 as SystemParam>::State)
type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State, <P4 as SystemParam>::State, <P5 as SystemParam>::State, <P6 as SystemParam>::State)
§type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6)>
type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6)>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(
world: &mut World,
system_meta: &mut SystemMeta
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::State
fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::State
World
access used by this SystemParam
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
, registers the components accessed by this SystemParam
(if applicable).source§fn apply(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World
)
fn apply( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World )
SystemParam
’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)> as SystemParam>::Item<'w, 's>
SystemParamFunction
. Read moresource§impl<'_w, '_s, P0, P1, P2, P3, P4, P5, P6, P7> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
P6: SystemParam,
P7: SystemParam,
impl<'_w, '_s, P0, P1, P2, P3, P4, P5, P6, P7> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)>where
P0: SystemParam,
P1: SystemParam,
P2: SystemParam,
P3: SystemParam,
P4: SystemParam,
P5: SystemParam,
P6: SystemParam,
P7: SystemParam,
§type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State, <P4 as SystemParam>::State, <P5 as SystemParam>::State, <P6 as SystemParam>::State, <P7 as SystemParam>::State)
type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State, <P4 as SystemParam>::State, <P5 as SystemParam>::State, <P6 as SystemParam>::State, <P7 as SystemParam>::State)
§type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6, P7)>
type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6, P7)>
Self
, instantiated with new lifetimes. Read moresource§fn init_state(
world: &mut World,
system_meta: &mut SystemMeta
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::State
fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::State
World
access used by this SystemParam
and creates a new instance of this param’s State
.source§fn new_archetype(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::State,
archetype: &Archetype,
system_meta: &mut SystemMeta
)
fn new_archetype( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::State, archetype: &Archetype, system_meta: &mut SystemMeta )
Archetype
, registers the components accessed by this SystemParam
(if applicable).source§fn apply(
state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::State,
system_meta: &SystemMeta,
world: &mut World
)
fn apply( state: &mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::State, system_meta: &SystemMeta, world: &mut World )
SystemParam
’s state.
This is used to apply Commands
during apply_deferred
.source§unsafe fn get_param<'w, 's>(
state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::State,
system_meta: &SystemMeta,
world: UnsafeWorldCell<'w>,
change_tick: Tick
) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::Item<'w, 's>
unsafe fn get_param<'w, 's>( state: &'s mut <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> <ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)> as SystemParam>::Item<'w, 's>
SystemParamFunction
. Read moreimpl<'w, 's, P0> ReadOnlySystemParam for ParamSet<'w, 's, (P0,)>where
P0: ReadOnlySystemParam,
impl<'w, 's, P0, P1> ReadOnlySystemParam for ParamSet<'w, 's, (P0, P1)>where
P0: ReadOnlySystemParam,
P1: ReadOnlySystemParam,
impl<'w, 's, P0, P1, P2> ReadOnlySystemParam for ParamSet<'w, 's, (P0, P1, P2)>
impl<'w, 's, P0, P1, P2, P3> ReadOnlySystemParam for ParamSet<'w, 's, (P0, P1, P2, P3)>where
P0: ReadOnlySystemParam,
P1: ReadOnlySystemParam,
P2: ReadOnlySystemParam,
P3: ReadOnlySystemParam,
impl<'w, 's, P0, P1, P2, P3, P4> ReadOnlySystemParam for ParamSet<'w, 's, (P0, P1, P2, P3, P4)>where
P0: ReadOnlySystemParam,
P1: ReadOnlySystemParam,
P2: ReadOnlySystemParam,
P3: ReadOnlySystemParam,
P4: ReadOnlySystemParam,
impl<'w, 's, P0, P1, P2, P3, P4, P5> ReadOnlySystemParam for ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5)>where
P0: ReadOnlySystemParam,
P1: ReadOnlySystemParam,
P2: ReadOnlySystemParam,
P3: ReadOnlySystemParam,
P4: ReadOnlySystemParam,
P5: ReadOnlySystemParam,
impl<'w, 's, P0, P1, P2, P3, P4, P5, P6> ReadOnlySystemParam for ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6)>where
P0: ReadOnlySystemParam,
P1: ReadOnlySystemParam,
P2: ReadOnlySystemParam,
P3: ReadOnlySystemParam,
P4: ReadOnlySystemParam,
P5: ReadOnlySystemParam,
P6: ReadOnlySystemParam,
impl<'w, 's, P0, P1, P2, P3, P4, P5, P6, P7> ReadOnlySystemParam for ParamSet<'w, 's, (P0, P1, P2, P3, P4, P5, P6, P7)>where
P0: ReadOnlySystemParam,
P1: ReadOnlySystemParam,
P2: ReadOnlySystemParam,
P3: ReadOnlySystemParam,
P4: ReadOnlySystemParam,
P5: ReadOnlySystemParam,
P6: ReadOnlySystemParam,
P7: ReadOnlySystemParam,
Auto Trait Implementations§
impl<'w, 's, T> Freeze for ParamSet<'w, 's, T>
impl<'w, 's, T> !RefUnwindSafe for ParamSet<'w, 's, T>
impl<'w, 's, T> Send for ParamSet<'w, 's, T>
impl<'w, 's, T> Sync for ParamSet<'w, 's, T>
impl<'w, 's, T> Unpin for ParamSet<'w, 's, T>
impl<'w, 's, T> !UnwindSafe for ParamSet<'w, 's, T>
Blanket Implementations§
source§impl<T, U> AsBindGroupShaderType<U> for T
impl<T, U> AsBindGroupShaderType<U> for T
source§fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
fn as_bind_group_shader_type(&self, _images: &RenderAssets<Image>) -> U
T
ShaderType
for self
. When used in AsBindGroup
derives, it is safe to assume that all images in self
exist.source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.