Skip to main content

reqtls/url/
error.rs

1use std::error::Error;
2use std::fmt::{Display, Formatter};
3
4#[derive(Debug)]
5pub enum UrlError {
6    ParseUrlError,
7    ParseUriError,
8    MissingParamName,
9    MissingScheme,
10    MissingDomain,
11    MissingUsername,
12    MissingPassword,
13    MissingIpv4SocketAddr,
14    MissingIpv6SocketAddr,
15    AuthInfoError,
16    InvalidParamEncoded,
17    InvalidScheme(String),
18    InvalidPort,
19}
20
21impl Display for UrlError {
22    fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
23        match self {
24            UrlError::ParseUrlError => write!(f, "parse url error"),
25            UrlError::ParseUriError => write!(f, "parse uri error"),
26            UrlError::MissingParamName => write!(f, "missing param name"),
27            UrlError::MissingScheme => write!(f, "missing scheme"),
28            UrlError::MissingDomain => write!(f, "missing domain"),
29            UrlError::MissingUsername => write!(f, "missing username"),
30            UrlError::MissingPassword => write!(f, "missing password"),
31            UrlError::MissingIpv4SocketAddr => write!(f, "missing ipv4 address"),
32            UrlError::MissingIpv6SocketAddr => write!(f, "missing ipv6 address"),
33            UrlError::AuthInfoError => write!(f, "auth info error"),
34            UrlError::InvalidParamEncoded => write!(f, "invalid param encoding"),
35            UrlError::InvalidScheme(v) => write!(f, "invalid scheme-({})", v),
36            UrlError::InvalidPort => write!(f, "invalid port"),
37        }
38    }
39}
40
41impl Error for UrlError {}