TransientErrorExt

Trait TransientErrorExt 

Source
pub trait TransientErrorExt<T, E: TransientError> {
    // Required method
    fn retry_if_transient(self) -> Option<Result<T, E>>;
}
Expand description

Extension methods for working with transient errors.

Required Methods§

Source

fn retry_if_transient(self) -> Option<Result<T, E>>

Converts a transient error to Some(Err(e)) for retry, or None to stop.

This is useful for integrating with retry libraries that use Option to signal whether to continue retrying.

§Examples
use error_rail::traits::{TransientError, TransientErrorExt};

#[derive(Debug)]
struct MyError { transient: bool }
impl TransientError for MyError {
    fn is_transient(&self) -> bool { self.transient }
}

let transient_err: Result<(), MyError> = Err(MyError { transient: true });
assert!(transient_err.retry_if_transient().is_some());

let permanent_err: Result<(), MyError> = Err(MyError { transient: false });
assert!(permanent_err.retry_if_transient().is_none());

Implementations on Foreign Types§

Source§

impl<T, E: TransientError> TransientErrorExt<T, E> for Result<T, E>

Implementors§