qmi 0.1.5

An ECS with too much macro usage
Documentation
use anyhow::Result;
use qmi::{QMI, pool::ComponentPool};
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", false)?;
    qmi.load::<Position>().unwrap();
    qmi.load::<Velocity>().unwrap();
    for entity in qmi.query::<(Position, Velocity)>() {
        println!("{:?}", entity);
    }
    let pool = qmi
        .component_storage
        .get(
            std::any::type_name::<Position>()
                .rsplit("::")
                .next()
                .unwrap(),
        )
        .unwrap()
        .as_any()
        .downcast_ref::<ComponentPool<Position>>()
        .unwrap();
    println!("{:?}", pool.dense_data);
    Ok(())
}