Enum OpenAIError

Source
pub enum OpenAIError {
    ConfigError(String),
    HTTPError(Error),
    DeserializeError(Error),
    APIError {
        message: String,
        err_type: Option<String>,
        code: Option<String>,
    },
    IOError(Error),
}
Expand description

Represents any error that can occur while using the OpenAI Rust client library.

This enum covers:

  1. Configuration errors, such as missing API keys or invalid builder settings.
  2. Network/HTTP errors encountered while making requests.
  3. Errors returned by the OpenAI API itself (e.g., rate limits, invalid parameters).
  4. JSON parsing errors (e.g., unexpected response formats).
  5. IO errors that might occur during operations like file handling.

Variants§

§

ConfigError(String)

Errors related to invalid configuration or missing environment variables.

§

HTTPError(Error)

Errors returned by the underlying HTTP client (reqwest).

This typically indicates network-level issues, timeouts, TLS errors, etc.

§

DeserializeError(Error)

Errors that happen due to invalid or unexpected responses from the OpenAI API.

For instance, if the response body is not valid JSON or doesn’t match the expected schema.

§

APIError

Errors reported by the OpenAI API in its response body.

This might include invalid request parameters, rate-limit violations, or internal server errors. The attached string typically contains a more descriptive message returned by the API.

Fields

§message: String

A short summary of what went wrong (as provided by the OpenAI API).

§err_type: Option<String>

The type/category of error (e.g. ‘invalid_request_error’, ‘rate_limit_error’, etc.).

§code: Option<String>

An optional error code that might be returned by the OpenAI API.

§

IOError(Error)

Errors that occur during I/O operations.

Implementations§

Source§

impl OpenAIError

Source

pub fn api_error( message: impl Into<String>, err_type: Option<&str>, code: Option<&str>, ) -> Self

Creates an OpenAIError::APIError from detailed information about the error.

§Parameters
  • message - A short description of the error.
  • err_type - The error type from OpenAI (e.g., “invalid_request_error”).
  • code - An optional error code from OpenAI.
§Example
use chat_gpt_lib_rs::OpenAIError;

let api_err = OpenAIError::api_error("Invalid request", Some("invalid_request_error"), None);

Trait Implementations§

Source§

impl Debug for OpenAIError

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for OpenAIError

Source§

fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Error for OpenAIError

Source§

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

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more
Source§

impl From<Error> for OpenAIError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for OpenAIError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.
Source§

impl From<Error> for OpenAIError

Source§

fn from(source: Error) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> ErasedDestructor for T
where T: 'static,