From dd29c1ef0df79cf174c710f95ffdc418f78368a5 Mon Sep 17 00:00:00 2001 From: Emanuel Rylke Date: Thu, 23 Oct 2014 12:38:57 +0200 Subject: [PATCH 1/2] Simplify intersperse iterator --- src/intersperse.rs | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/intersperse.rs b/src/intersperse.rs index 851fd7d4a..24335fb81 100644 --- a/src/intersperse.rs +++ b/src/intersperse.rs @@ -9,7 +9,6 @@ pub struct Intersperse { element: A, iter: I, peek: Option, - insert: bool, } impl> Intersperse @@ -17,7 +16,7 @@ impl> Intersperse /// Create a new Intersperse iterator pub fn new(mut iter: I, elt: A) -> Intersperse { - Intersperse{peek: iter.next(), iter: iter, element: elt, insert: false} + Intersperse{peek: iter.next(), iter: iter, element: elt} } } @@ -27,18 +26,15 @@ Iterator for Intersperse #[inline] fn next(&mut self) -> Option { - if self.insert { + if self.peek.is_some() { + self.peek.take() + } else { + self.peek = self.iter.next(); if self.peek.is_some() { - self.insert = false; Some(self.element.clone()) } else { None } - } else { - let elt = self.peek.take(); - self.peek = self.iter.next(); - self.insert = true; - elt } } From 0de2767af1864d99ea73d84ffa90f35f7e0a9b1d Mon Sep 17 00:00:00 2001 From: Emanuel Rylke Date: Thu, 23 Oct 2014 12:49:28 +0200 Subject: [PATCH 2/2] tests/stride.rs: remove "extern crate debug" --- tests/stride.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/stride.rs b/tests/stride.rs index bba257242..004d3ebfa 100644 --- a/tests/stride.rs +++ b/tests/stride.rs @@ -1,6 +1,5 @@ extern crate test; extern crate itertools; -extern crate debug; use itertools::Itertools; use itertools::ItertoolsClonable;