pub struct RecoveryError {
pub category: ErrorCategory,
pub message: String,
pub strategy: RecoveryStrategy,
pub suggestion: String,
pub timestamp: DateTime<Utc>,
pub retry_count: u32,
pub retryable: bool,
}Expand description
Error with context and recovery information
Fields§
§category: ErrorCategoryError category
message: StringHuman-readable message
strategy: RecoveryStrategyRecovery strategy recommendation
suggestion: StringRecovery suggestion for user
timestamp: DateTime<Utc>Timestamp of error
retry_count: u32Retry count so far
retryable: boolCan retry
Implementations§
Source§impl RecoveryError
impl RecoveryError
Sourcepub fn new(category: ErrorCategory, message: impl Into<String>) -> Self
pub fn new(category: ErrorCategory, message: impl Into<String>) -> Self
Create new recovery error
Sourcepub fn with_retry_count(self, count: u32) -> Self
pub fn with_retry_count(self, count: u32) -> Self
Increment retry count
Sourcepub fn is_transient(&self) -> bool
pub fn is_transient(&self) -> bool
Check if this error suggests a transient issue (can retry)
Sourcepub fn should_use_cache(&self) -> bool
pub fn should_use_cache(&self) -> bool
Check if cache fallback is appropriate for this error
Sourcepub fn retry_delay_ms(&self, config: &RetryConfig) -> u64
pub fn retry_delay_ms(&self, config: &RetryConfig) -> u64
Estimate milliseconds to wait before retry based on retry count
Trait Implementations§
Source§impl Clone for RecoveryError
impl Clone for RecoveryError
Source§fn clone(&self) -> RecoveryError
fn clone(&self) -> RecoveryError
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for RecoveryError
impl RefUnwindSafe for RecoveryError
impl Send for RecoveryError
impl Sync for RecoveryError
impl Unpin for RecoveryError
impl UnwindSafe for RecoveryError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request