Skip to content

Commit 30de5a8

Browse files
Remove deprecated Itertools::step
1 parent b54c4c3 commit 30de5a8

File tree

6 files changed

+6
-149
lines changed

6 files changed

+6
-149
lines changed

src/adaptors/mod.rs

Lines changed: 0 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -507,69 +507,6 @@ where
507507
}
508508
}
509509

510-
/// An iterator adaptor that steps a number elements in the base iterator
511-
/// for each iteration.
512-
///
513-
/// The iterator steps by yielding the next element from the base iterator,
514-
/// then skipping forward *n-1* elements.
515-
///
516-
/// See [`.step()`](crate::Itertools::step) for more information.
517-
#[deprecated(note = "Use std .step_by() instead", since = "0.8.0")]
518-
#[allow(deprecated)]
519-
#[derive(Clone, Debug)]
520-
#[must_use = "iterator adaptors are lazy and do nothing unless consumed"]
521-
pub struct Step<I> {
522-
iter: Fuse<I>,
523-
skip: usize,
524-
}
525-
526-
/// Create a `Step` iterator.
527-
///
528-
/// **Panics** if the step is 0.
529-
#[allow(deprecated)]
530-
pub fn step<I>(iter: I, step: usize) -> Step<I>
531-
where
532-
I: Iterator,
533-
{
534-
assert!(step != 0);
535-
Step {
536-
iter: iter.fuse(),
537-
skip: step - 1,
538-
}
539-
}
540-
541-
#[allow(deprecated)]
542-
impl<I> Iterator for Step<I>
543-
where
544-
I: Iterator,
545-
{
546-
type Item = I::Item;
547-
#[inline]
548-
fn next(&mut self) -> Option<Self::Item> {
549-
let elt = self.iter.next();
550-
if self.skip > 0 {
551-
self.iter.nth(self.skip - 1);
552-
}
553-
elt
554-
}
555-
556-
fn size_hint(&self) -> (usize, Option<usize>) {
557-
let (low, high) = self.iter.size_hint();
558-
let div = |x: usize| {
559-
if x == 0 {
560-
0
561-
} else {
562-
1 + (x - 1) / (self.skip + 1)
563-
}
564-
};
565-
(div(low), high.map(div))
566-
}
567-
}
568-
569-
// known size
570-
#[allow(deprecated)]
571-
impl<I> ExactSizeIterator for Step<I> where I: ExactSizeIterator {}
572-
573510
/// An iterator adaptor that borrows from a `Clone`-able iterator
574511
/// to only pick off elements while the predicate returns `true`.
575512
///

src/lib.rs

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -80,15 +80,15 @@ pub use std::iter as __std_iter;
8080

