pub unsafe trait SystemParam: Sized {
    type State: Send + Sync + 'static;
    type Item<'world, 'state>: SystemParam<State = Self::State>;

    // Required methods
    fn init_state(
        world: &mut World,
        system_meta: &mut SystemMeta
    ) -> Self::State;
    unsafe fn get_param<'world, 'state>(
        state: &'state mut Self::State,
        system_meta: &SystemMeta,
        world: UnsafeWorldCell<'world>,
        change_tick: Tick
    ) -> Self::Item<'world, 'state>;

    // Provided methods
    fn new_archetype(
        _state: &mut Self::State,
        _archetype: &Archetype,
        _system_meta: &mut SystemMeta
    ) { ... }
    fn apply(
        state: &mut Self::State,
        system_meta: &SystemMeta,
        world: &mut World
    ) { ... }
}
Expand description

A parameter that can be used in a System.

Derive

This trait can be derived with the super::SystemParam macro. This macro only works if each field on the derived struct implements SystemParam. Note: There are additional requirements on the field types. See the Generic SystemParams section for details and workarounds of the probable cause if this derive causes an error to be emitted.

Derived SystemParam structs may have two lifetimes: 'w for data stored in the World, and 's for data stored in the parameter’s state.

The following list shows the most common SystemParams and which lifetime they require

Query<'w, 's, Entity>,
Res<'w, SomeResource>,
ResMut<'w, SomeOtherResource>,
Local<'s, u8>,
Commands<'w, 's>,
EventReader<'w, 's, SomeEvent>,
EventWriter<'w, SomeEvent>

PhantomData

PhantomData is a special type of SystemParam that does nothing. This is useful for constraining generic types or lifetimes.

Example

use std::marker::PhantomData;
use bevy_ecs::system::SystemParam;

#[derive(SystemParam)]
struct MyParam<'w, Marker: 'static> {
    foo: Res<'w, SomeResource>,
    marker: PhantomData<Marker>,
}

fn my_system<T: 'static>(param: MyParam<T>) {
    // Access the resource through `param.foo`
}

Generic SystemParams

When using the derive macro, you may see an error in the form of:

expected ... [ParamType]
found associated type `<[ParamType] as SystemParam>::Item<'_, '_>`

where [ParamType] is the type of one of your fields. To solve this error, you can wrap the field of type [ParamType] with StaticSystemParam (i.e. StaticSystemParam<[ParamType]>).

Details

The derive macro requires that the SystemParam implementation of each field F’s Item’s is itself F (ignoring lifetimes for simplicity). This assumption is due to type inference reasons, so that the derived SystemParam can be used as an argument to a function system. If the compiler cannot validate this property for [ParamType], it will error in the form shown above.

This will most commonly occur when working with SystemParams generically, as the requirement has not been proven to the compiler.

Safety

The implementor must ensure the following is true.

Required Associated Types§

source

type State: Send + Sync + 'static

Used to store data which persists across invocations of a system.

source

type Item<'world, 'state>: SystemParam<State = Self::State>

The item type returned when constructing this system param. The value of this associated type should be Self, instantiated with new lifetimes.

You could think of SystemParam::Item<'w, 's> as being an operation that changes the lifetimes bound to Self.

Required Methods§

source

fn init_state(world: &mut World, system_meta: &mut SystemMeta) -> Self::State

Registers any World access used by this SystemParam and creates a new instance of this param’s State.

source

unsafe fn get_param<'world, 'state>( state: &'state mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'world>, change_tick: Tick ) -> Self::Item<'world, 'state>

Creates a parameter to be passed into a SystemParamFunction.

Safety
  • The passed UnsafeWorldCell must have access to any world data registered in init_state.
  • world must be the same World that was used to initialize state.

Provided Methods§

source

