From 6da69ec08c4ba0c166d28a65196832f8de877149 Mon Sep 17 00:00:00 2001 From: Matt Brubeck Date: Wed, 15 Jul 2020 13:21:02 -0700 Subject: [PATCH] Update docs for str::as_bytes_mut. * Add "Safety" section describing UTF-8 invariant. * Remove mention of `from_utf8_mut`. It is not necessary to call a function to convert the byte slice back to a string slice. The original string becomes accessible again after the byte slice is no longer used (as shown in the example code). --- src/libcore/str/mod.rs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/libcore/str/mod.rs b/src/libcore/str/mod.rs index 0014501d2c4..10721ce6165 100644 --- a/src/libcore/str/mod.rs +++ b/src/libcore/str/mod.rs @@ -2384,11 +2384,14 @@ union Slices<'a> { unsafe { Slices { str: self }.slice } } - /// Converts a mutable string slice to a mutable byte slice. To convert the - /// mutable byte slice back into a mutable string slice, use the - /// [`str::from_utf8_mut`] function. + /// Converts a mutable string slice to a mutable byte slice. /// - /// [`str::from_utf8_mut`]: ./str/fn.from_utf8_mut.html + /// # Safety + /// + /// The caller must ensure that the content of the slice is valid UTF-8 + /// before the borrow ends and the underlying `str` is used. + /// + /// Use of a `str` whose contents are not valid UTF-8 is undefined behavior. /// /// # Examples /// -- 2.44.0