Struct bones_ecs::stage::SystemStages

source ·
pub struct SystemStages {
    pub stages: Vec<Box<dyn SystemStage>>,
    pub has_started: bool,
    pub startup_systems: Vec<StaticSystem<(), ()>>,
    pub single_success_systems: Vec<StaticSystem<(), Option<()>>>,
}
Expand description

An ordered collection of SystemStages.

Fields§

§stages: Vec<Box<dyn SystemStage>>

The stages in the collection, in the order that they will be run.

§has_started: bool

Whether or not the startup systems have been run yet.

§startup_systems: Vec<StaticSystem<(), ()>>

The systems that should run at startup.

§single_success_systems: Vec<StaticSystem<(), Option<()>>>

Systems that are continously run until they succeed(return Some). These run before all stages. Uses Option to allow for easy usage of ?.

Implementations§

source§

impl SystemStages

source

pub fn run(&mut self, world: &mut World)

Execute the systems on the given world.

source

pub fn with_core_stages() -> Self

Create a SystemStages collection, initialized with a stage for each CoreStage.

source

pub fn add_startup_system<Args, S>(&mut self, system: S) -> &mut Self
where S: IntoSystem<Args, (), (), Sys = StaticSystem<(), ()>>,

Add a system that will run only once, before all of the other non-startup systems.

source

pub fn add_single_success_system<Args, S>(&mut self, system: S) -> &mut Self
where S: IntoSystem<Args, (), Option<()>, Sys = StaticSystem<(), Option<()>>>,

Add a system that will run each frame until it succeeds (returns Some). Runs before all stages. Uses Option to allow for easy usage of ?.

source

pub fn add_system_to_stage<Args, S>( &mut self, label: impl StageLabel, system: S, ) -> &mut Self
where S: IntoSystem<Args, (), (), Sys = StaticSystem<(), ()>>,

Add a System to the stage with the given label.

source

pub fn insert_stage_before<L: StageLabel, S: SystemStage + 'static>( &mut self, label: L, stage: S, ) -> &mut Self

Insert a new stage, before another existing stage

source

pub fn insert_stage_after<L: StageLabel, S: SystemStage + 'static>( &mut self, label: L, stage: S, ) -> &mut Self

Insert a new stage, after another existing stage

source

pub fn reset_remove_all_systems(&mut self)

Remove all systems from all stages, including startup and single success systems. Resets has_started as well, allowing for startup systems to run once again.

source

pub fn remove_all_systems(&mut self)

Remove all systems from all stages, including startup and single success systems. Does not reset has_started.

Trait Implementations§

source§

impl Debug for SystemStages

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for SystemStages

source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T> FromWorld for T
where T: Default,

source§

fn from_world(_world: &World) -> T

Creates Self using data from the given World.
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> RawDefault for T
where T: Default,

§

unsafe fn raw_default(dst: *mut c_void)

Write the default value of the type to the pointer. Read more
§

fn raw_default_cb() -> Unsafe<&'static (dyn Fn(*mut c_void) + Send + Sync)>

Get a callback suitable for [SchemaData].
§

impl<T> RawDrop for T

§

unsafe fn raw_drop(ptr: *mut c_void)

Write the default value of the type to the pointer. Read more
§

fn raw_drop_cb() -> Unsafe<&'static (dyn Fn(*mut c_void) + Send + Sync)>

Get a callback suitable for [SchemaData].
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

§

fn vzip(self) -> V