1 unstable release

new 0.1.0 Apr 28, 2025

#422 in No standard library

MIT license

6KB
97 lines

Ensure that side effects in iterators always run forward

Examples

Fail case:

let mut i = 0;
let x: Vec<_> = (0..4).map(|_| { i += 1; i }).rev().collect();
assert_eq!(x, [4, 3, 2, 1]); // fail!

Rewrite to:

use forward_iter::ForwardIterExt as _;
let mut i = 0;
let x: Vec<_> = (0..4).map(|_| { i += 1; i }).forward().rev().collect();
assert_eq!(x, [4, 3, 2, 1]); // success!

No runtime deps