SliceIndex

Trait SliceIndex 

1.28.0 (const: unstable) · Source
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§

1.28.0 · Source

type Output: ?Sized

The output type returned by methods.

Required Methods§

Source

fn get(self, slice: &T) -> Option<&Self::Output>

🔬This is a nightly-only experimental API. (slice_index_methods)

Returns a shared reference to the output at this location, if in bounds.

Source

fn get_mut(self, slice: &mut T) -> Option<&mut Self::Output>

🔬This is a nightly-only experimental API. (slice_index_methods)

Returns a mutable reference to the output at this location, if in bounds.

Source

unsafe fn get_unchecked(self, slice: *const T) -> *const Self::Output

🔬This is a nightly-only experimental API. (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.

Source

unsafe fn get_unchecked_mut(self, slice: *mut T) -> *mut Self::Output

🔬This is a nightly-only experimental API. (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.

Source

fn index(self, slice: &T) -> &Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)

Returns a shared reference to the output at this location, panicking if out of bounds.

Source

fn index_mut(self, slice: &mut T) -> &mut Self::Output

🔬This is a nightly-only experimental API. (slice_index_methods)

Returns a mutable reference to the output at this location, panicking if out of bounds.

Implementors§

1.53.0 · Source§

impl<T> SliceIndex<[T]> for (Bound<usize>, Bound<usize>)

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.

1.15.0 (const: unstable) · Source§

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.

1.15.0 (const: unstable) · Source§

impl<T> SliceIndex<[T]> for RangeFull

1.26.0 (const: unstable) · Source§

impl<T> SliceIndex<[T]> for RangeInclusive<usize>

The methods index and index_mut panic if:

  • the end of the range is usize::MAX or
  • 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 RangeTo<usize>

The methods index and index_mut panic if the end of the range is out of bounds.

1.26.0 (const: unstable) · Source§

impl<T> SliceIndex<[T]> for RangeToInclusive<usize>

The methods index and index_mut panic if the end of the range is out of bounds.