From 7095dd00702373dd612d61e191eb57fadce00751 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Sat, 3 Jan 2015 08:19:51 -0500 Subject: [PATCH] core: merge IteratorPairExt into IteratorExt --- src/libcore/iter.rs | 16 ++++++---------- src/libcore/prelude.rs | 2 +- src/libstd/prelude/v1.rs | 1 - 3 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index b19cbb54d29..963377ff6b3 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -737,20 +737,15 @@ pub trait IteratorExt: Iterator + Sized { fn rev(self) -> Rev { Rev{iter: self} } -} -#[unstable = "trait is unstable"] -impl IteratorExt for I where I: Iterator {} - -/// Extention trait for iterators of pairs. -#[unstable = "newly added trait, likely to be merged with IteratorExt"] -pub trait IteratorPairExt: Iterator + Sized { /// Converts an iterator of pairs into a pair of containers. /// /// Loops through the entire iterator, collecting the first component of /// each item into one new container, and the second component into another. - fn unzip(mut self) -> (FromA, FromB) where - FromA: Default + Extend, FromB: Default + Extend + fn unzip(mut self) -> (FromA, FromB) where + FromA: Default + Extend, + FromB: Default + Extend, + Self: Iterator, { struct SizeHint(uint, Option); impl Iterator for SizeHint { @@ -778,7 +773,8 @@ pub trait IteratorPairExt: Iterator + Sized { } } -impl IteratorPairExt for I where I: Iterator {} +#[unstable = "trait is unstable"] +impl IteratorExt for I where I: Iterator {} /// A range iterator able to yield elements from both ends /// diff --git a/src/libcore/prelude.rs b/src/libcore/prelude.rs index b661fb7ccba..1355825e56d 100644 --- a/src/libcore/prelude.rs +++ b/src/libcore/prelude.rs @@ -44,7 +44,7 @@ pub use cmp::{PartialEq, PartialOrd, Eq, Ord}; pub use iter::{Extend, IteratorExt}; pub use iter::{Iterator, DoubleEndedIterator}; pub use iter::{IteratorCloneExt, CloneIteratorExt}; -pub use iter::{IteratorOrdExt, ExactSizeIterator, IteratorPairExt}; +pub use iter::{IteratorOrdExt, ExactSizeIterator}; pub use option::Option::{mod, Some, None}; pub use ptr::{PtrExt, MutPtrExt}; pub use result::Result::{mod, Ok, Err}; diff --git a/src/libstd/prelude/v1.rs b/src/libstd/prelude/v1.rs index dea2749c182..2d2f3f895d0 100644 --- a/src/libstd/prelude/v1.rs +++ b/src/libstd/prelude/v1.rs @@ -30,7 +30,6 @@ #[stable] #[doc(no_inline)] pub use iter::ExactSizeIterator; #[stable] #[doc(no_inline)] pub use iter::{Iterator, IteratorExt, Extend}; #[stable] #[doc(no_inline)] pub use iter::{IteratorCloneExt, IteratorOrdExt}; -#[stable] #[doc(no_inline)] pub use iter::IteratorPairExt; #[stable] #[doc(no_inline)] pub use option::Option::{mod, Some, None}; #[stable] #[doc(no_inline)] pub use ptr::{PtrExt, MutPtrExt}; #[stable] #[doc(no_inline)] pub use result::Result::{mod, Ok, Err};