pub trait System<'a> {
type SystemData: DynamicSystemData<'a>;
// Required method
fn run(&mut self, data: Self::SystemData);
// Provided methods
fn running_time(&self) -> RunningTime { ... }
fn accessor<'b>(&'b self) -> AccessorCow<'a, 'b, Self> { ... }
fn setup(&mut self, world: &mut World) { ... }
fn dispose(self, world: &mut World)
where Self: Sized { ... }
}Expand description
A System, executed with a set of required Resources.
Required Associated Types§
Sourcetype SystemData: DynamicSystemData<'a>
type SystemData: DynamicSystemData<'a>
The resource bundle required to execute this system.
You will mostly use a tuple of system data (which also implements
SystemData). You can also create such a resource bundle by simply
deriving SystemData for a struct.
Every SystemData is also a DynamicSystemData.
Required Methods§
Sourcefn run(&mut self, data: Self::SystemData)
fn run(&mut self, data: Self::SystemData)
Executes the system with the required system data.
Provided Methods§
Sourcefn running_time(&self) -> RunningTime
fn running_time(&self) -> RunningTime
Returns a hint how long the system needs for running. This is used to optimize the way they’re executed (might allow more parallelization).
Defaults to RunningTime::Average.
Sourcefn accessor<'b>(&'b self) -> AccessorCow<'a, 'b, Self>
fn accessor<'b>(&'b self) -> AccessorCow<'a, 'b, Self>
Return the accessor from the SystemData.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.