Skip to content

Commit 3aebe12

Browse files
cramertjgitbot
authored and
gitbot
committed
Rename slice::take methods to split_off
1 parent 76412fb commit 3aebe12

File tree

2 files changed

+83
-80
lines changed

2 files changed

+83
-80
lines changed

core/src/slice/mod.rs

+28-25
Original file line numberDiff line numberDiff line change
@@ -4294,25 +4294,25 @@ impl<T> [T] {
42944294
///
42954295
/// # Examples
42964296
///
4297-
/// Taking the first three elements of a slice:
4297+
/// Splitting off the first three elements of a slice:
42984298
///
42994299
/// ```
43004300
/// #![feature(slice_take)]
43014301
///
43024302
/// let mut slice: &[_] = &['a', 'b', 'c', 'd'];
4303-
/// let mut first_three = slice.take(..3).unwrap();
4303+
/// let mut first_three = slice.split_off(..3).unwrap();
43044304
///
43054305
/// assert_eq!(slice, &['d']);
43064306
/// assert_eq!(first_three, &['a', 'b', 'c']);
43074307
/// ```
43084308
///
4309-
/// Taking the last two elements of a slice:
4309+
/// Splitting off the last two elements of a slice:
43104310
///
43114311
/// ```
43124312
/// #![feature(slice_take)]
43134313
///
43144314
/// let mut slice: &[_] = &['a', 'b', 'c', 'd'];
4315-
/// let mut tail = slice.take(2..).unwrap();
4315+
/// let mut tail = slice.split_off(2..).unwrap();
43164316
///
43174317
/// assert_eq!(slice, &['a', 'b']);
43184318
/// assert_eq!(tail, &['c', 'd']);
@@ -4325,16 +4325,19 @@ impl<T> [T] {
43254325
///
43264326
/// let mut slice: &[_] = &['a', 'b', 'c', 'd'];
43274327
///
4328-
/// assert_eq!(None, slice.take(5..));
4329-
/// assert_eq!(None, slice.take(..5));
4330-
/// assert_eq!(None, slice.take(..=4));
4328+
/// assert_eq!(None, slice.split_off(5..));
4329+
/// assert_eq!(None, slice.split_off(..5));
4330+
/// assert_eq!(None, slice.split_off(..=4));
43314331
/// let expected: &[char] = &['a', 'b', 'c', 'd'];
4332-
/// assert_eq!(Some(expected), slice.take(..4));
4332+
/// assert_eq!(Some(expected), slice.split_off(..4));
43334333
/// ```
43344334
#[inline]
43354335
#[must_use = "method does not modify the slice if the range is out of bounds"]
43364336
#[unstable(feature = "slice_take", issue = "62280")]
4337-
pub fn take<'a, R: OneSidedRange<usize>>(self: &mut &'a Self, range: R) -> Option<&'a Self> {
4337+
pub fn split_off<'a, R: OneSidedRange<usize>>(
4338+
self: &mut &'a Self,
4339+
range: R,
4340+
) -> Option<&'a Self> {
43384341
let (direction, split_index) = split_point_of(range)?;
43394342
if split_index > self.len() {
43404343
return None;
@@ -4363,13 +4366,13 @@ impl<T> [T] {
43634366
///
43644367
/// # Examples
43654368
///
4366-
/// Taking the first three elements of a slice:
4369+
/// Splitting off the first three elements of a slice:
43674370
///
43684371
/// ```
43694372
/// #![feature(slice_take)]
43704373
///
43714374
/// let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
4372-
/// let mut first_three = slice.take_mut(..3).unwrap();
4375+
/// let mut first_three = slice.split_off_mut(..3).unwrap();
43734376
///
43744377
/// assert_eq!(slice, &mut ['d']);
43754378
/// assert_eq!(first_three, &mut ['a', 'b', 'c']);
@@ -4381,7 +4384,7 @@ impl<T> [T] {
43814384
/// #![feature(slice_take)]
43824385
///
43834386
/// let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
4384-
/// let mut tail = slice.take_mut(2..).unwrap();
4387+
/// let mut tail = slice.split_off_mut(2..).unwrap();
43854388
///
43864389
/// assert_eq!(slice, &mut ['a', 'b']);
43874390
/// assert_eq!(tail, &mut ['c', 'd']);
@@ -4394,16 +4397,16 @@ impl<T> [T] {
43944397
///
43954398
/// let mut slice: &mut [_] = &mut ['a', 'b', 'c', 'd'];
43964399
///
4397-
/// assert_eq!(None, slice.take_mut(5..));
4398-
/// assert_eq!(None, slice.take_mut(..5));
4399-
/// assert_eq!(None, slice.take_mut(..=4));
4400+
/// assert_eq!(None, slice.split_off_mut(5..));
4401+
/// assert_eq!(None, slice.split_off_mut(..5));
4402+
/// assert_eq!(None, slice.split_off_mut(..=4));
44004403
/// let expected: &mut [_] = &mut ['a', 'b', 'c', 'd'];
4401-
/// assert_eq!(Some(expected), slice.take_mut(..4));
4404+
/// assert_eq!(Some(expected), slice.split_off_mut(..4));
44024405
/// ```
44034406
#[inline]
44044407
#[must_use = "method does not modify the slice if the range is out of bounds"]
44054408
#[unstable(feature = "slice_take", issue = "62280")]
4406-
pub fn take_mut<'a, R: OneSidedRange<usize>>(
4409+
pub fn split_off_mut<'a, R: OneSidedRange<usize>>(
44074410
self: &mut &'a mut Self,
44084411
range: R,
44094412
) -> Option<&'a mut Self> {
@@ -4435,14 +4438,14 @@ impl<T> [T] {
44354438
/// #![feature(slice_take)]
44364439
///
44374440
/// let mut slice: &[_] = &['a', 'b', 'c'];
4438-
/// let first = slice.take_first().unwrap();
4441+
/// let first = slice.split_off_first().unwrap();
44394442
///
44404443
/// assert_eq!(slice, &['b', 'c']);
44414444
/// assert_eq!(first, &'a');
44424445
/// ```
44434446
#[inline]
44444447
#[unstable(feature = "slice_take", issue = "62280")]
4445-
pub fn take_first<'a>(self: &mut &'a Self) -> Option<&'a T> {
4448+
pub fn split_off_first<'a>(self: &mut &'a Self) -> Option<&'a T> {
44464449
let (first, rem) = self.split_first()?;
44474450
*self = rem;
44484451
Some(first)
@@ -4459,15 +4462,15 @@ impl<T> [T] {
44594462
/// #![feature(slice_take)]
44604463
///
44614464
/// let mut slice: &mut [_] = &mut ['a', 'b', 'c'];
4462-
/// let first = slice.take_first_mut().unwrap();
4465+
/// let first = slice.split_off_first_mut().unwrap();
44634466
/// *first = 'd';
44644467
///
44654468
/// assert_eq!(slice, &['b', 'c']);
44664469
/// assert_eq!(first, &'d');
44674470
/// ```
44684471
#[inline]
44694472
#[unstable(feature = "slice_take", issue = "62280")]
4470-
pub fn take_first_mut<'a>(self: &mut &'a mut Self) -> Option<&'a mut T> {
4473+
pub fn split_off_first_mut<'a>(self: &mut &'a mut Self) -> Option<&'a mut T> {
44714474
let (first, rem) = mem::take(self).split_first_mut()?;
44724475
*self = rem;
44734476
Some(first)
@@ -4484,14 +4487,14 @@ impl<T> [T] {
44844487
/// #![feature(slice_take)]
44854488
///
44864489
/// let mut slice: &[_] = &['a', 'b', 'c'];
4487-
/// let last = slice.take_last().unwrap();
4490+
/// let last = slice.split_off_last().unwrap();
44884491
///
44894492
/// assert_eq!(slice, &['a', 'b']);
44904493
/// assert_eq!(last, &'c');
44914494
/// ```
44924495
#[inline]
44934496
#[unstable(feature = "slice_take", issue = "62280")]
4494-
pub fn take_last<'a>(self: &mut &'a Self) -> Option<&'a T> {
4497+
pub fn split_off_last<'a>(self: &mut &'a Self) -> Option<&'a T> {
44954498
let (last, rem) = self.split_last()?;
44964499
*self = rem;
44974500
Some(last)
@@ -4508,15 +4511,15 @@ impl<T> [T] {
45084511
/// #![feature(slice_take)]
45094512
///
45104513
/// let mut slice: &mut [_] = &mut ['a', 'b', 'c'];
4511-
/// let last = slice.take_last_mut().unwrap();
4514+
/// let last = slice.split_off_last_mut().unwrap();
45124515
/// *last = 'd';
45134516
///
45144517
/// assert_eq!(slice, &['a', 'b']);
45154518
/// assert_eq!(last, &'d');
45164519
/// ```
45174520
#[inline]
45184521
#[unstable(feature = "slice_take", issue = "62280")]
4519-
pub fn take_last_mut<'a>(self: &mut &'a mut Self) -> Option<&'a mut T> {
4522+
pub fn split_off_last_mut<'a>(self: &mut &'a mut Self) -> Option<&'a mut T> {
45204523
let (last, rem) = mem::take(self).split_last_mut()?;
45214524
*self = rem;
45224525
Some(last)

