pub struct ManuallyDrop<T>where
T: ?Sized,{ /* private fields */ }Expand description
A wrapper to inhibit the compiler from automatically calling T’s
destructor. This wrapper is 0-cost.
ManuallyDrop<T> is guaranteed to have the same layout and bit validity as
T, and is subject to the same layout optimizations as T. As a
consequence, it has no effect on the assumptions that the compiler makes
about its contents. For example, initializing a ManuallyDrop<&mut T> with
mem::zeroed is undefined behavior. If you need to handle uninitialized
data, use