Trait SliceIndex
unsafe trait SliceIndex<T: ?Sized>: private_slice_index::Sealed
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: TraitBound { trait_: Path { path: "Sized", id: Id(12), args: None }, generic_params: [], modifier: Maybe }The output type returned by methods.
Required Methods
fn get(self: Self, slice: &T) -> Option<&<Self as >::Output>Returns a shared reference to the output at this location, if in bounds.
fn get_mut(self: Self, slice: &mut T) -> Option<&mut <Self as >::Output>Returns a mutable reference to the output at this location, if in bounds.
unsafe fn get_unchecked(self: Self, slice: *const T) -> *const <Self as >::OutputReturns a pointer to the output at this location, without performing any bounds checking.
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: Self, slice: *mut T) -> *mut <Self as >::OutputReturns a mutable pointer to the output at this location, without performing any bounds checking.
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: Self, slice: &T) -> &<Self as >::OutputReturns a shared reference to the output at this location, panicking if out of bounds.
fn index_mut(self: Self, slice: &mut T) -> &mut <Self as >::OutputReturns a mutable reference to the output at this location, panicking if out of bounds.
Implementors
impl<T> SliceIndex for Clamp<RangeInclusive<usize>>impl<T> SliceIndex for RangeInclusive<usize>impl<T> SliceIndex for RangeFrom<usize>impl<T> SliceIndex for Clamp<RangeToInclusive<usize>>impl<T> SliceIndex for RangeFrom<usize>impl SliceIndex for RangeFrom<usize>impl<T> SliceIndex for RangeFullimpl<T> SliceIndex for RangeToInclusive<usize>impl SliceIndex for Range<usize>impl<T> SliceIndex for (Bound<usize>, Bound<usize>)impl<T> SliceIndex for Lastimpl SliceIndex for RangeInclusive<usize>impl<T> SliceIndex for Clamp<usize>impl<T> SliceIndex for Range<usize>impl<T> SliceIndex for Clamp<RangeFrom<usize>>impl<T> SliceIndex for Clamp<RangeFull>impl SliceIndex for (Bound<usize>, Bound<usize>)impl SliceIndex for Range<usize>impl SliceIndex for RangeTo<usize>impl<T> SliceIndex for RangeInclusive<usize>impl SliceIndex for RangeFullimpl<T> SliceIndex for RangeToInclusive<usize>impl<T> SliceIndex for Clamp<Range<usize>>impl SliceIndex for Range<usize>impl<T> SliceIndex for Clamp<RangeTo<usize>>impl<T> SliceIndex for Range<usize>impl SliceIndex for Range<usize>impl SliceIndex for RangeToInclusive<usize>impl SliceIndex for RangeTo<usize>impl<T> SliceIndex for usizeimpl<T> SliceIndex for Clamp<RangeInclusive<usize>>impl SliceIndex for RangeFrom<usize>impl<T> SliceIndex for Clamp<RangeToInclusive<usize>>impl SliceIndex for RangeFrom<usize>impl SliceIndex for RangeInclusive<usize>impl SliceIndex for RangeInclusive<usize>impl SliceIndex for RangeFullimpl SliceIndex for RangeToInclusive<usize>impl SliceIndex for (Bound<usize>, Bound<usize>)impl<T> SliceIndex for Clamp<Range<usize>>impl<T> SliceIndex for Clamp<RangeFrom<usize>>impl SliceIndex for RangeInclusive<usize>impl SliceIndex for usizeimpl<T> SliceIndex for RangeTo<usize>impl SliceIndex for RangeFrom<usize>