#![allow(dead_code, deprecated, unused_variables, unused_mut)] fn main() { unsafe { static HAS_DATA: usize = 0x1; static FLAG_MASK: usize = !HAS_DATA; let my_precious_data: u32 = 17; assert!(align_of::< u32 > () > 1); let ptr = &my_precious_data as *const u32; let tagged = ptr.map_addr(|addr| addr | HAS_DATA); if tagged.addr() & HAS_DATA != 0 { let data = *tagged.map_addr(|addr| addr & FLAG_MASK); assert_eq!(data, 17); } else { unreachable!() } } }