diff --git a/README.md b/README.md new file mode 100644 index 0000000..4374e83 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# iter_accumulate +An iterator adaptor for Rust that accumulates the elements from the base iterator +using the provided closure. + +This is similar to `fold()`, but instead of returning the final accumulated result, it returns an +iterator that yields the current accumulated value for each iteration. In other words, the last +element yielded by `accumulate()` is what would have been returned by `fold()` if it was used +instead. + +## Example + +```rust +use iter_accumulate::IterAccumulate; + +let input = [1, 2, 3, 4, 5]; +let mut iter = input.iter().accumulate(1, |acc, i| acc * i); + +assert_eq!(iter.next(), Some(1)); +assert_eq!(iter.next(), Some(2)); +assert_eq!(iter.next(), Some(6)); +assert_eq!(iter.next(), Some(24)); +assert_eq!(iter.next(), Some(120)); +assert_eq!(iter.next(), None); +``` \ No newline at end of file