Skip to main content

cratestack_client_rust/
error.rs

1use cratestack_core::{CoolError, CoolErrorResponse};
2use reqwest::StatusCode;
3
4pub type HeaderPair<'a> = (&'a str, &'a str);
5pub type QueryPair<'a> = (&'a str, &'a str);
6
7#[derive(Debug, thiserror::Error)]
8pub enum ClientError {
9    #[error("transport error: {0}")]
10    Transport(#[from] reqwest::Error),
11    #[error("codec error: {0}")]
12    Codec(#[from] CoolError),
13    #[error("state error: {0}")]
14    State(String),
15    #[error("invalid response: {0}")]
16    InvalidResponse(String),
17    #[error("bad input: {0}")]
18    BadInput(String),
19    #[error("remote call failed with status {status}: {message}")]
20    Remote {
21        status: StatusCode,
22        error: Option<CoolErrorResponse>,
23        message: String,
24    },
25}