• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

src/H03-May-2022-60653

tests/H03-May-2022-3830

.cargo-checksum.jsonH A D03-May-202289 11

.cargo_vcs_info.jsonH A D01-Jan-197074 65

.gitignoreH A D08-Jul-201931 43

.travis.ymlH A D10-Jul-2019180 1413

Cargo.tomlH A D01-Jan-1970835 2320

Cargo.toml.orig-cargoH A D10-Jul-2019310 119

LICENSE-APACHEH A D08-Jul-201910.6 KiB202169

LICENSE-MITH A D08-Jul-20191 KiB2622

README.mdH A D10-Jul-2019996 2014

build.rsH A D10-Jul-20191 KiB5141

README.md

1# maybe-uninit
2
3Quite often, uses of `std::mem::uninitialized()` end up in unsound code.
4Therefore, the `MaybeUninit` union has been added to `std::mem` and `std::mem::uninitialized()` is being deprecated.
5However, `MaybeUninit` has been added quite recently.
6Sometimes you might want to support older versions of Rust as well.
7Here is where `maybe-uninit` comes in: it supports stable Rust versions starting with 1.20.0.
8
9Sadly, a feature-complete implementation of `MaybeUninit` is not possible on stable Rust.
10Therefore, the library offers the guarantees of `MaybeUninit` in a staged fashion:
11
12* Rust 1.36.0 onward: `MaybeUninit` implementation of Rust stable is being re-exported
13
14* Rust 1.22.x - 1.35.0: No panicing on uninhabited types,
15  unsoundness when used with types like `bool` or enums.
16  However, there is protection from accidentially `Drop`ing e.g. during unwind!
17
18* Rust 1.20.x - 1.21.x: No support for Copy/Clone of `MaybeUninit<T>`,
19  even if `T` impls `Copy` or even `Clone`.
20