#iterator #element #first #predicate #failure #true #fails

take_while_with_failure

Adds a take_while_with_failure iterator that behaves identically to take_while, but also includes the first element that fails

1 unstable release

Uses old Rust 2015

0.1.0 Aug 15, 2015

#28 in #true

Apache-2.0

6KB
56 lines

Take While with Failure

This library implements an additional iterator for rust.

Creates an iterator that yields elements as long as the predicate returns true. Additionally, it includes the first element that returns false, after which no further elements will be yielded.

This can be useful if, for example, you would like to read a stream until the first error and then stop processing immediately without losing the error.

Example

let a = [1, 2, 3, 4, 5];
let mut it = a.iter().take_while_with_failure(|&a| *a < 2);
assert_eq!(it.next(), Some(&1));
assert_eq!(it.next(), Some(&2));
assert!(it.next().is_none());

No runtime deps