pub unsafe trait FromByteSlicewhere
    Self: Sized,{
    // Required methods
    fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(_: &T) -> Result<&[Self], Error>;
    fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>(
        _: &mut T
    ) -> Result<&mut [Self], Error>;
}
Expand description

Trait for converting from a byte slice to a slice of a fundamental, built-in numeric type.

Usually using the AsSliceOf and AsMutSliceOf traits is more convenient.

Example

use byte_slice_cast::*;

let slice = [1u8, 2u8, 3u8, 4u8, 5u8, 6u8];
let converted_slice = <u16 as FromByteSlice>::from_byte_slice(&slice).unwrap();

if cfg!(target_endian = "big") {
    assert_eq!(converted_slice, &[0x0102, 0x0304, 0x0506]);
} else {
    assert_eq!(converted_slice, &[0x0201, 0x0403, 0x0605]);
}

Required Methods§

source

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(_: &T) -> Result<&[Self], Error>

Convert from an immutable byte slice to a immutable slice of a fundamental, built-in numeric type

source

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( _: &mut T ) -> Result<&mut [Self], Error>

Convert from an mutable byte slice to a mutable slice of a fundamental, built-in numeric type

Implementations on Foreign Types§

source§

impl FromByteSlice for u64

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[u64], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [u64], Error>

source§

impl FromByteSlice for i8

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[i8], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [i8], Error>

source§

impl FromByteSlice for i64

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[i64], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [i64], Error>

source§

impl FromByteSlice for u128

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[u128], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [u128], Error>

source§

impl FromByteSlice for i16

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[i16], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [i16], Error>

source§

impl FromByteSlice for u32

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[u32], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [u32], Error>

source§

impl FromByteSlice for u8

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[u8], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [u8], Error>

source§

impl FromByteSlice for f32

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[f32], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [f32], Error>

source§

impl FromByteSlice for f64

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[f64], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [f64], Error>

source§

impl FromByteSlice for i32

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[i32], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [i32], Error>

source§

impl FromByteSlice for i128

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[i128], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [i128], Error>

source§

impl FromByteSlice for u16

source§

fn from_byte_slice<T: AsRef<[u8]> + ?Sized>(slice: &T) -> Result<&[u16], Error>

source§

fn from_mut_byte_slice<T: AsMut<[u8]> + ?Sized>( slice: &mut T ) -> Result<&mut [u16], Error>

Implementors§