summaryrefslogtreecommitdiff
path: root/src/errors/client.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/errors/client.rs')
-rw-r--r--src/errors/client.rs28
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,
+}