pub unsafe trait SliceIndex<T>: 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.
The output type returned by methods.
Sourceð¬This is a nightly-only experimental API. (slice_index_methods
)
Returns a shared reference to the output at this location, if in bounds.
Sourceð¬This is a nightly-only experimental API. (slice_index_methods
)
Returns a mutable reference to the output at this location, if in bounds.
Sourceð¬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.
ð¬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.
ð¬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ð¬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.
1.73.0 · Source§Implements substring slicing for arbitrary bounds.
Returns a slice of the given string bounded by the byte indices provided by each bound.
This operation is O(1).
§PanicsPanics if begin
or end
(if it exists and once adjusted for inclusion/exclusion) does not point to the starting byte offset of a character (as defined by is_char_boundary
), if begin > end
, or if end > len
.
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 è");
1.20.0 (const: unstable) · Source§
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
.
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]
.
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).
§PanicsPanics 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
.
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
.
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).
§PanicsPanics 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
.
The methods index
and index_mut
panic if the index is out of bounds.
The methods index
and index_mut
panic if:
The methods index
and index_mut
panic if the start of the range is out of bounds.
The methods index
and index_mut
panic if:
usize::MAX
orThe methods index
and index_mut
panic if the end of the range is out of bounds.
The methods index
and index_mut
panic if the end of the range is out of bounds.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4