pub trait IntoSystemConfigs<Marker>: Sized {
    // Provided methods
    fn in_set(
        self,
        set: impl SystemSet
    ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>> { ... }
    fn before<M>(
        self,
        set: impl IntoSystemSet<M>
    ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>> { ... }
    fn after<M>(
        self,
        set: impl IntoSystemSet<M>
    ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>> { ... }
    fn distributive_run_if<M>(
        self,
        condition: impl Condition<M> + Clone
    ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>> { ... }
    fn run_if<M>(
        self,
        condition: impl Condition<M>
    ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>> { ... }
    fn ambiguous_with<M>(
        self,
        set: impl IntoSystemSet<M>
    ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>> { ... }
    fn ambiguous_with_all(
        self
    ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>> { ... }
    fn chain(self) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>> { ... }
}
Expand description

Types that can convert into a SystemConfigs.

Provided Methods§

fn in_set( self, set: impl SystemSet ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>>

Add these systems to the provided set.

fn before<M>( self, set: impl IntoSystemSet<M> ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>>

Run before all systems in set.

fn after<M>( self, set: impl IntoSystemSet<M> ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>>

Run after all systems in set.

fn distributive_run_if<M>( self, condition: impl Condition<M> + Clone ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>>

Add a run condition to each contained system.

Each system will receive its own clone of the Condition and will only run if the Condition is true.

Each individual condition will be evaluated at most once (per schedule run), right before the corresponding system prepares to run.

This is equivalent to calling run_if on each individual system, as shown below:

schedule.add_systems((a, b).distributive_run_if(condition));
schedule.add_systems((a.run_if(condition), b.run_if(condition)));
Note

Because the conditions are evaluated separately for each system, there is no guarantee that all evaluations in a single schedule run will yield the same result. If another system is run inbetween two evaluations it could cause the result of the condition to change.

Use run_if on a SystemSet if you want to make sure that either all or none of the systems are run, or you don’t want to evaluate the run condition for each contained system separately.

fn run_if<M>( self, condition: impl Condition<M> ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>>

Run the systems only if the Condition is true.

The Condition will be evaluated at most once (per schedule run), the first time a system in this set prepares to run.

If this set contains more than one system, calling run_if is equivalent to adding each system to a common set and configuring the run condition on that set, as shown below:

Examples
schedule.add_systems((a, b).run_if(condition));
schedule.add_systems((a, b).in_set(C)).configure_sets(C.run_if(condition));
Note

Because the condition will only be evaluated once, there is no guarantee that the condition is upheld after the first system has run. You need to make sure that no other systems that could invalidate the condition are scheduled inbetween the first and last run system.

Use distributive_run_if if you want the condition to be evaluated for each individual system, right before one is run.

fn ambiguous_with<M>( self, set: impl IntoSystemSet<M> ) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>>

Suppress warnings and errors that would result from these systems having ambiguities (conflicting access but indeterminate order) with systems in set.

fn ambiguous_with_all(self) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>>

Suppress warnings and errors that would result from these systems having ambiguities (conflicting access but indeterminate order) with any other system.

fn chain(self) -> NodeConfigs<Box<dyn System<Out = (), In = ()>>>

Treat this collection as a sequence of systems.

Ordering constraints will be applied between the successive elements.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl IntoSystemConfigs<()> for Box<dyn System<Out = (), In = ()>>

§

impl<P0, S0> IntoSystemConfigs<(SystemConfigTupleMarker, P0)> for (S0,)where S0: IntoSystemConfigs<P0>,

§

impl<P0, S0, P1, S1> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1)> for (S0, S1)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>,

§

impl<P0, S0, P1, S1, P2, S2> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2)> for (S0, S1, S2)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3)> for (S0, S1, S2, S3)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4)> for (S0, S1, S2, S3, S4)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5)> for (S0, S1, S2, S3, S4, S5)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6)> for (S0, S1, S2, S3, S4, S5, S6)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7)> for (S0, S1, S2, S3, S4, S5, S6, S7)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11, P12, S12> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>, S12: IntoSystemConfigs<P12>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11, P12, S12, P13, S13> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>, S12: IntoSystemConfigs<P12>, S13: IntoSystemConfigs<P13>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11, P12, S12, P13, S13, P14, S14> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>, S12: IntoSystemConfigs<P12>, S13: IntoSystemConfigs<P13>, S14: IntoSystemConfigs<P14>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11, P12, S12, P13, S13, P14, S14, P15, S15> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>, S12: IntoSystemConfigs<P12>, S13: IntoSystemConfigs<P13>, S14: IntoSystemConfigs<P14>, S15: IntoSystemConfigs<P15>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11, P12, S12, P13, S13, P14, S14, P15, S15, P16, S16> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>, S12: IntoSystemConfigs<P12>, S13: IntoSystemConfigs<P13>, S14: IntoSystemConfigs<P14>, S15: IntoSystemConfigs<P15>, S16: IntoSystemConfigs<P16>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11, P12, S12, P13, S13, P14, S14, P15, S15, P16, S16, P17, S17> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>, S12: IntoSystemConfigs<P12>, S13: IntoSystemConfigs<P13>, S14: IntoSystemConfigs<P14>, S15: IntoSystemConfigs<P15>, S16: IntoSystemConfigs<P16>, S17: IntoSystemConfigs<P17>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11, P12, S12, P13, S13, P14, S14, P15, S15, P16, S16, P17, S17, P18, S18> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>, S12: IntoSystemConfigs<P12>, S13: IntoSystemConfigs<P13>, S14: IntoSystemConfigs<P14>, S15: IntoSystemConfigs<P15>, S16: IntoSystemConfigs<P16>, S17: IntoSystemConfigs<P17>, S18: IntoSystemConfigs<P18>,

§

impl<P0, S0, P1, S1, P2, S2, P3, S3, P4, S4, P5, S5, P6, S6, P7, S7, P8, S8, P9, S9, P10, S10, P11, S11, P12, S12, P13, S13, P14, S14, P15, S15, P16, S16, P17, S17, P18, S18, P19, S19> IntoSystemConfigs<(SystemConfigTupleMarker, P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19)> for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14, S15, S16, S17, S18, S19)where S0: IntoSystemConfigs<P0>, S1: IntoSystemConfigs<P1>, S2: IntoSystemConfigs<P2>, S3: IntoSystemConfigs<P3>, S4: IntoSystemConfigs<P4>, S5: IntoSystemConfigs<P5>, S6: IntoSystemConfigs<P6>, S7: IntoSystemConfigs<P7>, S8: IntoSystemConfigs<P8>, S9: IntoSystemConfigs<P9>, S10: IntoSystemConfigs<P10>, S11: IntoSystemConfigs<P11>, S12: IntoSystemConfigs<P12>, S13: IntoSystemConfigs<P13>, S14: IntoSystemConfigs<P14>, S15: IntoSystemConfigs<P15>, S16: IntoSystemConfigs<P16>, S17: IntoSystemConfigs<P17>, S18: IntoSystemConfigs<P18>, S19: IntoSystemConfigs<P19>,

Implementors§

§

impl IntoSystemConfigs<()> for NodeConfigs<Box<dyn System<Out = (), In = ()>>>

§

impl<Marker, F> IntoSystemConfigs<Marker> for Fwhere F: IntoSystem<(), (), Marker>,