[][src]Trait resultit::stop_after_error::StopAfterError

pub trait StopAfterError {
    fn stop_after_error<O, E>(self) -> StopAfterErrorIter<Self>
    where
        Self: Iterator<Item = Result<O, E>> + Sized
; }

Iterator adapter to stop iteration after the first error is encountered. Lazily yields each item in the iterator up to and including the first error. Subsequent calls to Iterator::next() return None. Use this trait to enable the stop_after_error() function for iterators.

Example:

// Use the StopAfterError trait to enable stop_after_error() on iterators.
use resultit::StopAfterError;
 
// Vector of results in which one result is an error.
let mut v: Vec<Result<i32, MyError>> = vec![
	Ok(1),
	Ok(2),
	Err(MyError{}),
	Ok(3)
];
 
// Collection continues even after encountering the error.
v = v.into_iter().collect();
println!("{:?}", v);
// [Ok(1), Ok(2), Err(MyError), Ok(3)]
 
// Use stop_after_error() to stop iteration after the first error.
v = v.into_iter().stop_after_error().collect();
println!("{:?}", v);
// [Ok(1), Ok(2), Err(MyError)]

Required methods

Important traits for StopAfterErrorIter<It>
fn stop_after_error<O, E>(self) -> StopAfterErrorIter<Self> where
    Self: Iterator<Item = Result<O, E>> + Sized

Iterator adapter to stop iteration after the first error is encountered. See documentation for StopAfterError for details.

Loading content...

Implementors

impl<It> StopAfterError for It where
    It: Iterator + Sized
[src]

Loading content...