Struct index_vec::IndexSlice
source · #[repr(transparent)]pub struct IndexSlice<I: Idx, T: ?Sized> {
pub raw: T,
/* private fields */
}
Expand description
A slice that only accepts indices of a specific type. Note that the intended
usage is as IndexSlice<I, [T]>
.
This is a thin wrapper around a [T]
, to the point where the backing is a
public property (called raw
). This is in part because I know this API is
not a complete mirror of Vec’s (patches welcome). In the worst case, you can
always do what you need to the slice itself.
Some notes on the APIs
-
Most of the Slice APIs are present.
- Any that aren’t can be trivially accessed on the underlying
raw
field, which is public.
- Any that aren’t can be trivially accessed on the underlying
-
Apis that take or return usizes referring to the positions of items were replaced with ones that take Idx.
-
Apis that take
R: RangeBounds<usize>
take anIdxRangeBounds<I>
, which is basically aRangeBounds<I>
. -
Apis that take
SliceIndex<usize>
take anIdxSliceIndex<I>
, which is basically aSliceIndex<I>
. -
Most iterator functions where
the_iter().enumerate()
would refer to indices have been given_enumerated
variants. E.g.IndexSlice::iter_enumerated
, etc. This is becausev.iter().enumerate()
would be(usize, &T)
, but you want(I, &T)
.
The following extensions are added:
IndexSlice::indices
: an Iterator over the indices of typeI
.- Various
enumerated
iterators mentioned earlier IndexSlice::position
,IndexSlice::rposition
asself.iter().position()
will return aOption<usize>
Fields§
§raw: T
Implementations§
source§impl<I: Idx, T> IndexSlice<I, [T]>
impl<I: Idx, T> IndexSlice<I, [T]>
sourcepub fn new<S: AsRef<[T]> + ?Sized>(s: &S) -> &Self
pub fn new<S: AsRef<[T]> + ?Sized>(s: &S) -> &Self
Construct a new IdxSlice by wrapping an existing slice.
sourcepub fn new_mut<S: AsMut<[T]> + ?Sized>(s: &mut S) -> &mut Self
pub fn new_mut<S: AsMut<[T]> + ?Sized>(s: &mut S) -> &mut Self
Construct a new mutable IdxSlice by wrapping an existing mutable slice.
sourcepub fn from_slice(s: &[T]) -> &Self
pub fn from_slice(s: &[T]) -> &Self
Construct a new IdxSlice by wrapping an existing slice.
sourcepub fn from_slice_mut(s: &mut [T]) -> &mut Self
pub fn from_slice_mut(s: &mut [T]) -> &mut Self
Construct a new mutable IdxSlice by wrapping an existing mutable slice.
sourcepub fn into_vec(self: Box<Self>) -> IndexVec<I, T>
pub fn into_vec(self: Box<Self>) -> IndexVec<I, T>
Converts self
into a vector without clones or allocation.
The resulting vector can be converted back into a box via
IndexVec<I, T>
’s into_boxed_slice
method.
sourcepub fn as_raw_slice_mut(&mut self) -> &mut [T]
pub fn as_raw_slice_mut(&mut self) -> &mut [T]
Returns the underlying slice.
sourcepub fn as_raw_slice(&self) -> &[T]
pub fn as_raw_slice(&self) -> &[T]
Returns the underlying slice.
sourcepub fn as_mut_ptr(&mut self) -> *mut T
pub fn as_mut_ptr(&mut self) -> *mut T
Returns an unsafe mutable pointer to the slice’s buffer.
sourcepub fn iter(&self) -> Iter<'_, T>
pub fn iter(&self) -> Iter<'_, T>
Get a iterator over reverences to our values.
See also IndexSlice::iter_enumerated
, which gives you indices (of the
correct type) as you iterate.
sourcepub fn iter_mut(&mut self) -> IterMut<'_, T>
pub fn iter_mut(&mut self) -> IterMut<'_, T>
Get a iterator over mut reverences to our values.
See also IndexSlice::iter_mut_enumerated
, which gives you indices (of
the correct type) as you iterate.
sourcepub fn iter_enumerated(
&self
) -> Map<Enumerate<Iter<'_, T>>, fn(_: (usize, &T)) -> (I, &T)> ⓘ
pub fn iter_enumerated( &self ) -> Map<Enumerate<Iter<'_, T>>, fn(_: (usize, &T)) -> (I, &T)> ⓘ
Similar to self.iter().enumerate()
but with indices of I
and not
usize
.
sourcepub fn indices(&self) -> Map<Range<usize>, fn(_: usize) -> I> ⓘ
pub fn indices(&self) -> Map<Range<usize>, fn(_: usize) -> I> ⓘ
Get an interator over all our indices.
sourcepub fn iter_mut_enumerated(
&mut self
) -> Map<Enumerate<IterMut<'_, T>>, fn(_: (usize, &mut T)) -> (I, &mut T)> ⓘ
pub fn iter_mut_enumerated( &mut self ) -> Map<Enumerate<IterMut<'_, T>>, fn(_: (usize, &mut T)) -> (I, &mut T)> ⓘ
Similar to self.iter_mut().enumerate()
but with indices of I
and not
usize
.
sourcepub fn sort_by<F: FnMut(&T, &T) -> Ordering>(&mut self, compare: F)
pub fn sort_by<F: FnMut(&T, &T) -> Ordering>(&mut self, compare: F)
Forwards to the slice’s sort_by
implementation.
sourcepub fn sort_by_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
pub fn sort_by_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
Forwards to the slice’s sort_by_key
implementation.
sourcepub fn sort_by_cached_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
pub fn sort_by_cached_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
Forwards to the slice’s sort_by_cached_key
implementation.
sourcepub fn sort_unstable(&mut self)where
T: Ord,
pub fn sort_unstable(&mut self)where
T: Ord,
Forwards to the slice’s sort_unstable
implementation.
sourcepub fn sort_unstable_by<F: FnMut(&T, &T) -> Ordering>(&mut self, compare: F)
pub fn sort_unstable_by<F: FnMut(&T, &T) -> Ordering>(&mut self, compare: F)
Forwards to the slice’s sort_unstable_by
implementation.
sourcepub fn sort_unstable_by_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
pub fn sort_unstable_by_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
Forwards to the slice’s sort_unstable_by_key
implementation.
sourcepub fn ends_with<S: AsRef<[T]> + ?Sized>(&self, needle: &S) -> boolwhere
T: PartialEq,
pub fn ends_with<S: AsRef<[T]> + ?Sized>(&self, needle: &S) -> boolwhere
T: PartialEq,
Forwards to the slice’s ends_with
implementation.
sourcepub fn starts_with<S: AsRef<[T]> + ?Sized>(&self, needle: &S) -> boolwhere
T: PartialEq,
pub fn starts_with<S: AsRef<[T]> + ?Sized>(&self, needle: &S) -> boolwhere
T: PartialEq,
Forwards to the slice’s starts_with
implementation.
sourcepub fn contains(&self, x: &T) -> boolwhere
T: PartialEq,
pub fn contains(&self, x: &T) -> boolwhere
T: PartialEq,
Forwards to the slice’s contains
implementation.
sourcepub fn binary_search(&self, value: &T) -> Result<I, I>where
T: Ord,
pub fn binary_search(&self, value: &T) -> Result<I, I>where
T: Ord,
Call slice::binary_search
converting the indices it gives us back as
needed.
sourcepub fn binary_search_by<'a, F: FnMut(&'a T) -> Ordering>(
&'a self,
f: F
) -> Result<I, I>
pub fn binary_search_by<'a, F: FnMut(&'a T) -> Ordering>( &'a self, f: F ) -> Result<I, I>
Binary searches this sorted vec with a comparator function, converting the indices it gives us back to our Idx type.
sourcepub fn copy_from_slice(&mut self, src: &Self)where
T: Copy,
pub fn copy_from_slice(&mut self, src: &Self)where
T: Copy,
Copies all elements from src
into self
, using a memcpy.
sourcepub fn clone_from_slice(&mut self, src: &Self)where
T: Clone,
pub fn clone_from_slice(&mut self, src: &Self)where
T: Clone,
Copies the elements from src
into self
.
sourcepub fn swap_with_slice(&mut self, other: &mut Self)
pub fn swap_with_slice(&mut self, other: &mut Self)
Swaps all elements in self
with those in other
.
sourcepub fn binary_search_by_key<'a, B: Ord, F: FnMut(&'a T) -> B>(
&'a self,
b: &B,
f: F
) -> Result<I, I>
pub fn binary_search_by_key<'a, B: Ord, F: FnMut(&'a T) -> B>( &'a self, b: &B, f: F ) -> Result<I, I>
Binary searches this sorted vec with a key extraction function, converting the indices it gives us back to our Idx type.
sourcepub fn position<F: FnMut(&T) -> bool>(&self, f: F) -> Option<I>
pub fn position<F: FnMut(&T) -> bool>(&self, f: F) -> Option<I>
Searches for an element in an iterator, returning its index. This is
equivalent to Iterator::position
, but returns I
and not usize
.
sourcepub fn rposition<F: FnMut(&T) -> bool>(&self, f: F) -> Option<I>
pub fn rposition<F: FnMut(&T) -> bool>(&self, f: F) -> Option<I>
Searches for an element in an iterator from the right, returning its
index. This is equivalent to Iterator::position
, but returns I
and
not usize
.
sourcepub fn split_at_mut(&mut self, a: I) -> (&mut Self, &mut Self)
pub fn split_at_mut(&mut self, a: I) -> (&mut Self, &mut Self)
Divides our slice into two at an index.
sourcepub fn rotate_left(&mut self, mid: I)
pub fn rotate_left(&mut self, mid: I)
Rotates our data in-place such that the first mid
elements of the
slice move to the end while the last self.len() - mid
elements move to
the front
sourcepub fn rotate_right(&mut self, k: I)
pub fn rotate_right(&mut self, k: I)
Rotates our data in-place such that the first self.len() - k
elements
of the slice move to the end while the last k
elements move to the
front
sourcepub fn first_mut(&mut self) -> Option<&mut T>
pub fn first_mut(&mut self) -> Option<&mut T>
Return the the first element, if we are not empty.
sourcepub fn copy_within<R: IdxRangeBounds<I>>(&mut self, src: R, dst: I)where
T: Copy,
pub fn copy_within<R: IdxRangeBounds<I>>(&mut self, src: R, dst: I)where
T: Copy,
Copies elements from one part of the slice to another part of itself, using a memmove.
sourcepub fn get<J: IdxSliceIndex<I, T>>(&self, index: J) -> Option<&J::Output>
pub fn get<J: IdxSliceIndex<I, T>>(&self, index: J) -> Option<&J::Output>
Get a ref to the item at the provided index, or None for out of bounds.
sourcepub fn get_mut<J: IdxSliceIndex<I, T>>(
&mut self,
index: J
) -> Option<&mut J::Output>
pub fn get_mut<J: IdxSliceIndex<I, T>>( &mut self, index: J ) -> Option<&mut J::Output>
Get a mut ref to the item at the provided index, or None for out of bounds
sourcepub fn windows(
&self,
size: usize
) -> Map<Windows<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn windows( &self, size: usize ) -> Map<Windows<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s windows
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn chunks(
&self,
size: usize
) -> Map<Chunks<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn chunks( &self, size: usize ) -> Map<Chunks<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s chunks
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn chunks_mut(
&mut self,
size: usize
) -> Map<ChunksMut<'_, T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
pub fn chunks_mut( &mut self, size: usize ) -> Map<ChunksMut<'_, T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s chunks_mut
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn chunks_exact(
&self,
chunk_size: usize
) -> Map<ChunksExact<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn chunks_exact( &self, chunk_size: usize ) -> Map<ChunksExact<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s chunks_exact
iterator with one that
yields IndexSlice
s with the correct index type.
sourcepub fn chunks_exact_mut(
&mut self,
chunk_size: usize
) -> Map<ChunksExactMut<'_, T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
pub fn chunks_exact_mut( &mut self, chunk_size: usize ) -> Map<ChunksExactMut<'_, T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s chunks_exact_mut
iterator with one that
yields IndexSlice
s with the correct index type.
sourcepub fn rchunks(
&self,
size: usize
) -> Map<RChunks<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn rchunks( &self, size: usize ) -> Map<RChunks<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s rchunks
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn rchunks_mut(
&mut self,
size: usize
) -> Map<RChunksMut<'_, T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
pub fn rchunks_mut( &mut self, size: usize ) -> Map<RChunksMut<'_, T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s rchunks_mut
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn rchunks_exact(
&self,
chunk_size: usize
) -> Map<RChunksExact<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn rchunks_exact( &self, chunk_size: usize ) -> Map<RChunksExact<'_, T>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s rchunks_exact
iterator with one that
yields IndexSlice
s with the correct index type.
sourcepub fn rchunks_exact_mut(
&mut self,
chunk_size: usize
) -> Map<RChunksExactMut<'_, T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
pub fn rchunks_exact_mut( &mut self, chunk_size: usize ) -> Map<RChunksExactMut<'_, T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s rchunks_exact_mut
iterator with one that
yields IndexSlice
s with the correct index type.
sourcepub fn split<F: FnMut(&T) -> bool>(
&self,
f: F
) -> Map<Split<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn split<F: FnMut(&T) -> bool>( &self, f: F ) -> Map<Split<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s split
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn split_mut<F: FnMut(&T) -> bool>(
&mut self,
f: F
) -> Map<SplitMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
pub fn split_mut<F: FnMut(&T) -> bool>( &mut self, f: F ) -> Map<SplitMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s split_mut
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn rsplit<F: FnMut(&T) -> bool>(
&self,
f: F
) -> Map<RSplit<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn rsplit<F: FnMut(&T) -> bool>( &self, f: F ) -> Map<RSplit<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s rsplit
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn rsplit_mut<F: FnMut(&T) -> bool>(
&mut self,
f: F
) -> Map<RSplitMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
pub fn rsplit_mut<F: FnMut(&T) -> bool>( &mut self, f: F ) -> Map<RSplitMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s rsplit_mut
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn splitn<F: FnMut(&T) -> bool>(
&self,
n: usize,
f: F
) -> Map<SplitN<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn splitn<F: FnMut(&T) -> bool>( &self, n: usize, f: F ) -> Map<SplitN<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s splitn
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn splitn_mut<F: FnMut(&T) -> bool>(
&mut self,
n: usize,
f: F
) -> Map<SplitNMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
pub fn splitn_mut<F: FnMut(&T) -> bool>( &mut self, n: usize, f: F ) -> Map<SplitNMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s splitn_mut
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn rsplitn<F: FnMut(&T) -> bool>(
&self,
n: usize,
f: F
) -> Map<RSplitN<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
pub fn rsplitn<F: FnMut(&T) -> bool>( &self, n: usize, f: F ) -> Map<RSplitN<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s rsplitn
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub fn rsplitn_mut<F: FnMut(&T) -> bool>(
&mut self,
n: usize,
f: F
) -> Map<RSplitNMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
pub fn rsplitn_mut<F: FnMut(&T) -> bool>( &mut self, n: usize, f: F ) -> Map<RSplitNMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>> ⓘ
Wraps the underlying slice’s rsplitn_mut
iterator with one that yields
IndexSlice
s with the correct index type.
sourcepub unsafe fn from_raw_parts<'a>(data: *const T, len: usize) -> &'a Self
pub unsafe fn from_raw_parts<'a>(data: *const T, len: usize) -> &'a Self
Create a IdxSlice from its pointer and length.
Safety
This is equivalent to core::slice::from_raw_parts
and has the same
safety caveats.
sourcepub unsafe fn from_raw_parts_mut<'a>(data: *mut T, len: usize) -> &'a mut Self
pub unsafe fn from_raw_parts_mut<'a>(data: *mut T, len: usize) -> &'a mut Self
Create a mutable IdxSlice from its pointer and length.
Safety
This is equivalent to core::slice::from_raw_parts_mut
and has the same
safety caveats.
sourcepub fn split_first(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
pub fn split_first(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
Returns the first and all the rest of the elements of the slice, or None
if it is empty.
sourcepub fn split_first_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
pub fn split_first_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
Returns the first and all the rest of the elements of the slice, or None
if it is empty.
sourcepub fn split_last(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
pub fn split_last(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
Returns the last and all the rest of the elements of the slice, or None
if it is empty.
sourcepub fn split_last_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
pub fn split_last_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
Returns the last and all the rest of the elements of the slice, or None
if it is empty.
Trait Implementations§
source§impl<I: Idx, A> AsMut<IndexSlice<I, [A]>> for IndexVec<I, A>
impl<I: Idx, A> AsMut<IndexSlice<I, [A]>> for IndexVec<I, A>
source§fn as_mut(&mut self) -> &mut IndexSlice<I, [A]>
fn as_mut(&mut self) -> &mut IndexSlice<I, [A]>
source§impl<I: Idx, A> AsRef<IndexSlice<I, [A]>> for IndexVec<I, A>
impl<I: Idx, A> AsRef<IndexSlice<I, [A]>> for IndexVec<I, A>
source§fn as_ref(&self) -> &IndexSlice<I, [A]>
fn as_ref(&self) -> &IndexSlice<I, [A]>
source§impl<I: Idx, T> BorrowMut<IndexSlice<I, [T]>> for IndexVec<I, T>
impl<I: Idx, T> BorrowMut<IndexSlice<I, [T]>> for IndexVec<I, T>
source§fn borrow_mut(&mut self) -> &mut IndexSlice<I, [T]>
fn borrow_mut(&mut self) -> &mut IndexSlice<I, [T]>
source§impl<I: Clone + Idx, T: Clone + ?Sized> Clone for IndexSlice<I, T>
impl<I: Clone + Idx, T: Clone + ?Sized> Clone for IndexSlice<I, T>
source§fn clone(&self) -> IndexSlice<I, T>
fn clone(&self) -> IndexSlice<I, T>
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl<'a, I: Idx, T: Clone> From<&'a IndexSlice<I, [T]>> for IndexVec<I, T>
impl<'a, I: Idx, T: Clone> From<&'a IndexSlice<I, [T]>> for IndexVec<I, T>
source§fn from(src: &'a IndexSlice<I, [T]>) -> Self
fn from(src: &'a IndexSlice<I, [T]>) -> Self
source§impl<'a, I: Idx, T: Clone> From<&'a mut IndexSlice<I, [T]>> for IndexVec<I, T>
impl<'a, I: Idx, T: Clone> From<&'a mut IndexSlice<I, [T]>> for IndexVec<I, T>
source§fn from(src: &'a mut IndexSlice<I, [T]>) -> Self
fn from(src: &'a mut IndexSlice<I, [T]>) -> Self
source§impl<I: Idx, A> FromIterator<A> for Box<IndexSlice<I, [A]>>
impl<I: Idx, A> FromIterator<A> for Box<IndexSlice<I, [A]>>
source§fn from_iter<T: IntoIterator<Item = A>>(iter: T) -> Self
fn from_iter<T: IntoIterator<Item = A>>(iter: T) -> Self
source§impl<I, R, T> Index<R> for IndexSlice<I, [T]>where
I: Idx,
R: IdxSliceIndex<I, T>,
impl<I, R, T> Index<R> for IndexSlice<I, [T]>where
I: Idx,
R: IdxSliceIndex<I, T>,
source§impl<I, R, T> IndexMut<R> for IndexSlice<I, [T]>where
I: Idx,
R: IdxSliceIndex<I, T>,
impl<I, R, T> IndexMut<R> for IndexSlice<I, [T]>where
I: Idx,
R: IdxSliceIndex<I, T>,
source§impl<'a, I: Idx, T> IntoIterator for &'a IndexSlice<I, [T]>
impl<'a, I: Idx, T> IntoIterator for &'a IndexSlice<I, [T]>
source§impl<'a, I: Idx, T> IntoIterator for &'a mut IndexSlice<I, [T]>
impl<'a, I: Idx, T> IntoIterator for &'a mut IndexSlice<I, [T]>
source§impl<I: Idx, A> IntoIterator for Box<IndexSlice<I, [A]>>
impl<I: Idx, A> IntoIterator for Box<IndexSlice<I, [A]>>
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 0]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 0]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 1]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 1]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 10]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 10]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 11]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 11]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 12]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 12]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 13]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 13]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 14]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 14]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 15]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 15]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 16]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 16]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 17]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 17]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 18]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 18]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 19]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 19]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 2]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 2]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 20]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 20]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 21]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 21]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 22]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 22]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 23]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 23]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 24]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 24]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 25]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 25]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 26]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 26]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 27]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 27]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 28]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 28]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 29]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 29]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 3]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 3]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 30]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 30]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 31]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 31]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 32]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 32]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 4]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 4]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 5]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 5]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 6]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 6]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 7]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 7]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 8]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 8]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 9]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 9]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'a IndexSlice<J, [B]>> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'a IndexSlice<J, [B]>> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'b IndexSlice<J, [B]>> for IndexVec<I, A>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'b IndexSlice<J, [B]>> for IndexVec<I, A>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<&'b mut [B]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b mut [B]> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'a mut IndexSlice<J, [B]>> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'a mut IndexSlice<J, [B]>> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'b mut IndexSlice<J, [B]>> for IndexVec<I, A>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'b mut IndexSlice<J, [B]>> for IndexVec<I, A>where
A: PartialEq<B>,
source§impl<I: Idx, A, B> PartialEq<IndexSlice<I, [B]>> for IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<I: Idx, A, B> PartialEq<IndexSlice<I, [B]>> for IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<IndexVec<J, B>> for &'a IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<IndexVec<J, B>> for &'a IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<IndexVec<J, B>> for &'a mut IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<IndexVec<J, B>> for &'a mut IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<Vec<B>> for &'a IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<Vec<B>> for &'a IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<'a, 'b, A, B, I: Idx> PartialEq<Vec<B>> for &'a mut IndexSlice<I, [A]>where
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<Vec<B>> for &'a mut IndexSlice<I, [A]>where
A: PartialEq<B>,
source§impl<I: Idx, T: PartialOrd> PartialOrd for IndexSlice<I, [T]>
impl<I: Idx, T: PartialOrd> PartialOrd for IndexSlice<I, [T]>
source§fn partial_cmp(&self, other: &IndexSlice<I, [T]>) -> Option<Ordering>
fn partial_cmp(&self, other: &IndexSlice<I, [T]>) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
self
and other
) and is used by the <=
operator. Read more