Trait bevy::ecs::system::SystemParam

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: &'world World,
        change_tick: u32
    ) -> 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.

Attributes

#[system_param(ignore)]: Can be added to any field in the struct. Fields decorated with this attribute will be created with the default value upon realisation. This is most useful for PhantomData fields, such as markers for generic types.

Example

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

#[derive(SystemParam)]
struct MyParam<'w, Marker: 'static> {
    foo: Res<'w, SomeResource>,
    #[system_param(ignore)]
    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.

!Sync Resources

A !Sync type cannot implement Resource. However, it is possible to wrap a Send but not Sync type in SyncCell or the currently unstable Exclusive to make it Sync. This forces only having mutable access (&mut T only, never &T), but makes it safe to reference across multiple threads.

This will fail to compile since RefCell is !Sync.


#[derive(Resource)]
struct NotSync {
   counter: RefCell<usize>,
}

This will compile since the RefCell is wrapped with SyncCell.

use bevy_utils::synccell::SyncCell;

#[derive(Resource)]
struct ActuallySync {
   counter: SyncCell<RefCell<usize>>,
}

Safety

The implementor must ensure the following is true.

Required Associated Types§

type State: Send + Sync + 'static

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

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§

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.

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

Safety

This call might use any of the World accesses that were registered in Self::init_state.

  • None of those accesses may conflict with any other SystemParams that exist at the same time, including those on other threads.
  • world must be the same World that was used to initialize state.

Provided Methods§

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

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_system_buffers.

Implementations on Foreign Types§

§

impl<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)where 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,

§

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

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) as SystemParam>::State

§

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

§

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

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6> SystemParam for (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 Item = (<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>)

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1, P2, P3, P4, P5, P6) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1, P2, P3, P4, P5, P6) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6) as SystemParam>::Item<'w, 's>

§

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

§

type State = ComponentId

§

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

§

fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <Option<NonSend<'_, T>> as SystemParam>::State

§

unsafe fn get_param<'w, 's>( _: &'s mut <Option<NonSend<'_, T>> as SystemParam>::State, system_meta: &SystemMeta, world: &'w World, change_tick: u32 ) -> <Option<NonSend<'_, T>> as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)where 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,

§

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

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) as SystemParam>::State

§

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

§

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

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6, P7> SystemParam for (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 Item = (<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>)

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1, P2, P3, P4, P5, P6, P7) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1, P2, P3, P4, P5, P6, P7) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7) as SystemParam>::Item<'w, 's>

§

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

§

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

§

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

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)where 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,

§

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

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) as SystemParam>::State

§

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

§

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

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15) as SystemParam>::Item<'w, 's>

§

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

§

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

§

type Item = (<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>)

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1, P2, P3, P4) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1, P2, P3, P4) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4) as SystemParam>::Item<'w, 's>

§

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

§

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

§

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

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1, P2) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1, P2) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2) as SystemParam>::Item<'w, 's>

§

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

§

type State = ComponentId

§

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

§

fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <Option<ResMut<'a, T>> as SystemParam>::State

§

unsafe fn get_param<'w, 's>( _: &'s mut <Option<ResMut<'a, T>> as SystemParam>::State, system_meta: &SystemMeta, world: &'w World, change_tick: u32 ) -> <Option<ResMut<'a, T>> as SystemParam>::Item<'w, 's>

§

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

§

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

§

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

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0,) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0,) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0,) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0,) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0,) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6, P7, P8> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8)where P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: 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, <P8 as SystemParam>::State)

§

type Item = (<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>)

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9)where P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: 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, <P8 as SystemParam>::State, <P9 as SystemParam>::State)

§

type Item = (<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>)

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)where P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam, P10: 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, <P8 as SystemParam>::State, <P9 as SystemParam>::State, <P10 as SystemParam>::State)

§

type Item = (<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>)

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) as SystemParam>::State

§

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

§

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

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)where P0: SystemParam, P1: SystemParam, P2: SystemParam, P3: SystemParam, P4: SystemParam, P5: SystemParam, P6: SystemParam, P7: SystemParam, P8: SystemParam, P9: SystemParam, P10: SystemParam, P11: 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, <P8 as SystemParam>::State, <P9 as SystemParam>::State, <P10 as SystemParam>::State, <P11 as SystemParam>::State)

§

type Item = (<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>)

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) as SystemParam>::State

§

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

§

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

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5> SystemParam for (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 Item = (<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>)

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1, P2, P3, P4, P5) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1, P2, P3, P4, P5) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5) as SystemParam>::Item<'w, 's>

§

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

§

type State = ComponentId

§

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

§

fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <Option<NonSendMut<'a, T>> as SystemParam>::State

§

