# iter-diff
#### Differences between iterators
[![CI][ci-badge]][ci-url]
[![codecov][codecov-badge]][codecov-url]
[![docs.rs][docs-badge]][docs-url]
[ci-badge]: https://img.shields.io/github/workflow/status/ureeves/iter-diff/main?logo=github
[ci-url]: https://github.com/ureeves/iter-diff/actions/workflows/main.yml
[codecov-badge]: https://img.shields.io/codecov/c/gh/ureeves/iter-diff?logo=codecov
[codecov-url]: https://codecov.io/gh/ureeves/iter-diff
[docs-badge]: https://img.shields.io/docsrs/iter-diff?color=blue&logo=rust&logoColor=orange
[docs-url]: https://docs.rs/iter-diff
---
The `IterDiff` trait can be used to iterate through the differences between
two iterators. The differences between each element are enumerated by `Diff`.
The variants of the enum express the changes one would need to make to the
left-hand iterator in order to attain the right-hand iterator.
```rust
use iter_diff::prelude::*;
let a = [0, 1, 2, 3];
let b = [0, 2, 2];
let diffs: Vec<_> = a.iter_diff(b).collect();
assert_eq!(diffs.len(), 4);
assert_eq!(diffs[0], Diff::Keep);
assert_eq!(diffs[1], Diff::Change(2));
assert_eq!(diffs[2], Diff::Keep);
assert_eq!(diffs[3], Diff::Remove);
```