Struct oxc_index::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.
  • 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 an IdxRangeBounds<I>, which is basically a RangeBounds<I>.

  • Apis that take SliceIndex<usize> take an IdxSliceIndex<I>, which is basically a SliceIndex<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 because v.iter().enumerate() would be (usize, &T), but you want (I, &T).

The following extensions are added:

Fields§

§raw: T

Implementations§

source§

impl<I: Idx, T> IndexSlice<I, [T]>

source

pub fn new<S: AsRef<[T]> + ?Sized>(s: &S) -> &Self

Construct a new IdxSlice by wrapping an existing slice.

source

pub fn new_mut<S: AsMut<[T]> + ?Sized>(s: &mut S) -> &mut Self

Construct a new mutable IdxSlice by wrapping an existing mutable slice.

source

pub fn from_slice(s: &[T]) -> &Self

Construct a new IdxSlice by wrapping an existing slice.

source

pub fn from_slice_mut(s: &mut [T]) -> &mut Self

Construct a new mutable IdxSlice by wrapping an existing mutable slice.

source

pub fn to_vec(&self) -> IndexVec<I, T>
where T: Clone,

Copies self into a new IndexVec.

source

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.

source

pub fn as_raw_slice_mut(&mut self) -> &mut [T]

Returns the underlying slice.

source

pub fn as_raw_slice(&self) -> &[T]

Returns the underlying slice.

source

pub fn as_mut_ptr(&mut self) -> *mut T

Returns an unsafe mutable pointer to the slice’s buffer.

source

pub fn as_ptr(&self) -> *const T

Returns an unsafe pointer to the slice’s buffer.

§Panics
source

pub fn last_idx(&self) -> I

Return the index of the last element, or panic.

§Panics
source

pub fn len(&self) -> usize

Returns the length of our slice.

source

pub fn len_idx(&self) -> I

Returns the length of our slice as an I.

source

pub fn is_empty(&self) -> bool

Returns true if we’re empty.

source

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.

source

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.

source

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.

source

pub fn indices(&self) -> Map<Range<usize>, fn(_: usize) -> I>

Get an iterator over all our indices.

source

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.

source

pub fn sort(&mut self)
where T: Ord,

Forwards to the slice’s sort implementation.

source

pub fn sort_by<F: FnMut(&T, &T) -> Ordering>(&mut self, compare: F)

Forwards to the slice’s sort_by implementation.

source

pub fn sort_by_key<F: FnMut(&T) -> K, K: Ord>(&mut self, f: F)

Forwards to the slice’s sort_by_key implementation.

source

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.

source

pub fn sort_unstable(&mut self)
where T: Ord,

Forwards to the slice’s sort_unstable implementation.

source

pub fn sort_unstable_by<F: FnMut(&T, &T) -> Ordering>(&mut self, compare: F)

Forwards to the slice’s sort_unstable_by implementation.

source

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.

source

pub fn ends_with<S: AsRef<[T]> + ?Sized>(&self, needle: &S) -> bool
where T: PartialEq,

Forwards to the slice’s ends_with implementation.

source

pub fn starts_with<S: AsRef<[T]> + ?Sized>(&self, needle: &S) -> bool
where T: PartialEq,

Forwards to the slice’s starts_with implementation.

source

pub fn contains(&self, x: &T) -> bool
where T: PartialEq,

Forwards to the slice’s contains implementation.

source

pub fn reverse(&mut self)

Forwards to the slice’s reverse implementation.

Call slice::binary_search converting the indices it gives us back as needed.

§Errors
source

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.

§Errors
source

pub fn copy_from_slice(&mut self, src: &Self)
where T: Copy,

Copies all elements from src into self, using a memcpy.

source

pub fn clone_from_slice(&mut self, src: &Self)
where T: Clone,

Copies the elements from src into self.

source

pub fn swap_with_slice(&mut self, other: &mut Self)

Swaps all elements in self with those in other.

source

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.

