orx_fixed_vec/common_traits/
into_iter.rs

1use crate::FixedVec;
2use alloc::vec::IntoIter;
3
4impl<T> IntoIterator for FixedVec<T> {
5    type Item = T;
6    type IntoIter = IntoIter<T>;
7
8    fn into_iter(self) -> Self::IntoIter {
9        self.data.into_iter()
10    }
11}
12
13impl<'a, T> IntoIterator for &'a FixedVec<T> {
14    type Item = &'a T;
15    type IntoIter = core::slice::Iter<'a, T>;
16
17    fn into_iter(self) -> Self::IntoIter {
18        self.data.iter()
19    }
20}
21
22impl<'a, T> IntoIterator for &'a mut FixedVec<T> {
23    type Item = &'a mut T;
24    type IntoIter = core::slice::IterMut<'a, T>;
25
26    fn into_iter(self) -> Self::IntoIter {
27        self.data.iter_mut()
28    }
29}
30
31#[cfg(test)]
32mod tests {
33    use crate::prelude::*;
34    use alloc::vec::Vec;
35
36    #[test]
37    fn into_iter() {
38        let mut vec = FixedVec::new(4);
39        for i in 0..vec.capacity() {
40            vec.push(i);
41        }
42
43        let vec_from_iter: Vec<_> = vec.into_iter().map(|x| x + 1).collect();
44        assert_eq!(vec_from_iter, &[1, 2, 3, 4]);
45    }
46}