[−][src]Struct index_vec::IndexSlice
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
impl<I: Idx, T> IndexSlice<I, [T]>
[src]
pub fn new<S: AsRef<[T]> + ?Sized>(s: &S) -> &Self
[src]
Construct a new IdxSlice by wrapping an existing slice.
pub fn new_mut<S: AsMut<[T]> + ?Sized>(s: &mut S) -> &mut Self
[src]
Construct a new mutable IdxSlice by wrapping an existing mutable slice.
pub fn from_slice(s: &[T]) -> &Self
[src]
Construct a new IdxSlice by wrapping an existing slice.
pub fn from_slice_mut(s: &mut [T]) -> &mut Self
[src]
Construct a new mutable IdxSlice by wrapping an existing mutable slice.
pub fn to_vec(&self) -> IndexVec<I, T> where
T: Clone,
[src]
T: Clone,
Copies self
into a new IndexVec
.
pub fn into_vec(self: Box<Self>) -> IndexVec<I, T>
[src]
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.
pub fn as_raw_slice_mut(&mut self) -> &mut [T]
[src]
Returns the underlying slice.
pub fn as_raw_slice(&self) -> &[T]
[src]
Returns the underlying slice.
pub fn as_mut_ptr(&mut self) -> *mut T
[src]
Returns an unsafe mutable pointer to the slice's buffer.
pub fn as_ptr(&self) -> *const T
[src]
Returns an unsafe pointer to the slice's buffer.
pub fn last_idx(&self) -> I
[src]
Return the index of the last element, or panic.
pub fn len(&self) -> usize
[src]
Returns the length of our slice.
pub fn len_idx(&self) -> I
[src]
Returns the length of our slice as an I
.
pub fn is_empty(&self) -> bool
[src]
Returns true if we're empty.
pub fn iter(&self) -> Iter<T>
[src]
Get a iterator over reverences to our values.
See also IndexSlice::iter_enumerated
, which gives you indices (of the
correct type) as you iterate.
pub fn iter_mut(&mut self) -> IterMut<T>
[src]
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.
pub fn iter_enumerated(
&self
) -> Map<Enumerate<Iter<T>>, fn(_: (usize, &T)) -> (I, &T)>
[src]
&self
) -> Map<Enumerate<Iter<T>>, fn(_: (usize, &T)) -> (I, &T)>
Similar to self.iter().enumerate()
but with indices of I
and not
usize
.
pub fn indices(&self) -> Map<Range<usize>, fn(_: usize) -> I>
[src]
Get an interator over all our indices.
pub fn iter_mut_enumerated(
&mut self
) -> Map<Enumerate<IterMut<T>>, fn(_: (usize, &mut T)) -> (I, &mut T)>
[src]
&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
.
pub fn sort(&mut self) where
T: Ord,
[src]
T: Ord,
Forwards to the slice's sort
implementation.
pub fn sort_by<F: FnMut(&T, &T) -> Ordering>(&mut self, compare: F)
[src]
Forwards to the slice's sort_by
implementation.
pub fn sort_by_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
[src]
Forwards to the slice's sort_by_key
implementation.
pub fn sort_by_cached_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
[src]
Forwards to the slice's sort_by_cached_key
implementation.
pub fn sort_unstable(&mut self) where
T: Ord,
[src]
T: Ord,
Forwards to the slice's sort_unstable
implementation.
pub fn sort_unstable_by<F: FnMut(&T, &T) -> Ordering>(&mut self, compare: F)
[src]
Forwards to the slice's sort_unstable_by
implementation.
pub fn sort_unstable_by_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)
[src]
Forwards to the slice's sort_unstable_by_key
implementation.
pub fn ends_with<S: AsRef<[T]> + ?Sized>(&self, needle: &S) -> bool where
T: PartialEq,
[src]
T: PartialEq,
Forwards to the slice's ends_with
implementation.
pub fn starts_with<S: AsRef<[T]> + ?Sized>(&self, needle: &S) -> bool where
T: PartialEq,
[src]
T: PartialEq,
Forwards to the slice's starts_with
implementation.
pub fn contains(&self, x: &T) -> bool where
T: PartialEq,
[src]
T: PartialEq,
Forwards to the slice's contains
implementation.
pub fn reverse(&mut self)
[src]
Forwards to the slice's reverse
implementation.
pub fn binary_search(&self, value: &T) -> Result<I, I> where
T: Ord,
[src]
T: Ord,
Call slice::binary_search
converting the indices it gives us back as
needed.
pub fn binary_search_by<'a, F: FnMut(&'a T) -> Ordering>(
&'a self,
f: F
) -> Result<I, I>
[src]
&'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.
pub fn copy_from_slice(&mut self, src: &Self) where
T: Copy,
[src]
T: Copy,
Copies all elements from src
into self
, using a memcpy.
pub fn clone_from_slice(&mut self, src: &Self) where
T: Clone,
[src]
T: Clone,
Copies the elements from src
into self
.
pub fn swap_with_slice(&mut self, other: &mut Self)
[src]
Swaps all elements in self
with those in other
.
pub fn binary_search_by_key<'a, B: Ord, F: FnMut(&'a T) -> B>(
&'a self,
b: &B,
f: F
) -> Result<I, I>
[src]
&'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.
pub fn position<F: FnMut(&T) -> bool>(&self, f: F) -> Option<I>
[src]
Searches for an element in an iterator, returning its index. This is
equivalent to Iterator::position
, but returns I
and not usize
.
pub fn rposition<F: FnMut(&T) -> bool>(&self, f: F) -> Option<I>
[src]
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
.
pub fn swap(&mut self, a: I, b: I)
[src]
Swaps two elements in our vector.
pub fn split_at(&self, a: I) -> (&Self, &Self)
[src]
Divides our slice into two at an index.
pub fn split_at_mut(&mut self, a: I) -> (&mut Self, &mut Self)
[src]
Divides our slice into two at an index.
pub fn rotate_left(&mut self, mid: I)
[src]
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
pub fn rotate_right(&mut self, k: I)
[src]
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
pub fn last(&self) -> Option<&T>
[src]
Return the the last element, if we are not empty.
pub fn last_mut(&mut self) -> Option<&mut T>
[src]
Return the the last element, if we are not empty.
pub fn first(&self) -> Option<&T>
[src]
Return the the first element, if we are not empty.
pub fn first_mut(&mut self) -> Option<&mut T>
[src]
Return the the first element, if we are not empty.
pub fn copy_within<R: IdxRangeBounds<I>>(&mut self, src: R, dst: I) where
T: Copy,
[src]
T: Copy,
Copies elements from one part of the slice to another part of itself, using a memmove.
pub fn get<J: IdxSliceIndex<I, T>>(&self, index: J) -> Option<&J::Output>
[src]
Get a ref to the item at the provided index, or None for out of bounds.
pub fn get_mut<J: IdxSliceIndex<I, T>>(
&mut self,
index: J
) -> Option<&mut J::Output>
[src]
&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
pub fn windows(
&self,
size: usize
) -> Map<Windows<T>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
pub fn chunks(
&self,
size: usize
) -> Map<Chunks<T>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
pub fn chunks_mut(
&mut self,
size: usize
) -> Map<ChunksMut<T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
[src]
&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.
pub fn chunks_exact(
&self,
chunk_size: usize
) -> Map<ChunksExact<T>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
pub fn chunks_exact_mut(
&mut self,
chunk_size: usize
) -> Map<ChunksExactMut<T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
[src]
&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.
pub fn rchunks(
&self,
size: usize
) -> Map<RChunks<T>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
pub fn rchunks_mut(
&mut self,
size: usize
) -> Map<RChunksMut<T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
[src]
&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.
pub fn rchunks_exact(
&self,
chunk_size: usize
) -> Map<RChunksExact<T>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
pub fn rchunks_exact_mut(
&mut self,
chunk_size: usize
) -> Map<RChunksExactMut<T>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
[src]
&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.
pub fn split<F: FnMut(&T) -> bool>(
&self,
f: F
) -> Map<Split<T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
pub fn split_mut<F: FnMut(&T) -> bool>(
&mut self,
f: F
) -> Map<SplitMut<T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
[src]
&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.
pub fn rsplit<F: FnMut(&T) -> bool>(
&self,
f: F
) -> Map<RSplit<T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
pub fn rsplit_mut<F: FnMut(&T) -> bool>(
&mut self,
f: F
) -> Map<RSplitMut<T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
[src]
&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.
pub fn splitn<F: FnMut(&T) -> bool>(
&self,
n: usize,
f: F
) -> Map<SplitN<T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
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]>>
[src]
&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.
pub fn rsplitn<F: FnMut(&T) -> bool>(
&self,
n: usize,
f: F
) -> Map<RSplitN<T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
[src]
&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.
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]>>
[src]
&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.
pub unsafe fn from_raw_parts<'a>(data: *const T, len: usize) -> &'a Self
[src]
Create a IdxSlice from its pointer and length.
Safety
This is equivalent to core::slice::from_raw_parts
and has the same
safety caveats.
pub unsafe fn from_raw_parts_mut<'a>(data: *mut T, len: usize) -> &'a mut Self
[src]
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.
pub fn split_first(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
[src]
Returns the first and all the rest of the elements of the slice, or None
if it is empty.
pub fn split_first_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
[src]
Returns the first and all the rest of the elements of the slice, or None
if it is empty.
pub fn split_last(&self) -> Option<(&T, &IndexSlice<I, [T]>)>
[src]
Returns the last and all the rest of the elements of the slice, or None
if it is empty.
pub fn split_last_mut(&mut self) -> Option<(&mut T, &mut IndexSlice<I, [T]>)>
[src]
Returns the last and all the rest of the elements of the slice, or None
if it is empty.
Trait Implementations
impl<I: Idx, A> AsMut<[A]> for IndexSlice<I, [A]>
[src]
impl<I: Idx, A> AsMut<IndexSlice<I, [A]>> for IndexVec<I, A>
[src]
fn as_mut(&mut self) -> &mut IndexSlice<I, [A]>
[src]
impl<I: Idx, A> AsRef<[A]> for IndexSlice<I, [A]>
[src]
impl<I: Idx, A> AsRef<IndexSlice<I, [A]>> for IndexVec<I, A>
[src]
fn as_ref(&self) -> &IndexSlice<I, [A]>
[src]
impl<I: Idx, T> Borrow<IndexSlice<I, [T]>> for IndexVec<I, T>
[src]
fn borrow(&self) -> &IndexSlice<I, [T]>
[src]
impl<I: Idx, T> BorrowMut<IndexSlice<I, [T]>> for IndexVec<I, T>
[src]
fn borrow_mut(&mut self) -> &mut IndexSlice<I, [T]>
[src]
impl<I: Clone + Idx, T: Clone + ?Sized> Clone for IndexSlice<I, T>
[src]
fn clone(&self) -> IndexSlice<I, T>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<I: Copy + Idx, T: Copy + ?Sized> Copy for IndexSlice<I, T>
[src]
impl<I: Idx, T: Debug + ?Sized> Debug for IndexSlice<I, T>
[src]
impl<'_, I: Idx, T> Default for &'_ IndexSlice<I, [T]>
[src]
impl<'_, I: Idx, T> Default for &'_ mut IndexSlice<I, [T]>
[src]
impl<I: Idx, A: Eq> Eq for IndexSlice<I, [A]>
[src]
impl<'a, I: Idx, T> From<&'a [T]> for &'a IndexSlice<I, [T]>
[src]
impl<'a, I: Idx, T: Clone> From<&'a IndexSlice<I, [T]>> for IndexVec<I, T>
[src]
fn from(src: &'a IndexSlice<I, [T]>) -> Self
[src]
impl<'a, I: Idx, T> From<&'a mut [T]> for &'a mut IndexSlice<I, [T]>
[src]
impl<'a, I: Idx, T: Clone> From<&'a mut IndexSlice<I, [T]>> for IndexVec<I, T>
[src]
fn from(src: &'a mut IndexSlice<I, [T]>) -> Self
[src]
impl<I: Idx, T: Hash> Hash for IndexSlice<I, [T]>
[src]
fn hash<H: Hasher>(&self, h: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<I, R, T> Index<R> for IndexSlice<I, [T]> where
I: Idx,
R: IdxSliceIndex<I, T>,
[src]
I: Idx,
R: IdxSliceIndex<I, T>,
type Output = R::Output
The returned type after indexing.
fn index(&self, index: R) -> &R::Output
[src]
impl<I, R, T> IndexMut<R> for IndexSlice<I, [T]> where
I: Idx,
R: IdxSliceIndex<I, T>,
[src]
I: Idx,
R: IdxSliceIndex<I, T>,
impl<'a, I: Idx, T> IntoIterator for &'a IndexSlice<I, [T]>
[src]
type Item = &'a T
The type of the elements being iterated over.
type IntoIter = Iter<'a, T>
Which kind of iterator are we turning this into?
fn into_iter(self) -> Iter<'a, T>
[src]
impl<'a, I: Idx, T> IntoIterator for &'a mut IndexSlice<I, [T]>
[src]
type Item = &'a mut T
The type of the elements being iterated over.
type IntoIter = IterMut<'a, T>
Which kind of iterator are we turning this into?
fn into_iter(self) -> IterMut<'a, T>
[src]
impl<I: Idx, T: Ord> Ord for IndexSlice<I, [T]>
[src]
fn cmp(&self, other: &IndexSlice<I, [T]>) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[src]
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'a IndexSlice<J, [B]>> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
fn eq(&self, other: &&'a IndexSlice<J, [B]>) -> bool
[src]
fn ne(&self, other: &&'a IndexSlice<J, [B]>) -> bool
[src]
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'a mut IndexSlice<J, [B]>> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
fn eq(&self, other: &&'a mut IndexSlice<J, [B]>) -> bool
[src]
fn ne(&self, other: &&'a mut IndexSlice<J, [B]>) -> bool
[src]
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 0]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 1]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 10]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 11]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 12]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 13]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 14]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 15]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 16]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 17]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 18]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 19]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 2]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 20]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 21]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 22]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 23]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 24]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 25]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 26]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 27]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 28]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 29]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 3]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 30]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 31]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 32]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 4]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 5]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 6]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 7]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 8]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 9]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
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>,
[src]
A: PartialEq<B>,
fn eq(&self, other: &&'b IndexSlice<J, [B]>) -> bool
[src]
fn ne(&self, other: &&'b IndexSlice<J, [B]>) -> bool
[src]
impl<'a, 'b, A, B, I: Idx> PartialEq<&'b mut [B]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
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>,
[src]
A: PartialEq<B>,
fn eq(&self, other: &&'b mut IndexSlice<J, [B]>) -> bool
[src]
fn ne(&self, other: &&'b mut IndexSlice<J, [B]>) -> bool
[src]
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 0]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 1]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 10]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 11]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 12]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 13]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 14]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 15]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 16]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 17]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 18]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 19]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 2]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 20]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 21]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 22]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 23]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 24]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 25]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 26]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 27]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 28]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 29]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 3]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 30]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 31]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 32]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 4]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 5]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 6]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 7]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 8]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 9]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<I: Idx, A, B> PartialEq<[B]> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<I: Idx, A, B> PartialEq<IndexSlice<I, [B]>> for IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
fn eq(&self, other: &IndexSlice<I, [B]>) -> bool
[src]
fn ne(&self, other: &IndexSlice<I, [B]>) -> bool
[src]
impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<IndexVec<J, B>> for &'a IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
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>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<Vec<B>> for &'a IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<'a, 'b, A, B, I: Idx> PartialEq<Vec<B>> for &'a mut IndexSlice<I, [A]> where
A: PartialEq<B>,
[src]
A: PartialEq<B>,
impl<I: Idx, T: PartialOrd> PartialOrd<IndexSlice<I, [T]>> for IndexSlice<I, [T]>
[src]
fn partial_cmp(&self, other: &IndexSlice<I, [T]>) -> Option<Ordering>
[src]
#[must_use]fn lt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn le(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn gt(&self, other: &Rhs) -> bool
1.0.0[src]
#[must_use]fn ge(&self, other: &Rhs) -> bool
1.0.0[src]
impl<I: Idx, T> Send for IndexSlice<I, [T]> where
T: Send,
[src]
T: Send,
impl<I: Idx, T> ToOwned for IndexSlice<I, [T]> where
T: Clone,
[src]
T: Clone,
Auto Trait Implementations
impl<I, T: ?Sized> Send for IndexSlice<I, T> where
T: Send,
T: Send,
impl<I, T: ?Sized> Sync for IndexSlice<I, T> where
T: Sync,
T: Sync,
impl<I, T: ?Sized> Unpin for IndexSlice<I, T> where
T: Unpin,
T: Unpin,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,