am_api/
error.rs

1//! Error types
2
3use crate::resource::ErrorResponse;
4use reqwest::header::InvalidHeaderValue;
5use thiserror::Error;
6
7/// Error type
8#[derive(Error, Debug)]
9pub enum Error {
10    /// Missing resource data
11    #[error("Missing resource data on a resource")]
12    MissingResourceData,
13    /// Invalid resource type error
14    #[error("Invalid resource type")]
15    InvalidResourceType,
16    /// Apple music error
17    #[error("Apple music error: {0:#?}")]
18    MusicError(ErrorResponse),
19    /// Invalid header value
20    #[error("Invalid header value")]
21    InvalidHeaderValue(#[from] InvalidHeaderValue),
22    /// A [`reqwest::Error`] occured
23    #[error(transparent)]
24    Reqwest(#[from] reqwest::Error),
25    /// A [`tinytemplate::error::Error`] occurred
26    #[error(transparent)]
27    TinyTemplate(#[from] tinytemplate::error::Error),
28    /// A [`serde_json::Error`] occured
29    #[error(transparent)]
30    Json(#[from] serde_json::Error),
31}