use std::error::Error;
use std::fs;
use std::path::Path;
use heed::types::*;
use heed::{Database, EnvOpenOptions};
fn main() -> Result<(), Box<dyn Error>> {
let env_path = Path::new("target").join("cursor-append.mdb");
let _ = fs::remove_dir_all(&env_path);
fs::create_dir_all(&env_path)?;
let env = EnvOpenOptions::new()
.map_size(10 * 1024 * 1024) .max_dbs(3)
.open(env_path)?;
let first: Database<Str, Str> = env.create_database(Some("first"))?;
let second: Database<Str, Str> = env.create_database(Some("second"))?;
let mut wtxn = env.write_txn()?;
first.put(&mut wtxn, "I am here", "to test things")?;
first.put(&mut wtxn, "I am here too", "for the same purpose")?;
let mut iter = second.iter_mut(&mut wtxn)?;
iter.append("aaaa", "lol")?;
iter.append("abcd", "lol")?;
iter.append("bcde", "lol")?;
drop(iter);
wtxn.commit()?;
Ok(())
}