Trait enso_prelude::SliceIndex1.28.0[][src]

pub unsafe trait SliceIndex<T>: Sealed where
    T: ?Sized
{ type Output: ?Sized; 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_(mut_)unchecked is a safe reference, then so is the result.

Associated Types

type Output: ?Sized[src]

The output type returned by methods.

Required methods

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

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

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

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

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

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

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

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

Returns a shared reference 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 reference is not used.

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

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

Returns a mutable reference 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 reference is not used.

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

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

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

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

Implementations on Foreign Types

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

type Output = T

pub fn get(self, slice: &[T]) -> Option<&T>[src]

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

pub fn get_mut(self, slice: &mut [T]) -> Option<&mut T>[src]

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

pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const T[src]

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

pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut T[src]

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

pub fn index(self, slice: &[T]) -> &T[src]

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

pub fn index_mut(self, slice: &mut [T]) -> &mut T[src]

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

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

type Output = [T]

pub fn get(
    self,
    slice: &[T]
) -> Option<&<(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output>
[src]

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

pub fn get_mut(
    self,
    slice: &mut [T]
) -> Option<&mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output>
[src]

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

pub unsafe fn get_unchecked(
    self,
    slice: *const [T]
) -> *const <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output
[src]

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

pub unsafe fn get_unchecked_mut(
    self,
    slice: *mut [T]
) -> *mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output
[src]

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

pub fn index(
    self,
    slice: &[T]
) -> &<(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output
[src]

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

pub fn index_mut(
    self,
    slice: &mut [T]
) -> &mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output
[src]

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

Implementors

impl SliceIndex<str> for Range<usize>1.20.0[src]

Implements substring slicing with syntax &self[begin .. end] or &mut self[begin .. end].

Returns a slice of the given string from the byte range [begin, end).

This operation is O(1).

Prior to 1.20.0, these indexing operations were still supported by direct implementation of Index and IndexMut.

Panics

Panics if begin or end does not point to the starting byte offset of a character (as defined by is_char_boundary), if begin > end, or if end > len.

Examples

let s = "Löwe 老虎 Léopard";
assert_eq!(&s[0 .. 1], "L");

assert_eq!(&s[1 .. 9], "öwe 老");

// these will panic:
// byte 2 lies within `ö`:
// &s[2 ..3];

// byte 8 lies within `老`
// &s[1 .. 8];

// byte 100 is outside the string
// &s[3 .. 100];

type Output = str

pub fn get(
    self,
    slice: &str
) -> Option<&<Range<usize> as SliceIndex<str>>::Output>
[src]

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

pub fn get_mut(
    self,
    slice: &mut str
) -> Option<&mut <Range<usize> as SliceIndex<str>>::Output>
[src]

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

pub unsafe fn get_unchecked(
    self,
    slice: *const str
) -> *const <Range<usize> as SliceIndex<str>>::Output
[src]

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

pub unsafe fn get_unchecked_mut(
    self,
    slice: *mut str
) -> *mut <Range<usize> as SliceIndex<str>>::Output
[src]

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

pub fn index(self, slice: &str) -> &<Range<usize> as SliceIndex<str>>::Output

Notable traits for Range<A>

impl<A> Iterator for Range<A> where
    A: Step
type Item = A;
[src]

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

pub fn index_mut(
    self,
    slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output

Notable traits for Range<A>

impl<A> Iterator for Range<A> where
    A: Step
type Item = A;
[src]

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

impl SliceIndex<str> for RangeFrom<usize>1.20.0[src]

Implements substring slicing with syntax &self[begin ..] or &mut self[begin ..].

Returns a slice of the given string from the byte range [begin, len). Equivalent to &self[begin .. len] or &mut self[begin .. len].

This operation is O(1).

Prior to 1.20.0, these indexing operations were still supported by direct implementation of Index and IndexMut.

Panics

Panics if begin does not point to the starting byte offset of a character (as defined by is_char_boundary), or if begin > len.

type Output = str

pub fn get(
    self,
    slice: &str
) -> Option<&<RangeFrom<usize> as SliceIndex<str>>::Output>
[src]

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

pub fn get_mut(
    self,
    slice: &mut str
) -> Option<&mut <RangeFrom<usize> as SliceIndex<str>>::Output>
[src]

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

pub unsafe fn get_unchecked(
    self,
    slice: *const str
) -> *const <RangeFrom<usize> as SliceIndex<str>>::Output
[src]

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

pub unsafe fn get_unchecked_mut(
    self,
    slice: *mut str
) -> *mut <RangeFrom<usize> as SliceIndex<str>>::Output
[src]

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

pub fn index(
    self,
    slice: &str
) -> &<RangeFrom<usize> as SliceIndex<str>>::Output

Notable traits for RangeFrom<A>

impl<A> Iterator for RangeFrom<A> where
    A: Step
type Item = A;
[src]

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

pub fn index_mut(
    self,
    slice: &mut str
) -> &mut <RangeFrom<usize> as SliceIndex<str>>::Output

Notable traits for RangeFrom<A>

impl<A> Iterator for RangeFrom<A> where
    A: Step
type Item = A;
[src]

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

impl SliceIndex<str> for RangeFull1.20.0[src]

Implements substring slicing with syntax &self[..] or &mut self[..].

Returns a slice of the whole string, i.e., returns &self or &mut self. Equivalent to &self[0 .. len] or &mut self[0 .. len]. Unlike other indexing operations, this can never panic.

This operation is O(1).

Prior to 1.20.0, these indexing operations were still supported by direct implementation of Index and IndexMut.

Equivalent to &self[0 .. len] or &mut self[0 .. len].

type Output = str

pub fn get(self, slice: &str) -> Option<&<RangeFull as SliceIndex<str>>::Output>[src]

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

pub fn get_mut(
    self,
    slice: &mut str
) -> Option<&mut <RangeFull as SliceIndex<str>>::Output>
[src]

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

pub unsafe fn get_unchecked(
    self,
    slice: *const str
) -> *const <RangeFull as SliceIndex<str>>::Output
[src]

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

pub unsafe fn get_unchecked_mut(
    self,
    slice: *mut str
) -> *mut <RangeFull as SliceIndex<str>>::Output
[src]

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

pub fn index(self, slice: &str) -> &<RangeFull as SliceIndex<str>>::Output[src]

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

pub fn index_mut(
    self,
    slice: &mut str
) -> &mut <RangeFull as SliceIndex<str>>::Output
[src]

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

impl SliceIndex<str> for RangeInclusive<usize>1.26.0[src]

Implements substring slicing with syntax &self[begin ..= end] or &mut self[begin ..= end].

Returns a slice of the given string from the byte range [begin, end]. Equivalent to &self [begin .. end + 1] or &mut self[begin .. end + 1], except if end has the maximum value for usize.

This operation is O(1).

Panics

Panics if begin does not point to the starting byte offset of a character (as defined by is_char_boundary), if end does not point to the ending byte offset of a character (end + 1 is either a starting byte offset or equal to len), if begin > end, or if end >= len.

type Output = str

pub fn get(
    self,
    slice: &str
) -> Option<&<RangeInclusive<usize> as SliceIndex<str>>::Output>
[src]

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

pub fn get_mut(
    self,
    slice: &mut str
) -> Option<&mut <RangeInclusive<usize> as SliceIndex<str>>::Output>
[src]

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

pub unsafe fn get_unchecked(
    self,
    slice: *const str
) -> *const <RangeInclusive<usize> as SliceIndex<str>>::Output
[src]

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

pub unsafe fn get_unchecked_mut(
    self,
    slice: *mut str
) -> *mut <RangeInclusive<usize> as SliceIndex<str>>::Output
[src]

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

pub fn index(
    self,
    slice: &str
) -> &<RangeInclusive<usize> as SliceIndex<str>>::Output

Notable traits for RangeInclusive<A>

impl<A> Iterator for RangeInclusive<A> where
    A: Step
type Item = A;
[src]

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

pub fn index_mut(
    self,
    slice: &mut str
) -> &mut <RangeInclusive<usize> as SliceIndex<str>>::Output

Notable traits for RangeInclusive<A>

impl<A> Iterator for RangeInclusive<A> where
    A: Step
type Item = A;
[src]

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

impl SliceIndex<str> for RangeTo<usize>1.20.0[src]

Implements substring slicing with syntax &self[.. end] or &mut self[.. end].

Returns a slice of the given string from the byte range [0, end). Equivalent to &self[0 .. end] or &mut self[0 .. end].

This operation is O(1).

Prior to 1.20.0, these indexing operations were still supported by direct implementation of Index and IndexMut.

Panics

Panics if end does not point to the starting byte offset of a character (as defined by is_char_boundary), or if end > len.

type Output = str

pub fn get(
    self,
    slice: &str
) -> Option<&<RangeTo<usize> as SliceIndex<str>>::Output>
[src]

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

pub fn get_mut(
    self,
    slice: &mut str
) -> Option<&mut <RangeTo<usize> as SliceIndex<str>>::Output>
[src]

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

pub unsafe fn get_unchecked(
    self,
    slice: *const str
) -> *const <RangeTo<usize> as SliceIndex<str>>::Output
[src]

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

pub unsafe fn get_unchecked_mut(
    self,
    slice: *mut str
) -> *mut <RangeTo<usize> as SliceIndex<str>>::Output
[src]

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

pub fn index(self, slice: &str) -> &<RangeTo<usize> as SliceIndex<str>>::Output[src]

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

pub fn index_mut(
    self,
    slice: &mut str
) -> &mut <RangeTo<usize> as SliceIndex<str>>::Output
[src]

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

impl SliceIndex<str> for RangeToInclusive<usize>1.26.0[src]

Implements substring slicing with syntax &self[..= end] or &mut self[..= end].

Returns a slice of the given string from the byte range [0, end]. Equivalent to &self [0 .. end + 1], except if end has the maximum value for usize.

This operation is O(1).

Panics

Panics if end does not point to the ending byte offset of a character (end + 1 is either a starting byte offset as defined by is_char_boundary, or equal to len), or if end >= len.

type Output = str

pub fn get(
    self,
    slice: &str
) -> Option<&<RangeToInclusive<usize> as SliceIndex<str>>::Output>
[src]

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

pub fn get_mut(
    self,
    slice: &mut str
) -> Option<&mut <RangeToInclusive<usize> as SliceIndex<str>>::Output>
[src]

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

pub unsafe fn get_unchecked(
    self,
    slice: *const str
) -> *const <RangeToInclusive<usize> as SliceIndex<str>>::Output
[src]

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

pub unsafe fn get_unchecked_mut(
    self,
    slice: *mut str
) -> *mut <RangeToInclusive<usize> as SliceIndex<str>>::Output
[src]

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

pub fn index(
    self,
    slice: &str
) -> &<RangeToInclusive<usize> as SliceIndex<str>>::Output
[src]

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

pub fn index_mut(
    self,
    slice: &mut str
) -> &mut <RangeToInclusive<usize> as SliceIndex<str>>::Output
[src]

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

impl<T> SliceIndex<[T]> for Range<usize>1.15.0[src]

type Output = [T]

pub fn get(self, slice: &[T]) -> Option<&[T]>[src]

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

pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]

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

pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]

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

pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]

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

pub fn index(self, slice: &[T]) -> &[T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

pub fn index_mut(self, slice: &mut [T]) -> &mut [T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

impl<T> SliceIndex<[T]> for RangeFrom<usize>1.15.0[src]

type Output = [T]

pub fn get(self, slice: &[T]) -> Option<&[T]>[src]

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

pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]

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

pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]

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

pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]

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

