#[non_exhaustive]pub enum NotificationError {
Configuration {
message: String,
},
Provider {
provider: String,
message: String,
},
ProviderUnavailable {
provider: String,
retry_after: Option<Duration>,
},
InvalidInput {
message: String,
},
Template {
message: String,
},
ProviderRateLimited {
provider: String,
seconds: u64,
},
CircuitOpen {
provider: String,
retry_after: Duration,
},
Timeout,
}Expand description
Errors that occur during notification delivery (email, SMS, push, etc.).
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Configuration
The notification provider is misconfigured (e.g. missing API key or invalid sender address).
Provider
The notification provider returned an unexpected error response.
Fields
The notification provider is temporarily unreachable or returning 5xx responses.
InvalidInput
The notification request contained invalid data (e.g. a malformed recipient address or an empty message body).
Template
An error occurred while rendering the notification template.
ProviderRateLimited
The notification provider has rate-limited the sending account.
Fields
CircuitOpen
The circuit breaker for this provider is open because too many recent requests have failed.
Requests will not be forwarded to the provider until retry_after has
elapsed, giving the provider time to recover.
Fields
Timeout
The notification delivery attempt did not complete within the allowed time budget.
Implementations§
Source§impl NotificationError
impl NotificationError
Sourcepub const fn error_code(&self) -> &'static str
pub const fn error_code(&self) -> &'static str
Returns a short, stable error code string suitable for API responses and structured logging.
Trait Implementations§
Source§impl Debug for NotificationError
impl Debug for NotificationError
Source§impl Display for NotificationError
impl Display for NotificationError
Source§impl Error for NotificationError
impl Error for NotificationError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
use the Display impl or to_string()
Source§impl From<NotificationError> for RuntimeError
impl From<NotificationError> for RuntimeError
Source§fn from(source: NotificationError) -> Self
fn from(source: NotificationError) -> Self
Auto Trait Implementations§
impl Freeze for NotificationError
impl RefUnwindSafe for NotificationError
impl Send for NotificationError
impl Sync for NotificationError
impl Unpin for NotificationError
impl UnsafeUnpin for NotificationError
impl UnwindSafe for NotificationError
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
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>
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>
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 more