diff options
| author | Jon Gjengset <jon@thesquareplanet.com> | 2024-05-18 17:17:15 +0200 |
|---|---|---|
| committer | Jon Gjengset <jon@thesquareplanet.com> | 2024-05-18 19:17:43 +0200 |
| commit | 0beba9699c6a30dfbf1241e3ca264d7a2b23d5f7 (patch) | |
| tree | 6307c2961e91d40829a2e1fd294ef5240ea0b206 /library/alloc/src/string.rs | |
| parent | 685a80f7a0935c8e5016d8c9cd491937af155dd0 (diff) | |
| download | rust-0beba9699c6a30dfbf1241e3ca264d7a2b23d5f7.tar.gz rust-0beba9699c6a30dfbf1241e3ca264d7a2b23d5f7.zip | |
Clarify how String::leak and into_boxed_str differ
Diffstat (limited to 'library/alloc/src/string.rs')
| -rw-r--r-- | library/alloc/src/string.rs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/library/alloc/src/string.rs b/library/alloc/src/string.rs index 2a859ad55ee..335a1a8ffb3 100644 --- a/library/alloc/src/string.rs +++ b/library/alloc/src/string.rs @@ -1940,8 +1940,10 @@ impl String { /// 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 @@ impl String { /// 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 /// |
