Crate map_retry

Source
Expand description

Map retry crate provides a trait that allows to repeat mapping on failed results. This is useful for doing I/O such as loading webpages using iterators.

map_retry behaves like normal map function, with exception that return type must be Result and if Err is returned it tries to execute mapping function one more time after all original items have been processed. Order of results is not guaranteed. If mapping fails also on second try the last error is returned. The same number of input and output items is guaranteed.

use map_retry::MapRetry;
fn retry() {
    let a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
    let res: Vec<_> = a.iter().map_retry(|a| do_failable_io(a)).collect();
    assert_eq!(a.len(), res.len());
}

Structs§

MapIter
Return type used for chaining with iterators

Traits§

MapRetry
Trait defining retry signatures