iterator-ext 0.2.1

An extension to Rust's Iterator
Documentation
  • Coverage
  • 50%
    11 out of 22 items documented1 out of 1 items with examples
  • Size
  • Source code size: 26.78 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 15.66 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • Homepage
  • jerry73204/iterator-ext
    2 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • jerry73204

iterator-ext: An extension to Rust's Iterator trait.

Usage

The crate provides the IteratorExt trait extends the capability of those types that implements Iterator. It provides try_filter(), try_flatten() and more fallible adaptors that are analogous to those of Iterator.

The example demonstrates the usage of the adaptors. It accumulates the values from 0 to 9, and keeps only even outcomes. It raises error when the accumulation exceeds 10.

use iterator_ext::IteratorExt;
//!
let results: Vec<_> = (0..10)
    .map(Ok)
    .try_scan(0, |acc, val| {
        *acc += val;
        if *acc <= 10 {
            Ok(Some(*acc))
        } else {
            Err("exceed limit")
        }
    })
    .try_filter(|val| Ok(val % 2 == 0))
    .collect();
//!
assert_eq!(results, vec![Ok(0), Ok(6), Ok(10), Err("exceed limit")]);

License

MIT license. See LICENSE.txt file.