ManuallyDrop — wrapper to prevent drop. mem::forget — leak value.
ManuallyDrop:
mem::forget:
1use std::mem::ManuallyDrop;23let mut md = ManuallyDrop::new(vec![1, 2, 3]);4md.push(4); // Can still use5unsafe { ManuallyDrop::drop(&mut md); } // Manual drop67use std::mem;8let v = vec![1, 2, 3];9mem::forget(v); // Leaked, cannot access
Key: ManuallyDrop for control, forget for leaking.