I wrote the following function to compare two stepwise iterators. However, it would be great if I could just reuse something in the standard library.
fn iter_eq<A, B, T, U>(mut a: A, mut b: B) -> bool where A: Iterator<Item = T>, B: Iterator<Item = U>, T: PartialEq<U>, { loop { match (a.next(), b.next()) { (Some(ref a), Some(ref b)) if a == b => continue, (None, None) => return true, _ => return false, } } } fn main() { let a = vec![1, 2, 3].into_iter(); let b = vec![1, 2, 3].into_iter(); assert!(iter_eq(a, b)); }
source share