Auto merge of #89219 - nickkuk:str_split_once_get_unchecked, r=Mark-Simulacrum
Use get_unchecked in str::[r]split_once This PR removes indices checking in `str::split_once` and `str::rsplit_once` methods.
This commit is contained in:
commit
0c87288f92
@ -1536,7 +1536,8 @@ pub fn rsplitn<'a, P>(&'a self, n: usize, pat: P) -> RSplitN<'a, P>
|
||||
#[inline]
|
||||
pub fn split_once<'a, P: Pattern<'a>>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)> {
|
||||
let (start, end) = delimiter.into_searcher(self).next_match()?;
|
||||
Some((&self[..start], &self[end..]))
|
||||
// SAFETY: `Searcher` is known to return valid indices.
|
||||
unsafe { Some((self.get_unchecked(..start), self.get_unchecked(end..))) }
|
||||
}
|
||||
|
||||
/// Splits the string on the last occurrence of the specified delimiter and
|
||||
@ -1556,7 +1557,8 @@ pub fn rsplit_once<'a, P>(&'a self, delimiter: P) -> Option<(&'a str, &'a str)>
|
||||
P: Pattern<'a, Searcher: ReverseSearcher<'a>>,
|
||||
{
|
||||
let (start, end) = delimiter.into_searcher(self).next_match_back()?;
|
||||
Some((&self[..start], &self[end..]))
|
||||
// SAFETY: `Searcher` is known to return valid indices.
|
||||
unsafe { Some((self.get_unchecked(..start), self.get_unchecked(end..))) }
|
||||
}
|
||||
|
||||
/// An iterator over the disjoint matches of a pattern within the given string
|
||||
|
Loading…
Reference in New Issue
Block a user