retaker 0.8.6

a simple ecs implementation
Documentation
use retaker::world::World;

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

    #[derive(Debug)]
    struct Person {
        name: String,
    }
    #[derive(Debug)]
    struct Dead;

    let mathias = world.create_entity();
    world.insert(
        &mathias,
        Person {
            name: "Mathias".to_string(),
        },
    );
    world.insert(&mathias, Dead);

    let thomas = world.create_entity();
    world.insert(
        &thomas,
        Person {
            name: "Thomas".to_string(),
        },
    );

    let dead_components = world.components::<Dead>().unwrap();
    let person_components = world.components::<Person>().unwrap();

    for dead_person_id in person_components.with(dead_components.query()) {
        let person = person_components.get(&dead_person_id).unwrap();
        println!("{} is dead", person.name);
    }

    for alive_person_id in dead_components.without(person_components.query()) {
        let person = person_components.get(&alive_person_id).unwrap();
        println!("{} is alive", person.name);
    }
}