Struct oxc::index::IndexSlice

#[repr(transparent)]
pub struct IndexSlice<I, T>
where 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>][IdxRangeBounds], which is basically a RangeBounds<I>.

  • Apis that take SliceIndex<usize> take an [IdxSliceIndex<I>][IdxSliceIndex], 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§

§

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

pub fn new<S>(s: &S) -> &IndexSlice<I, [T]>
where S: AsRef<[T]> + ?Sized,

Construct a new IdxSlice by wrapping an existing slice.

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

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

pub fn from_slice(s: &[T]) -> &IndexSlice<I, [T]>

Construct a new IdxSlice by wrapping an existing slice.

pub fn from_slice_mut(s: &mut [T]) -> &mut IndexSlice<I, [T]>

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

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

Copies self into a new IndexVec.

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.

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

Returns the underlying slice.

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

Returns the underlying slice.

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

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

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

Returns an unsafe pointer to the slice’s buffer.

pub fn last_idx(&self) -> I

Return the index of the last element, or panic.

pub fn len(&self) -> usize

Returns the length of our slice.

pub fn len_idx(&self) -> I

Returns the length of our slice as an I.

pub fn is_empty(&self) -> bool

Returns true if we’re empty.

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.

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.

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.

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

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)>

Similar to self.iter_mut().enumerate() but with indices of I and not usize.

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

Forwards to the slice’s sort implementation.

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

Forwards to the slice’s sort_by implementation.

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

Forwards to the slice’s sort_by_key implementation.

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

Forwards to the slice’s sort_by_cached_key implementation.

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

Forwards to the slice’s sort_unstable implementation.

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

Forwards to the slice’s sort_unstable_by implementation.

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

Forwards to the slice’s sort_unstable_by_key implementation.

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

Forwards to the slice’s ends_with implementation.

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

Forwards to the slice’s starts_with implementation.

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

Forwards to the slice’s contains implementation.

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.

pub fn binary_search_by<'a, F>(&'a self, f: F) -> Result<I, I>
where F: FnMut(&'a T) -> Ordering,

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: &IndexSlice<I, [T]>)
where T: Copy,

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

pub fn clone_from_slice(&mut self, src: &IndexSlice<I, [T]>)
where T: Clone,

Copies the elements from src into self.

pub fn swap_with_slice(&mut self, other: &mut IndexSlice<I, [T]>)

Swaps all elements in self with those in other.

pub fn binary_search_by_key<'a, B, F>(&'a self, b: &B, f: F) -> Result<I, I>
where B: Ord, F: FnMut(&'a T) -> B,

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>(&self, f: F) -> Option<I>
where F: FnMut(&T) -> bool,

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>(&self, f: F) -> Option<I>
where F: FnMut(&T) -> bool,

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)

Swaps two elements in our vector.

pub fn split_at(&self, a: I) -> (&IndexSlice<I, [T]>, &IndexSlice<I, [T]>)

Divides our slice into two at an index.

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.

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

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

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

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

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

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

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

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

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

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

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.

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.

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

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.

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.

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.

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.

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.

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.

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.

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.

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.

pub fn split<F>( &self, f: F ) -> Map<Split<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
where F: FnMut(&T) -> bool,

Wraps the underlying slice’s split iterator with one that yields IndexSlices with the correct index type.

pub fn split_mut<F>( &mut self, f: F ) -> Map<SplitMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
where F: FnMut(&T) -> bool,

Wraps the underlying slice’s split_mut iterator with one that yields IndexSlices with the correct index type.

pub fn rsplit<F>( &self, f: F ) -> Map<RSplit<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
where F: FnMut(&T) -> bool,

Wraps the underlying slice’s rsplit iterator with one that yields IndexSlices with the correct index type.

pub fn rsplit_mut<F>( &mut self, f: F ) -> Map<RSplitMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
where F: FnMut(&T) -> bool,

Wraps the underlying slice’s rsplit_mut iterator with one that yields IndexSlices with the correct index type.

pub fn splitn<F>( &self, n: usize, f: F ) -> Map<SplitN<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
where F: FnMut(&T) -> bool,

