1
Fork 0

integrate Lazy into std layout

This commit refactors the initial implementation to fit into std and
makes some other changes:

- use MaybeUninit internally in SyncOnceCell
- correctly impl Drop for lazy::Once
- port Lazy::take from once_cell from: https://github.com/matklad/once_cell/pull/100

Co-Authored-By: Paul Dicker <pitdicker@users.noreply.github.com>
This commit is contained in:
Ashley Mannix 2020-01-14 13:34:23 +10:00
parent cac1768b03
commit 237a97760a
7 changed files with 1004 additions and 548 deletions

View file

@ -285,6 +285,7 @@
#![feature(linkage)]
#![feature(llvm_asm)]
#![feature(log_syntax)]
#![feature(maybe_uninit_extra)]
#![feature(maybe_uninit_ref)]
#![feature(maybe_uninit_slice)]
#![feature(min_specialization)]
@ -292,6 +293,7 @@
#![feature(negative_impls)]
#![feature(never_type)]
#![feature(nll)]
#![feature(once_cell)]
#![feature(optin_builtin_traits)]
#![feature(or_patterns)]
#![feature(panic_info_message)]
@ -476,10 +478,7 @@ pub mod process;
pub mod sync;
pub mod time;
#[unstable(
feature = "std_lazy",
issue = "99",
)]
#[unstable(feature = "once_cell", issue = "68198")]
pub mod lazy;
#[stable(feature = "futures_api", since = "1.36.0")]