fn new_archetype( _state: &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

For the specified Archetype, registers the components accessed by this SystemParam (if applicable).

source

fn apply(state: &mut Self::State, system_meta: &SystemMeta, world: &mut World)

Applies any deferred mutations stored in this SystemParam’s state. This is used to apply Commands during apply_deferred.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl SystemParam for ()

§

type State = ()

§

type Item<'w, 's> = ()

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply((): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World)

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<'a, T: 'static> SystemParam for Option<NonSendMut<'a, T>>

§

type State = ComponentId

§

type Item<'w, 's> = Option<NonSendMut<'w, T>>

source§

fn init_state(world: &mut World, system_meta: &mut SystemMeta) -> Self::State

source§

unsafe fn get_param<'w, 's>( component_id: &'s mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<'a, T: Resource> SystemParam for Option<Res<'a, T>>

§

type State = ComponentId

§

type Item<'w, 's> = Option<Res<'w, T>>

source§

fn init_state(world: &mut World, system_meta: &mut SystemMeta) -> Self::State

source§

unsafe fn get_param<'w, 's>( component_id: &'s mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<'a, T: Resource> SystemParam for Option<ResMut<'a, T>>

§

type State = ComponentId

§

type Item<'w, 's> = Option<ResMut<'w, T>>

source§

fn init_state(world: &mut World, system_meta: &mut SystemMeta) -> Self::State

source§

unsafe fn get_param<'w, 's>( component_id: &'s mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam> SystemParam for (P0,)

§

type State = (<P0 as SystemParam>::State,)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>,)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply((P0): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World)

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam> SystemParam for (P0, P1)

§

type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam> SystemParam for (P0, P1, P2)

§

type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam> SystemParam for (P0, P1, P2, P3)

§

type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State, <P3 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam> SystemParam for (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 Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5)

§

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> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6)

§

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> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7)

§

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> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8)

§

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, <P8 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>, <P8 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7, P8): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7, P8): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9)

§

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, <P8 as SystemParam>::State, <P9 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>, <P8 as SystemParam>::Item<'w, 's>, <P9 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam, P10: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)

§

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, <P8 as SystemParam>::State, <P9 as SystemParam>::State, <P10 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>, <P8 as SystemParam>::Item<'w, 's>, <P9 as SystemParam>::Item<'w, 's>, <P10 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam, P10: SystemParam, P11: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)

§

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, <P8 as SystemParam>::State, <P9 as SystemParam>::State, <P10 as SystemParam>::State, <P11 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>, <P8 as SystemParam>::Item<'w, 's>, <P9 as SystemParam>::Item<'w, 's>, <P10 as SystemParam>::Item<'w, 's>, <P11 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam, P10: SystemParam, P11: SystemParam, P12: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)

§

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, <P8 as SystemParam>::State, <P9 as SystemParam>::State, <P10 as SystemParam>::State, <P11 as SystemParam>::State, <P12 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>, <P8 as SystemParam>::Item<'w, 's>, <P9 as SystemParam>::Item<'w, 's>, <P10 as SystemParam>::Item<'w, 's>, <P11 as SystemParam>::Item<'w, 's>, <P12 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam, P10: SystemParam, P11: SystemParam, P12: SystemParam, P13: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)

§

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, <P8 as SystemParam>::State, <P9 as SystemParam>::State, <P10 as SystemParam>::State, <P11 as SystemParam>::State, <P12 as SystemParam>::State, <P13 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>, <P8 as SystemParam>::Item<'w, 's>, <P9 as SystemParam>::Item<'w, 's>, <P10 as SystemParam>::Item<'w, 's>, <P11 as SystemParam>::Item<'w, 's>, <P12 as SystemParam>::Item<'w, 's>, <P13 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam, P10: SystemParam, P11: SystemParam, P12: SystemParam, P13: SystemParam, P14: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)

