pub enum GeminiErrorKind {
Authentication,
RateLimit,
QuotaExceeded,
ServerError,
NetworkError,
Unknown,
}Expand description
Application-wide error types.
This enum represents all possible errors that can occur in the Ceres application.
It uses the thiserror crate for ergonomic error handling and automatic conversion
from underlying library errors.
§Error Conversion
Most errors automatically convert from their source types using the #[from] attribute:
sqlx::Error→AppError::DatabaseErrorreqwest::Error→AppError::ClientErrorserde_json::Error→AppError::SerializationErrorurl::ParseError→AppError::InvalidUrl
§Examples
use ceres_core::error::AppError;
fn example() -> Result<(), AppError> {
// Errors automatically convert
Err(AppError::Generic("Something went wrong".to_string()))
}§Gemini Error Classification
Gemini API errors are classified into specific categories for better error handling.
Variants§
Authentication
Authentication failure (401, invalid API key)
RateLimit
Rate limit exceeded (429)
QuotaExceeded
Quota exceeded (insufficient_quota)
ServerError
Server error (5xx)
NetworkError
Network/connection error
Unknown
Unknown or unclassified error
Trait Implementations§
Source§impl Clone for GeminiErrorKind
impl Clone for GeminiErrorKind
Source§fn clone(&self) -> GeminiErrorKind
fn clone(&self) -> GeminiErrorKind
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 moreSource§impl Debug for GeminiErrorKind
impl Debug for GeminiErrorKind
Source§impl PartialEq for GeminiErrorKind
impl PartialEq for GeminiErrorKind
impl Eq for GeminiErrorKind
impl StructuralPartialEq for GeminiErrorKind
Auto Trait Implementations§
impl Freeze for GeminiErrorKind
impl RefUnwindSafe for GeminiErrorKind
impl Send for GeminiErrorKind
impl Sync for GeminiErrorKind
impl Unpin for GeminiErrorKind
impl UnwindSafe for GeminiErrorKind
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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 more