Remove MaybeUninit::slice_as_(mut_)ptr
and optionally add *const/*mut MaybeUninit<T> -> *const/*mut T
type safe conversions
#245
Labels
Proposal
Problem statement
The
MaybeUninit::slice_as_(mut_)ptr
methods force you to elide bounds checks to go fromMaybeUninit<T>
toT
.Motivating examples or use cases
There is evidence of unnecessary bounds elision occurring in the stdlib: notice the places that were switched to using array indexing in rust-lang/rust@f2e9b40.
Solution sketch
Remove
MaybeUninit::slice_as_(mut_)ptr
.Optionally, I'd like to add methods for
*const/*mut MaybeUninit<T> -> *const/*mut T
. This restores the type safety provided by slice_as_ptr and enables improved type safety in other cases where one has a raw pointer to a MaybeUninit and wishes to get at the wrapped type. Without these methods, you'd just have to do the cast manually which isn't the end of the world.Links and related work
rust-lang/rust#103133
The text was updated successfully, but these errors were encountered: