[][src]Trait kudo::System

pub trait System<A> {
    fn run(self, world: &World) -> Result<(), ComponentAlreadyBorrowed>;
fn system(
        self
    ) -> Box<dyn Fn(&World) -> Result<(), ComponentAlreadyBorrowed>>; }

A function that can be run as system by pulling in queries from the world.

Example

fn my_system(
    mut query0: Query<(&A, &B)>,
    mut query1: Query<(&C, &D)>,
) {
    for (a, b) in query0.iter() {
        /* Do stuff */
    }
    for (c, d) in query1.iter() {
        /* Do other stuff */
    }
}

my_system.run(&world).unwrap();

Required methods

Loading content...

Implementors

impl<FUNC, A: TopLevelQuery + 'static> System<(A,)> for FUNC where
    FUNC: Fn(A) + Fn(<A as Fetch<'_>>::Item) + 'static + Copy
[src]

impl<FUNC, A: TopLevelQuery + 'static, B: TopLevelQuery + 'static> System<(A, B)> for FUNC where
    FUNC: Fn(A, B) + Fn(<A as Fetch<'_>>::Item, <B as Fetch<'_>>::Item) + 'static + Copy
[src]

impl<FUNC, A: TopLevelQuery + 'static, B: TopLevelQuery + 'static, C: TopLevelQuery + 'static> System<(A, B, C)> for FUNC where
    FUNC: Fn(A, B, C) + Fn(<A as Fetch<'_>>::Item, <B as Fetch<'_>>::Item, <C as Fetch<'_>>::Item) + 'static + Copy
[src]

impl<FUNC, A: TopLevelQuery + 'static, B: TopLevelQuery + 'static, C: TopLevelQuery + 'static, D: TopLevelQuery + 'static> System<(A, B, C, D)> for FUNC where
    FUNC: Fn(A, B, C, D) + Fn(<A as Fetch<'_>>::Item, <B as Fetch<'_>>::Item, <C as Fetch<'_>>::Item, <D as Fetch<'_>>::Item) + 'static + Copy
[src]

impl<FUNC, A: TopLevelQuery + 'static, B: TopLevelQuery + 'static, C: TopLevelQuery + 'static, D: TopLevelQuery + 'static, E: TopLevelQuery + 'static> System<(A, B, C, D, E)> for FUNC where
    FUNC: Fn(A, B, C, D, E) + Fn(<A as Fetch<'_>>::Item, <B as Fetch<'_>>::Item, <C as Fetch<'_>>::Item, <D as Fetch<'_>>::Item, <E as Fetch<'_>>::Item) + 'static + Copy
[src]

impl<FUNC, A: TopLevelQuery + 'static, B: TopLevelQuery + 'static, C: TopLevelQuery + 'static, D: TopLevelQuery + 'static, E: TopLevelQuery + 'static, F: TopLevelQuery + 'static> System<(A, B, C, D, E, F)> for FUNC where
    FUNC: Fn(A, B, C, D, E, F) + Fn(<A as Fetch<'_>>::Item, <B as Fetch<'_>>::Item, <C as Fetch<'_>>::Item, <D as Fetch<'_>>::Item, <E as Fetch<'_>>::Item, <F as Fetch<'_>>::Item) + 'static + Copy
[src]

impl<FUNC, A: TopLevelQuery + 'static, B: TopLevelQuery + 'static, C: TopLevelQuery + 'static, D: TopLevelQuery + 'static, E: TopLevelQuery + 'static, F: TopLevelQuery + 'static, G: TopLevelQuery + 'static> System<(A, B, C, D, E, F, G)> for FUNC where
    FUNC: Fn(A, B, C, D, E, F, G) + Fn(<A as Fetch<'_>>::Item, <B as Fetch<'_>>::Item, <C as Fetch<'_>>::Item, <D as Fetch<'_>>::Item, <E as Fetch<'_>>::Item, <F as Fetch<'_>>::Item, <G as Fetch<'_>>::Item) + 'static + Copy
[src]

impl<FUNC, A: TopLevelQuery + 'static, B: TopLevelQuery + 'static, C: TopLevelQuery + 'static, D: TopLevelQuery + 'static, E: TopLevelQuery + 'static, F: TopLevelQuery + 'static, G: TopLevelQuery + 'static, H: TopLevelQuery + 'static> System<(A, B, C, D, E, F, G, H)> for FUNC where
    FUNC: Fn(A, B, C, D, E, F, G, H) + Fn(<A as Fetch<'_>>::Item, <B as Fetch<'_>>::Item, <C as Fetch<'_>>::Item, <D as Fetch<'_>>::Item, <E as Fetch<'_>>::Item, <F as Fetch<'_>>::Item, <G as Fetch<'_>>::Item, <H as Fetch<'_>>::Item) + 'static + Copy
[src]

Loading content...