Closed
Description
Feature gate: #![feature(get_many_mut)]
This is a tracking issue for get_disjoint_mut
and get_disjoint_unchecked_mut
, which provide &mut T
access to multiple distinct slice elements.
Public API
impl [T] {
pub unsafe fn get_disjoint_unchecked_mut<const N: usize>(&mut self, indices: [usize; N]) -> [&mut T; N];
pub fn get_disjoint_mut<const N: usize>(&mut self, indices: [usize; N]) -> Result<[&mut T; N], GetDisjointMutError<N>>;
}
pub struct GetDisjointMutError<const N: usize> { /* private */ }
Steps / History
- Add slice methods for indexing via an array of indices. #83608
- Stabilize
get_many_mut
asget_disjoint_mut
#134633
Unresolved Questions
- What should the error type / return type look like?
- See Add slice methods for indexing via an array of indices. #83608 (comment), Add slice methods for indexing via an array of indices. #83608 (comment), and other comments on that PR
- Should the interface support non-usize indices (e.g.,
get_many_mut([0..3, 4..6])
)? - What are the requirements for the interface? Do we sort the passed array, and then check distinctness, or check in
O(n^2)
time?