kvarn_async::prelude::compact_str::core::mem

Struct ManuallyDrop

1.20.0 · source
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