coretests/tests/slice.rs

+55-55
Original file line numberDiff line numberDiff line change
@@ -2399,18 +2399,18 @@ fn slice_rsplit_once() {
23992399
assert_eq!(v.rsplit_once(|&x| x == 0), None);
24002400
}
24012401

2402-
macro_rules! take_tests {
2402+
macro_rules! split_off_tests {
24032403
(slice: &[], $($tts:tt)*) => {
2404-
take_tests!(ty: &[()], slice: &[], $($tts)*);
2404+
split_off_tests!(ty: &[()], slice: &[], $($tts)*);
24052405
};
24062406
(slice: &mut [], $($tts:tt)*) => {
2407-
take_tests!(ty: &mut [()], slice: &mut [], $($tts)*);
2407+
split_off_tests!(ty: &mut [()], slice: &mut [], $($tts)*);
24082408
};
24092409
(slice: &$slice:expr, $($tts:tt)*) => {
2410-
take_tests!(ty: &[_], slice: &$slice, $($tts)*);
2410+
split_off_tests!(ty: &[_], slice: &$slice, $($tts)*);
24112411
};
24122412
(slice: &mut $slice:expr, $($tts:tt)*) => {
2413-
take_tests!(ty: &mut [_], slice: &mut $slice, $($tts)*);
2413+
split_off_tests!(ty: &mut [_], slice: &mut $slice, $($tts)*);
24142414
};
24152415
(ty: $ty:ty, slice: $slice:expr, method: $method:ident, $(($test_name:ident, ($($args:expr),*), $output:expr, $remaining:expr),)*) => {
24162416
$(
@@ -2425,64 +2425,64 @@ macro_rules! take_tests {
24252425
};
24262426
}
24272427

2428-
take_tests! {
2429-
slice: &[0, 1, 2, 3], method: take,
2430-
(take_in_bounds_range_to, (..1), Some(&[0] as _), &[1, 2, 3]),
2431-
(take_in_bounds_range_to_inclusive, (..=0), Some(&[0] as _), &[1, 2, 3]),
2432-
(take_in_bounds_range_from, (2..), Some(&[2, 3] as _), &[0, 1]),
2433-
(take_oob_range_to, (..5), None, &[0, 1, 2, 3]),
2434-
(take_oob_range_to_inclusive, (..=4), None, &[0, 1, 2, 3]),
2435-
(take_oob_range_from, (5..), None, &[0, 1, 2, 3]),
2428+
split_off_tests! {
2429+
slice: &[0, 1, 2, 3], method: split_off,
2430+
(split_off_in_bounds_range_to, (..1), Some(&[0] as _), &[1, 2, 3]),
2431+
(split_off_in_bounds_range_to_inclusive, (..=0), Some(&[0] as _), &[1, 2, 3]),
2432+
(split_off_in_bounds_range_from, (2..), Some(&[2, 3] as _), &[0, 1]),
2433+
(split_off_oob_range_to, (..5), None, &[0, 1, 2, 3]),
2434+
(split_off_oob_range_to_inclusive, (..=4), None, &[0, 1, 2, 3]),
2435+
(split_off_oob_range_from, (5..), None, &[0, 1, 2, 3]),
24362436
}
24372437

2438-
take_tests! {
2439-
slice: &mut [0, 1, 2, 3], method: take_mut,
2440-
(take_mut_in_bounds_range_to, (..1), Some(&mut [0] as _), &mut [1, 2, 3]),
2441-
(take_mut_in_bounds_range_to_inclusive, (..=0), Some(&mut [0] as _), &mut [1, 2, 3]),
2442-
(take_mut_in_bounds_range_from, (2..), Some(&mut [2, 3] as _), &mut [0, 1]),
2443-
(take_mut_oob_range_to, (..5), None, &mut [0, 1, 2, 3]),
2444-
(take_mut_oob_range_to_inclusive, (..=4), None, &mut [0, 1, 2, 3]),
2445-
(take_mut_oob_range_from, (5..), None, &mut [0, 1, 2, 3]),
2438+
split_off_tests! {
2439+
slice: &mut [0, 1, 2, 3], method: split_off_mut,
2440+
(split_off_mut_in_bounds_range_to, (..1), Some(&mut [0] as _), &mut [1, 2, 3]),
2441+
(split_off_mut_in_bounds_range_to_inclusive, (..=0), Some(&mut [0] as _), &mut [1, 2, 3]),
2442+
(split_off_mut_in_bounds_range_from, (2..), Some(&mut [2, 3] as _), &mut [0, 1]),
2443+
(split_off_mut_oob_range_to, (..5), None, &mut [0, 1, 2, 3]),
2444+
(split_off_mut_oob_range_to_inclusive, (..=4), None, &mut [0, 1, 2, 3]),
2445+
(split_off_mut_oob_range_from, (5..), None, &mut [0, 1, 2, 3]),
24462446
}
24472447

2448-
take_tests! {
2449-
slice: &[1, 2], method: take_first,
2450-
(take_first_nonempty, (), Some(&1), &[2]),
2448+
split_off_tests! {
2449+
slice: &[1, 2], method: split_off_first,
2450+
(split_off_first_nonempty, (), Some(&1), &[2]),
24512451
}
24522452

2453-
take_tests! {
2454-
slice: &mut [1, 2], method: take_first_mut,
2455-
(take_first_mut_nonempty, (), Some(&mut 1), &mut [2]),
2453+
split_off_tests! {
2454+
slice: &mut [1, 2], method: split_off_first_mut,
2455+
(split_off_first_mut_nonempty, (), Some(&mut 1), &mut [2]),
24562456
}
24572457

2458-
take_tests! {
2459-
slice: &[1, 2], method: take_last,
2460-
(take_last_nonempty, (), Some(&2), &[1]),
2458+
split_off_tests! {
2459+
slice: &[1, 2], method: split_off_last,
2460+
(split_off_last_nonempty, (), Some(&2), &[1]),
24612461
}
24622462

2463-
take_tests! {
2464-
slice: &mut [1, 2], method: take_last_mut,
2465-
(take_last_mut_nonempty, (), Some(&mut 2), &mut [1]),
2463+
split_off_tests! {
2464+
slice: &mut [1, 2], method: split_off_last_mut,
2465+
(split_off_last_mut_nonempty, (), Some(&mut 2), &mut [1]),
24662466
}
24672467

2468-
take_tests! {
2469-
slice: &[], method: take_first,
2470-
(take_first_empty, (), None, &[]),
2468+
split_off_tests! {
2469+
slice: &[], method: split_off_first,
2470+
(split_off_first_empty, (), None, &[]),
24712471
}
24722472

2473-
take_tests! {
2474-
slice: &mut [], method: take_first_mut,
2475-
(take_first_mut_empty, (), None, &mut []),
2473+
split_off_tests! {
2474+
slice: &mut [], method: split_off_first_mut,
2475+
(split_off_first_mut_empty, (), None, &mut []),
24762476
}
24772477

2478-
take_tests! {
2479-
slice: &[], method: take_last,
2480-
(take_last_empty, (), None, &[]),
2478+
split_off_tests! {
2479+
slice: &[], method: split_off_last,
2480+
(split_off_last_empty, (), None, &[]),
24812481
}
24822482

2483-
take_tests! {
2484-
slice: &mut [], method: take_last_mut,
2485-
(take_last_mut_empty, (), None, &mut []),
2483+
split_off_tests! {
2484+
slice: &mut [], method: split_off_last_mut,
2485+
(split_off_last_mut_empty, (), None, &mut []),
24862486
}
24872487

24882488
#[cfg(not(miri))] // unused in Miri
@@ -2497,19 +2497,19 @@ macro_rules! empty_max_mut {
24972497
}
24982498

24992499
#[cfg(not(miri))] // Comparing usize::MAX many elements takes forever in Miri (and in rustc without optimizations)
2500-
take_tests! {
2501-
slice: &[(); usize::MAX], method: take,
2502-
(take_in_bounds_max_range_to, (..usize::MAX), Some(EMPTY_MAX), &[(); 0]),
2503-
(take_oob_max_range_to_inclusive, (..=usize::MAX), None, EMPTY_MAX),
2504-
(take_in_bounds_max_range_from, (usize::MAX..), Some(&[] as _), EMPTY_MAX),
2500+
split_off_tests! {
2501+
slice: &[(); usize::MAX], method: split_off,
2502+
(split_off_in_bounds_max_range_to, (..usize::MAX), Some(EMPTY_MAX), &[(); 0]),
2503+
(split_off_oob_max_range_to_inclusive, (..=usize::MAX), None, EMPTY_MAX),
2504+
(split_off_in_bounds_max_range_from, (usize::MAX..), Some(&[] as _), EMPTY_MAX),
25052505
}
25062506

25072507
#[cfg(not(miri))] // Comparing usize::MAX many elements takes forever in Miri (and in rustc without optimizations)
2508-
take_tests! {
2509-
slice: &mut [(); usize::MAX], method: take_mut,
2510-
(take_mut_in_bounds_max_range_to, (..usize::MAX), Some(empty_max_mut!()), &mut [(); 0]),
2511-
(take_mut_oob_max_range_to_inclusive, (..=usize::MAX), None, empty_max_mut!()),
2512-
(take_mut_in_bounds_max_range_from, (usize::MAX..), Some(&mut [] as _), empty_max_mut!()),
2508+
split_off_tests! {
2509+
slice: &mut [(); usize::MAX], method: split_off_mut,
2510+
(split_off_mut_in_bounds_max_range_to, (..usize::MAX), Some(empty_max_mut!()), &mut [(); 0]),
2511+
(split_off_mut_oob_max_range_to_inclusive, (..=usize::MAX), None, empty_max_mut!()),
2512+
(split_off_mut_in_bounds_max_range_from, (usize::MAX..), Some(&mut [] as _), empty_max_mut!()),
25132513
}
25142514

25152515
#[test]

0 commit comments

Comments
 (0)