semantic_scholar/
error.rs1use thiserror::Error;
2
3#[derive(Debug, Error)]
5pub enum Error {
6 #[error("failed to build HTTP client: {0}")]
8 ClientBuild(reqwest::Error),
9
10 #[error("HTTP request failed for `{endpoint}`: {source}")]
12 Http {
13 endpoint: String,
14 source: reqwest::Error,
15 },
16
17 #[error("API error ({status}) for `{endpoint}`: {message}")]
19 Api {
20 status: u16,
21 endpoint: String,
22 message: String,
23 },
24
25 #[error("rate limited for `{endpoint}` after {retries} retries")]
27 RateLimited { endpoint: String, retries: u32 },
28
29 #[error("failed to deserialize response from `{endpoint}`: {source}")]
31 Deserialize {
32 endpoint: String,
33 source: serde_json::Error,
34 },
35
36 #[error("invalid parameter: {0}")]
38 InvalidParameter(String),
39}
40
41pub type Result<T> = std::result::Result<T, Error>;