str: make as_mut_ptr and as_bytes_mut unstably const
This commit is contained in:
parent
009e73825a
commit
a8a7fd418e
@ -338,9 +338,10 @@ pub const fn as_bytes(&self) -> &[u8] {
|
||||
/// assert_eq!("🍔∈🌏", s);
|
||||
/// ```
|
||||
#[stable(feature = "str_mut_extras", since = "1.20.0")]
|
||||
#[rustc_const_unstable(feature = "const_str_as_mut", issue = "130086")]
|
||||
#[must_use]
|
||||
#[inline(always)]
|
||||
pub unsafe fn as_bytes_mut(&mut self) -> &mut [u8] {
|
||||
pub const unsafe fn as_bytes_mut(&mut self) -> &mut [u8] {
|
||||
// SAFETY: the cast from `&str` to `&[u8]` is safe since `str`
|
||||
// has the same layout as `&[u8]` (only std can make this guarantee).
|
||||
// The pointer dereference is safe since it comes from a mutable reference which
|
||||
@ -383,10 +384,11 @@ pub const fn as_ptr(&self) -> *const u8 {
|
||||
/// It is your responsibility to make sure that the string slice only gets
|
||||
/// modified in a way that it remains valid UTF-8.
|
||||
#[stable(feature = "str_as_mut_ptr", since = "1.36.0")]
|
||||
#[rustc_const_unstable(feature = "const_str_as_mut", issue = "130086")]
|
||||
#[rustc_never_returns_null_ptr]
|
||||
#[must_use]
|
||||
#[inline(always)]
|
||||
pub fn as_mut_ptr(&mut self) -> *mut u8 {
|
||||
pub const fn as_mut_ptr(&mut self) -> *mut u8 {
|
||||
self as *mut str as *mut u8
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user