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(())
}