You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
tungstenite-rs/src/error/url_error.rs

41 lines
1.4 KiB

use std::fmt;
/// Indicates the specific type/cause of URL error.
#[derive(PartialEq, Eq)]
pub enum UrlError {
/// TLS is used despite not being compiled with the TLS feature enabled.
TlsFeatureNotEnabled,
/// The URL does not include a host name.
NoHostName,
/// Failed to connect with this URL.
UnableToConnect(String),
/// Unsupported URL scheme used (only `ws://` or `wss://` may be used).
UnsupportedUrlScheme,
/// The URL host name, though included, is empty.
EmptyHostName,
/// The URL does not include a path/query.
NoPathOrQuery,
}
impl fmt::Debug for UrlError {
#[inline]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match *self {
Self::TlsFeatureNotEnabled => write!(f, "TLS support not compiled in"),
Self::NoHostName => write!(f, "No host name in the URL"),
Self::UnableToConnect(ref elem) => write!(f, "Unable to connect to {}", elem),
Self::UnsupportedUrlScheme => write!(f, "URL scheme not supported"),
Self::EmptyHostName => write!(f, "URL contains empty host name"),
Self::NoPathOrQuery => write!(f, "No path/query in URL"),
}
}
}
impl fmt::Display for UrlError {
#[inline]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
fmt::Debug::fmt(self, f)
}
}
impl std::error::Error for UrlError {}