Trait legion::systems::Runnable[][src]

pub trait Runnable {
    fn name(&self) -> Option<&SystemId>;
fn reads(&self) -> (&[ResourceTypeId], &[ComponentTypeId]);
fn writes(&self) -> (&[ResourceTypeId], &[ComponentTypeId]);
fn prepare(&mut self, world: &World);
fn accesses_archetypes(&self) -> &ArchetypeAccess;
unsafe fn run_unsafe(&mut self, world: &World, resources: &UnsafeResources);
fn command_buffer_mut(
        &mut self,
        world: WorldId
    ) -> Option<&mut CommandBuffer>; fn run(&mut self, world: &mut World, resources: &mut Resources) { ... } }

Trait describing a schedulable type. This is implemented by System

Required methods

fn name(&self) -> Option<&SystemId>[src]

Gets the name of the system.

fn reads(&self) -> (&[ResourceTypeId], &[ComponentTypeId])[src]

Gets the resources and component types read by the system.

fn writes(&self) -> (&[ResourceTypeId], &[ComponentTypeId])[src]

Gets the resources and component types written by the system.

fn prepare(&mut self, world: &World)[src]

Prepares the system for execution against a world.

fn accesses_archetypes(&self) -> &ArchetypeAccess[src]

Gets the set of archetypes the system will access when run, as determined when the system was last prepared.

unsafe fn run_unsafe(&mut self, world: &World, resources: &UnsafeResources)[src]

Runs the system.

Safety

The shared references to world and resources may result in unsound mutable aliasing if other code is accessing the same components or resources as this system. Prefer to use run when possible.

Additionally, systems which are !Sync should never be invoked on a different thread to that which owns the resources collection passed into this function.

fn command_buffer_mut(&mut self, world: WorldId) -> Option<&mut CommandBuffer>[src]

Gets the system’s command buffer.

Loading content...

Provided methods

fn run(&mut self, world: &mut World, resources: &mut Resources)[src]

Runs the system.

Loading content...

Trait Implementations

impl Debug for dyn Runnable[src]

Implementors

impl<R, Q, F> Runnable for System<R, Q, F> where
    R: for<'a> ResourceSet<'a>,
    Q: QuerySet,
    F: SystemFn<R, Q>, 
[src]

Loading content...