Tracking Issue for `slice_shift` (`shift_left`/`shift_right`)
Open
Nobody has claimed this yet.
C-tracking-issue
T-libs
- Dominant language
- Rust
- Stars
- 119k
- Forks
- 16.1k
- PR merge metrics
- PR metrics pending
Description
Feature gate: #![feature(slice_shift)]
This is a tracking issue for the [T]::shift_left and [T]::shift_right methods, which are the safe versions of memmove.
Public API
// in core
impl<T> [T] {
pub fn shift_left<const N: usize>(&mut self, inserted: [T; N]) -> [T; N];
pub fn shift_right<const N: usize>(&mut self, inserted: [T; N]) -> [T; N];
}
Steps / History
(Remember to update the S-tracking-* label when checking boxes.)
- ACP: https://github.com/rust-lang/libs-team/issues/717
- Implementation: #151812
- Final comment period (FCP)^1
- Stabilization PR
Unresolved Questions
- "Our conclusion from the meeting was: if it's possible to do this without appreciable runtime performance impact, we'd love to avoid a panic. If doing this would add runtime performance impact, we're happy to ship the panicking version." ~ https://github.com/rust-lang/libs-team/issues/717#issuecomment-3807205664
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the public API in core and the implementation referenced as #151812, then review the linked stabilization guidance and the unresolved-question discussion. Done means completing the final comment period and stabilization PR for slice_shift, rather than adding the initial implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100