orx_fixed_vec/common_traits/
index.rs1use crate::FixedVec;
2use core::ops::{Index, IndexMut};
3use core::slice::SliceIndex;
4
5impl<T, I> Index<I> for FixedVec<T>
6where
7 I: SliceIndex<[T]>,
8{
9 type Output = I::Output;
10
11 fn index(&self, index: I) -> &Self::Output {
12 &self.data[index]
13 }
14}
15impl<T, I> IndexMut<I> for FixedVec<T>
16where
17 I: SliceIndex<[T]>,
18{
19 fn index_mut(&mut self, index: I) -> &mut Self::Output {
20 &mut self.data[index]
21 }
22}
23
24#[cfg(test)]
25mod tests {
26 use crate::prelude::*;
27
28 #[test]
29 fn index() {
30 let mut vec = FixedVec::new(42);
31 for i in 0..vec.capacity() / 2 {
32 vec.push(i);
33 }
34
35 for i in 0..vec.len() {
36 assert_eq!(i, vec[i]);
37 }
38
39 vec[7] = 77;
40 assert_eq!(77, vec[7]);
41 }
42}