use emdb::Emdb;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let db = Emdb::open_in_memory();
db.insert("config:max_conns", "1024")?;
db.insert("config:host", "127.0.0.1")?;
if let Some(value) = db.get_zerocopy("config:max_conns")? {
let bytes: &[u8] = value.as_ref();
let s = std::str::from_utf8(bytes)?;
println!("max_conns = {s}");
assert_eq!(s, "1024");
}
let zc = db.get_zerocopy("config:host")?.expect("present");
let owned = db.get("config:host")?.expect("present");
assert_eq!(zc.as_ref(), owned.as_slice());
let host_owned: Vec<u8> = zc.into_vec();
drop(db);
println!("host = {}", String::from_utf8_lossy(&host_owned));
Ok(())
}