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}