diff options
Diffstat (limited to 'src/errors/client.rs')
-rw-r--r-- | src/errors/client.rs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/errors/client.rs b/src/errors/client.rs new file mode 100644 index 0000000..c3397e3 --- /dev/null +++ b/src/errors/client.rs @@ -0,0 +1,28 @@ +//! Error types for [`DeezerClient`]. + +use crate::client::DeezerError; + +/// Error type for [`DeezerClient`]. +#[derive(Debug, thiserror::Error)] +pub enum DeezerClientError +{ + /// Failed to send a HTTP request. + #[error("Failed to send HTTP request")] + SendRequestFailed(#[from] hyper::Error), + + /// Failed to parse a response from the Deezer API. + #[error("Failed to parse response from the Deezer API")] + ParseResponseFailed(#[from] serde_json::Error), + + /// Received a error response from the Deezer API. + #[error("Received a error response from the Deezer API")] + ReceivedErrorResponse(DeezerError), + + /// Failed to build API endpoint URI. + #[error("Failed to build API endpoint URI")] + BuildAPIEndpointURIFailed, + + /// Received a invalid response body from the Deezer API. + #[error("Received a invalid response body from the Deezer API")] + InvalidResponseBody, +} |