serialize_workspace.rs

 1use std::{fs::File, path::Path, thread::sleep, time::Duration};
 2
 3const TEST_FILE: &'static str = "test-db.db";
 4
 5fn main() -> anyhow::Result<()> {
 6    let db = db::Db::open_in_memory();
 7    if db.real().is_none() {
 8        return Err(anyhow::anyhow!("Migrations failed"));
 9    }
10    let file = Path::new(TEST_FILE);
11
12    let f = File::create(file)?;
13    drop(f);
14
15    db.write_kvp("test", "1")?;
16    db.write_kvp("test-2", "2")?;
17
18    db.workspace_for_roots(&["/tmp1"]);
19    sleep(Duration::from_secs(1));
20    db.workspace_for_roots(&["/tmp1", "/tmp2"]);
21    sleep(Duration::from_secs(1));
22    db.workspace_for_roots(&["/tmp1", "/tmp2", "/tmp3"]);
23    sleep(Duration::from_secs(1));
24    db.workspace_for_roots(&["/tmp2", "/tmp3"]);
25    sleep(Duration::from_secs(1));
26    db.workspace_for_roots(&["/tmp2", "/tmp3", "/tmp4"]);
27    sleep(Duration::from_secs(1));
28    db.workspace_for_roots(&["/tmp2", "/tmp4"]);
29    sleep(Duration::from_secs(1));
30    db.workspace_for_roots(&["/tmp2"]);
31
32    db.write_to(file).ok();
33
34    println!("Wrote database!");
35
36    Ok(())
37}