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}