§Errors
source

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.

source

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.

source

pub fn swap(&mut self, a: I, b: I)

Swaps two elements in our vector.

source

pub fn split_at(&self, a: I) -> (&Self, &Self)

Divides our slice into two at an index.

source

pub fn split_at_mut(&mut self, a: I) -> (&mut Self, &mut Self)

Divides our slice into two at an index.

source

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

source

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

source

pub fn last(&self) -> Option<&T>

Return the the last element, if we are not empty.

source

pub fn last_mut(&mut self) -> Option<&mut T>

Return the the last element, if we are not empty.

source

pub fn first(&self) -> Option<&T>

Return the the first element, if we are not empty.

source

pub fn first_mut(&mut self) -> Option<&mut T>

Return the the first element, if we are not empty.

source

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.

source

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.

source

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

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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 IndexSlices with the correct index type.

source

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 IndexSlices with the correct index type.

source

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 IndexSlices with the correct index type.

source

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 IndexSlices with the correct index type.

source

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 IndexSlices with the correct index type.

source

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 IndexSlices with the correct index type.

source

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 IndexSlices with the correct index type.

source

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 IndexSlices with the correct index type.

source

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.

source

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.

source

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.

source

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.

source

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.

source

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<[A]> for IndexSlice<I, [A]>

source§

fn as_mut(&mut self) -> &mut [A]

Converts this type into a mutable reference of the (usually inferred) input type.
source§

impl<I: Idx, A> AsMut<IndexSlice<I, [A]>> for IndexVec<I, A>

source§

fn as_mut(&mut self) -> &mut IndexSlice<I, [A]>

Converts this type into a mutable reference of the (usually inferred) input type.
source§

impl<I: Idx, A> AsRef<[A]> for IndexSlice<I, [A]>

source§

fn as_ref(&self) -> &[A]

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<I: Idx, A> AsRef<IndexSlice<I, [A]>> for IndexVec<I, A>

source§

fn as_ref(&self) -> &IndexSlice<I, [A]>

Converts this type into a shared reference of the (usually inferred) input type.
source§

impl<I: Idx, T> Borrow<IndexSlice<I, [T]>> for IndexVec<I, T>

source§

fn borrow(&self) -> &IndexSlice<I, [T]>

Immutably borrows from an owned value. Read more
source§

impl<I: Idx, T> BorrowMut<IndexSlice<I, [T]>> for IndexVec<I, T>

source§

fn borrow_mut(&mut self) -> &mut IndexSlice<I, [T]>

Mutably borrows from an owned value. Read more
source§

impl<I: Idx, T: Clone> Clone for Box<IndexSlice<I, [T]>>

source§

fn clone(&self) -> Self

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<I: Clone + Idx, T: Clone + ?Sized> Clone for IndexSlice<I, T>

source§

fn clone(&self) -> IndexSlice<I, T>

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl<I: Idx, T: Debug + ?Sized> Debug for IndexSlice<I, T>

source§