§

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, <P8 as SystemParam>::State, <P9 as SystemParam>::State, <P10 as SystemParam>::State, <P11 as SystemParam>::State, <P12 as SystemParam>::State, <P13 as SystemParam>::State, <P14 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>, <P8 as SystemParam>::Item<'w, 's>, <P9 as SystemParam>::Item<'w, 's>, <P10 as SystemParam>::Item<'w, 's>, <P11 as SystemParam>::Item<'w, 's>, <P12 as SystemParam>::Item<'w, 's>, <P13 as SystemParam>::Item<'w, 's>, <P14 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam, P10: SystemParam, P11: SystemParam, P12: SystemParam, P13: SystemParam, P14: SystemParam, P15: SystemParam> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)

§

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, <P8 as SystemParam>::State, <P9 as SystemParam>::State, <P10 as SystemParam>::State, <P11 as SystemParam>::State, <P12 as SystemParam>::State, <P13 as SystemParam>::State, <P14 as SystemParam>::State, <P15 as SystemParam>::State)

§

type Item<'w, 's> = (<P0 as SystemParam>::Item<'w, 's>, <P1 as SystemParam>::Item<'w, 's>, <P2 as SystemParam>::Item<'w, 's>, <P3 as SystemParam>::Item<'w, 's>, <P4 as SystemParam>::Item<'w, 's>, <P5 as SystemParam>::Item<'w, 's>, <P6 as SystemParam>::Item<'w, 's>, <P7 as SystemParam>::Item<'w, 's>, <P8 as SystemParam>::Item<'w, 's>, <P9 as SystemParam>::Item<'w, 's>, <P10 as SystemParam>::Item<'w, 's>, <P11 as SystemParam>::Item<'w, 's>, <P12 as SystemParam>::Item<'w, 's>, <P13 as SystemParam>::Item<'w, 's>, <P14 as SystemParam>::Item<'w, 's>, <P15 as SystemParam>::Item<'w, 's>)

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

fn new_archetype( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15): &mut Self::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

source§

fn apply( (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15): &mut Self::State, _system_meta: &SystemMeta, _world: &mut World )

source§

unsafe fn get_param<'w, 's>( state: &'s mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'w>, _change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<T: 'static> SystemParam for Option<NonSend<'_, T>>

§

type State = ComponentId

§

type Item<'w, 's> = Option<NonSend<'w, T>>

source§

fn init_state(world: &mut World, system_meta: &mut SystemMeta) -> Self::State

source§

unsafe fn get_param<'w, 's>( component_id: &'s mut Self::State, system_meta: &SystemMeta, world: UnsafeWorldCell<'w>, change_tick: Tick ) -> Self::Item<'w, 's>

source§

impl<T: ?Sized> SystemParam for PhantomData<T>

§

type State = ()

§

type Item<'world, 'state> = PhantomData<T>

source§

fn init_state(_world: &mut World, _system_meta: &mut SystemMeta) -> Self::State

source§

unsafe fn get_param<'world, 'state>( _state: &'state mut Self::State, _system_meta: &SystemMeta, _world: UnsafeWorldCell<'world>, _change_tick: Tick ) -> Self::Item<'world, 'state>

Implementors§

source§

impl SystemParam for &World

§

type State = ()

§

type Item<'w, 's> = &'w World

source§

impl SystemParam for WorldId

§

type State = ()

§

type Item<'world, 'state> = WorldId

source§

impl SystemParam for Commands<'_, '_>

§

type State = FetchState

§

type Item<'w, 's> = Commands<'w, 's>

source§

impl SystemParam for ParallelCommands<'_, '_>

§

type State = FetchState

§

type Item<'w, 's> = ParallelCommands<'w, 's>

source§

impl SystemParam for SystemChangeTick

§

type State = ()

§

type Item<'w, 's> = SystemChangeTick

source§

impl SystemParam for SystemName<'_>

§

type State = Cow<'static, str>

§

type Item<'w, 's> = SystemName<'s>

source§

impl<'_w, '_s, P0: SystemParam> SystemParam for ParamSet<'_w, '_s, (P0,)>

§

type State = (<P0 as SystemParam>::State,)

§

type Item<'w, 's> = ParamSet<'w, 's, (P0,)>

source§

impl<'_w, '_s, P0: SystemParam, P1: SystemParam> SystemParam for ParamSet<'_w, '_s, (P0, P1)>

§

type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State)

