wuestite 0.1.0

2D game engine written in rust.
Documentation
use wuestite_ecs::{Component, System, World};

#[derive(Component)]
struct Red;

#[derive(Component)]
struct Blue;

#[derive(System)]
struct CountRedComponents;

impl CountRedComponents {
    fn run(&self, world: &mut World) {
        let count = world
            .entities
            .iter()
            .filter(|&&e| world.get_component::<Red>(e).is_some())
            .count();
        println!("Red components: {}", count);
    }
}

fn main() {
    let mut world = World::new();

    let e1 = world.spawn();
    world.add_component(e1, Red);

    let e2 = world.spawn();
    world.add_component(e2, Blue);

    let e3 = world.spawn();
    world.add_component(e3, Red);

    CountRedComponents.run(&mut world);
}