fn fmt(&self, fmt: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl<I: Idx, T> Default for &IndexSlice<I, [T]>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<I: Idx, T> Default for &mut IndexSlice<I, [T]>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<I: Idx, A> Default for Box<IndexSlice<I, [A]>>

source§

fn default() -> Self

Returns the “default value” for a type. Read more
source§

impl<'a, I: Idx, T> From<&'a [T]> for &'a IndexSlice<I, [T]>

source§

fn from(a: &'a [T]) -> Self

Converts to this type from the input type.
source§

impl<'a, I: Idx, T: Clone> From<&'a IndexSlice<I, [T]>> for IndexVec<I, T>

source§

fn from(src: &'a IndexSlice<I, [T]>) -> Self

Converts to this type from the input type.
source§

impl<'a, I: Idx, T> From<&'a mut [T]> for &'a mut IndexSlice<I, [T]>

source§

fn from(a: &'a mut [T]) -> Self

Converts to this type from the input type.
source§

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

Converts to this type from the input type.
source§

impl<I: Idx, T> From<Box<[T]>> for Box<IndexSlice<I, [T]>>

source§

fn from(b: Box<[T]>) -> Self

Converts to this type from the input type.
source§

impl<I: Idx, T> From<IndexVec<I, T>> for Box<IndexSlice<I, [T]>>

source§

fn from(src: IndexVec<I, T>) -> Self

Converts to this type from the input type.
source§

impl<I: Idx, A> FromIterator<A> for Box<IndexSlice<I, [A]>>

source§

fn from_iter<T: IntoIterator<Item = A>>(iter: T) -> Self

Creates a value from an iterator. Read more
source§

impl<I: Idx, T: Hash> Hash for IndexSlice<I, [T]>

source§

fn hash<H: Hasher>(&self, h: &mut H)

Feeds this value into the given Hasher. Read more
source§

impl<I, R, T> Index<R> for IndexSlice<I, [T]>
where I: Idx, R: IdxSliceIndex<I, T>,

§

type Output = <R as IdxSliceIndex<I, T>>::Output

The returned type after indexing.
source§

fn index(&self, index: R) -> &R::Output

Performs the indexing (container[index]) operation. Read more
source§

impl<I, R, T> IndexMut<R> for IndexSlice<I, [T]>
where I: Idx, R: IdxSliceIndex<I, T>,

source§

fn index_mut(&mut self, index: R) -> &mut R::Output

Performs the mutable indexing (container[index]) operation. Read more
source§

impl<'a, I: Idx, T> IntoIterator for &'a IndexSlice<I, [T]>

§

type IntoIter = Iter<'a, T>

Which kind of iterator are we turning this into?
§

type Item = &'a T

The type of the elements being iterated over.
source§

fn into_iter(self) -> Iter<'a, T>

Creates an iterator from a value. Read more
source§

impl<'a, I: Idx, T> IntoIterator for &'a mut IndexSlice<I, [T]>

§

type IntoIter = IterMut<'a, T>

Which kind of iterator are we turning this into?
§

type Item = &'a mut T

The type of the elements being iterated over.
source§

fn into_iter(self) -> IterMut<'a, T>

Creates an iterator from a value. Read more
source§

impl<I: Idx, A> IntoIterator for Box<IndexSlice<I, [A]>>

§

type IntoIter = IntoIter<A>

Which kind of iterator are we turning this into?
§

type Item = A

The type of the elements being iterated over.
source§

fn into_iter(self) -> Self::IntoIter

Creates an iterator from a value. Read more
source§

impl<I: Idx, T: Ord> Ord for IndexSlice<I, [T]>

source§

fn cmp(&self, other: &IndexSlice<I, [T]>) -> Ordering

This method returns an Ordering between self and other. Read more
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 0]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 0]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 0]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 1]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 1]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 1]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 10]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 10]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 10]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 11]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 11]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 11]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 12]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 12]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 12]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 13]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 13]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 13]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 14]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 14]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 14]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 15]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 15]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 15]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 16]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 16]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 16]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 17]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 17]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 17]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 18]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 18]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 18]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 19]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 19]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 19]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 2]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 2]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 2]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 20]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 20]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 20]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 21]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 21]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 21]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 22]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 22]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 22]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 23]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 23]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 23]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 24]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 24]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 24]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 25]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 25]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 25]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 26]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 26]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 26]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 27]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 27]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 27]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 28]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 28]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 28]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 29]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 29]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 29]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 3]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 3]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 3]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 30]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 30]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 30]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 31]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 31]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 31]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 32]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 32]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 32]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 4]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 4]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 4]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 5]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 5]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 5]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 6]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 6]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 6]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 7]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 7]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 7]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 8]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 8]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 8]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b [B; 9]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b [B; 9]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b [B; 9]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'a IndexSlice<J, [B]>> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'a IndexSlice<J, [B]>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'a IndexSlice<J, [B]>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'b IndexSlice<J, [B]>> for IndexVec<I, A>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b IndexSlice<J, [B]>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b IndexSlice<J, [B]>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<&'b mut [B]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b mut [B]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b mut [B]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'a mut IndexSlice<J, [B]>> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'a mut IndexSlice<J, [B]>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'a mut IndexSlice<J, [B]>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<&'b mut IndexSlice<J, [B]>> for IndexVec<I, A>
where A: PartialEq<B>,

