Implement Index[Mut] for arrays
Adds implementations of `Index` and `IndexMut` for arrays that simply forward to the slice indexing implementation.
This commit is contained in:
parent
0468845924
commit
c03dfa6671
1 changed files with 25 additions and 0 deletions
|
@ -12,6 +12,7 @@ use crate::convert::{Infallible, TryFrom};
|
||||||
use crate::fmt;
|
use crate::fmt;
|
||||||
use crate::hash::{self, Hash};
|
use crate::hash::{self, Hash};
|
||||||
use crate::marker::Unsize;
|
use crate::marker::Unsize;
|
||||||
|
use crate::ops::{Index, IndexMut};
|
||||||
use crate::slice::{Iter, IterMut};
|
use crate::slice::{Iter, IterMut};
|
||||||
|
|
||||||
mod iter;
|
mod iter;
|
||||||
|
@ -208,6 +209,30 @@ impl<'a, T, const N: usize> IntoIterator for &'a mut [T; N] {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[stable(feature = "index_trait_on_arrays", since = "1.50.0")]
|
||||||
|
impl<T, I, const N: usize> Index<I> for [T; N]
|
||||||
|
where
|
||||||
|
[T]: Index<I>,
|
||||||
|
{
|
||||||
|
type Output = <[T] as Index<I>>::Output;
|
||||||
|
|
||||||
|
#[inline]
|
||||||
|
fn index(&self, index: I) -> &Self::Output {
|
||||||
|
Index::index(self as &[T], index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[stable(feature = "index_trait_on_arrays", since = "1.50.0")]
|
||||||
|
impl<T, I, const N: usize> IndexMut<I> for [T; N]
|
||||||
|
where
|
||||||
|
[T]: IndexMut<I>,
|
||||||
|
{
|
||||||
|
#[inline]
|
||||||
|
fn index_mut(&mut self, index: I) -> &mut Self::Output {
|
||||||
|
IndexMut::index_mut(self as &mut [T], index)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[stable(feature = "rust1", since = "1.0.0")]
|
#[stable(feature = "rust1", since = "1.0.0")]
|
||||||
impl<A, B, const N: usize> PartialEq<[B; N]> for [A; N]
|
impl<A, B, const N: usize> PartialEq<[B; N]> for [A; N]
|
||||||
where
|
where
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue