orx_fixed_vec/common_traits/
into_iter.rs1use 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}