use eyre::Result;
use okv::backend::memory::MemDB;
use okv::types::serde::SerdeJson;
use okv::Env;
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, PartialEq)]
struct Person {
name: String,
age: u32,
}
fn main() -> Result<()> {
let memdb = MemDB::new();
let env = Env::new(memdb);
let db = env.open::<&str, SerdeJson<Person>>("people")?;
db.set_nx(
"john",
&Person {
name: "John Doe".to_string(),
age: 42,
},
)?;
let person = db.get("john")?;
assert_eq!(
person,
Some(Person {
name: "John Doe".to_string(),
age: 42,
})
);
let raw = db.get_raw("john")?;
assert_eq!(raw, Some(b"{\"name\":\"John Doe\",\"age\":42}".to_vec()));
Ok(())
}
#[test] fn test() -> Result<()> {
main()
}