Skip to main content

TransmuteFrom

Trait TransmuteFrom 

Source
pub unsafe trait TransmuteFrom<Src: ?Sized, SV, DV> { }
Expand description

Denotes that any SV-valid Src may soundly be transmuted into a DV-valid Self.

§Safety

Given src: Ptr<Src, (_, _, SV)> and dst: Ptr<Dst, (_, _, DV)>, if the referents of src and dst are the same size, then the set of bit patterns allowed to appear in src’s referent must be a subset of the set allowed to appear in dst’s referent.

If the referents are not the same size, then Dst: TransmuteFrom<Src, SV, DV> conveys no safety guarantee.

Implementations on Foreign Types§

Source§

impl TransmuteFrom<Atomic<bool>, Valid, Valid> for bool

Source§

impl TransmuteFrom<Atomic<i8>, Valid, Valid> for i8

Source§

impl TransmuteFrom<Atomic<i16>, Valid, Valid> for i16

Source§

impl TransmuteFrom<Atomic<i32>, Valid, Valid> for i32

Source§

impl TransmuteFrom<Atomic<i64>, Valid, Valid> for i64

Source§

impl TransmuteFrom<Atomic<isize>, Valid, Valid> for isize

Source§

impl TransmuteFrom<Atomic<u8>, Valid, Valid> for u8

Source§

impl TransmuteFrom<Atomic<u16>, Valid, Valid> for u16

Source§

impl TransmuteFrom<Atomic<u32>, Valid, Valid> for u32

Source§

impl TransmuteFrom<Atomic<u64>, Valid, Valid> for u64

Source§

impl TransmuteFrom<Atomic<usize>, Valid, Valid> for usize

Source§

impl<T> TransmuteFrom<Atomic<*mut T>, Valid, Valid> for *mut T

Implementors§

Source§

impl TransmuteFrom<bool, Valid, Valid> for AtomicBool

Source§

impl TransmuteFrom<i8, Valid, Valid> for AtomicI8

Source§

impl TransmuteFrom<i16, Valid, Valid> for AtomicI16

Source§

impl TransmuteFrom<i32, Valid, Valid> for AtomicI32

Source§

impl TransmuteFrom<i64, Valid, Valid> for AtomicI64

Source§

impl TransmuteFrom<isize, Valid, Valid> for AtomicIsize

Source§

impl TransmuteFrom<u8, Valid, Valid> for AtomicU8

Source§

impl TransmuteFrom<u16, Valid, Valid> for AtomicU16

Source§

impl TransmuteFrom<u32, Valid, Valid> for AtomicU32

Source§

impl TransmuteFrom<u64, Valid, Valid> for AtomicU64

Source§

impl TransmuteFrom<usize, Valid, Valid> for AtomicUsize

Source§

impl TransmuteFrom<UnsafeCell<bool>, Valid, Valid> for AtomicBool

Source§

impl TransmuteFrom<UnsafeCell<i8>, Valid, Valid> for AtomicI8

Source§

impl TransmuteFrom<UnsafeCell<i16>, Valid, Valid> for AtomicI16

Source§

impl TransmuteFrom<UnsafeCell<i32>, Valid, Valid> for AtomicI32

Source§

impl TransmuteFrom<UnsafeCell<i64>, Valid, Valid> for AtomicI64

Source§

impl TransmuteFrom<UnsafeCell<isize>, Valid, Valid> for AtomicIsize

Source§

impl TransmuteFrom<UnsafeCell<u8>, Valid, Valid> for AtomicU8

Source§

impl TransmuteFrom<UnsafeCell<u16>, Valid, Valid> for AtomicU16

Source§

impl TransmuteFrom<UnsafeCell<u32>, Valid, Valid> for AtomicU32

Source§

impl TransmuteFrom<UnsafeCell<u64>, Valid, Valid> for AtomicU64

Source§

impl TransmuteFrom<UnsafeCell<usize>, Valid, Valid> for AtomicUsize

Source§

impl TransmuteFrom<Atomic<bool>, Valid, Valid> for UnsafeCell<bool>

Source§

impl TransmuteFrom<Atomic<i8>, Valid, Valid> for UnsafeCell<i8>

Source§

impl TransmuteFrom<Atomic<i16>, Valid, Valid> for UnsafeCell<i16>

Source§

impl TransmuteFrom<Atomic<i32>, Valid, Valid> for UnsafeCell<i32>

Source§

impl TransmuteFrom<Atomic<i64>, Valid, Valid> for UnsafeCell<i64>

Source§

impl TransmuteFrom<Atomic<isize>, Valid, Valid> for UnsafeCell<isize>

Source§

impl TransmuteFrom<Atomic<u8>, Valid, Valid> for UnsafeCell<u8>

Source§

impl TransmuteFrom<Atomic<u16>, Valid, Valid> for UnsafeCell<u16>

Source§

impl TransmuteFrom<Atomic<u32>, Valid, Valid> for UnsafeCell<u32>

Source§

impl TransmuteFrom<Atomic<u64>, Valid, Valid> for UnsafeCell<u64>

Source§

impl TransmuteFrom<Atomic<usize>, Valid, Valid> for UnsafeCell<usize>

Source§

impl<Src, Dst> TransmuteFrom<Src, Initialized, Initialized> for Dst
where Src: ?Sized, Dst: ?Sized,

Source§

impl<Src, Dst> TransmuteFrom<Src, Initialized, Valid> for Dst
where Src: ?Sized, Dst: FromBytes + ?Sized,

Source§

impl<Src, Dst> TransmuteFrom<Src, Valid, Initialized> for Dst
where Src: IntoBytes + ?Sized, Dst: ?Sized,

Source§

impl<Src, Dst, V> TransmuteFrom<Src, V, Uninit> for Dst
where Src: ?Sized, Dst: ?Sized, V: Validity,

Source§

impl<T> TransmuteFrom<*mut T, Valid, Valid> for AtomicPtr<T>

Source§

impl<T> TransmuteFrom<Cell<T>, Valid, Valid> for UnsafeCell<T>

Source§

impl<T> TransmuteFrom<UnsafeCell<*mut T>, Valid, Valid> for AtomicPtr<T>

Source§

impl<T> TransmuteFrom<UnsafeCell<T>, Valid, Valid> for Cell<T>

Source§

impl<T> TransmuteFrom<Wrapping<T>, Valid, Valid> for MaybeUninit<T>

Source§

impl<T> TransmuteFrom<Wrapping<T>, Valid, Valid> for T

Source§

impl<T> TransmuteFrom<Atomic<*mut T>, Valid, Valid> for UnsafeCell<*mut T>

Source§

impl<T> TransmuteFrom<MaybeUninit<T>, Valid, Valid> for Wrapping<T>

Source§

impl<T> TransmuteFrom<T, Uninit, Valid> for MaybeUninit<T>

Source§

impl<T> TransmuteFrom<T, Valid, Valid> for Wrapping<T>

Source§

impl<T: ?Sized> TransmuteFrom<Cell<T>, Valid, Valid> for T

Source§

impl<T: ?Sized> TransmuteFrom<UnsafeCell<T>, Valid, Valid> for T

Source§

impl<T: ?Sized> TransmuteFrom<ManuallyDrop<T>, Valid, Valid> for T

Source§

impl<T: ?Sized> TransmuteFrom<T, Valid, Valid> for Cell<T>

Source§

impl<T: ?Sized> TransmuteFrom<T, Valid, Valid> for UnsafeCell<T>

Source§

impl<T: ?Sized> TransmuteFrom<T, Valid, Valid> for ManuallyDrop<T>