Enum rustc_transmute::Reason
source · pub enum Reason {
SrcIsUnspecified,
DstIsUnspecified,
DstIsBitIncompatible,
DstIsPrivate,
DstIsTooBig,
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§
SrcIsUnspecified
The layout of the source type is unspecified.
DstIsUnspecified
The layout of the destination type is unspecified.
DstIsBitIncompatible
The layout of the destination type is bit-incompatible with the source type.
DstIsPrivate
There aren’t any public constructors for Dst
.
DstIsTooBig
Dst
is larger than Src
, and the excess bytes were not exclusively uninitialized.
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 Ord for Reason
impl Ord for Reason
source§impl PartialEq<Reason> for Reason
impl PartialEq<Reason> for Reason
source§impl PartialOrd<Reason> for Reason
impl PartialOrd<Reason> for Reason
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 Eq for Reason
impl StructuralEq for Reason
impl StructuralPartialEq for Reason
Auto Trait Implementations§
impl RefUnwindSafe for Reason
impl Send for Reason
impl Sync for Reason
impl Unpin for Reason
impl UnwindSafe for Reason
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
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 24 bytes
Size for each variant:
SrcIsUnspecified
: 0 bytesDstIsUnspecified
: 0 bytesDstIsBitIncompatible
: 0 bytesDstIsPrivate
: 0 bytesDstIsTooBig
: 0 bytesDstHasStricterAlignment
: 16 bytesDstIsMoreUnique
: 0 bytesTypeError
: 0 bytesSrcLayoutUnknown
: 0 bytesDstLayoutUnknown
: 0 bytesSrcSizeOverflow
: 0 bytesDstSizeOverflow
: 0 bytes