main/
main.rs

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}