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