1use reqwest::StatusCode;
2use thiserror::Error;
3
4pub type Result<T> = std::result::Result<T, DiscogsError>;
5
6#[derive(Debug, Error)]
7pub enum DiscogsError {
8 #[error("authentication level {required:?} required, current level is {current:?}")]
9 AuthRequired {
10 required: crate::auth::AuthLevel,
11 current: crate::auth::AuthLevel,
12 },
13
14 #[error("http error {status}: {message}")]
15 Http { status: StatusCode, message: String },
16
17 #[error("request failed: {0}")]
18 Request(#[from] reqwest::Error),
19
20 #[error("json parse failed: {0}")]
21 Json(#[from] serde_json::Error),
22
23 #[error("invalid OAuth response: {0}")]
24 InvalidOAuthResponse(String),
25}