pub struct System<R, Q, F> { /* private fields */ }
Expand description
The concrete type which contains the system closure provided by the user. This struct should
not be constructed directly, and instead should be created using SystemBuilder
.
Implements Schedulable
which is consumable by the StageExecutor
, executing the closure.
Also handles caching of archetype information, as well as maintaining the provided information about what queries this system will run and, as a result, its data access.
Trait Implementations
sourceimpl<R, Q, F> Runnable for System<R, Q, F> where
R: for<'a> ResourceSet<'a>,
Q: QuerySet,
F: SystemFn<R, Q>,
impl<R, Q, F> Runnable for System<R, Q, F> where
R: for<'a> ResourceSet<'a>,
Q: QuerySet,
F: SystemFn<R, Q>,
sourcefn reads(&self) -> (&[ResourceTypeId], &[ComponentTypeId])
fn reads(&self) -> (&[ResourceTypeId], &[ComponentTypeId])
Gets the resources and component types read by the system.
sourcefn writes(&self) -> (&[ResourceTypeId], &[ComponentTypeId])
fn writes(&self) -> (&[ResourceTypeId], &[ComponentTypeId])
Gets the resources and component types written by the system.
sourcefn accesses_archetypes(&self) -> &ArchetypeAccess
fn accesses_archetypes(&self) -> &ArchetypeAccess
Gets the set of archetypes the system will access when run, as determined when the system was last prepared. Read more
sourcefn command_buffer_mut(&mut self, world: WorldId) -> Option<&mut CommandBuffer>
fn command_buffer_mut(&mut self, world: WorldId) -> Option<&mut CommandBuffer>
Gets the system’s command buffer.
sourceunsafe fn run_unsafe(&mut self, world: &World, resources: &UnsafeResources)
unsafe fn run_unsafe(&mut self, world: &World, resources: &UnsafeResources)
Runs the system. Read more
Auto Trait Implementations
impl<R, Q, F> !RefUnwindSafe for System<R, Q, F>
impl<R, Q, F> Send for System<R, Q, F> where
F: Send,
Q: Send,
R: Send,
impl<R, Q, F> Sync for System<R, Q, F> where
F: Sync,
Q: Sync,
R: Sync,
impl<R, Q, F> Unpin for System<R, Q, F> where
F: Unpin,
Q: Unpin,
impl<R, Q, F> !UnwindSafe for System<R, Q, F>
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Downcast for T where
T: Any,
impl<T> Downcast for T where
T: Any,
sourcepub fn into_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
pub 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 more
sourcepub fn into_any_rc(self: Rc<T>) -> Rc<dyn Any + 'static>
pub 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 more
sourcepub fn as_any(&self) -> &(dyn Any + 'static)
pub 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 more
sourcepub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
pub 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