main/
main.rs

1use std::{fs, path::Path};
2
3use brk_vec::{Compressed, StorableVec, Version};
4
5fn main() -> Result<(), Box<dyn std::error::Error>> {
6    let _ = fs::remove_dir_all("./vec");
7
8    {
9        let mut vec: StorableVec<usize, u32> =
10            StorableVec::forced_import(Path::new("./vec"), Version::from(1), Compressed::YES)?;
11
12        (0..21_u32).for_each(|v| {
13            vec.push(v);
14        });
15        dbg!(vec.get(0)?);
16        dbg!(vec.get(20)?);
17        dbg!(vec.get(21)?);
18
19        vec.flush()?;
20    }
21
22    {
23        let mut vec: StorableVec<usize, u32> =
24            StorableVec::forced_import(Path::new("./vec"), Version::from(1), Compressed::YES)?;
25
26        dbg!(vec.get(0)?);
27        dbg!(vec.read(0)?);
28        dbg!(vec.read(1)?);
29        dbg!(vec.read(2)?);
30        dbg!(vec.read(20)?);
31        dbg!(vec.get(20)?);
32        dbg!(vec.read(0)?);
33
34        vec.push(21);
35        vec.push(22);
36        dbg!(vec.get(20)?);
37        dbg!(vec.get(21)?);
38        dbg!(vec.get(22)?);
39        dbg!(vec.get(23)?);
40
41        vec.flush()?;
42    }
43
44    {
45        let mut vec: StorableVec<usize, u32> =
46            StorableVec::forced_import(Path::new("./vec"), Version::from(1), Compressed::YES)?;
47
48        vec.enable_large_cache();
49
50        dbg!(vec.get(0)?);
51        dbg!(vec.get(20)?);
52        dbg!(vec.get(21)?);
53        dbg!(vec.get(22)?);
54
55        vec.truncate_if_needed(14)?;
56
57        dbg!(vec.get(0)?);
58        dbg!(vec.get(5)?);
59        dbg!(vec.get(20)?);
60
61        vec.iter(|(_, v)| {
62            dbg!(v);
63            Ok(())
64        })?;
65
66        vec.iter_from(5, |(_, v)| {
67            dbg!(v);
68            Ok(())
69        })?;
70
71        dbg!(vec.collect_range(Some(-5), None)?);
72    }
73
74    Ok(())
75}