#[non_exhaustive]pub enum ProviderError {
Show 14 variants
MissingApiKey,
UnknownProvider(String),
NotImplemented(String),
HttpError(HttpErrorDetail),
RequestFailed(Error),
IoError(Error),
InvalidResponse(String),
InvalidApiKey,
JsonParse(Error),
StreamError(String),
NetworkError(String),
ContextOverflow,
Timeout,
RateLimited {
retry_after: Option<Duration>,
},
}Expand description
Stable since 0.63.0
Provider-specific error type for LLM operations.
Provider-specific errors. `#[non_exhaustive]` — consumers MUST add a
catch-all `_ =>` arm in their `match` expressions. Existing named variants
are frozen; their meaning does not change between releases (see
`docs/release-process.md`).Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
MissingApiKey
API key is missing.
UnknownProvider(String)
Unknown provider.
NotImplemented(String)
Provider not yet implemented.
HttpError(HttpErrorDetail)
HTTP error with structured detail (status, body, provider, request-id).
RequestFailed(Error)
HTTP request failed.
IoError(Error)
I/O error.
InvalidResponse(String)
Invalid response from provider.
InvalidApiKey
Invalid API key format.
JsonParse(Error)
JSON parsing error.
StreamError(String)
Streaming error.
NetworkError(String)
Network error.
ContextOverflow
Context window overflow.
Timeout
Request timed out.
RateLimited
Rate limit exceeded.
Implementations§
Source§impl ProviderError
impl ProviderError
Sourcepub fn is_retryable(&self) -> bool
pub fn is_retryable(&self) -> bool
Returns whether this error is retryable.
Sourcepub fn retry_after(&self) -> Option<Duration>
pub fn retry_after(&self) -> Option<Duration>
Returns the retry wait time suggested by the server.
Sourcepub fn http_status(&self) -> Option<u16>
pub fn http_status(&self) -> Option<u16>
Returns the HTTP status code if this is an HTTP error, else None.
Convenience for call sites that previously destructured the old
HttpError(u16, String) tuple (e.g. inside matches!, which cannot
carry a guard).
Trait Implementations§
Source§impl Debug for ProviderError
impl Debug for ProviderError
Source§impl Display for ProviderError
impl Display for ProviderError
Source§impl Error for ProviderError
impl Error for ProviderError
Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
👎Deprecated since 1.42.0:
use the Display impl or to_string()
Source§impl From<Error> for ProviderError
impl From<Error> for ProviderError
Source§impl From<Error> for ProviderError
impl From<Error> for ProviderError
Source§impl From<Error> for ProviderError
impl From<Error> for ProviderError
Source§impl From<ProviderError> for Error
impl From<ProviderError> for Error
Source§fn from(source: ProviderError) -> Self
fn from(source: ProviderError) -> Self
Converts to this type from the input type.
Auto Trait Implementations§
impl !RefUnwindSafe for ProviderError
impl !UnwindSafe for ProviderError
impl Freeze for ProviderError
impl Send for ProviderError
impl Sync for ProviderError
impl Unpin for ProviderError
impl UnsafeUnpin for ProviderError
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