pub trait WhileOk<O, E> {
// Required method
fn while_ok<F>(self, _: F) -> Result<(), E>
where F: FnMut(O);
}
Expand description
Extension trait for Iterator<Item = Result<O, E>>
to iter until an error is encountered.
Required Methods§
sourcefn while_ok<F>(self, _: F) -> Result<(), E>where
F: FnMut(O),
fn while_ok<F>(self, _: F) -> Result<(), E>where F: FnMut(O),
Perform an on each Ok
value. Stop on first Err
use resiter::while_ok::WhileOk;
use std::str::FromStr;
let mut s = 0;
let res = ["1", "2", "3", "4", "5"]
.iter()
.map(|txt| usize::from_str(txt))
.while_ok(|i| s += i);
assert_eq!(s, 15);
assert!(res.is_ok());
When every value is Ok
stop the iteration at the end of the iterator:
use resiter::while_ok::WhileOk;
use std::str::FromStr;
let mut s = 0;
let res = ["1", "2", "a", "4", "5"]
.iter()
.map(|txt| usize::from_str(txt))
.while_ok(|i| s += i);
assert_eq!(s, 3);
assert!(res.is_err());