8181
/// The concrete iterator types.
8282
pub mod structs {
83+
#[allow(deprecated)]
84+
pub use crate::adaptors::MapResults;
8385
#[cfg(feature = "use_alloc")]
8486
pub use crate::adaptors::MultiProduct;
8587
pub use crate::adaptors::{
8688
Batching, Coalesce, Dedup, DedupBy, DedupByWithCount, DedupWithCount, FilterMapOk,
8789
FilterOk, Interleave, InterleaveShortest, MapInto, MapOk, Positions, Product, PutBack,
8890
TakeWhileRef, TupleCombinations, Update, WhileSome,
8991
};
90-
#[allow(deprecated)]
91-
pub use crate::adaptors::{MapResults, Step};
9292
#[cfg(feature = "use_alloc")]
9393
pub use crate::combinations::Combinations;
9494
#[cfg(feature = "use_alloc")]
@@ -814,31 +814,6 @@ pub trait Itertools: Iterator {
814814
tee::new(self)
815815
}
816816

817-
/// Return an iterator adaptor that steps `n` elements in the base iterator
818-
/// for each iteration.
819-
///
820-
/// The iterator steps by yielding the next element from the base iterator,
821-
/// then skipping forward `n - 1` elements.
822-
///
823-
/// Iterator element type is `Self::Item`.
824-
///
825-
/// **Panics** if the step is 0.
826-
///
827-
/// ```
828-
/// use itertools::Itertools;
829-
///
830-
/// let it = (0..8).step(3);
831-
/// itertools::assert_equal(it, vec![0, 3, 6]);
832-
/// ```
833-
#[deprecated(note = "Use std .step_by() instead", since = "0.8.0")]
834-
#[allow(deprecated)]
835-
fn step(self, n: usize) -> Step<Self>
836-
where
837-
Self: Sized,
838-
{
839-
adaptors::step(self, n)
840-
}
841-
842817
/// Convert each item of the iterator using the [`Into`] trait.
843818
///
844819
/// ```rust

tests/laziness.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,10 +104,6 @@ must_use_tests! {
104104
tee {
105105
let _ = Panicking.tee();
106106
}
107-
#[allow(deprecated)]
108-
step {
109-
let _ = Panicking.step(2);
110-
}
111107
map_into {
112108
let _ = Panicking.map_into::<u16>();
113109
}

tests/quick.rs

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -456,45 +456,6 @@ quickcheck! {
456456
itertools::assert_equal(empty, std::iter::once(Vec::new()))
457457
}
458458

459-
#[allow(deprecated)]
460-
fn size_step(a: Iter<i16, Exact>, s: usize) -> bool {
461-
let mut s = s;
462-
if s == 0 {
463-
s += 1; // never zero
464-
}
465-
let filt = a.clone().dedup();
466-
correct_size_hint(filt.step(s)) &&
467-
exact_size(a.step(s))
468-
}
469-
470-
#[allow(deprecated)]
471-
fn equal_step(a: Iter<i16>, s: usize) -> bool {
472-
let mut s = s;
473-
if s == 0 {
474-
s += 1; // never zero
475-
}
476-
let mut i = 0;
477-
itertools::equal(a.clone().step(s), a.filter(|_| {
478-
let keep = i % s == 0;
479-
i += 1;
480-
keep
481-
}))
482-
}
483-
484-
#[allow(deprecated)]
485-
fn equal_step_vec(a: Vec<i16>, s: usize) -> bool {
486-
let mut s = s;
487-
if s == 0 {
488-
s += 1; // never zero
489-
}
490-
let mut i = 0;
491-
itertools::equal(a.iter().step(s), a.iter().filter(|_| {
492-
let keep = i % s == 0;
493-
i += 1;
494-
keep
495-
}))
496-
}
497-
498459
fn size_multipeek(a: Iter<u16, Exact>, s: u8) -> bool {
499460
let mut it = multipeek(a);
500461
// peek a few times
@@ -1373,13 +1334,12 @@ quickcheck! {
13731334
}
13741335

13751336
quickcheck! {
1376-
#[allow(deprecated)]
13771337
fn tree_fold1_f64(mut a: Vec<f64>) -> TestResult {
13781338
fn collapse_adjacent<F>(x: Vec<f64>, mut f: F) -> Vec<f64>
13791339
where F: FnMut(f64, f64) -> f64
13801340
{
13811341
let mut out = Vec::new();
1382-
for i in (0..x.len()).step(2) {
1342+
for i in (0..x.len()).step_by(2) {
13831343
if i == x.len()-1 {
13841344
out.push(x[i])
13851345
} else {

tests/test_core.rs

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -214,18 +214,9 @@ fn test_put_back() {
214214
it::assert_equal(pb, xs.iter().cloned());
215215
}
216216

217-
#[allow(deprecated)]
218-
#[test]
219-
fn step() {
220-
it::assert_equal((0..10).step(1), 0..10);
221-
it::assert_equal((0..10).step(2), (0..10).filter(|x: &i32| *x % 2 == 0));
222-
it::assert_equal((0..10).step(10), 0..1);
223-
}
224-
225-
#[allow(deprecated)]
226217
#[test]
227218
fn merge() {
228-
it::assert_equal((0..10).step(2).merge((1..10).step(2)), 0..10);
219+
it::assert_equal((0..10).step_by(2).merge((1..10).step_by(2)), 0..10);
229220
}
230221

231222
#[test]

tests/test_std.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -423,18 +423,16 @@ fn merge_by_btree() {
423423
it::assert_equal(results, expected);
424424
}
425425

426-
#[allow(deprecated)]
427426
#[test]
428427
fn kmerge() {
429-
let its = (0..4).map(|s| (s..10).step(4));
428+
let its = (0..4).map(|s| (s..10).step_by(4));
430429

431430
it::assert_equal(its.kmerge(), 0..10);
432431
}
433432

434-
#[allow(deprecated)]
435433
#[test]
436434
fn kmerge_2() {
437-
let its = vec![3, 2, 1, 0].into_iter().map(|s| (s..10).step(4));
435+
let its = vec![3, 2, 1, 0].into_iter().map(|s| (s..10).step_by(4));
438436

439437
it::assert_equal(its.kmerge(), 0..10);
440438
}

0 commit comments

Comments
 (0)