Struct safe_transmute::error::IncompatibleVecTargetError  [−][src]
Incompatible vector transmutation error.
Returned when the element type S does not allow a safe vector
transmutation to the target element type T. This happens when either
the size or minimum memory alignment requirements are not met:
std::mem::align_of::<S>() != std::mem::align_of::<T>()std::mem::size_of::<S>() != std::mem::size_of::<T>()
Fields
vec: Vec<S>The original vector.
Implementations
impl<S, T> IncompatibleVecTargetError<S, T>[src]
pub fn new(vec: Vec<S>) -> Self[src]
Create an error with the given vector.
pub unsafe fn copy_unchecked(&self) -> Vec<T>[src]
Create a copy of the data, transmuted into a new 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 vector 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 data, transmuted into a new vector. As T is
trivially transmutable, and the new vector will be properly allocated
for accessing values of type T, this operation is safe and will never fail.
Trait Implementations
impl<S: Clone, T: Clone> Clone for IncompatibleVecTargetError<S, T>[src]
fn clone(&self) -> IncompatibleVecTargetError<S, T>[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl<S, T> Debug for IncompatibleVecTargetError<S, T>[src]
impl<S, T> Display for IncompatibleVecTargetError<S, T>[src]
impl<S: Eq, T: Eq> Eq for IncompatibleVecTargetError<S, T>[src]
impl<S, T> Error for IncompatibleVecTargetError<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<IncompatibleVecTargetError<S, T>> for Error<'a, S, T>[src]
fn from(e: IncompatibleVecTargetError<S, T>) -> Self[src]
impl<S: Hash, T: Hash> Hash for IncompatibleVecTargetError<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<S: PartialEq, T: PartialEq> PartialEq<IncompatibleVecTargetError<S, T>> for IncompatibleVecTargetError<S, T>[src]
fn eq(&self, other: &IncompatibleVecTargetError<S, T>) -> bool[src]
fn ne(&self, other: &IncompatibleVecTargetError<S, T>) -> bool[src]
impl<S, T> StructuralEq for IncompatibleVecTargetError<S, T>[src]
impl<S, T> StructuralPartialEq for IncompatibleVecTargetError<S, T>[src]
Auto Trait Implementations
impl<S, T> RefUnwindSafe for IncompatibleVecTargetError<S, T> where
    S: RefUnwindSafe,
    T: RefUnwindSafe, 
S: RefUnwindSafe,
T: RefUnwindSafe,
impl<S, T> Send for IncompatibleVecTargetError<S, T> where
    S: Send,
    T: Send, 
S: Send,
T: Send,
impl<S, T> Sync for IncompatibleVecTargetError<S, T> where
    S: Sync,
    T: Sync, 
S: Sync,
T: Sync,
impl<S, T> Unpin for IncompatibleVecTargetError<S, T> where
    S: Unpin,
    T: Unpin, 
S: Unpin,
T: Unpin,
impl<S, T> UnwindSafe for IncompatibleVecTargetError<S, T> where
    S: UnwindSafe,
    T: UnwindSafe, 
S: UnwindSafe,
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>,