qmi 0.1.5

An ECS with too much macro usage
Documentation
use anyhow::Result;
use qmi::QMI;
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize)]
struct Position {
    x: i32,
    y: i32,
    z: i32,
}

#[derive(Debug, Deserialize, Serialize)]
struct Velocity {
    x: i32,
    y: i32,
    z: i32,
}

fn main() -> Result<()> {
    let mut qmi = QMI::open("test.db", true)?;
    let player = qmi.spawn();
    qmi.insert(player, Position { x: 0, y: 0, z: 0 });
    qmi.insert(player, Velocity { x: 0, y: 0, z: 0 });
    for entity in qmi.query::<(Position, Velocity)>() {
        println!("{:?}", entity);
    }
    qmi.save().unwrap();
    Ok(())
}