Implement str::copy_from_str#159846
Open
valentynkit wants to merge 1 commit into
Open
Conversation
jhpratt
reviewed
Jul 25, 2026
| /// | ||
| /// # Panics | ||
| /// | ||
| /// This function will panic if the two string slices have different lengths. |
Member
There was a problem hiding this comment.
Suggested change
| /// This function will panic if the two string slices have different lengths. | |
| /// This function will panic if the two strings have different lengths. |
Same throughout. While "string slices" may be more correct technically, I've never seen it referred to that way.
Contributor
Author
There was a problem hiding this comment.
Done. Applied the same change to the other two mentions in the doc.
Collaborator
|
Reminder, once the PR becomes ready for a review, use |
Contributor
Author
|
@rustbot ready |
Member
|
@bors squash |
This comment has been minimized.
This comment has been minimized.
* Implement `str::copy_from_str` * Reword `str::copy_from_str` docs to say "strings"
Contributor
|
🔨 2 commits were squashed into 4cf766b. |
rust-bors
Bot
force-pushed
the
str-copy-from-str
branch
from
July 26, 2026 04:23
5a600f8 to
4cf766b
Compare
Member
|
Thanks! @bors r+ rollup |
Contributor
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Jul 26, 2026
…hpratt Implement `str::copy_from_str` Implements the accepted ACP rust-lang/libs-team#709: add `str::copy_from_str`, which copies a same-length `&str` into a mutable `str` in place, mirroring `<[T]>::copy_from_slice`. The write is safe because UTF-8 is self-recovering: overwriting a `str` with a same-length `&str` cannot produce invalid UTF-8, and `copy_from_slice` enforces the length equality (panics otherwise). The ACP accepted `copy_from_str` and rejected `copy_within`; `swap_with_str` was left out pending a use case, so this adds only the one method. Tracking issue: rust-lang#159841 r? libs
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Jul 26, 2026
…hpratt Implement `str::copy_from_str` Implements the accepted ACP rust-lang/libs-team#709: add `str::copy_from_str`, which copies a same-length `&str` into a mutable `str` in place, mirroring `<[T]>::copy_from_slice`. The write is safe because UTF-8 is self-recovering: overwriting a `str` with a same-length `&str` cannot produce invalid UTF-8, and `copy_from_slice` enforces the length equality (panics otherwise). The ACP accepted `copy_from_str` and rejected `copy_within`; `swap_with_str` was left out pending a use case, so this adds only the one method. Tracking issue: rust-lang#159841 r? libs
rust-bors Bot
pushed a commit
that referenced
this pull request
Jul 26, 2026
…uwer Rollup of 24 pull requests Successful merges: - #159638 (bootstrap: Split the `Step` trait into multiple traits) - #159774 (rustc_trait_selection: fix trait solver hang caused by degenerate obligations) - #159837 (line-tables-only test: check that the line number matches the function name) - #159946 (Update Enzyme submodule to imporve llvm-cov) - #159617 (Fix up `#[linkage]` target checking) - #159733 (std: Switch implementations of `thread_local!` for WASI) - #159783 (Check unsafe impls on safe EIIs) - #159810 (Add tuple never coercion collection regression test) - #159821 (Update expect message using the recommended style in binary_heap module) - #159826 (Remove redundant `#[rustc_paren_sugar]` feature gate) - #159846 (Implement `str::copy_from_str`) - #159849 (rustc_parse: Stop returning `Option` from statement parsing) - #159853 (Updated expect messages for `CString` struct and method documentation) - #159875 (More cleanup in `rustc_attr_parsing`) - #159882 (Update expect messages in library/alloc/boxed.rs and library/alloc/string.rs to follow the style guide) - #159891 (Split multiline derives into std/rustc macros) - #159893 (Fix `find_attr` hygiene and `rustc_hir` cleanups) - #159895 (rustc-dev-guide subtree update) - #159902 (Clarify that the expected runtime symbols signature is for the current target only) - #159914 (Fix error in diagnostic on_unmatched_args) - #159917 (spare capacity mut constification) - #159918 (rename abort_unwind → abort_on_unwind) - #159936 (Minor `rustc_ast::ast` doc cleanups) - #159945 (Update expect messages in library/core/src/ptr/non_null.rs)
rust-bors Bot
pushed a commit
that referenced
this pull request
Jul 26, 2026
…uwer Rollup of 24 pull requests Successful merges: - #159638 (bootstrap: Split the `Step` trait into multiple traits) - #159774 (rustc_trait_selection: fix trait solver hang caused by degenerate obligations) - #159837 (line-tables-only test: check that the line number matches the function name) - #159946 (Update Enzyme submodule to imporve llvm-cov) - #159617 (Fix up `#[linkage]` target checking) - #159733 (std: Switch implementations of `thread_local!` for WASI) - #159783 (Check unsafe impls on safe EIIs) - #159810 (Add tuple never coercion collection regression test) - #159821 (Update expect message using the recommended style in binary_heap module) - #159826 (Remove redundant `#[rustc_paren_sugar]` feature gate) - #159846 (Implement `str::copy_from_str`) - #159849 (rustc_parse: Stop returning `Option` from statement parsing) - #159853 (Updated expect messages for `CString` struct and method documentation) - #159875 (More cleanup in `rustc_attr_parsing`) - #159882 (Update expect messages in library/alloc/boxed.rs and library/alloc/string.rs to follow the style guide) - #159891 (Split multiline derives into std/rustc macros) - #159893 (Fix `find_attr` hygiene and `rustc_hir` cleanups) - #159895 (rustc-dev-guide subtree update) - #159902 (Clarify that the expected runtime symbols signature is for the current target only) - #159914 (Fix error in diagnostic on_unmatched_args) - #159917 (spare capacity mut constification) - #159918 (rename abort_unwind → abort_on_unwind) - #159936 (Minor `rustc_ast::ast` doc cleanups) - #159945 (Update expect messages in library/core/src/ptr/non_null.rs)
JonathanBrouwer
added a commit
to JonathanBrouwer/rust
that referenced
this pull request
Jul 26, 2026
…hpratt Implement `str::copy_from_str` Implements the accepted ACP rust-lang/libs-team#709: add `str::copy_from_str`, which copies a same-length `&str` into a mutable `str` in place, mirroring `<[T]>::copy_from_slice`. The write is safe because UTF-8 is self-recovering: overwriting a `str` with a same-length `&str` cannot produce invalid UTF-8, and `copy_from_slice` enforces the length equality (panics otherwise). The ACP accepted `copy_from_str` and rejected `copy_within`; `swap_with_str` was left out pending a use case, so this adds only the one method. Tracking issue: rust-lang#159841 r? libs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the accepted ACP rust-lang/libs-team#709: add
str::copy_from_str, which copies a same-length&strinto a mutablestrin place, mirroring<[T]>::copy_from_slice.The write is safe because UTF-8 is self-recovering: overwriting a
strwith a same-length&strcannot produce invalid UTF-8, andcopy_from_sliceenforces the length equality (panics otherwise).The ACP accepted
copy_from_strand rejectedcopy_within;swap_with_strwas left out pending a use case, so this adds only the one method.Tracking issue: #159841
r? libs