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:
serde_json::Error→AppError::SerializationError
Database errors are converted explicitly in the database layer.
§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 UnsafeUnpin 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