use core::iter::*; #[test] fn test_inspect() { let xs = [1, 2, 3, 4]; let mut n = 0; let ys = xs.iter().cloned().inspect(|_| n += 1).collect::>(); assert_eq!(n, xs.len()); assert_eq!(&xs[..], &ys[..]); } #[test] fn test_inspect_fold() { let xs = [1, 2, 3, 4]; let mut n = 0; { let it = xs.iter().inspect(|_| n += 1); let i = it.fold(0, |i, &x| { assert_eq!(x, xs[i]); i + 1 }); assert_eq!(i, xs.len()); } assert_eq!(n, xs.len()); let mut n = 0; { let it = xs.iter().inspect(|_| n += 1); let i = it.rfold(xs.len(), |i, &x| { assert_eq!(x, xs[i - 1]); i - 1 }); assert_eq!(i, 0); } assert_eq!(n, xs.len()); }