use txn_db::{Db, TxnError};
fn main() -> Result<(), TxnError> {
let db = Db::new();
let mut tx = db.begin();
tx.put(b"user:1:name".to_vec(), b"ada".to_vec());
tx.put(b"user:1:role".to_vec(), b"admin".to_vec());
let commit_ts = tx.commit()?;
println!("committed at {commit_ts}");
let tx = db.begin();
let name = tx.get(b"user:1:name")?;
let role = tx.get(b"user:1:role")?;
println!(
"name = {}, role = {}",
as_str(name.as_deref()),
as_str(role.as_deref())
);
println!("missing key present: {}", tx.get(b"user:2:name")?.is_some());
Ok(())
}
fn as_str(bytes: Option<&[u8]>) -> String {
bytes.map_or_else(
|| "<absent>".to_string(),
|b| String::from_utf8_lossy(b).into_owned(),
)
}