iter-scan 0.4.0

Iterator scan methods that don't suck
Documentation
This iterator adapter holds an internal state and emit this state on each iteration.

This internal state can be [cloned](Clone).

[`scan_clone()`](Self::scan_clone) takes 2 arguments:
* An initial value which seeds the internal state.
* A closure that:
  - Takes 2 arguments: Copy of the internal state from the previous iteration and the current item.
  - Returns the new state for the next iteration.

**Example:** Basic usage

```rust
use iter_scan::IterScan;
let input = ['a', 'b', 'c', 'd', 'e', 'f'];
let output: Vec<_> = input
    .into_iter()
    .scan_clone(String::new(), |acc, x| format!("{acc}{x}"))
    .collect();
assert_eq!(output, ["a", "ab", "abc", "abcd", "abcde", "abcdef"]);
```