#![allow(dead_code, deprecated, unused_variables, unused_mut)] pub unsafe fn transmute_via_union(src: Src) -> Dst { use core::mem::ManuallyDrop; #[repr(C)] union Transmute { src: ManuallyDrop, dst: ManuallyDrop, } let transmute = Transmute { src: ManuallyDrop::new(src), }; let dst = unsafe { transmute.dst }; ManuallyDrop::into_inner(dst) } fn main() {}