Trait resiter::onerr::OnErrDo

source ·
pub trait OnErrDo<I, O, E, F>where
    I: Iterator<Item = Result<O, E>>,
    F: FnMut(&E),{
    // Required method
    fn on_err(self, _: F) -> OnErr<I, O, E, F> ;
}
Expand description

Extension trait for Iterator<Item = Result<T, E>> to do something on Err(_)

Required Methods§

source

fn on_err(self, _: F) -> OnErr<I, O, E, F>

Apply a sideffect on each Err

use resiter::onerr::OnErrDo;
use std::str::FromStr;

let mut errs = Vec::<::std::num::ParseIntError>::new();
let _: Vec<Result<usize, ::std::num::ParseIntError>> = ["1", "2", "a", "b", "5"]
    .iter()
    .map(|e| usize::from_str(e))
    .on_err(|e| {
        errs.push(e.to_owned())
    })
    .collect();

assert_eq!(errs.len(), 2);

Implementors§

source§

impl<I, O, E, F> OnErrDo<I, O, E, F> for Iwhere I: Iterator<Item = Result<O, E>>, F: FnMut(&E),