@@ -301,7 +301,7 @@ pub fn from_utf8(v: &[u8]) -> Result<&str, Utf8Error> {
301301}
302302
303303/// Converts a mutable slice of bytes to a mutable string slice.
304- #[ unstable ( feature = "str_mut_extras" , issue = "41119 " ) ]
304+ #[ stable ( feature = "str_mut_extras" , since = "1.20.0 " ) ]
305305pub fn from_utf8_mut ( v : & mut [ u8 ] ) -> Result < & mut str , Utf8Error > {
306306 run_utf8_validation ( v) ?;
307307 Ok ( unsafe { from_utf8_unchecked_mut ( v) } )
@@ -381,8 +381,8 @@ pub unsafe fn from_utf8_unchecked(v: &[u8]) -> &str {
381381/// See the immutable version, [`from_utf8_unchecked()`][fromutf8], for more information.
382382///
383383/// [fromutf8]: fn.from_utf8_unchecked.html
384- #[ inline( always ) ]
385- #[ unstable ( feature = "str_mut_extras" , issue = "41119 " ) ]
384+ #[ inline]
385+ #[ stable ( feature = "str_mut_extras" , since = "1.20.0 " ) ]
386386pub unsafe fn from_utf8_unchecked_mut ( v : & mut [ u8 ] ) -> & mut str {
387387 mem:: transmute ( v)
388388}
@@ -2123,7 +2123,7 @@ pub trait StrExt {
21232123 fn is_char_boundary ( & self , index : usize ) -> bool ;
21242124 #[ stable( feature = "core" , since = "1.6.0" ) ]
21252125 fn as_bytes ( & self ) -> & [ u8 ] ;
2126- #[ unstable ( feature = "str_mut_extras" , issue = "41119 " ) ]
2126+ #[ stable ( feature = "str_mut_extras" , since = "1.20.0 " ) ]
21272127 unsafe fn as_bytes_mut ( & mut self ) -> & mut [ u8 ] ;
21282128 #[ stable( feature = "core" , since = "1.6.0" ) ]
21292129 fn find < ' a , P : Pattern < ' a > > ( & ' a self , pat : P ) -> Option < usize > ;
0 commit comments