Open
Description
This is a tracking issue for the RFC "Deprecate uninitialized
in favor of a new MaybeUninit
type" (rust-lang/rfcs#1892).
Most of this has been stabilized, this issue now only tracks the below unstable methods.
Public API
impl<T> [MaybeUninit<T>] {
pub unsafe fn assume_init_drop(&mut self);
pub const unsafe fn assume_init_ref(&self) -> &[T];
pub const unsafe fn assume_init_mut(&mut self) -> &mut [T];
pub const fn slice_as_ptr(this: &[MaybeUninit<T>]) -> *const T;
pub const fn slice_as_mut_ptr(this: &mut [MaybeUninit<T>]) -> *mut T;
}
Steps / History
- Implementation
- Make slice methods inherent: Add inherent versions of MaybeUninit methods for slices #129259
- Ensure documentation has examples
- Final comment period (FCP)
- Stabilization PR
Unresolved Questions
- Should
slice_as_ptr
/slice_as_mut_ptr
be methods (with someSelf
parameter) instead of functions?
Metadata
Metadata
Assignees
Labels
Area: raw pointers, MaybeUninit, NonNullArea: `[T]`Blocker: Implemented in the nightly compiler and unstable.Category: An issue tracking the progress of sth. like the implementation of an RFCLibs issues that are tracked on the team's project board.Relevant to the library API team, which will review and decide on the PR/issue.This issue requires a nightly compiler in some way.