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]
fn clone(&self) -> UnalignedError<'a, S, T>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[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]
fn description(&self) -> &str
[src]
pub fn source(&self) -> Option<&(dyn Error + 'static)>
1.30.0[src]
pub fn backtrace(&self) -> Option<&Backtrace>
[src]
pub fn cause(&self) -> Option<&dyn Error>
1.0.0[src]
impl<'a, S, T> From<UnalignedError<'a, S, T>> for Error<'a, S, T>
[src]
fn from(o: UnalignedError<'a, S, T>) -> Self
[src]
impl<'a, S: Hash, T: Hash> Hash for UnalignedError<'a, S, T>
[src]
fn hash<__H: Hasher>(&self, state: &mut __H)
[src]
pub fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<'a, S: PartialEq, T: PartialEq> PartialEq<UnalignedError<'a, S, T>> for UnalignedError<'a, S, T>
[src]
fn eq(&self, other: &UnalignedError<'a, S, T>) -> bool
[src]
fn ne(&self, other: &UnalignedError<'a, S, T>) -> bool
[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,
pub fn borrow_mut(&mut self) -> &mut T
[src]
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,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
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>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,