diff options
| author | JP-Ellis <coujellis@gmail.com> | 2015-02-28 14:29:54 +1100 |
|---|---|---|
| committer | JP-Ellis <coujellis@gmail.com> | 2015-02-28 14:29:54 +1100 |
| commit | bbd060d85a8adb0f3df26cfb84629127a9b8561a (patch) | |
| tree | 3f85a98a583f768433afd5e909c94e128dc2903b | |
| parent | e233987ce1de88a48db2ce612019ba644d3cf5dd (diff) | |
| download | rust-bbd060d85a8adb0f3df26cfb84629127a9b8561a.tar.gz rust-bbd060d85a8adb0f3df26cfb84629127a9b8561a.zip | |
Update iter::order to be more generic.
Signed-off-by: JP-Ellis <coujellis@gmail.com>
| -rw-r--r-- | src/libcore/iter.rs | 54 |
1 files changed, 20 insertions, 34 deletions
diff --git a/src/libcore/iter.rs b/src/libcore/iter.rs index 94cc933d844..4c9e8f47d0e 100644 --- a/src/libcore/iter.rs +++ b/src/libcore/iter.rs @@ -2874,10 +2874,10 @@ pub mod order { use super::Iterator; /// Compare `a` and `b` for equality using `Eq` - pub fn equals<A, T, S>(mut a: T, mut b: S) -> bool where + pub fn equals<A, L, R>(mut a: L, mut b: R) -> bool where A: Eq, - T: Iterator<Item=A>, - S: Iterator<Item=A>, + L: Iterator<Item=A>, + R: Iterator<Item=A>, { loop { match (a.next(), b.next()) { @@ -2889,10 +2889,10 @@ pub mod order { } /// Order `a` and `b` lexicographically using `Ord` - pub fn cmp<A, T, S>(mut a: T, mut b: S) -> cmp::Ordering where + pub fn cmp<A, L, R>(mut a: L, mut b: R) -> cmp::Ordering where A: Ord, - T: Iterator<Item=A>, - S: Iterator<Item=A>, + L: Iterator<Item=A>, + R: Iterator<Item=A>, { loop { match (a.next(), b.next()) { @@ -2908,10 +2908,8 @@ pub mod order { } /// Order `a` and `b` lexicographically using `PartialOrd` - pub fn partial_cmp<A, T, S>(mut a: T, mut b: S) -> Option<cmp::Ordering> where - A: PartialOrd, - T: Iterator<Item=A>, - S: Iterator<Item=A>, + pub fn partial_cmp<L: Iterator, R: Iterator>(mut a: L, mut b: R) -> Option<cmp::Ordering> where + L::Item: PartialOrd<R::Item> { loop { match (a.next(), b.next()) { @@ -2927,10 +2925,8 @@ pub mod order { } /// Compare `a` and `b` for equality (Using partial equality, `PartialEq`) - pub fn eq<A, B, L, R>(mut a: L, mut b: R) -> bool where - A: PartialEq<B>, - L: Iterator<Item=A>, - R: Iterator<Item=B>, + pub fn eq<L: Iterator, R: Iterator>(mut a: L, mut b: R) -> bool where + L::Item: PartialEq<R::Item>, { loop { match (a.next(), b.next()) { @@ -2942,10 +2938,8 @@ pub mod order { } /// Compare `a` and `b` for nonequality (Using partial equality, `PartialEq`) - pub fn ne<A, B, L, R>(mut a: L, mut b: R) -> bool where - A: PartialEq<B>, - L: Iterator<Item=A>, - R: Iterator<Item=B>, + pub fn ne<L: Iterator, R: Iterator>(mut a: L, mut b: R) -> bool where + L::Item: PartialEq<R::Item>, { loop { match (a.next(), b.next()) { @@ -2957,10 +2951,8 @@ pub mod order { } /// Return `a` < `b` lexicographically (Using partial order, `PartialOrd`) - pub fn lt<A, T, S>(mut a: T, mut b: S) -> bool where - A: PartialOrd, - T: Iterator<Item=A>, - S: Iterator<Item=A>, + pub fn lt<R: Iterator, L: Iterator>(mut a: L, mut b: R) -> bool where + L::Item: PartialOrd<R::Item>, { loop { match (a.next(), b.next()) { @@ -2973,10 +2965,8 @@ pub mod order { } /// Return `a` <= `b` lexicographically (Using partial order, `PartialOrd`) - pub fn le<A, T, S>(mut a: T, mut b: S) -> bool where - A: PartialOrd, - T: Iterator<Item=A>, - S: Iterator<Item=A>, + pub fn le<L: Iterator, R: Iterator>(mut a: L, mut b: R) -> bool where + L::Item: PartialOrd<R::Item>, { loop { match (a.next(), b.next()) { @@ -2989,10 +2979,8 @@ pub mod order { } /// Return `a` > `b` lexicographically (Using partial order, `PartialOrd`) - pub fn gt<A, T, S>(mut a: T, mut b: S) -> bool where - A: PartialOrd, - T: Iterator<Item=A>, - S: Iterator<Item=A>, + pub fn gt<L: Iterator, R: Iterator>(mut a: L, mut b: R) -> bool where + L::Item: PartialOrd<R::Item>, { loop { match (a.next(), b.next()) { @@ -3005,10 +2993,8 @@ pub mod order { } /// Return `a` >= `b` lexicographically (Using partial order, `PartialOrd`) - pub fn ge<A, T, S>(mut a: T, mut b: S) -> bool where - A: PartialOrd, - T: Iterator<Item=A>, - S: Iterator<Item=A>, + pub fn ge<L: Iterator, R: Iterator>(mut a: L, mut b: R) -> bool where + L::Item: PartialOrd<R::Item>, { loop { match (a.next(), b.next()) { |
