Trait SliceIndex
pub unsafe trait SliceIndex<T: ?Sized>
A helper trait used for indexing operations.
Implementations of this trait have to promise that if the argument
to get_unchecked(_mut) is a safe reference, then so is the result.
Associated Types
type Output: ?Sized;The output type returned by methods.
Required Methods
fn get(self, slice: &T) -> Option<&Self::Output>Returns a shared reference to the output at this location, if in bounds.
fn get_mut(self, slice: &mut T) -> Option<&mut Self::Output>Returns a mutable reference to the output at this location, if in bounds.
unsafe fn get_unchecked(self, slice: *const T) -> *const Self::OutputReturns a pointer to the output at this location, without performing any bounds checking.
Safety
Calling this method with an out-of-bounds index or a dangling
slicepointer is undefined behavior even if the resulting pointer is not used.unsafe fn get_unchecked_mut(self, slice: *mut T) -> *mut Self::OutputReturns a mutable pointer to the output at this location, without performing any bounds checking.
Safety
Calling this method with an out-of-bounds index or a dangling
slicepointer is undefined behavior even if the resulting pointer is not used.fn index(self, slice: &T) -> &Self::OutputReturns a shared reference to the output at this location, panicking if out of bounds.
fn index_mut(self, slice: &mut T) -> &mut Self::OutputReturns a mutable reference to the output at this location, panicking if out of bounds.
Implementors
impl SliceIndex<ByteStr> for (Bound<usize>, Bound<usize>)impl SliceIndex<ByteStr> for IndexRangeimpl SliceIndex<ByteStr> for Range<usize>impl SliceIndex<ByteStr> for Range<usize>impl SliceIndex<ByteStr> for RangeFrom<usize>impl SliceIndex<ByteStr> for RangeFrom<usize>impl SliceIndex<ByteStr> for RangeFullimpl SliceIndex<ByteStr> for RangeInclusive<usize>impl SliceIndex<ByteStr> for RangeInclusive<usize>impl SliceIndex<ByteStr> for RangeTo<usize>impl SliceIndex<ByteStr> for RangeToInclusive<usize>impl SliceIndex<ByteStr> for RangeToInclusive<usize>impl SliceIndex<ByteStr> for usizeimpl SliceIndex<str> for (Bound<usize>, Bound<usize>)impl SliceIndex<str> for Range<usize>impl SliceIndex<str> for Range<usize>impl SliceIndex<str> for RangeFrom<usize>impl SliceIndex<str> for RangeFrom<usize>impl SliceIndex<str> for RangeFullimpl SliceIndex<str> for RangeInclusive<usize>impl SliceIndex<str> for RangeInclusive<usize>impl SliceIndex<str> for RangeTo<usize>impl SliceIndex<str> for RangeToInclusive<usize>impl SliceIndex<str> for RangeToInclusive<usize>impl<T> SliceIndex<[T]> for (Bound<usize>, Bound<usize>)impl<T> SliceIndex<[T]> for Clamp<Range<usize>>impl<T> SliceIndex<[T]> for Clamp<Range<usize>>impl<T> SliceIndex<[T]> for Clamp<RangeFrom<usize>>impl<T> SliceIndex<[T]> for Clamp<RangeFrom<usize>>impl<T> SliceIndex<[T]> for Clamp<RangeFull>impl<T> SliceIndex<[T]> for Clamp<RangeInclusive<usize>>impl<T> SliceIndex<[T]> for Clamp<RangeInclusive<usize>>impl<T> SliceIndex<[T]> for Clamp<RangeTo<usize>>impl<T> SliceIndex<[T]> for Clamp<RangeToInclusive<usize>>impl<T> SliceIndex<[T]> for Clamp<RangeToInclusive<usize>>impl<T> SliceIndex<[T]> for Clamp<usize>impl<T> SliceIndex<[T]> for IndexRangeimpl<T> SliceIndex<[T]> for Lastimpl<T> SliceIndex<[T]> for Range<usize>impl<T> SliceIndex<[T]> for Range<usize>impl<T> SliceIndex<[T]> for RangeFrom<usize>impl<T> SliceIndex<[T]> for RangeFrom<usize>impl<T> SliceIndex<[T]> for RangeFullimpl<T> SliceIndex<[T]> for RangeInclusive<usize>impl<T> SliceIndex<[T]> for RangeInclusive<usize>impl<T> SliceIndex<[T]> for RangeTo<usize>impl<T> SliceIndex<[T]> for RangeToInclusive<usize>impl<T> SliceIndex<[T]> for RangeToInclusive<usize>impl<T> SliceIndex<[T]> for usize