Trait VecIterator

Source
pub trait VecIterator<'a>: BaseVecIterator<Item = (Self::I, Value<'a, Self::T>)> {
    type I: StoredIndex;
    type T: StoredType + 'a;

    // Provided methods
    fn set(&mut self, i: Self::I) { ... }
    fn get_(&mut self, i: usize) -> Option<Value<'a, Self::T>> { ... }
    fn get(&mut self, i: Self::I) -> Option<Value<'a, Self::T>> { ... }
    fn unwrap_get_inner(&mut self, i: Self::I) -> Self::T { ... }
    fn unwrap_get_inner_(&mut self, i: usize) -> Self::T { ... }
    fn get_inner(&mut self, i: Self::I) -> Option<Self::T> { ... }
    fn last(self) -> Option<Self::Item>
       where Self: Sized { ... }
    fn index_type_to_string(&self) -> String { ... }
}

Required Associated Types§

Provided Methods§

Source

fn set(&mut self, i: Self::I)

Source

fn get_(&mut self, i: usize) -> Option<Value<'a, Self::T>>

Source

fn get(&mut self, i: Self::I) -> Option<Value<'a, Self::T>>

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

fn unwrap_get_inner(&mut self, i: Self::I) -> Self::T

Source

fn unwrap_get_inner_(&mut self, i: usize) -> Self::T

Source

fn get_inner(&mut self, i: Self::I) -> Option<Self::T>

Source

fn last(self) -> Option<Self::Item>
where Self: Sized,

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

fn index_type_to_string(&self) -> String

Implementors§

Source§

impl<'a, I, T, Iter> VecIterator<'a> for Iter
where Iter: BaseVecIterator<Item = (I, Value<'a, T>)>, I: StoredIndex, T: StoredType + 'a,

Source§

type I = I

Source§

type T = T