#[repr(transparent)]pub struct IndexSlice<I, T>{
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
rawfield, 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_enumeratedvariants. 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
enumeratediterators mentioned earlier IndexSlice::position,IndexSlice::rpositionasself.iter().position()will return aOption<usize>
Fields§
§raw: TImplementations§
Source§impl<I, T> IndexSlice<I, [T]>where
I: Idx,
impl<I, T> IndexSlice<I, [T]>where
I: Idx,
Sourcepub fn new<S>(s: &S) -> &IndexSlice<I, [T]>
pub fn new<S>(s: &S) -> &IndexSlice<I, [T]>
Construct a new IdxSlice by wrapping an existing slice.
Sourcepub fn new_mut<S>(s: &mut S) -> &mut IndexSlice<I, [T]>
pub fn new_mut<S>(s: &mut S) -> &mut IndexSlice<I, [T]>
Construct a new mutable IdxSlice by wrapping an existing mutable slice.
Sourcepub const fn from_slice(s: &[T]) -> &IndexSlice<I, [T]>
pub const fn from_slice(s: &[T]) -> &IndexSlice<I, [T]>
Construct a new IdxSlice by wrapping an existing slice.
Sourcepub fn from_slice_mut(s: &mut [T]) -> &mut IndexSlice<I, [T]>
pub fn from_slice_mut(s: &mut [T]) -> &mut IndexSlice<I, [T]>
Construct a new mutable IdxSlice by wrapping an existing mutable slice.
Sourcepub fn into_vec(self: Box<IndexSlice<I, [T]>>) -> IndexVec<I, T>
pub fn into_vec(self: Box<IndexSlice<I, [T]>>) -> 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 const fn as_raw_slice(&self) -> &[T]
pub const 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_key<F, K>(&mut self, f: F)
pub fn sort_by_key<F, K>(&mut self, f: F)
Forwards to the slice’s sort_by_key implementation.
Sourcepub fn sort_by_cached_key<F, K>(&mut self, f: F)
pub fn sort_by_cached_key<F, K>(&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>(&mut self, compare: F)
pub fn sort_unstable_by<F>(&mut self, compare: F)
Forwards to the slice’s sort_unstable_by implementation.
Sourcepub fn sort_unstable_by_key<F, K>(&mut self, f: F)
pub fn sort_unstable_by_key<F, K>(&mut self, f: F)
Forwards to the slice’s sort_unstable_by_key implementation.
Sourcepub fn ends_with<S>(&self, needle: &S) -> bool
pub fn ends_with<S>(&self, needle: &S) -> bool
Forwards to the slice’s ends_with implementation.
Sourcepub fn starts_with<S>(&self, needle: &S) -> bool
pub fn starts_with<S>(&self, needle: &S) -> bool
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>(&'a self, f: F) -> Result<I, I>
pub fn binary_search_by<'a, F>(&'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: &IndexSlice<I, [T]>)where
T: Copy,
pub fn copy_from_slice(&mut self, src: &IndexSlice<I, [T]>)where
T: Copy,
Copies all elements from src into self, using a memcpy.
Sourcepub fn clone_from_slice(&mut self, src: &IndexSlice<I, [T]>)where
T: Clone,
pub fn clone_from_slice(&mut self, src: &IndexSlice<I, [T]>)where
T: Clone,
Copies the elements from src into self.
Sourcepub fn swap_with_slice(&mut self, other: &mut IndexSlice<I, [T]>)
pub fn swap_with_slice(&mut self, other: &mut IndexSlice<I, [T]>)
Swaps all elements in self with those in other.
Sourcepub fn binary_search_by_key<'a, B, F>(&'a self, b: &B, f: F) -> Result<I, I>
pub fn binary_search_by_key<'a, B, F>(&'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>(&self, f: F) -> Option<I>
pub fn position<F>(&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>(&self, f: F) -> Option<I>
pub fn rposition<F>(&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(&self, a: I) -> (&IndexSlice<I, [T]>, &IndexSlice<I, [T]>)
pub fn split_at(&self, a: I) -> (&IndexSlice<I, [T]>, &IndexSlice<I, [T]>)
Divides our slice into two at an index.
Sourcepub fn split_at_mut(
&mut self,
a: I,
) -> (&mut IndexSlice<I, [T]>, &mut IndexSlice<I, [T]>)
pub fn split_at_mut( &mut self, a: I, ) -> (&mut IndexSlice<I, [T]>, &mut IndexSlice<I, [T]>)
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>(&mut self, src: R, dst: I)where
R: IdxRangeBounds<I>,
T: Copy,
pub fn copy_within<R>(&mut self, src: R, dst: I)where
R: IdxRangeBounds<I>,
T: Copy,
Copies elements from one part of the slice to another part of itself, using a memmove.
Sourcepub fn get<J>(&self, index: J) -> Option<&<J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
pub fn get<J>(&self, index: J) -> Option<&<J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
Get a ref to the item at the provided index, or None for out of bounds.
Sourcepub fn get_mut<J>(
&mut self,
index: J,
) -> Option<&mut <J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
pub fn get_mut<J>(
&mut self,
index: J,
) -> Option<&mut <J as IdxSliceIndex<I, T>>::Output>where
J: IdxSliceIndex<I, T>,
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
IndexSlices 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
IndexSlices 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
IndexSlices 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 IndexSlices 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 IndexSlices 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
IndexSlices 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
IndexSlices 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 IndexSlices 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 IndexSlices with the correct index type.
Sourcepub fn split<F>(
&self,
f: F,
) -> Map<Split<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn split<F>( &self, f: F, ) -> Map<Split<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s split iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn split_mut<F>(
&mut self,
f: F,
) -> Map<SplitMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn split_mut<F>( &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
IndexSlices with the correct index type.
Sourcepub fn rsplit<F>(
&self,
f: F,
) -> Map<RSplit<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn rsplit<F>( &self, f: F, ) -> Map<RSplit<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
Wraps the underlying slice’s rsplit iterator with one that yields
IndexSlices with the correct index type.
Sourcepub fn rsplit_mut<F>(
&mut self,
f: F,
) -> Map<RSplitMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn rsplit_mut<F>( &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
IndexSlices with the correct index type.
Sourcepub fn splitn<F>(
&self,
n: usize,
f: F,
) -> Map<SplitN<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn splitn<F>( &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
IndexSlices with the correct index type.
Sourcepub fn splitn_mut<F>(
&mut self,
n: usize,
f: F,
) -> Map<SplitNMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn splitn_mut<F>( &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
IndexSlices with the correct index type.
Sourcepub fn rsplitn<F>(
&self,
n: usize,
f: F,
) -> Map<RSplitN<'_, T, F>, fn(&[T]) -> &IndexSlice<I, [T]>>
pub fn rsplitn<F>( &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
IndexSlices with the correct index type.
Sourcepub fn rsplitn_mut<F>(
&mut self,
n: usize,
f: F,
) -> Map<RSplitNMut<'_, T, F>, fn(&mut [T]) -> &mut IndexSlice<I, [T]>>
pub fn rsplitn_mut<F>( &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
IndexSlices with the correct index type.
Sourcepub unsafe fn from_raw_parts<'a>(
data: *const T,
len: usize,
) -> &'a IndexSlice<I, [T]>
pub unsafe fn from_raw_parts<'a>( data: *const T, len: usize, ) -> &'a IndexSlice<I, [T]>
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 IndexSlice<I, [T]>
pub unsafe fn from_raw_parts_mut<'a>( data: *mut T, len: usize, ) -> &'a mut IndexSlice<I, [T]>
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 const fn split_first(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
pub const 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 const fn split_last(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
pub const 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, A> AsMut<IndexSlice<I, [A]>> for IndexVec<I, A>where
I: Idx,
impl<I, A> AsMut<IndexSlice<I, [A]>> for IndexVec<I, A>where
I: Idx,
Source§fn as_mut(&mut self) -> &mut IndexSlice<I, [A]>
fn as_mut(&mut self) -> &mut IndexSlice<I, [A]>
Source§impl<I, A> AsRef<IndexSlice<I, [A]>> for IndexVec<I, A>where
I: Idx,
impl<I, A> AsRef<IndexSlice<I, [A]>> for IndexVec<I, A>where
I: Idx,
Source§fn as_ref(&self) -> &IndexSlice<I, [A]>
fn as_ref(&self) -> &IndexSlice<I, [A]>
Source§impl<I, T> BorrowMut<IndexSlice<I, [T]>> for IndexVec<I, T>where
I: Idx,
impl<I, T> BorrowMut<IndexSlice<I, [T]>> for IndexVec<I, T>where
I: Idx,
Source§fn borrow_mut(&mut self) -> &mut IndexSlice<I, [T]>
fn borrow_mut(&mut self) -> &mut IndexSlice<I, [T]>
Source§impl<I, T> Clone for IndexSlice<I, T>
impl<I, T> 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<I, T> Debug for IndexSlice<I, T>
impl<I, T> Debug for IndexSlice<I, T>
Source§impl<I, A> FromIterator<A> for Box<IndexSlice<I, [A]>>where
I: Idx,
impl<I, A> FromIterator<A> for Box<IndexSlice<I, [A]>>where
I: Idx,
Source§fn from_iter<T>(iter: T) -> Box<IndexSlice<I, [A]>>where
T: IntoIterator<Item = A>,
fn from_iter<T>(iter: T) -> Box<IndexSlice<I, [A]>>where
T: IntoIterator<Item = A>,
Source§impl<I, T> Hash for IndexSlice<I, [T]>
impl<I, T> Hash for IndexSlice<I, [T]>
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, T> IntoIterator for &'a IndexSlice<I, [T]>where
I: Idx,
impl<'a, I, T> IntoIterator for &'a IndexSlice<I, [T]>where
I: Idx,
Source§impl<'a, I, T> IntoIterator for &'a mut IndexSlice<I, [T]>where
I: Idx,
impl<'a, I, T> IntoIterator for &'a mut IndexSlice<I, [T]>where
I: Idx,
Source§impl<I, A> IntoIterator for Box<IndexSlice<I, [A]>>where
I: Idx,
impl<I, A> IntoIterator for Box<IndexSlice<I, [A]>>where
I: Idx,
Source§impl<I, T> Ord for IndexSlice<I, [T]>
impl<I, T> Ord for IndexSlice<I, [T]>
Source§impl<'a, 'b, A, B, I, J> PartialEq<&'a IndexSlice<J, [B]>> for IndexSlice<I, [A]>
impl<'a, 'b, A, B, I, J> PartialEq<&'a IndexSlice<J, [B]>> for IndexSlice<I, [A]>
Source§impl<'a, 'b, A, B, I, J> PartialEq<&'b IndexSlice<J, [B]>> for IndexVec<I, A>
impl<'a, 'b, A, B, I, J> PartialEq<&'b IndexSlice<J, [B]>> for IndexVec<I, A>
Source§impl<'a, 'b, A, B, I, J> PartialEq<&'a mut IndexSlice<J, [B]>> for IndexSlice<I, [A]>
impl<'a, 'b, A, B, I, J> PartialEq<&'a mut IndexSlice<J, [B]>> for IndexSlice<I, [A]>
Source§impl<'a, 'b, A, B, I, J> PartialEq<&'b mut IndexSlice<J, [B]>> for IndexVec<I, A>
impl<'a, 'b, A, B, I, J> PartialEq<&'b mut IndexSlice<J, [B]>> for IndexVec<I, A>
Source§impl<I, A, B> PartialEq<IndexSlice<I, [B]>> for IndexSlice<I, [A]>
impl<I, A, B> PartialEq<IndexSlice<I, [B]>> for IndexSlice<I, [A]>
Source§impl<I, T> PartialOrd for IndexSlice<I, [T]>where
I: Idx,
T: PartialOrd,
impl<I, T> PartialOrd for IndexSlice<I, [T]>where
I: Idx,
T: PartialOrd,
Source§impl<I, T> ToOwned for IndexSlice<I, [T]>
impl<I, T> ToOwned for IndexSlice<I, [T]>
impl<I, T> Copy for IndexSlice<I, T>
impl<I, A> Eq for IndexSlice<I, [A]>
impl<I, T> Send for IndexSlice<I, [T]>
Auto Trait Implementations§
impl<I, T> Freeze for IndexSlice<I, T>
impl<I, T> RefUnwindSafe for IndexSlice<I, T>where
T: RefUnwindSafe + ?Sized,
impl<I, T> !Send for IndexSlice<I, T>
impl<I, T> Sync for IndexSlice<I, T>
impl<I, T> Unpin for IndexSlice<I, T>
impl<I, T> UnwindSafe for IndexSlice<I, T>where
T: UnwindSafe + ?Sized,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T, R> CollectAndApply<T, R> for T
impl<T, R> CollectAndApply<T, R> for T
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Layout§
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.