pub 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: &T) -> &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;
}
A helper trait used for indexing operations.
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: &T) -> &Self::OutputReturns a shared reference to the output at this location, without performing any bounds checking.
unsafe fn get_unchecked_mut(self, slice: &mut T) -> &mut Self::OutputReturns a mutable reference to the output at this location, without performing any bounds checking.
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.
impl SliceIndex<str> for Range<usize>[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 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.
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 = strfn get(self, slice: &str) -> Option<&<Range<usize> as SliceIndex<str>>::Output>[src]
fn get_mut(
self,
slice: &mut str
) -> Option<&mut <Range<usize> as SliceIndex<str>>::Output>[src]
unsafe fn get_unchecked(
self,
slice: &str
) -> &<Range<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for Range<A> where
A: Step,
type Item = A;
unsafe fn get_unchecked_mut(
self,
slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for Range<A> where
A: Step,
type Item = A;
fn index(self, slice: &str) -> &<Range<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for Range<A> where
A: Step,
type Item = A;
fn index_mut(
self,
slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for Range<A> where
A: Step,
type Item = A;
impl SliceIndex<str> for RangeFrom<usize>[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 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 = strfn get(
self,
slice: &str
) -> Option<&<RangeFrom<usize> as SliceIndex<str>>::Output>[src]
fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeFrom<usize> as SliceIndex<str>>::Output>[src]
unsafe fn get_unchecked(
self,
slice: &str
) -> &<RangeFrom<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for RangeFrom<A> where
A: Step,
type Item = A;
unsafe fn get_unchecked_mut(
self,
slice: &mut str
) -> &mut <RangeFrom<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for RangeFrom<A> where
A: Step,
type Item = A;
fn index(self, slice: &str) -> &<RangeFrom<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for RangeFrom<A> where
A: Step,
type Item = A;
fn index_mut(
self,
slice: &mut str
) -> &mut <RangeFrom<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for RangeFrom<A> where
A: Step,
type Item = A;
impl SliceIndex<str> for RangeFull[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 = strfn get(self, slice: &str) -> Option<&<RangeFull as SliceIndex<str>>::Output>[src]
fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeFull as SliceIndex<str>>::Output>[src]
unsafe fn get_unchecked(
self,
slice: &str
) -> &<RangeFull as SliceIndex<str>>::Output[src]
unsafe fn get_unchecked_mut(
self,
slice: &mut str
) -> &mut <RangeFull as SliceIndex<str>>::Output[src]
fn index(self, slice: &str) -> &<RangeFull as SliceIndex<str>>::Output[src]
fn index_mut(
self,
slice: &mut str
) -> &mut <RangeFull as SliceIndex<str>>::Output[src]
impl SliceIndex<str> for RangeInclusive<usize>[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 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 = strfn get(
self,
slice: &str
) -> Option<&<RangeInclusive<usize> as SliceIndex<str>>::Output>[src]
fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeInclusive<usize> as SliceIndex<str>>::Output>[src]
unsafe fn get_unchecked(
self,
slice: &str
) -> &<RangeInclusive<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for RangeInclusive<A> where
A: Step,
type Item = A;
unsafe fn get_unchecked_mut(
self,
slice: &mut str
) -> &mut <RangeInclusive<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for RangeInclusive<A> where
A: Step,
type Item = A;
fn index(
self,
slice: &str
) -> &<RangeInclusive<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for RangeInclusive<A> where
A: Step,
type Item = A;
fn index_mut(
self,
slice: &mut str
) -> &mut <RangeInclusive<usize> as SliceIndex<str>>::Output[src]
impl<A> Iterator for RangeInclusive<A> where
A: Step,
type Item = A;
impl SliceIndex<str> for RangeTo<usize>[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 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 = strfn get(
self,
slice: &str
) -> Option<&<RangeTo<usize> as SliceIndex<str>>::Output>[src]
fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeTo<usize> as SliceIndex<str>>::Output>[src]
unsafe fn get_unchecked(
self,
slice: &str
) -> &<RangeTo<usize> as SliceIndex<str>>::Output[src]
unsafe fn get_unchecked_mut(
self,
slice: &mut str
) -> &mut <RangeTo<usize> as SliceIndex<str>>::Output[src]
fn index(self, slice: &str) -> &<RangeTo<usize> as SliceIndex<str>>::Output[src]
fn index_mut(
self,
slice: &mut str
) -> &mut <RangeTo<usize> as SliceIndex<str>>::Output[src]
impl SliceIndex<str> for RangeToInclusive<usize>[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 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 = strfn get(
self,
slice: &str
) -> Option<&<RangeToInclusive<usize> as SliceIndex<str>>::Output>[src]
fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeToInclusive<usize> as SliceIndex<str>>::Output>[src]
unsafe fn get_unchecked(
self,
slice: &str
) -> &<RangeToInclusive<usize> as SliceIndex<str>>::Output[src]
unsafe fn get_unchecked_mut(
self,
slice: &mut str
) -> &mut <RangeToInclusive<usize> as SliceIndex<str>>::Output[src]
fn index(
self,
slice: &str
) -> &<RangeToInclusive<usize> as SliceIndex<str>>::Output[src]
fn index_mut(
self,
slice: &mut str
) -> &mut <RangeToInclusive<usize> as SliceIndex<str>>::Output[src]
impl<T> SliceIndex<[T]> for usize[src]
type Output = Tfn get(self, slice: &[T]) -> Option<&T>[src]
fn get_mut(self, slice: &mut [T]) -> Option<&mut T>[src]
unsafe fn get_unchecked(self, slice: &[T]) -> &T[src]
impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized,
type Output = <F as Future>::Output;
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized,
type Item = <I as Iterator>::Item;
impl<'_, R: Read + ?Sized> Read for &'_ mut R
impl<'_, W: Write + ?Sized> Write for &'_ mut W
unsafe fn get_unchecked_mut(self, slice: &mut [T]) -> &mut T[src]
impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized,
type Output = <F as Future>::Output;
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized,
type Item = <I as Iterator>::Item;
impl<'_, R: Read + ?Sized> Read for &'_ mut R
impl<'_, W: Write + ?Sized> Write for &'_ mut W
fn index(self, slice: &[T]) -> &T[src]
impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized,
type Output = <F as Future>::Output;
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized,
type Item = <I as Iterator>::Item;
impl<'_, R: Read + ?Sized> Read for &'_ mut R
impl<'_, W: Write + ?Sized> Write for &'_ mut W
fn index_mut(self, slice: &mut [T]) -> &mut T[src]
impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized,
type Output = <F as Future>::Output;
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized,
type Item = <I as Iterator>::Item;
impl<'_, R: Read + ?Sized> Read for &'_ mut R
impl<'_, W: Write + ?Sized> Write for &'_ mut W
impl<T> SliceIndex<[T]> for Range<usize>[src]
type Output = [T]fn get(self, slice: &[T]) -> Option<&[T]>[src]
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
unsafe fn get_unchecked(self, slice: &[T]) -> &[T][src]
unsafe fn get_unchecked_mut(self, slice: &mut [T]) -> &mut [T][src]
fn index(self, slice: &[T]) -> &[T][src]
fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl<T> SliceIndex<[T]> for RangeFrom<usize>[src]
type Output = [T]fn get(self, slice: &[T]) -> Option<&[T]>[src]
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
unsafe fn get_unchecked(self, slice: &[T]) -> &[T][src]
unsafe fn get_unchecked_mut(self, slice: &mut [T]) -> &mut [T][src]
fn index(self, slice: &[T]) -> &[T][src]
fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl<T> SliceIndex<[T]> for RangeFull[src]
type Output = [T]fn get(self, slice: &[T]) -> Option<&[T]>[src]
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
unsafe fn get_unchecked(self, slice: &[T]) -> &[T][src]
unsafe fn get_unchecked_mut(self, slice: &mut [T]) -> &mut [T][src]
fn index(self, slice: &[T]) -> &[T][src]
fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl<T> SliceIndex<[T]> for RangeInclusive<usize>[src]
type Output = [T]fn get(self, slice: &[T]) -> Option<&[T]>[src]
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
unsafe fn get_unchecked(self, slice: &[T]) -> &[T][src]
unsafe fn get_unchecked_mut(self, slice: &mut [T]) -> &mut [T][src]
fn index(self, slice: &[T]) -> &[T][src]
fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl<T> SliceIndex<[T]> for RangeTo<usize>[src]
type Output = [T]fn get(self, slice: &[T]) -> Option<&[T]>[src]
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
unsafe fn get_unchecked(self, slice: &[T]) -> &[T][src]
unsafe fn get_unchecked_mut(self, slice: &mut [T]) -> &mut [T][src]
fn index(self, slice: &[T]) -> &[T][src]
fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl<T> SliceIndex<[T]> for RangeToInclusive<usize>[src]
type Output = [T]fn get(self, slice: &[T]) -> Option<&[T]>[src]
fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
unsafe fn get_unchecked(self, slice: &[T]) -> &[T][src]
unsafe fn get_unchecked_mut(self, slice: &mut [T]) -> &mut [T][src]
fn index(self, slice: &[T]) -> &[T][src]
fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/slice/trait.SliceIndex.html