#![allow(dead_code, deprecated, unused_variables, unused_mut)] fn main() { let store = [0, 1, 2, 3]; let v_orig = store.iter().collect::>(); let v_clone = v_orig.clone(); let v_transmuted = unsafe { std::mem::transmute::, Vec>>(v_clone) }; let v_clone = v_orig.clone(); let v_collected = v_clone.into_iter().map(Some).collect::>>(); let v_clone = v_orig.clone(); let v_from_raw = unsafe { let mut v_clone = std::mem::ManuallyDrop::new(v_clone); Vec::from_raw_parts( v_clone.as_mut_ptr() as *mut Option<&i32>, v_clone.len(), v_clone.capacity(), ) }; }