@@ -1681,8 +1681,8 @@ pub fn eachi_reverse<'r,T>(v: &'r [T],
1681
1681
*/
1682
1682
#[inline]
1683
1683
pub fn _each2<U, T>(v1: &[U], v2: &[T], f: &fn(u: &U, t: &T) -> bool) -> bool {
1684
- assert!(len(v1 ) == len(v2 ));
1685
- for uint::range(0u, len(v1 )) |i| {
1684
+ assert!(v1. len() == v2. len());
1685
+ for uint::range(0u, v1. len()) |i| {
1686
1686
if !f(&v1[i], &v2[i]) {
1687
1687
return false;
1688
1688
}
@@ -1699,6 +1699,35 @@ pub fn each2<U, T>(v1: &[U], v2: &[T], f: &fn(u: &U, t: &T) -> bool) -> bool {
1699
1699
_each2(v1, v2, f)
1700
1700
}
1701
1701
1702
+ /**
1703
+ *
1704
+ * Iterates over two vector with mutable.
1705
+ *
1706
+ * # Failure
1707
+ *
1708
+ * Both vectors must have the same length
1709
+ */
1710
+ #[inline]
1711
+ pub fn _each2_mut<U, T>(v1: &mut [U], v2: &mut [T], f: &fn(u: &mut U, t: &mut T) -> bool) -> bool {
1712
+ assert!(v1.len() == v2.len());
1713
+ for uint::range(0u, v1.len()) |i| {
1714
+ if !f(&mut v1[i], &mut v2[i]) {
1715
+ return false;
1716
+ }
1717
+ }
1718
+ return true;
1719
+ }
1720
+
1721
+ #[cfg(stage0)]
1722
+ pub fn each2_mut<U, T>(v1: &mut [U], v2: &mut [T], f: &fn(u: &mut U, t: &mut T) -> bool) {
1723
+ _each2_mut(v1, v2, f);
1724
+ }
1725
+
1726
+ #[cfg(not(stage0))]
1727
+ pub fn each2_mut<U, T>(v1: &mut [U], v2: &mut [T], f: &fn(u: &mut U, t: &mut T) -> bool) -> bool {
1728
+ _each2_mut(v1, v2, f)
1729
+ }
1730
+
1702
1731
/**
1703
1732
* Iterate over all permutations of vector `v`.
1704
1733
*
0 commit comments