§

type Item<'w, 's> = ParamSet<'w, 's, (P0, P1)>

source§

impl<'_w, '_s, P0: SystemParam, P1: SystemParam, P2: SystemParam> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2)>

§

type State = (<P0 as SystemParam>::State, <P1 as SystemParam>::State, <P2 as SystemParam>::State)

§

type Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2)>

source§

impl<'_w, '_s, P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam> 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 Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3)>

source§

impl<'_w, '_s, P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam> 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 Item<'w, 's> = ParamSet<'w, 's, (P0, P1, P2, P3, P4)>

source§

impl<'_w, '_s, P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5)>

§

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)>

source§

impl<'_w, '_s, P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6)>

§

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)>

source§

impl<'_w, '_s, P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam> SystemParam for ParamSet<'_w, '_s, (P0, P1, P2, P3, P4, P5, P6, P7)>

§

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)>

source§

impl<'a> SystemParam for &'a Archetypes

§

type State = ()

§

type Item<'w, 's> = &'w Archetypes

source§

impl<'a> SystemParam for &'a Bundles

§

type State = ()

§

type Item<'w, 's> = &'w Bundles

source§

impl<'a> SystemParam for &'a Components

§

type State = ()

§

type Item<'w, 's> = &'w Components

source§

impl<'a> SystemParam for &'a Entities

§

type State = ()

§

type Item<'w, 's> = &'w Entities

source§

impl<'a> SystemParam for &'a RemovedComponentEvents

§

type State = ()

§

type Item<'w, 's> = &'w RemovedComponentEvents

source§

impl<'a, T: 'static> SystemParam for NonSendMut<'a, T>

§

type State = ComponentId

§

type Item<'w, 's> = NonSendMut<'w, T>

source§

impl<'a, T: 'static> SystemParam for NonSend<'a, T>

§

type State = ComponentId

§

type Item<'w, 's> = NonSend<'w, T>

source§

impl<'a, T: FromWorld + Send + 'static> SystemParam for Local<'a, T>

§

type State = SyncCell<T>

§

type Item<'w, 's> = Local<'s, T>

source§

impl<'a, T: Resource> SystemParam for Res<'a, T>

§

type State = ComponentId

§

type Item<'w, 's> = Res<'w, T>

source§

impl<'a, T: Resource> SystemParam for ResMut<'a, T>

§

type State = ComponentId

§

type Item<'w, 's> = ResMut<'w, T>

source§

impl<D: QueryData + 'static, F: QueryFilter + 'static> SystemParam for Query<'_, '_, D, F>

§

type State = QueryState<D, F>

§

type Item<'w, 's> = Query<'w, 's, D, F>

source§

impl<E: Event> SystemParam for EventReader<'_, '_, E>

§

type State = FetchState<E>

§

type Item<'w, 's> = EventReader<'w, 's, E>

source§

impl<E: Event> SystemParam for EventWriter<'_, E>

§

type State = FetchState<E>

§

type Item<'w, 's> = EventWriter<'w, E>

source§

impl<P: SystemParam + 'static> SystemParam for StaticSystemParam<'_, '_, P>

§

type State = <P as SystemParam>::State

§

type Item<'world, 'state> = StaticSystemParam<'world, 'state, P>

source§

impl<T: Component> SystemParam for ComponentIdFor<'_, T>

§

type State = FetchState<T>

§

type Item<'w, 's> = ComponentIdFor<'s, T>

source§

impl<T: Component> SystemParam for RemovedComponents<'_, '_, T>

§

type State = FetchState<T>

§

type Item<'w, 's> = RemovedComponents<'w, 's, T>

source§

impl<T: SystemBuffer> SystemParam for Deferred<'_, T>

§

type State = SyncCell<T>

§

type Item<'w, 's> = Deferred<'s, T>