Skip to main content

discogs_rs/
error.rs

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}