pub enum ServiceError {
Io(Error),
Fmt(Error),
Json(Error),
Network(Error),
Http(HttpError),
LockPoisoned,
ConfigDeserialization,
FeatureDisabled(FeatureDisabledError),
Unknown(Box<dyn Error + Send + Sync>),
}Expand description
Represents the possible failure modes for a Service.
This enum wraps specific backend errors into a unified type, allowing
the LoggerImpl to handle various failure scenarios consistently.
Variants§
Io(Error)
Errors related to the file system or standard I/O operations.
This is typically triggered by permission issues, missing files, or interrupted streams during log rotation or local storage.
Fmt(Error)
Errors occurring during string formatting operations.
Usually happens when writing to a buffer or formatting complex log structures for output.
Json(Error)
Errors occurring during JSON serialization or deserialization.
Triggered when the log message cannot be converted to valid JSON or when a configuration file has an invalid JSON format.
Network(Error)
Errors occurring during network requests (e.g., HTTP).
This includes connection timeouts, DNS resolution failures, or transport-level issues when sending logs to a remote server.
Http(HttpError)
Errors returned by the HTTP server or protocol.
Unlike ServiceError::Network, this variant represents valid HTTP
responses that indicate a failure (e.g., 4xx or 5xx status codes).
LockPoisoned
A synchronization primitive has been “poisoned”.
This occurs when a thread panics while holding a std::sync::Mutex
or std::sync::RwLock. The data protected by the lock might be
in an inconsistent state.
ConfigDeserialization
Failed to map the raw configuration into the internal settings structure.
This indicates that the configuration exists and is syntactically correct, but contains invalid values or missing required fields.
FeatureDisabled(FeatureDisabledError)
The requested operation requires a feature that is not currently enabled.
Check the FeatureDisabledError for details on which feature is missing
and how to enable it in your Cargo.toml.
Unknown(Box<dyn Error + Send + Sync>)
A catch-all for errors not covered by the specific variants.
Use this for wrapping third-party errors that don’t justify a dedicated variant or for rare, unexpected conditions.
Trait Implementations§
Source§impl Debug for ServiceError
impl Debug for ServiceError
Source§impl Display for ServiceError
impl Display for ServiceError
Source§impl Error for ServiceError
impl Error for ServiceError
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
Source§impl From<Error> for ServiceError
impl From<Error> for ServiceError
Source§impl From<Error> for ServiceError
impl From<Error> for ServiceError
Source§impl<T> From<PoisonError<MutexGuard<'_, T>>> for ServiceError
impl<T> From<PoisonError<MutexGuard<'_, T>>> for ServiceError
Source§fn from(_err: PoisonError<MutexGuard<'_, T>>) -> Self
fn from(_err: PoisonError<MutexGuard<'_, T>>) -> Self
Auto Trait Implementations§
impl Freeze for ServiceError
impl !RefUnwindSafe for ServiceError
impl Send for ServiceError
impl Sync for ServiceError
impl Unpin for ServiceError
impl !UnwindSafe for ServiceError
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
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.