Wraps the underlying slice’s splitn iterator with one that yields IndexSlices with the correct index type.

pub fn splitn_mut<F>( &mut self, n: usize, f: F ) -> Map<SplitNMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
where F: FnMut(&T) -> bool,

Wraps the underlying slice’s splitn_mut iterator with one that yields IndexSlices with the correct index type.

pub fn rsplitn<F>( &self, n: usize, f: F ) -> Map<RSplitN<'_, T, F>, fn(_: &[T]) -> &IndexSlice<I, [T]>>
where F: FnMut(&T) -> bool,

Wraps the underlying slice’s rsplitn iterator with one that yields IndexSlices with the correct index type.

pub fn rsplitn_mut<F>( &mut self, n: usize, f: F ) -> Map<RSplitNMut<'_, T, F>, fn(_: &mut [T]) -> &mut IndexSlice<I, [T]>>
where F: FnMut(&T) -> bool,

Wraps the underlying slice’s rsplitn_mut iterator with one that yields IndexSlices with the correct index type.

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.

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.

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.

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.

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.

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§

§

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

§

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

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

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

§

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

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

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

§

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

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

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

§

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

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

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

§

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

Immutably borrows from an owned value. Read more
§

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

§

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

Mutably borrows from an owned value. Read more
§

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

§

fn clone(&self) -> Box<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
§

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

§

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
§

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

§

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

Formats the value using the given formatter. Read more
§

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

§

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

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

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

§

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

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

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

§

fn default() -> Box<IndexSlice<I, [A]>>

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

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

§

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

Converts to this type from the input type.
§

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

§

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

Converts to this type from the input type.
§

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

§

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

Converts to this type from the input type.
§

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

§

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

Converts to this type from the input type.
§

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

§

fn from(b: Box<[T]>) -> Box<IndexSlice<I, [T]>>

Converts to this type from the input type.
§

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

§

fn from(src: IndexVec<I, T>) -> Box<IndexSlice<I, [T]>>

Converts to this type from the input type.
§

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

§

fn from_iter<T>(iter: T) -> Box<IndexSlice<I, [A]>>
where T: IntoIterator<Item = A>,

Creates a value from an iterator. Read more
§

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

§

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

Feeds this value into the given Hasher. Read more
§

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.
§

fn index(&self, index: R) -> &<R as IdxSliceIndex<I, T>>::Output

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

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

§

fn index_mut(&mut self, index: R) -> &mut <R as IdxSliceIndex<I, T>>::Output

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

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

§

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>

Creates an iterator from a value. Read more
§

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

§

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>

Creates an iterator from a value. Read more
§

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

§

type Item = A

The type of the elements being iterated over.
§

type IntoIter = IntoIter<A>

Which kind of iterator are we turning this into?
§

fn into_iter(self) -> <Box<IndexSlice<I, [A]>> as IntoIterator>::IntoIter

Creates an iterator from a value. Read more
§

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

§

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

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

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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 ==.
§

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.
§

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

§

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 ==.
§

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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

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

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.
§

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

§

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
§

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

§

type Owned = IndexVec<I, T>

The resulting type after obtaining ownership.
§

fn to_owned(&self) -> <IndexSlice<I, [T]> as ToOwned>::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
§

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

§

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

§

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

Auto Trait Implementations§

§

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

§

impl<I, T> !Send for IndexSlice<I, T>

§

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

§

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

§

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

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
§

impl<I, C> CompactStringExt for C
where I: AsRef<str>, &'a C: for<'a> IntoIterator<Item = &'a I>,

§

fn concat_compact(&self) -> CompactString

Concatenates all the items of a collection into a [CompactString] Read more
§

fn join_compact<S>(&self, seperator: S) -> CompactString
where S: AsRef<str>,

Joins all the items of a collection, placing a seperator between them, forming a [CompactString] Read more
§

impl<Q, K> Comparable<K> for Q
where Q: Ord + ?Sized, K: Borrow<Q> + ?Sized,

§

fn compare(&self, key: &K) -> Ordering

Compare self to key and return their ordering.
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

§

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
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.

§

impl<D> OwoColorize for D

§

fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>
where C: Color,

