srs_client/http_api/error.rs
1use derive_more::{Display, Error};
2use reqwest::{Client, Error as ReqwestError, Response as ReqwestResponse};
3
4/// Possible errors of performing requests to [SRS HTTP API][1].
5///
6/// [1]: https://ossrs.io/lts/en-us/docs/v5/doc/http-api
7#[allow(clippy::module_name_repetitions)]
8#[derive(Debug, Display, Error)]
9pub enum SrsClientError {
10 /// Performing HTTP request failed itself.
11 #[display(fmt = "Failed to perform HTTP request: {_0}")]
12 RequestFailed(ReqwestError),
13
14 /// [SRS HTTP API][1] responded with a bad [`StatusCode`].
15 ///
16 /// [`StatusCode`]: reqwest::StatusCode
17 /// [1]: https://ossrs.io/lts/en-us/docs/v5/doc/http-callback
18 #[display(fmt = "SRS HTTP API responded with bad status: {_0}")]
19 BadStatus(#[error(not(source))] reqwest::StatusCode),
20
21 /// Performing deserialize of [SRS HTTP API][1] response
22 ///
23 /// [1]: https://ossrs.io/lts/en-us/docs/v5/doc/http-callback
24 #[display(fmt = "Failed to perform deserialize request: {_0}")]
25 DeserializeError(ReqwestError),
26
27 /// Failed to build [`SrsClient`] client because incorrect base Url
28 ///
29 /// [`SrsClient`]: crate::SrsClient
30 #[display(fmt = "Failed to parse base URL: {_0}")]
31 IncorrectBaseUrl(url::ParseError),
32
33 /// Failed to create [`SrsClient`] API Url
34 ///
35 /// [`SrsClient`]: crate::SrsClient
36 #[display(fmt = "Failed to parse URL: {_0}")]
37 IncorrectApiUrl(url::ParseError),
38}