#[non_exhaustive]pub enum Error {
Config {
message: String,
source: Option<BoxError>,
},
InvalidRequest {
message: String,
source: Option<BoxError>,
},
Api(Box<ApiError>),
Connection(BoxError),
Timeout(Duration),
ResponseValidation(Box<ResponseValidationError>),
ReplayMiss {
key: String,
path: PathBuf,
},
}Expand description
Any failure produced by the SDK.
Display describes this error only; the cause, when there is one, is its
source, so walk the chain to show all of it.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Config
The client could not be configured (missing API key, invalid base URL, invalid timeout, invalid retry policy, a record or replay directory that cannot be used, or an async runtime that cannot be started).
Fields
InvalidRequest
The request was rejected locally before being sent (no questions, empty choice or score criteria, malformed raw question, or a body that cannot be encoded as JSON).
Fields
Api(Box<ApiError>)
The server returned an unsuccessful HTTP status after any retries.
Connection(BoxError)
The request could not reach the server or the response could not be read (DNS, connect,
TLS, reset, body read). The underlying HTTP client’s error is available via source().
Timeout(Duration)
The request exceeded its configured timeout.
ResponseValidation(Box<ResponseValidationError>)
The server returned a successful status but the body is missing required data.
ReplayMiss
The client is replaying and this request was never recorded. Nothing was sent: a replaying
client does not fall back to the network. Record it first (TYPESAFE_RECORD=<dir>); see
crate::cassette.
Implementations§
Source§impl Error
impl Error
Sourcepub fn status(&self) -> Option<StatusCode>
pub fn status(&self) -> Option<StatusCode>
The HTTP status associated with this error, if any.
use typesafe::{Error, StatusCode};
fn is_conflict(err: &Error) -> bool {
err.status() == Some(StatusCode::CONFLICT)
}Sourcepub fn request_id(&self) -> Option<&str>
pub fn request_id(&self) -> Option<&str>
The x-typesafe-request-id of the failing response, if any.
Trait Implementations§
Source§impl Error for Error
impl Error for Error
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
use the Display impl or to_string()