simple_scan
===
`Iterator` extensions for simple scan operation.
*The author of this crate is not good at English.*
*Forgive me if the document is hard to read.*
## What is this?
This crate provides the `IteratorSimpleScanExt` trait.
The `IteratorSimpleScanExt` trait is an extension trait of the `Iterator` trait,
which implements some methods similar to the `scan` methods of the `Iterator`
trait, but more simplified and specialized.
The following is a list of those methods. The sample code on the left shows the
case where those simplified methods are used, and the sample code on the right
shows the case where the same process is implemented with `scan` method.
<table>
<thead>
<tr>
<th>Name
<th>example / equivalent code
<tbody valign="baseline">
<tr>
<td> <code>trace</code>
<td>
```rust
```rust
Some(*s)
});
```
<tr>
<td> <code>trace2</code>
<td>
```rust
```rust
*s += x;
Some((prev, *s))
});
```
<tr>
<td><code>diff</code>
<td>
```rust
```rust
Some(x - p)
});
```
</table>
## What's New
v0.4.0
* Rust edition is updated to 2024.
* Add `prelude` module (Although this crate is very small).
* Polish documentations.
v0.3.1
* Minor refactoring.
v0.3.0
* `must_use` annotations are added at several locations.
v0.2.1
* Minor refactoring.
v0.2.0
* changes `trace2` behavior.
In version 0.2, it track previous and current state.
While in version 0.1, it track current state and current input.