pub struct SystemChain { /* private fields */ }Expand description
A sequence of systems built with Chain::chain — e.g.
(spawn_enemies, move_enemies, render).chain() — that forces each
system to run strictly after the one before it in the tuple, on top of
whatever .after(...)/.before(...)/.priority(...) is applied to the
chain as a whole. Register it with
Schedule::add_systems
(not add_system — a chain is more than one system).
.after/.before on a chain only need to constrain its first/last
system respectively — every other member already transitively depends on
that one through the chain’s own internal ordering. .priority instead
applies to every member, since each one competes for its own slot in the
schedule as it individually becomes eligible to run, not just the first.
Implementations§
Source§impl SystemChain
impl SystemChain
Sourcepub fn after<S2, P2>(self, _other: S2) -> Selfwhere
S2: IntoSystem<P2> + 'static,
pub fn after<S2, P2>(self, _other: S2) -> Selfwhere
S2: IntoSystem<P2> + 'static,
Constrains the whole chain to run after other — see
SystemConfig::after.
Sourcepub fn before<S2, P2>(self, _other: S2) -> Selfwhere
S2: IntoSystem<P2> + 'static,
pub fn before<S2, P2>(self, _other: S2) -> Selfwhere
S2: IntoSystem<P2> + 'static,
Constrains the whole chain to run before other — see
SystemConfig::before.
Sourcepub fn priority(self, priority: i32) -> Self
pub fn priority(self, priority: i32) -> Self
Sets every system in the chain to this priority — see
SystemConfig::priority.
Auto Trait Implementations§
impl !RefUnwindSafe for SystemChain
impl !Send for SystemChain
impl !Sync for SystemChain
impl !UnwindSafe for SystemChain
impl Freeze for SystemChain
impl Unpin for SystemChain
impl UnsafeUnpin for SystemChain
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
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.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more