#![allow(dead_code, deprecated, unused_variables, unused_mut)] #![feature(set_ptr_value)] use core::fmt::Debug; fn main() { let mut arr: [i32; 3] = [1, 2, 3]; let mut ptr = arr.as_mut_ptr() as *mut dyn Debug; let thin = ptr as *mut u8; unsafe { ptr = thin.add(8).with_metadata_of(ptr); assert_eq!(* (ptr as * mut i32), 3); println!("{:?}", &* ptr); } }