Trait roci::System

source ·
pub trait System {
    type World: Default + Decomponentize + Componentize;
    type Driver: DriverMode;

    const MAX_SIZE: usize = <Self::World>::MAX_SIZE;

    // Required method
    fn update(&mut self, world: &mut Self::World);

    // Provided methods
    fn init_world(&mut self) -> Self::World { ... }
    fn pipe<P, R: IntoSystem<P>>(
        self,
        right: R,
    ) -> Pipe<Self, R::System<Self::Driver>>
       where Self: Sized { ... }
}

Required Associated Types§

Provided Associated Constants§

source

const MAX_SIZE: usize = <Self::World>::MAX_SIZE

Required Methods§

source

fn update(&mut self, world: &mut Self::World)

Provided Methods§

source

fn init_world(&mut self) -> Self::World

source

fn pipe<P, R: IntoSystem<P>>( self, right: R, ) -> Pipe<Self, R::System<Self::Driver>>
where Self: Sized,

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<F, D, T1> System for SystemFn<D, (T1,), F>
where F: for<'a> Fn(&'a mut T1), D: DriverMode, T1: Componentize + Decomponentize + Default,

§

type World = (T1,)

§

type Driver = D

source§

impl<F, D, T1, T2> System for SystemFn<D, (T1, T2), F>

§

type World = (T1, T2)

§

type Driver = D

source§

impl<F, D, T1, T2, T3> System for SystemFn<D, (T1, T2, T3), F>

source§

impl<F, D, T1, T2, T3, T4> System for SystemFn<D, (T1, T2, T3, T4), F>

source§

impl<F, D, T1, T2, T3, T4, T5> System for SystemFn<D, (T1, T2, T3, T4, T5), F>

source§

impl<F, D, T1, T2, T3, T4, T5, T6> System for SystemFn<D, (T1, T2, T3, T4, T5, T6), F>

source§

impl<F, D, T1, T2, T3, T4, T5, T6, T7> System for SystemFn<D, (T1, T2, T3, T4, T5, T6, T7), F>

source§

impl<F, D, T1, T2, T3, T4, T5, T6, T7, T8> System for SystemFn<D, (T1, T2, T3, T4, T5, T6, T7, T8), F>

source§

impl<F, D, T1, T2, T3, T4, T5, T6, T7, T9, T10> System for SystemFn<D, (T1, T2, T3, T4, T5, T6, T7, T9, T10), F>

source§

impl<F, D, T1, T2, T3, T4, T5, T6, T7, T9, T10, T11> System for SystemFn<D, (T1, T2, T3, T4, T5, T6, T7, T9, T10, T11), F>

source§

impl<F, D, T1, T2, T3, T4, T5, T6, T7, T9, T10, T11, T12> System for SystemFn<D, (T1, T2, T3, T4, T5, T6, T7, T9, T10, T11, T12), F>

source§

impl<F, D, T1, T2, T3, T4, T5, T6, T7, T9, T10, T11, T12, T13> System for SystemFn<D, (T1, T2, T3, T4, T5, T6, T7, T9, T10, T11, T12, T13), F>

source§

impl<H, const F: usize> System for OsSleepDriver<F, H>
where H: System<Driver = Hz<F>>,

§

type World = <H as System>::World

§

type Driver = Hz<F>

source§

impl<LW, RW, L, R> System for Pipe<L, R>
where LW: Default + Componentize + Decomponentize, RW: Default + Componentize + Decomponentize, L: System<World = LW>, R: System<World = RW>, L::Driver: DriverMode<Output = <R::Driver as DriverMode>::Input>,

§

type World = (LW, RW)

§

type Driver = <R as System>::Driver

source§

const MAX_SIZE: usize = <Self::World>::MAX_SIZE

source§

impl<W, D> System for CSVLogger<W, D>

§

type World = W

§

type Driver = D