Set the foreground color generically Read more
§

fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>
where C: Color,

Set the background color generically. Read more
§

fn black<'a>(&'a self) -> FgColorDisplay<'a, Black, Self>

Change the foreground color to black
§

fn on_black<'a>(&'a self) -> BgColorDisplay<'a, Black, Self>

Change the background color to black
§

fn red<'a>(&'a self) -> FgColorDisplay<'a, Red, Self>

Change the foreground color to red
§

fn on_red<'a>(&'a self) -> BgColorDisplay<'a, Red, Self>

Change the background color to red
§

fn green<'a>(&'a self) -> FgColorDisplay<'a, Green, Self>

Change the foreground color to green
§

fn on_green<'a>(&'a self) -> BgColorDisplay<'a, Green, Self>

Change the background color to green
§

fn yellow<'a>(&'a self) -> FgColorDisplay<'a, Yellow, Self>

Change the foreground color to yellow
§

fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>

Change the background color to yellow
§

fn blue<'a>(&'a self) -> FgColorDisplay<'a, Blue, Self>

Change the foreground color to blue
§

fn on_blue<'a>(&'a self) -> BgColorDisplay<'a, Blue, Self>

Change the background color to blue
§

fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to magenta
§

fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to magenta
§

fn purple<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>

Change the foreground color to purple
§

fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>

Change the background color to purple
§

fn cyan<'a>(&'a self) -> FgColorDisplay<'a, Cyan, Self>

Change the foreground color to cyan
§

fn on_cyan<'a>(&'a self) -> BgColorDisplay<'a, Cyan, Self>

Change the background color to cyan
§

fn white<'a>(&'a self) -> FgColorDisplay<'a, White, Self>

Change the foreground color to white
§

fn on_white<'a>(&'a self) -> BgColorDisplay<'a, White, Self>

Change the background color to white
§

fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>

Change the foreground color to the terminal default
§

fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>

Change the background color to the terminal default
§

fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>

Change the foreground color to bright black
§

fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>

Change the background color to bright black
§

fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>

Change the foreground color to bright red
§

fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>

Change the background color to bright red
§

fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>

Change the foreground color to bright green
§

fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>

Change the background color to bright green
§

fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>

Change the foreground color to bright yellow
§

fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>

Change the background color to bright yellow
§

fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>

Change the foreground color to bright blue
§

fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>

Change the background color to bright blue
§

fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright magenta
§

fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright magenta
§

fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>

Change the foreground color to bright purple
§

fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>

Change the background color to bright purple
§

fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>

Change the foreground color to bright cyan
§

fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>

Change the background color to bright cyan
§

fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>

Change the foreground color to bright white
§

fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>

Change the background color to bright white
§

fn bold<'a>(&'a self) -> BoldDisplay<'a, Self>

Make the text bold
§

fn dimmed<'a>(&'a self) -> DimDisplay<'a, Self>

Make the text dim
§

fn italic<'a>(&'a self) -> ItalicDisplay<'a, Self>

Make the text italicized
§

fn underline<'a>(&'a self) -> UnderlineDisplay<'a, Self>

Make the text italicized
Make the text blink
Make the text blink (but fast!)
§

fn reversed<'a>(&'a self) -> ReversedDisplay<'a, Self>

Swap the foreground and background colors
§

fn hidden<'a>(&'a self) -> HiddenDisplay<'a, Self>

Hide the text
§

fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>

Cross out the text
§

fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the foreground color at runtime. Only use if you do not know which color will be used at compile-time. If the color is constant, use either OwoColorize::fg or a color-specific method, such as OwoColorize::green, Read more
§

fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>
where Color: DynColor,

Set the background color at runtime. Only use if you do not know what color to use at compile-time. If the color is constant, use either OwoColorize::bg or a color-specific method, such as OwoColorize::on_yellow, Read more
§

fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the foreground color to a specific RGB value.
§

fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>

Set the background color to a specific RGB value.
§

fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>

Sets the foreground color to an RGB value.
§

fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>

Sets the background color to an RGB value.
§

fn style(&self, style: Style) -> Styled<&Self>

Apply a runtime-determined style
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.