unsafe fn get_param<'w, 's>( _: &'s mut <Option<NonSendMut<'a, T>> as SystemParam>::State, system_meta: &SystemMeta, world: &'w World, change_tick: u32 ) -> <Option<NonSendMut<'a, T>> as SystemParam>::Item<'w, 's>

§

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

§

type State = ComponentId

§

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

§

fn init_state( world: &mut World, system_meta: &mut SystemMeta ) -> <Option<Res<'a, T>> as SystemParam>::State

§

unsafe fn get_param<'w, 's>( _: &'s mut <Option<Res<'a, T>> as SystemParam>::State, system_meta: &SystemMeta, world: &'w World, change_tick: u32 ) -> <Option<Res<'a, T>> as SystemParam>::Item<'w, 's>

§

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

§

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

§

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

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3) as SystemParam>::State

§

fn new_archetype( _: &mut <(P0, P1, P2, P3) as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <(P0, P1, P2, P3) as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3) as SystemParam>::Item<'w, 's>

§

impl<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> SystemParam for (P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)where 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,

§

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

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) as SystemParam>::State

§

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

§

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

§

unsafe fn get_param<'w, 's>( state: &'s mut <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <(P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12) as SystemParam>::Item<'w, 's>

§

impl SystemParam for ()

§

type State = ()

§

type Item = ()

§

fn init_state( _world: &mut World, _system_meta: &mut SystemMeta ) -> <() as SystemParam>::State

§

fn new_archetype( _: &mut <() as SystemParam>::State, _archetype: &Archetype, _system_meta: &mut SystemMeta )

§

fn apply( _: &mut <() as SystemParam>::State, _system_meta: &SystemMeta, _world: &mut World )

§

unsafe fn get_param<'w, 's>( state: &'s mut <() as SystemParam>::State, _system_meta: &SystemMeta, _world: &'w World, _change_tick: u32 ) -> <() as SystemParam>::Item<'w, 's>

Implementors§

§

impl SystemParam for &World

§

type State = ()

§

type Item = &'w World

§

impl SystemParam for WorldId

§

type State = ()

§

type Item = WorldId

§

impl SystemParam for SystemChangeTick

§

impl SystemParam for SystemName<'_>

§

type State = Cow<'static, str>

§

type Item = SystemName<'s>

§

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

§

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

§

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

§

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 Item = ParamSet<'w, 's, (P0, P1)>

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

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

§

impl<'a> SystemParam for &'a Archetypes

§

type State = ()

§

type Item = &'w Archetypes

§

impl<'a> SystemParam for &'a Bundles

§

type State = ()

§

type Item = &'w Bundles

§

impl<'a> SystemParam for &'a Components

§

type State = ()

§

type Item = &'w Components

§

impl<'a> SystemParam for &'a Entities

§

type State = ()

§

type Item = &'w Entities

§

impl<'a> SystemParam for &'a RemovedComponentEvents

§

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

§

type State = SyncCell<T>

§

type Item = Local<'s, T>

§

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

§

type State = ComponentId

§

type Item = NonSend<'w, T>

§

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

§

type State = ComponentId

§

type Item = NonSendMut<'w, T>

§

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

§

type State = ComponentId

§

type Item = Res<'w, T>

§

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

§

type State = ComponentId

§

type Item = ResMut<'w, T>

§

impl<'w, 's> SystemParam for FallbackImagesDepth<'w>

§

type State = FetchState<'static, 'static>

§

type Item = FallbackImagesDepth<'_w>

§

impl<'w, 's> SystemParam for FallbackImagesMsaa<'w>

§

type State = FetchState<'static, 'static>

§

type Item = FallbackImagesMsaa<'_w>

§

impl<'w, 's> SystemParam for Commands<'w, 's>

§

type State = FetchState<'static, 'static>

§

type Item = Commands<'_w, '_s>

§

impl<'w, 's> SystemParam for ParallelCommands<'w, 's>

§

type State = FetchState<'static, 'static>

§

type Item = ParallelCommands<'_w, '_s>

§

impl<'w, 's, E> SystemParam for EventReader<'w, 's, E>where E: Event,

§

type State = FetchState<'static, 'static, E>

§

type Item = EventReader<'_w, '_s, E>

§

impl<'w, 's, E> SystemParam for EventWriter<'w, E>where E: Event,

§

type State = FetchState<'static, 'static, E>

§

type Item = EventWriter<'_w, E>

§

impl<'w, 's, T> SystemParam for RemovedComponents<'w, 's, T>where T: Component,

§

type State = FetchState<'static, 'static, T>

§

type Item = RemovedComponents<'_w, '_s, T>

§

impl<P> SystemParam for Extract<'_, '_, P>where P: ReadOnlySystemParam,

§

type State = ExtractState<P>

§

type Item = Extract<'w, 's, P>

§

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

§

type State = <P as SystemParam>::State

§

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

§

impl<Q, F> SystemParam for Query<'_, '_, Q, F>where Q: WorldQuery + 'static, F: ReadOnlyWorldQuery + 'static,

§

type State = QueryState<Q, F>

§

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

§

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

§

type State = SyncCell<T>

§

type Item = Deferred<'s, T>