pub unsafe trait SliceIndex<T: ?Sized>: Sealed {
type Output: ?Sized;
// Required methods
fn get(self, slice: &T) -> Option<&Self::Output>;
fn get_mut(self, slice: &mut T) -> Option<&mut Self::Output>;
unsafe fn get_unchecked(self, slice: *const T) -> *const Self::Output;
unsafe fn get_unchecked_mut(self, slice: *mut T) -> *mut Self::Output;
fn index(self, slice: &T) -> &Self::Output;
fn index_mut(self, slice: &mut T) -> &mut Self::Output;
}Expand description
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.
Required Associated Types§
Required Methods§
Sourcefn get(self, slice: &T) -> Option<&Self::Output>
🔬This is a nightly-only experimental API. (slice_index_methods)
fn get(self, slice: &T) -> Option<&Self::Output>
slice_index_methods)Returns a shared reference to the output at this location, if in bounds.
Sourcefn get_mut(self, slice: &mut T) -> Option<&mut Self::Output>
🔬This is a nightly-only experimental API. (slice_index_methods)
fn get_mut(self, slice: &mut T) -> Option<&mut Self::Output>
slice_index_methods)Returns a mutable reference to the output at this location, if in bounds.
Sourceunsafe fn get_unchecked(self, slice: *const T) -> *const Self::Output
🔬This is a nightly-only experimental API. (slice_index_methods)
unsafe fn get_unchecked(self, slice: *const T) -> *const Self::Output
slice_index_methods)Returns 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 slice pointer
is undefined behavior even if the resulting pointer is not used.
Sourceunsafe fn get_unchecked_mut(self, slice: *mut T) -> *mut Self::Output
🔬This is a nightly-only experimental API. (slice_index_methods)
unsafe fn get_unchecked_mut(self, slice: *mut T) -> *mut Self::Output
slice_index_methods)Returns 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 slice pointer
is undefined behavior even if the resulting pointer is not used.
Implementors§
1.15.0 (const: unstable) · Source§impl<T> SliceIndex<[T]> for usize
The methods index and index_mut panic if the index is out of bounds.
impl<T> SliceIndex<[T]> for usize
The methods index and index_mut panic if the index is out of bounds.
1.15.0 (const: unstable) · Source§impl<T> SliceIndex<[T]> for Range<usize>
The methods index and index_mut panic if:
impl<T> SliceIndex<[T]> for Range<usize>
The methods index and index_mut panic if:
- the start of the range is greater than the end of the range or
- the end of the range is out of bounds.
1.15.0 (const: unstable) · Source§impl<T> SliceIndex<[T]> for RangeFrom<usize>
The methods index and index_mut panic if the start of the range is out of bounds.
impl<T> SliceIndex<[T]> for RangeFrom<usize>
The methods index and index_mut panic if the start of the range is out of bounds.
1.26.0 (const: unstable) · Source§impl<T> SliceIndex<[T]> for RangeInclusive<usize>
The methods index and index_mut panic if:
impl<T> SliceIndex<[T]> for RangeInclusive<usize>
The methods index and index_mut panic if:
- the end of the range is
usize::MAXor - the start of the range is greater than the end of the range or
- the end of the range is out of bounds.