Struct bevy_ecs::schedule::SystemDescriptor
source · pub struct SystemDescriptor { /* private fields */ }
Expand description
Encapsulates a system and information on when it run in a SystemStage
.
Systems can be inserted into 4 different groups within the stage:
- Parallel, accepts non-exclusive systems.
- At start, accepts exclusive systems; runs before parallel systems.
- Before commands, accepts exclusive systems; runs after parallel systems, but before their command buffers are applied.
- At end, accepts exclusive systems; runs after parallel systems’ command buffers have been applied.
Systems can have one or more labels attached to them; other systems in the same group
can then specify that they have to run before or after systems with that label using the
before
and after
methods.
Example
#[derive(SystemLabel, Debug, Clone, PartialEq, Eq, Hash)]
struct Something;
SystemStage::parallel()
.with_system(do_something.label(Something))
.with_system(do_the_other_thing.after(Something))
.with_system(do_something_else.at_end());
Trait Implementations§
source§impl Debug for SystemDescriptor
impl Debug for SystemDescriptor
source§impl IntoSystemDescriptor<()> for SystemDescriptor
impl IntoSystemDescriptor<()> for SystemDescriptor
source§fn with_run_criteria<Marker>(
self,
run_criteria: impl IntoRunCriteria<Marker>
) -> SystemDescriptor
fn with_run_criteria<Marker>(
self,
run_criteria: impl IntoRunCriteria<Marker>
) -> SystemDescriptor
Assigns a run criteria to the system. Can be a new descriptor or a label of a
run criteria defined elsewhere. Read more
source§fn label(self, label: impl SystemLabel) -> SystemDescriptor
fn label(self, label: impl SystemLabel) -> SystemDescriptor
Assigns a label to the system; there can be more than one, and it doesn’t have to be unique.
source§fn before<Marker>(self, label: impl AsSystemLabel<Marker>) -> SystemDescriptor
fn before<Marker>(self, label: impl AsSystemLabel<Marker>) -> SystemDescriptor
Specifies that the system should run before systems with the given label.
source§fn after<Marker>(self, label: impl AsSystemLabel<Marker>) -> SystemDescriptor
fn after<Marker>(self, label: impl AsSystemLabel<Marker>) -> SystemDescriptor
Specifies that the system should run after systems with the given label.
source§fn ambiguous_with<Marker>(
self,
label: impl AsSystemLabel<Marker>
) -> SystemDescriptor
fn ambiguous_with<Marker>(
self,
label: impl AsSystemLabel<Marker>
) -> SystemDescriptor
Marks this system as ambiguous with any system with the specified label.
This means that execution order between these systems does not matter,
which allows some warnings to be silenced. Read more
source§fn ignore_all_ambiguities(self) -> SystemDescriptor
fn ignore_all_ambiguities(self) -> SystemDescriptor
Specifies that this system should opt out of
execution order ambiguity detection. Read more
source§fn at_start(self) -> SystemDescriptor
fn at_start(self) -> SystemDescriptor
Specifies that the system should run with other exclusive systems at the start of stage.
source§fn before_commands(self) -> SystemDescriptor
fn before_commands(self) -> SystemDescriptor
Specifies that the system should run with other exclusive systems after the parallel
systems and before command buffer application. Read more
source§fn at_end(self) -> SystemDescriptor
fn at_end(self) -> SystemDescriptor
Specifies that the system should run with other exclusive systems at the end of stage.
fn into_descriptor(self) -> SystemDescriptor
Auto Trait Implementations§
impl !RefUnwindSafe for SystemDescriptor
impl Send for SystemDescriptor
impl Sync for SystemDescriptor
impl Unpin for SystemDescriptor
impl !UnwindSafe for SystemDescriptor
Blanket Implementations§
source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
source§fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
Convert
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
. Read moresource§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
Convert
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
. Read moresource§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s. Read moresource§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s. Read more