Trait Array

Source
pub trait Array<T> {
    const Size: usize;
    const Mask: usize;

    // Required methods
    unsafe fn get_unchecked(&self, index: usize) -> &T;
    unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut T;
    fn as_ptr(&self) -> *const T;
    fn as_mut_ptr(&mut self) -> *mut T;

    // Provided methods
    fn mask() -> usize { ... }
    fn as_ptr_at(&self, index: usize) -> *const T { ... }
    fn as_mut_ptr_at(&mut self, index: usize) -> *mut T { ... }
}

Required Associated Constants§

Required Methods§

Source

unsafe fn get_unchecked(&self, index: usize) -> &T

Source

unsafe fn get_unchecked_mut(&mut self, index: usize) -> &mut T

Source

fn as_ptr(&self) -> *const T

Source

fn as_mut_ptr(&mut self) -> *mut T

Provided Methods§

Source

fn mask() -> usize

Source

fn as_ptr_at(&self, index: usize) -> *const T

Source

fn as_mut_ptr_at(&mut self, index: usize) -> *mut T

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<T> Array<T> for Array16<T>

Source§

const Size: usize = 16usize

Source§

const Mask: usize = 15usize

Source§

impl<T> Array<T> for Array30<T>

Source§

const Size: usize = 30usize

Source§

const Mask: usize = 29usize

Source§

impl<T> Array<T> for Array32<T>

Source§

const Size: usize = 32usize

Source§

const Mask: usize = 31usize

Source§

impl<T> Array<T> for Array40<T>

Source§

const Size: usize = 40usize

Source§

const Mask: usize = 39usize

Source§

impl<T> Array<T> for Array46<T>

Source§

const Size: usize = 46usize

Source§

const Mask: usize = 45usize

Source§

impl<T> Array<T> for Array52<T>

Source§

const Size: usize = 52usize

Source§

const Mask: usize = 51usize

Source§

impl<T> Array<T> for Array64<T>

Source§

const Size: usize = 64usize

Source§

const Mask: usize = 63usize

Source§

impl<T> Array<T> for Array80<T>

Source§

const Size: usize = 80usize

Source§

const Mask: usize = 79usize

Source§

impl<T> Array<T> for Array128<T>

Source§

const Size: usize = 128usize

Source§

const Mask: usize = 127usize

Source§

impl<T> Array<T> for Array256<T>

Source§

const Size: usize = 256usize

Source§

const Mask: usize = 255usize

Source§

impl<T> Array<T> for Array512<T>

Source§

const Size: usize = 512usize

Source§

const Mask: usize = 511usize

Source§

impl<T> Array<T> for Array1024<T>

Source§

const Size: usize = 1_024usize

Source§

const Mask: usize = 1_023usize