use core::mem::MaybeUninit; use munge::munge; fn main() { struct Example { a: u32, b: u32, } let mut mu = MaybeUninit::::uninit(); munge!(let Example { a, b } = &mut mu); assert_eq!(a.write(1), &1); assert_eq!(b.write(2), &2); // SAFETY: `mu` is completely initialized. let value = unsafe { mu.assume_init() }; assert_eq!(value.a, 1); assert_eq!(value.b, 2); a.write(3); }