Trait bevy_ecs::system::System[][src]

pub trait System: Send + Sync + 'static {
    type In;
    type Out;
    fn name(&self) -> Cow<'static, str>;
fn id(&self) -> SystemId;
fn new_archetype(&mut self, archetype: &Archetype);
fn component_access(&self) -> &Access<ComponentId>;
fn archetype_component_access(&self) -> &Access<ArchetypeComponentId>;
fn is_send(&self) -> bool;
unsafe fn run_unsafe(&mut self, input: Self::In, world: &World) -> Self::Out;
fn apply_buffers(&mut self, world: &mut World);
fn initialize(&mut self, _world: &mut World);
fn check_change_tick(&mut self, change_tick: u32); fn run(&mut self, input: Self::In, world: &mut World) -> Self::Out { ... } }

An ECS system that can be added to a Schedule

Systems are functions with all arguments implementing SystemParam.

Systems are added to an application using AppBuilder::add_system(my_system.system()) or similar methods, and will generally run once per pass of the main loop.

Systems are executed in parallel, in opportunistic order; data access is managed automatically. It’s possible to specify explicit execution order between specific systems, see SystemDescriptor.

Associated Types

type In[src]

type Out[src]

Loading content...

Required methods

fn name(&self) -> Cow<'static, str>[src]

fn id(&self) -> SystemId[src]

fn new_archetype(&mut self, archetype: &Archetype)[src]

fn component_access(&self) -> &Access<ComponentId>[src]

fn archetype_component_access(&self) -> &Access<ArchetypeComponentId>[src]

fn is_send(&self) -> bool[src]

unsafe fn run_unsafe(&mut self, input: Self::In, world: &World) -> Self::Out[src]

Safety

This might access World and Resources in an unsafe manner. This should only be called in one of the following contexts: 1. This system is the only system running on the given World across all threads 2. This system only runs in parallel with other systems that do not conflict with the archetype_component_access()

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

fn initialize(&mut self, _world: &mut World)[src]

fn check_change_tick(&mut self, change_tick: u32)[src]

Loading content...

Provided methods

fn run(&mut self, input: Self::In, world: &mut World) -> Self::Out[src]

Loading content...

Implementors

impl System for RunOnce[src]

type In = ()

type Out = ShouldRun

impl<In, Out, Param, Marker, F> System for FunctionSystem<In, Out, Param, Marker, F> where
    In: 'static,
    Out: 'static,
    Param: SystemParam + 'static,
    Marker: 'static,
    F: SystemParamFunction<In, Out, Param, Marker> + Send + Sync + 'static, 
[src]

type In = In

type Out = Out

impl<SystemA: System, SystemB: System<In = SystemA::Out>> System for ChainSystem<SystemA, SystemB>[src]

type In = SystemA::In

type Out = SystemB::Out

Loading content...