use std::mem::{self, MaybeUninit}; | |
#[repr(C)] | |
#[derive(Copy, Clone, Debug, PartialEq)] | |
struct Demo(bool, u16); | |
fn main() { | |
unsafe { | |
// Transmute-round-trip through a type with Scalar layout is lossless. | |
// This is tricky because that 'scalar' is *partially* uninitialized. | |
let x = Demo(true, 3); | |
let y: MaybeUninit<u32> = mem::transmute(x); | |
assert_eq!(x, mem::transmute(y)); | |
} | |
} |