maybe-uninit

Quite often, uses of std::mem::uninitialized() end up in unsound code. Therefore, the MaybeUninit union has been added to std::mem and std::mem::uninitialized() is being deprecated. However, MaybeUninit has been added quite recently. Sometimes you might want to support older versions of Rust as well. Here is where maybe-uninit comes in: it supports ALL stable Rust versions (MSRV: Rust 1.0.0).

Sadly, a feature-complete implementation of MaybeUninit is not possible on stable Rust. Therefore, the library offers the guarantees of MaybeUninit in a staged fashion: