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§
Sourcefn retry_if_transient(self) -> Option<Result<T, E>>
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());