use std::{
ops::Bound,
path::PathBuf,
};
use cesiumdb::{
Db,
DbOptions,
};
fn main() {
let mut opts = DbOptions::default();
opts.data_dir(PathBuf::from("/tmp/cesiumdb_scan_example"));
let db = Db::open(opts).unwrap();
for i in 0..10 {
let key = format!("key_{:03}", i);
let value = format!("value_{}", i);
db.put(key.as_bytes(), value.as_bytes()).unwrap();
}
let start = b"key_003".to_vec();
let end = b"key_007".to_vec();
println!("scanning key_003 .. key_007:");
for (key, value) in db.scan(Bound::Included(&start), Bound::Excluded(&end)).unwrap() {
println!(
" {} = {}",
String::from_utf8_lossy(&key),
String::from_utf8_lossy(&value)
);
}
db.sync().unwrap();
db.close().unwrap();
println!("done");
}