use prolangkit::db::{Arena, DbAccess, Id, Mapping, StringStore};
fn main() {
let mut db = Db::default();
let foo: Id<Foo> = db.insert(Foo(12));
let _foo = db.get(foo);
db.assoc(foo, Baz("bruh"));
let buh = db.get_assoc_mut::<Baz>(foo);
}
#[derive(Default)]
pub struct Foo(u32);
#[derive(Default)]
pub struct Bar(f32);
#[derive(Default)]
pub struct Baz(&'static str);
#[derive(DbAccess, Default)]
pub struct Db {
foos: Arena<Foo>,
bars: Arena<Bar>,
bazes: Mapping<Foo, Baz>,
strs: StringStore,
}