Skip to content

Commit 05c57d6

Browse files
committed
Make substr_range and subslice_range return the new Range type
1 parent 8931f23 commit 05c57d6

2 files changed

Lines changed: 13 additions & 11 deletions

File tree

library/core/src/slice/mod.rs

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5297,21 +5297,22 @@ impl<T> [T] {
52975297
/// Basic usage:
52985298
/// ```
52995299
/// #![feature(substr_range)]
5300+
/// use core::range::Range;
53005301
///
53015302
/// let nums = &[0, 5, 10, 0, 0, 5];
53025303
///
53035304
/// let mut iter = nums
53045305
/// .split(|t| *t == 0)
53055306
/// .map(|n| nums.subslice_range(n).unwrap());
53065307
///
5307-
/// assert_eq!(iter.next(), Some(0..0));
5308-
/// assert_eq!(iter.next(), Some(1..3));
5309-
/// assert_eq!(iter.next(), Some(4..4));
5310-
/// assert_eq!(iter.next(), Some(5..6));
5308+
/// assert_eq!(iter.next(), Some(Range { start: 0, end: 0 }));
5309+
/// assert_eq!(iter.next(), Some(Range { start: 1, end: 3 }));
5310+
/// assert_eq!(iter.next(), Some(Range { start: 4, end: 4 }));
5311+
/// assert_eq!(iter.next(), Some(Range { start: 5, end: 6 }));
53115312
/// ```
53125313
#[must_use]
53135314
#[unstable(feature = "substr_range", issue = "126769")]
5314-
pub fn subslice_range(&self, subslice: &[T]) -> Option<Range<usize>> {
5315+
pub fn subslice_range(&self, subslice: &[T]) -> Option<core::range::Range<usize>> {
53155316
if T::IS_ZST {
53165317
panic!("elements are zero-sized");
53175318
}
@@ -5328,7 +5329,7 @@ impl<T> [T] {
53285329
let start = byte_start / size_of::<T>();
53295330
let end = start.wrapping_add(subslice.len());
53305331

5331-
if start <= self.len() && end <= self.len() { Some(start..end) } else { None }
5332+
if start <= self.len() && end <= self.len() { Some(core::range::Range { start, end }) } else { None }
53325333
}
53335334

53345335
/// Returns the same slice `&[T]`.

library/core/src/str/mod.rs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3112,18 +3112,19 @@ impl str {
31123112
/// # Examples
31133113
/// ```
31143114
/// #![feature(substr_range)]
3115+
/// use core::range::Range;
31153116
///
31163117
/// let data = "a, b, b, a";
31173118
/// let mut iter = data.split(", ").map(|s| data.substr_range(s).unwrap());
31183119
///
3119-
/// assert_eq!(iter.next(), Some(0..1));
3120-
/// assert_eq!(iter.next(), Some(3..4));
3121-
/// assert_eq!(iter.next(), Some(6..7));
3122-
/// assert_eq!(iter.next(), Some(9..10));
3120+
/// assert_eq!(iter.next(), Some(Range { start: 0, end: 1 }));
3121+
/// assert_eq!(iter.next(), Some(Range { start: 3, end: 4 }));
3122+
/// assert_eq!(iter.next(), Some(Range { start: 6, end: 7 }));
3123+
/// assert_eq!(iter.next(), Some(Range { start: 9, end: 10 }));
31233124
/// ```
31243125
#[must_use]
31253126
#[unstable(feature = "substr_range", issue = "126769")]
3126-
pub fn substr_range(&self, substr: &str) -> Option<Range<usize>> {
3127+
pub fn substr_range(&self, substr: &str) -> Option<core::range::Range<usize>> {
31273128
self.as_bytes().subslice_range(substr.as_bytes())
31283129
}
31293130

0 commit comments

Comments
 (0)