Trait alloc::slice::SliceIndex 1.28.0[−][src]
pub unsafe trait SliceIndex<T>: Sealed where
T: ?Sized, { type Output: ?Sized; pub fn get(self, slice: &T) -> Option<&Self::Output>; pub fn get_mut(self, slice: &mut T) -> Option<&mut Self::Output>; pub unsafe fn get_unchecked(self, slice: *const T) -> *const Self::Output; pub unsafe fn get_unchecked_mut(self, slice: *mut T) -> *mut Self::Output; pub fn index(self, slice: &T) -> &Self::Output; pub fn index_mut(self, slice: &mut T) -> &mut Self::Output; }
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
Loading content...Required methods
pub fn get(self, slice: &T) -> Option<&Self::Output>[src]
slice_index_methods)Returns a shared reference to the output at this location, if in bounds.
pub fn get_mut(self, slice: &mut T) -> Option<&mut Self::Output>[src]
slice_index_methods)Returns a mutable reference to the output at this location, if in bounds.
pub unsafe fn get_unchecked(self, slice: *const T) -> *const Self::Output[src]
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.
pub unsafe fn get_unchecked_mut(self, slice: *mut T) -> *mut Self::Output[src]
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.
pub fn index(self, slice: &T) -> &Self::Output[src]
slice_index_methods)Returns a shared reference to the output at this location, panicking if out of bounds.
pub fn index_mut(self, slice: &mut T) -> &mut Self::Output[src]
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 RangeFrom<usize>[src]
impl<T> SliceIndex<[T]> for RangeFrom<usize>[src]type Output = [T]
pub fn get(self, slice: &[T]) -> Option<&[T]>[src]
pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]
pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]
pub fn index(self, slice: &[T]) -> &[T][src]
pub fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl SliceIndex<str> for Range<usize>[src]
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
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];Run
type Output = str
pub fn get(
self,
slice: &str
) -> Option<&<Range<usize> as SliceIndex<str>>::Output>[src]
self,
slice: &str
) -> Option<&<Range<usize> as SliceIndex<str>>::Output>
pub fn get_mut(
self,
slice: &mut str
) -> Option<&mut <Range<usize> as SliceIndex<str>>::Output>[src]
self,
slice: &mut str
) -> Option<&mut <Range<usize> as SliceIndex<str>>::Output>
pub unsafe fn get_unchecked(
self,
slice: *const str
) -> *const <Range<usize> as SliceIndex<str>>::Output[src]
self,
slice: *const str
) -> *const <Range<usize> as SliceIndex<str>>::Output
pub unsafe fn get_unchecked_mut(
self,
slice: *mut str
) -> *mut <Range<usize> as SliceIndex<str>>::Output[src]
self,
slice: *mut str
) -> *mut <Range<usize> as SliceIndex<str>>::Output
pub fn index(self, slice: &str) -> &<Range<usize> as SliceIndex<str>>::Output[src]
pub fn index_mut(
self,
slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output[src]
self,
slice: &mut str
) -> &mut <Range<usize> as SliceIndex<str>>::Output
impl SliceIndex<str> for RangeTo<usize>[src]
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
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]
self,
slice: &str
) -> Option<&<RangeTo<usize> as SliceIndex<str>>::Output>
pub fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeTo<usize> as SliceIndex<str>>::Output>[src]
self,
slice: &mut str
) -> Option<&mut <RangeTo<usize> as SliceIndex<str>>::Output>
pub unsafe fn get_unchecked(
self,
slice: *const str
) -> *const <RangeTo<usize> as SliceIndex<str>>::Output[src]
self,
slice: *const str
) -> *const <RangeTo<usize> as SliceIndex<str>>::Output
pub unsafe fn get_unchecked_mut(
self,
slice: *mut str
) -> *mut <RangeTo<usize> as SliceIndex<str>>::Output[src]
self,
slice: *mut str
) -> *mut <RangeTo<usize> as SliceIndex<str>>::Output
pub fn index(self, slice: &str) -> &<RangeTo<usize> as SliceIndex<str>>::Output[src]
pub fn index_mut(
self,
slice: &mut str
) -> &mut <RangeTo<usize> as SliceIndex<str>>::Output[src]
self,
slice: &mut str
) -> &mut <RangeTo<usize> as SliceIndex<str>>::Output
impl SliceIndex<str> for RangeInclusive<usize>[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
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]
self,
slice: &str
) -> Option<&<RangeInclusive<usize> as SliceIndex<str>>::Output>
pub fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeInclusive<usize> as SliceIndex<str>>::Output>[src]
self,
slice: &mut str
) -> Option<&mut <RangeInclusive<usize> as SliceIndex<str>>::Output>
pub unsafe fn get_unchecked(
self,
slice: *const str
) -> *const <RangeInclusive<usize> as SliceIndex<str>>::Output[src]
self,
slice: *const str
) -> *const <RangeInclusive<usize> as SliceIndex<str>>::Output
pub unsafe fn get_unchecked_mut(
self,
slice: *mut str
) -> *mut <RangeInclusive<usize> as SliceIndex<str>>::Output[src]
self,
slice: *mut str
) -> *mut <RangeInclusive<usize> as SliceIndex<str>>::Output
pub fn index(
self,
slice: &str
) -> &<RangeInclusive<usize> as SliceIndex<str>>::Output[src]
self,
slice: &str
) -> &<RangeInclusive<usize> as SliceIndex<str>>::Output
pub fn index_mut(
self,
slice: &mut str
) -> &mut <RangeInclusive<usize> as SliceIndex<str>>::Output[src]
self,
slice: &mut str
) -> &mut <RangeInclusive<usize> as SliceIndex<str>>::Output
impl<T> SliceIndex<[T]> for RangeTo<usize>[src]
impl<T> SliceIndex<[T]> for RangeTo<usize>[src]type Output = [T]
pub fn get(self, slice: &[T]) -> Option<&[T]>[src]
pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]
pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]
pub fn index(self, slice: &[T]) -> &[T][src]
pub fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl SliceIndex<str> for RangeFrom<usize>[src]
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
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]
self,
slice: &str
) -> Option<&<RangeFrom<usize> as SliceIndex<str>>::Output>
pub fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeFrom<usize> as SliceIndex<str>>::Output>[src]
self,
slice: &mut str
) -> Option<&mut <RangeFrom<usize> as SliceIndex<str>>::Output>
pub unsafe fn get_unchecked(
self,
slice: *const str
) -> *const <RangeFrom<usize> as SliceIndex<str>>::Output[src]
self,
slice: *const str
) -> *const <RangeFrom<usize> as SliceIndex<str>>::Output
pub unsafe fn get_unchecked_mut(
self,
slice: *mut str
) -> *mut <RangeFrom<usize> as SliceIndex<str>>::Output[src]
self,
slice: *mut str
) -> *mut <RangeFrom<usize> as SliceIndex<str>>::Output
pub fn index(
self,
slice: &str
) -> &<RangeFrom<usize> as SliceIndex<str>>::Output[src]
self,
slice: &str
) -> &<RangeFrom<usize> as SliceIndex<str>>::Output
pub fn index_mut(
self,
slice: &mut str
) -> &mut <RangeFrom<usize> as SliceIndex<str>>::Output[src]
self,
slice: &mut str
) -> &mut <RangeFrom<usize> as SliceIndex<str>>::Output
impl<T> SliceIndex<[T]> for RangeToInclusive<usize>[src]
impl<T> SliceIndex<[T]> for RangeToInclusive<usize>[src]type Output = [T]
pub fn get(self, slice: &[T]) -> Option<&[T]>[src]
pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]
pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]
pub fn index(self, slice: &[T]) -> &[T][src]
pub fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl SliceIndex<str> for RangeFull[src]
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 = str
pub fn get(self, slice: &str) -> Option<&<RangeFull as SliceIndex<str>>::Output>[src]
pub fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeFull as SliceIndex<str>>::Output>[src]
self,
slice: &mut str
) -> Option<&mut <RangeFull as SliceIndex<str>>::Output>
pub unsafe fn get_unchecked(
self,
slice: *const str
) -> *const <RangeFull as SliceIndex<str>>::Output[src]
self,
slice: *const str
) -> *const <RangeFull as SliceIndex<str>>::Output
pub unsafe fn get_unchecked_mut(
self,
slice: *mut str
) -> *mut <RangeFull as SliceIndex<str>>::Output[src]
self,
slice: *mut str
) -> *mut <RangeFull as SliceIndex<str>>::Output
pub fn index(self, slice: &str) -> &<RangeFull as SliceIndex<str>>::Output[src]
pub fn index_mut(
self,
slice: &mut str
) -> &mut <RangeFull as SliceIndex<str>>::Output[src]
self,
slice: &mut str
) -> &mut <RangeFull as SliceIndex<str>>::Output
impl<T> SliceIndex<[T]> for RangeFull[src]
impl<T> SliceIndex<[T]> for RangeFull[src]type Output = [T]
pub fn get(self, slice: &[T]) -> Option<&[T]>[src]
pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]
pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]
pub fn index(self, slice: &[T]) -> &[T][src]
pub fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl<T> SliceIndex<[T]> for Range<usize>[src]
impl<T> SliceIndex<[T]> for Range<usize>[src]type Output = [T]
pub fn get(self, slice: &[T]) -> Option<&[T]>[src]
pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]
pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]
pub fn index(self, slice: &[T]) -> &[T][src]
pub fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
impl SliceIndex<str> for RangeToInclusive<usize>[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
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]
self,
slice: &str
) -> Option<&<RangeToInclusive<usize> as SliceIndex<str>>::Output>
pub fn get_mut(
self,
slice: &mut str
) -> Option<&mut <RangeToInclusive<usize> as SliceIndex<str>>::Output>[src]
self,
slice: &mut str
) -> Option<&mut <RangeToInclusive<usize> as SliceIndex<str>>::Output>
pub unsafe fn get_unchecked(
self,
slice: *const str
) -> *const <RangeToInclusive<usize> as SliceIndex<str>>::Output[src]
self,
slice: *const str
) -> *const <RangeToInclusive<usize> as SliceIndex<str>>::Output
pub unsafe fn get_unchecked_mut(
self,
slice: *mut str
) -> *mut <RangeToInclusive<usize> as SliceIndex<str>>::Output[src]
self,
slice: *mut str
) -> *mut <RangeToInclusive<usize> as SliceIndex<str>>::Output
pub fn index(
self,
slice: &str
) -> &<RangeToInclusive<usize> as SliceIndex<str>>::Output[src]
self,
slice: &str
) -> &<RangeToInclusive<usize> as SliceIndex<str>>::Output
pub fn index_mut(
self,
slice: &mut str
) -> &mut <RangeToInclusive<usize> as SliceIndex<str>>::Output[src]
self,
slice: &mut str
) -> &mut <RangeToInclusive<usize> as SliceIndex<str>>::Output
impl<T> SliceIndex<[T]> for RangeInclusive<usize>[src]
impl<T> SliceIndex<[T]> for RangeInclusive<usize>[src]type Output = [T]
pub fn get(self, slice: &[T]) -> Option<&[T]>[src]
pub fn get_mut(self, slice: &mut [T]) -> Option<&mut [T]>[src]
pub unsafe fn get_unchecked(self, slice: *const [T]) -> *const [T][src]
pub unsafe fn get_unchecked_mut(self, slice: *mut [T]) -> *mut [T][src]
pub fn index(self, slice: &[T]) -> &[T][src]
pub fn index_mut(self, slice: &mut [T]) -> &mut [T][src]
Implementors
impl<T> SliceIndex<[T]> for (Bound<usize>, Bound<usize>)1.53.0[src]
impl<T> SliceIndex<[T]> for (Bound<usize>, Bound<usize>)1.53.0[src]type Output = [T]
pub fn get(
self,
slice: &[T]
) -> Option<&<(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output>[src]
self,
slice: &[T]
) -> Option<&<(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output>
pub fn get_mut(
self,
slice: &mut [T]
) -> Option<&mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output>[src]
self,
slice: &mut [T]
) -> Option<&mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output>
pub unsafe fn get_unchecked(
self,
slice: *const [T]
) -> *const <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output[src]
self,
slice: *const [T]
) -> *const <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output
pub unsafe fn get_unchecked_mut(
self,
slice: *mut [T]
) -> *mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output[src]
self,
slice: *mut [T]
) -> *mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output
pub fn index(
self,
slice: &[T]
) -> &<(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output[src]
self,
slice: &[T]
) -> &<(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output
pub fn index_mut(
self,
slice: &mut [T]
) -> &mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output[src]
self,
slice: &mut [T]
) -> &mut <(Bound<usize>, Bound<usize>) as SliceIndex<[T]>>::Output
impl<T> SliceIndex<[T]> for usize1.15.0[src]
impl<T> SliceIndex<[T]> for usize1.15.0[src]