Clarify how String::leak and into_boxed_str differ
This commit is contained in:
parent
685a80f7a0
commit
0beba9699c
@ -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
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user