pub fn index(self, slice: &[T]) -> &[T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

pub fn index_mut(self, slice: &mut [T]) -> &mut [T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

impl<T> SliceIndex<[T]> for RangeFull1.15.0[src]

type Output = [T]

pub fn get(self, slice: &[T]) -> Option<&[T]>[src]

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

pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]

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

pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]

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

pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]

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

pub fn index(self, slice: &[T]) -> &[T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

pub fn index_mut(self, slice: &mut [T]) -> &mut [T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

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

type Output = [T]

pub fn get(self, slice: &[T]) -> Option<&[T]>[src]

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

pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]

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

pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]

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

pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]

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

pub fn index(self, slice: &[T]) -> &[T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

pub fn index_mut(self, slice: &mut [T]) -> &mut [T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

impl<T> SliceIndex<[T]> for RangeTo<usize>1.15.0[src]

type Output = [T]

pub fn get(self, slice: &[T]) -> Option<&[T]>[src]

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

pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]

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

pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]

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

pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]

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

pub fn index(self, slice: &[T]) -> &[T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

pub fn index_mut(self, slice: &mut [T]) -> &mut [T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

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

type Output = [T]

pub fn get(self, slice: &[T]) -> Option<&[T]>[src]

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

pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]

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

pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]

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

pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]

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

pub fn index(self, slice: &[T]) -> &[T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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

pub fn index_mut(self, slice: &mut [T]) -> &mut [T]

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

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