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 SystemStage
s.
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
impl SystemStages
sourcepub fn with_core_stages() -> Self
pub fn with_core_stages() -> Self
Create a SystemStages
collection, initialized with a stage for each CoreStage
.
sourcepub fn add_startup_system<Args, S>(&mut self, system: S) -> &mut Self
pub fn add_startup_system<Args, S>(&mut self, system: S) -> &mut Self
Add a system that will run only once, before all of the other non-startup systems.
sourcepub fn add_single_success_system<Args, S>(&mut self, system: S) -> &mut Self
pub fn add_single_success_system<Args, S>(&mut self, system: S) -> &mut Self
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 ?
.
sourcepub fn add_system_to_stage<Args, S>(
&mut self,
label: impl StageLabel,
system: S,
) -> &mut Self
pub fn add_system_to_stage<Args, S>( &mut self, label: impl StageLabel, system: S, ) -> &mut Self
Add a System
to the stage with the given label.
sourcepub fn insert_stage_before<L: StageLabel, S: SystemStage + 'static>(
&mut self,
label: L,
stage: S,
) -> &mut Self
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
sourcepub fn insert_stage_after<L: StageLabel, S: SystemStage + 'static>(
&mut self,
label: L,
stage: S,
) -> &mut Self
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
sourcepub fn reset_remove_all_systems(&mut self)
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.
sourcepub fn remove_all_systems(&mut self)
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
impl Debug for SystemStages
Auto Trait Implementations§
impl Freeze for SystemStages
impl !RefUnwindSafe for SystemStages
impl Send for SystemStages
impl Sync for SystemStages
impl Unpin for SystemStages
impl !UnwindSafe for SystemStages
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> FromWorld for Twhere
T: Default,
impl<T> FromWorld for Twhere
T: Default,
source§fn from_world(_world: &World) -> T
fn from_world(_world: &World) -> T
Self
using data from the given World
.