use core::iter::*; #[test] fn test_iterator_scan() { // test the type inference fn add(old: &mut isize, new: &usize) -> Option { *old += *new as isize; Some(*old as f64) } let xs = [0, 1, 2, 3, 4]; let ys = [0f64, 1.0, 3.0, 6.0, 10.0]; let it = xs.iter().scan(0, add); let mut i = 0; for x in it { assert_eq!(x, ys[i]); i += 1; } assert_eq!(i, ys.len()); }