StateSet

Trait StateSet 

Source
pub trait StateSet: StateSetSealed {
    const SET_DEPENDENCY_DEPTH: usize;

    // Required methods
    fn register_computed_state_systems_in_schedule<T>(schedule: &mut Schedule)
       where T: ComputedStates<SourceStates = Self>;
    fn register_sub_state_systems_in_schedule<T>(schedule: &mut Schedule)
       where T: SubStates<SourceStates = Self>;
}
Expand description

A States type or tuple of types which implement States.

This trait is used allow implementors of States, as well as tuples containing exclusively implementors of States, to be used as ComputedStates::SourceStates.

It is sealed, and auto implemented for all States types and tuples containing them.

Required Associated Constants§

Source

const SET_DEPENDENCY_DEPTH: usize

The total DEPENDENCY_DEPTH of all the states that are part of this StateSet, added together.

Used to de-duplicate computed state executions and prevent cyclic computed states.

Required Methods§

Source

fn register_computed_state_systems_in_schedule<T>(schedule: &mut Schedule)
where T: ComputedStates<SourceStates = Self>,

Sets up the systems needed to compute T whenever any State in this StateSet is changed.

Source

fn register_sub_state_systems_in_schedule<T>(schedule: &mut Schedule)
where T: SubStates<SourceStates = Self>,

Sets up the systems needed to compute whether T exists whenever any State in this StateSet is changed.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<S0, S1> StateSet for (S0, S1)
where S0: InnerStateSet, S1: InnerStateSet,

Source§

impl<S0, S1, S2> StateSet for (S0, S1, S2)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet,

Source§

impl<S0, S1, S2, S3> StateSet for (S0, S1, S2, S3)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4> StateSet for (S0, S1, S2, S3, S4)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5> StateSet for (S0, S1, S2, S3, S4, S5)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6> StateSet for (S0, S1, S2, S3, S4, S5, S6)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6, S7> StateSet for (S0, S1, S2, S3, S4, S5, S6, S7)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet, S7: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6, S7, S8> StateSet for (S0, S1, S2, S3, S4, S5, S6, S7, S8)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet, S7: InnerStateSet, S8: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6, S7, S8, S9> StateSet for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet, S7: InnerStateSet, S8: InnerStateSet, S9: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10> StateSet for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet, S7: InnerStateSet, S8: InnerStateSet, S9: InnerStateSet, S10: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11> StateSet for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet, S7: InnerStateSet, S8: InnerStateSet, S9: InnerStateSet, S10: InnerStateSet, S11: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12> StateSet for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet, S7: InnerStateSet, S8: InnerStateSet, S9: InnerStateSet, S10: InnerStateSet, S11: InnerStateSet, S12: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13> StateSet for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet, S7: InnerStateSet, S8: InnerStateSet, S9: InnerStateSet, S10: InnerStateSet, S11: InnerStateSet, S12: InnerStateSet, S13: InnerStateSet,

Source§

impl<S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14> StateSet for (S0, S1, S2, S3, S4, S5, S6, S7, S8, S9, S10, S11, S12, S13, S14)
where S0: InnerStateSet, S1: InnerStateSet, S2: InnerStateSet, S3: InnerStateSet, S4: InnerStateSet, S5: InnerStateSet, S6: InnerStateSet, S7: InnerStateSet, S8: InnerStateSet, S9: InnerStateSet, S10: InnerStateSet, S11: InnerStateSet, S12: InnerStateSet, S13: InnerStateSet, S14: InnerStateSet,

Source§

impl<S> StateSet for (S,)
where S: InnerStateSet,

Implementors§

Source§

impl<S> StateSet for S
where S: InnerStateSet,

Source§

const SET_DEPENDENCY_DEPTH: usize = S::DEPENDENCY_DEPTH