Struct safe_transmute::error::UnalignedError [−][src]
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][−]
T: TriviallyTransmutable,
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,
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<'a, S, T> Send for UnalignedError<'a, S, T> where
S: Sync,
T: Send,
S: Sync,
T: Send,
impl<'a, S, T> Sync for UnalignedError<'a, S, T> where
S: Sync,
T: Sync,
S: Sync,
T: Sync,
impl<'a, S, T> Unpin for UnalignedError<'a, S, T> where
T: Unpin,
T: Unpin,
impl<'a, S, T> UnwindSafe for UnalignedError<'a, S, T> where
S: RefUnwindSafe,
T: UnwindSafe,
S: RefUnwindSafe,
T: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src][+]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src][+]
T: ?Sized,
impl<T> From<T> for T
[src][+]
impl<T, U> Into<U> for T where
U: From<T>,
[src][+]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src][+]
T: Clone,
impl<T> ToString for T where
T: Display + ?Sized,
[src][+]
T: Display + ?Sized,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src][+]
U: Into<T>,
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src][+]
U: TryFrom<T>,