Struct bones_lib::ecs::prelude::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() -> SystemStages

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

source

pub fn add_startup_system<Args, S>(&mut self, system: S) -> &mut SystemStages
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 SystemStages
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 SystemStages
where S: IntoSystem<Args, (), (), Sys = StaticSystem<(), ()>>,

Add a System to the stage with the given label.

source

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

Insert a new stage, before another existing stage

source

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

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<(), Error>

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

impl Default for SystemStages

source§

fn default() -> SystemStages

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.

source§

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

source§

unsafe fn raw_default(dst: *mut c_void)

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

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

Get a callback suitable for [SchemaData].
source§

impl<T> RawDrop for T

source§

unsafe fn raw_drop(ptr: *mut c_void)

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

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