Enum rustc_transmute::Reason
source · pub enum Reason<T> {
Show 14 variants
SrcIsNotYetSupported,
DstIsNotYetSupported,
DstIsBitIncompatible,
DstUninhabited,
DstMayHaveSafetyInvariants,
DstIsTooBig,
DstRefIsTooBig {
src: T,
dst: T,
},
DstHasStricterAlignment {
src_min_align: usize,
dst_min_align: usize,
},
DstIsMoreUnique,
TypeError,
SrcLayoutUnknown,
DstLayoutUnknown,
SrcSizeOverflow,
DstSizeOverflow,
}
Expand description
Answers “why wasn’t the source type transmutable into the destination type?”
Variants§
SrcIsNotYetSupported
The layout of the source type is not yet supported.
DstIsNotYetSupported
The layout of the destination type is not yet supported.
DstIsBitIncompatible
The layout of the destination type is bit-incompatible with the source type.
DstUninhabited
The destination type is uninhabited.
DstMayHaveSafetyInvariants
The destination type may carry safety invariants.
DstIsTooBig
Dst
is larger than Src
, and the excess bytes were not exclusively uninitialized.
DstRefIsTooBig
A referent of Dst
is larger than a referent in Src
.
Fields
src: T
The referent of the source type.
dst: T
The too-large referent of the destination type.
DstHasStricterAlignment
Src should have a stricter alignment than Dst, but it does not.
DstIsMoreUnique
Can’t go from shared pointer to unique pointer
TypeError
Encountered a type error
SrcLayoutUnknown
The layout of src is unknown
DstLayoutUnknown
The layout of dst is unknown
SrcSizeOverflow
The size of src is overflow
DstSizeOverflow
The size of dst is overflow
Trait Implementations§
source§impl<T: Ord> Ord for Reason<T>
impl<T: Ord> Ord for Reason<T>
source§impl<T: PartialEq> PartialEq for Reason<T>
impl<T: PartialEq> PartialEq for Reason<T>
source§impl<T: PartialOrd> PartialOrd for Reason<T>
impl<T: PartialOrd> PartialOrd for Reason<T>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read moreimpl<T: Eq> Eq for Reason<T>
impl<T> StructuralPartialEq for Reason<T>
Auto Trait Implementations§
impl<T> DynSend for Reason<T>where
T: DynSend,
impl<T> DynSync for Reason<T>where
T: DynSync,
impl<T> Freeze for Reason<T>where
T: Freeze,
impl<T> RefUnwindSafe for Reason<T>where
T: RefUnwindSafe,
impl<T> Send for Reason<T>where
T: Send,
impl<T> Sync for Reason<T>where
T: Sync,
impl<T> Unpin for Reason<T>where
T: Unpin,
impl<T> UnwindSafe for Reason<T>where
T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§default unsafe fn clone_to_uninit(&self, dst: *mut T)
default unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§impl<P> IntoQueryParam<P> for P
impl<P> IntoQueryParam<P> for P
fn into_query_param(self) -> P
source§impl<T> MaybeResult<T> for T
impl<T> MaybeResult<T> for T
source§impl<T> Pointable for T
impl<T> Pointable for T
source§impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
impl<I, T, U> Upcast<I, U> for Twhere
U: UpcastFrom<I, T>,
source§impl<I, T> UpcastFrom<I, T> for T
impl<I, T> UpcastFrom<I, T> for T
fn upcast_from(from: T, _tcx: I) -> T
source§impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
impl<Tcx, T> Value<Tcx> for Twhere
Tcx: DepContext,
default fn from_cycle_error( tcx: Tcx, cycle_error: &CycleError, _guar: ErrorGuaranteed, ) -> T
source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> MaybeSendSync for T
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.