longbridge_httpcli/
error.rs1use reqwest::StatusCode;
2
3use crate::qs::QsError;
4
5#[derive(Debug, thiserror::Error)]
7pub enum HttpClientError {
8 #[error("invalid request method")]
10 InvalidRequestMethod,
11
12 #[error("invalid api key")]
14 InvalidApiKey,
15
16 #[error("invalid access token")]
18 InvalidAccessToken,
19
20 #[error("missing environment variable: {name}")]
22 MissingEnvVar {
23 name: &'static str,
25 },
26
27 #[error("unexpected response")]
29 UnexpectedResponse,
30
31 #[error("request timeout")]
33 RequestTimeout,
34
35 #[error("openapi error: code={code}: {message}")]
37 OpenApi {
38 code: i32,
40 message: String,
42 trace_id: String,
44 },
45
46 #[error("deserialize response body error: {0}")]
48 DeserializeResponseBody(String),
49
50 #[error("serialize request body error: {0}")]
52 SerializeRequestBody(String),
53
54 #[error("serialize query string error: {0}")]
56 SerializeQueryString(#[from] QsError),
57
58 #[error("status error: {0}")]
60 BadStatus(StatusCode),
61
62 #[error(transparent)]
64 Http(#[from] reqwest::Error),
65}
66
67pub type HttpClientResult<T, E = HttpClientError> = std::result::Result<T, E>;