rust_extra/arrays/
Array.rs1pub trait Array<T>
6{
7 const Size: usize;
8 const Mask: usize;
9
10 #[inline(always)]
11 fn mask() -> usize
12 {
13 Self::Mask
14 }
15
16 #[inline(always)]
17 unsafe fn get_unchecked(&self, index: usize) -> &T;
18
19 #[inline(always)]
20 unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut T;
21
22 #[inline(always)]
23 fn as_ptr(&self) -> *const T;
24
25 #[inline(always)]
26 fn as_mut_ptr(&mut self) -> *mut T;
27
28 #[inline(always)]
29 fn as_ptr_at(&self, index: usize) -> *const T
30 {
31 unsafe { self.as_ptr().offset(index as isize) }
32 }
33
34 #[inline(always)]
35 fn as_mut_ptr_at(&mut self, index: usize) -> *mut T
36 {
37 unsafe { self.as_mut_ptr().offset(index as isize) }
38 }
39}