pub trait Array<T>
{
const Size: usize;
const Mask: usize;
#[inline(always)]
fn mask() -> usize
{
Self::Mask
}
#[inline(always)]
unsafe fn get_unchecked(&self, index: usize) -> &T;
#[inline(always)]
unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut T;
#[inline(always)]
fn as_ptr(&self) -> *const T;
#[inline(always)]
fn as_mut_ptr(&mut self) -> *mut T;
#[inline(always)]
fn as_ptr_at(&self, index: usize) -> *const T
{
unsafe { self.as_ptr().offset(index as isize) }
}
#[inline(always)]
fn as_mut_ptr_at(&mut self, index: usize) -> *mut T
{
unsafe { self.as_mut_ptr().offset(index as isize) }
}
}