Rollup merge of #125251 - jonhoo:patch-1, r=Nilstrieb

Clarify how String::leak and into_boxed_str differ
This commit is contained in:
许杰友 Jieyou Xu (Joe) 2024-05-18 20:38:05 +01:00 committed by GitHub
commit c367d99259
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1940,8 +1940,10 @@ pub fn replace_range<R>(&mut self, range: R, replace_with: &str)
/// Converts this `String` into a <code>[Box]<[str]></code>.
///
/// This will drop any excess capacity.
/// Before doing the conversion, this method discards excess capacity like [`shrink_to_fit`].
/// Note that this call may reallocate and copy the bytes of the string.
///
/// [`shrink_to_fit`]: String::shrink_to_fit
/// [str]: prim@str "str"
///
/// # Examples
@ -1967,10 +1969,10 @@ pub fn into_boxed_str(self) -> Box<str> {
/// this function is ideally used for data that lives for the remainder of the program's life,
/// as dropping the returned reference will cause a memory leak.
///
/// It does not reallocate or shrink the `String`,
/// so the leaked allocation may include unused capacity that is not part
/// of the returned slice. If you don't want that, call [`into_boxed_str`],
/// and then [`Box::leak`].
/// It does not reallocate or shrink the `String`, so the leaked allocation may include unused
/// capacity that is not part of the returned slice. If you want to discard excess capacity,
/// call [`into_boxed_str`], and then [`Box::leak`] instead. However, keep in mind that
/// trimming the capacity may result in a reallocation and copy.
///
/// [`into_boxed_str`]: Self::into_boxed_str
///