source§

fn eq(&self, other: &&'b mut IndexSlice<J, [B]>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &&'b mut IndexSlice<J, [B]>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Idx, A, B> PartialEq<[B]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 0]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 0]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 0]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 1]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 1]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 1]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 10]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 10]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 10]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 11]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 11]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 11]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 12]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 12]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 12]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 13]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 13]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 13]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 14]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 14]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 14]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 15]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 15]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 15]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 16]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 16]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 16]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 17]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 17]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 17]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 18]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 18]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 18]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 19]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 19]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 19]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 2]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 2]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 2]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 20]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 20]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 20]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 21]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 21]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 21]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 22]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 22]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 22]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 23]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 23]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 23]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 24]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 24]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 24]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 25]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 25]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 25]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 26]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 26]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 26]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 27]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 27]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 27]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 28]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 28]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 28]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 29]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 29]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 29]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 3]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 3]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 3]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 30]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 30]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 30]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 31]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 31]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 31]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 32]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 32]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 32]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 4]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 4]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 4]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 5]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 5]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 5]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 6]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 6]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 6]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 7]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 7]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 7]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 8]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 8]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 8]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<[B; 9]> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &[B; 9]) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &[B; 9]) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Idx, A, B> PartialEq<IndexSlice<I, [B]>> for IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &IndexSlice<I, [B]>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &IndexSlice<I, [B]>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<IndexVec<J, B>> for &'a IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &IndexVec<J, B>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &IndexVec<J, B>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx, J: Idx> PartialEq<IndexVec<J, B>> for &'a mut IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &IndexVec<J, B>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &IndexVec<J, B>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<Vec<B>> for &'a IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &Vec<B>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &Vec<B>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<'a, 'b, A, B, I: Idx> PartialEq<Vec<B>> for &'a mut IndexSlice<I, [A]>
where A: PartialEq<B>,

source§

fn eq(&self, other: &Vec<B>) -> bool

This method tests for self and other values to be equal, and is used by ==.
source§

fn ne(&self, other: &Vec<B>) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl<I: Idx, T: PartialOrd> PartialOrd for IndexSlice<I, [T]>

source§

fn partial_cmp(&self, other: &IndexSlice<I, [T]>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · source§

fn lt(&self, other: &Rhs) -> bool

This method tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · source§

fn le(&self, other: &Rhs) -> bool

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · source§

fn gt(&self, other: &Rhs) -> bool

This method tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · source§

fn ge(&self, other: &Rhs) -> bool

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more
source§

impl<I: Idx, T> ToOwned for IndexSlice<I, [T]>
where T: Clone,

§

type Owned = IndexVec<I, T>

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> Self::Owned

Creates owned data from borrowed data, usually by cloning. Read more
1.63.0 · source§

fn clone_into(&self, target: &mut Self::Owned)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<I: Copy + Idx, T: Copy + ?Sized> Copy for IndexSlice<I, T>

source§

impl<I: Idx, A: Eq> Eq for IndexSlice<I, [A]>

source§

impl<I: Idx, T> Send for IndexSlice<I, [T]>
where T: Send,

Auto Trait Implementations§

§

impl<I, T> Freeze for IndexSlice<I, T>
where T: Freeze + ?Sized,

§

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>
where T: Sync + ?Sized,

§

impl<I, T> Unpin for IndexSlice<I, T>
where T: Unpin + ?Sized,

§

impl<I, T> UnwindSafe for IndexSlice<I, T>
where T: UnwindSafe + ?Sized,

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.