Struct safe_transmute::error::UnalignedError[][src]

pub struct UnalignedError<'a, S, T> {
    pub offset: usize,
    pub source: &'a [S],
    // some fields omitted
}

Unaligned memory access error.

Returned when the given data slice is not properly aligned for the target type. It would have been properly aligned if offset bytes were shifted (discarded) from the front of the slice.

Fields

offset: usize

The required amount of bytes to discard at the front for the attempted transmutation to be successful.

source: &'a [S]

A slice of the original source data.

Implementations

impl<'a, S, T> UnalignedError<'a, S, T>[src]

pub fn new(offset: usize, source: &'a [S]) -> Self[src]

pub unsafe fn copy_unchecked(&self) -> Vec<T>[src]

Create a copy of the source data, transmuted into a vector. As the vector will be properly aligned for accessing values of type T, this operation will not fail due to memory alignment constraints.

Safety

The byte data in the slice needs to correspond to a valid contiguous sequence of T values.

pub fn copy(&self) -> Vec<T> where
    T: TriviallyTransmutable
[src]

Create a copy of the source data, transmuted into a vector. As T is trivially transmutable, and the vector will be properly allocated for accessing values of type T, this operation is safe and will never fail.

Trait Implementations

impl<'a, S: Clone, T: Clone> Clone for UnalignedError<'a, S, T>[src]

impl<'a, S, T> Debug for UnalignedError<'a, S, T>[src]

impl<'a, S, T> Display for UnalignedError<'a, S, T>[src]

impl<'a, S: Eq, T: Eq> Eq for UnalignedError<'a, S, T>[src]

impl<'a, S, T> Error for UnalignedError<'a, S, T>[src]

impl<'a, S, T> From<UnalignedError<'a, S, T>> for Error<'a, S, T>[src]

impl<'a, S: Hash, T: Hash> Hash for UnalignedError<'a, S, T>[src]

impl<'a, S: PartialEq, T: PartialEq> PartialEq<UnalignedError<'a, S, T>> for UnalignedError<'a, S, T>[src]

impl<'a, S, T> StructuralEq for UnalignedError<'a, S, T>[src]

impl<'a, S, T> StructuralPartialEq for UnalignedError<'a, S, T>[src]

Auto Trait Implementations

impl<'a, S, T> RefUnwindSafe for UnalignedError<'a, S, T> where
    S: RefUnwindSafe,
    T: RefUnwindSafe

impl<'a, S, T> Send for UnalignedError<'a, S, T> where
    S: Sync,
    T: Send

impl<'a, S, T> Sync for UnalignedError<'a, S, T> where
    S: Sync,
    T: Sync

impl<'a, S, T> Unpin for UnalignedError<'a, S, T> where
    T: Unpin

impl<'a, S, T> UnwindSafe for UnalignedError<'a, S, T> where
    S: RefUnwindSafe,
    T: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.