Trait ViewElement

Source
pub trait ViewElement: Sized {
    // Required method
    fn bytes_as_slice<'a>(
        bytes: &'a [u8],
        type_desc: &PyValue,
        len: usize,
    ) -> Result<&'a [Self], ViewDataError>;
}
Expand description

An array element type that can be viewed (without copying) in an .npy file.

Required Methods§

Source

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &PyValue, len: usize, ) -> Result<&'a [Self], ViewDataError>

Casts bytes into a slice of elements of length len.

Returns Err(_) in at least the following cases:

  • if the type_desc does not match Self with native endianness
  • if the bytes slice is misaligned for elements of type Self
  • if the bytes slice is too short for len elements
  • if the bytes slice has extra bytes after len elements

May panic if len * size_of::<Self>() overflows.

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.

Implementations on Foreign Types§

Source§

impl ViewElement for bool

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &PyValue, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for f32

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for f64

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for i8

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &PyValue, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for i16

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for i32

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for i64

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for u8

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &PyValue, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for u16

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for u32

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for u64

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for Complex<f32>

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Source§

impl ViewElement for Complex<f64>

Source§

fn bytes_as_slice<'a>( bytes: &'a [u8], type_desc: &Value, len: usize, ) -> Result<&'a [Self], ViewDataError>

Implementors§