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}