Skip to main content

ptrs/
error.rs

1//! Errors that can occur during Pluggable Transport establishment.
2
3use thiserror::Error;
4
5/// Errors that can occur during Pluggable Transport establishment.
6#[derive(Error, Debug, PartialEq)]
7pub enum Error {
8    /// A proxy configuration error.
9    // #[error("No proxy requested in TOR_PT_PROXY")]
10    // NoProxyRequested,
11    #[error("PROXY-ERROR {0}")]
12    ProxyError(String),
13    /// An error parsing client or server parameters.
14    #[error("error parsing client params: {0}")]
15    ParseError(String),
16    /// An unknown / fallback error.
17    #[error("unknown data store error")]
18    Unknown,
19}
20
21#[cfg(test)]
22mod tests {
23    use super::*;
24
25    #[test]
26    fn proxy_error_display() {
27        let e = Error::ProxyError("SOCKS5 not supported".into());
28        assert_eq!(format!("{e}"), "PROXY-ERROR SOCKS5 not supported");
29    }
30
31    #[test]
32    fn parse_error_display() {
33        let e = Error::ParseError("missing key".into());
34        assert!(format!("{e}").contains("missing key"));
35    }
36
37    #[test]
38    fn unknown_display() {
39        let e = Error::Unknown;
40        assert_eq!(format!("{e}"), "unknown data store error");
41    }
42
43    #[test]
44    fn error_is_eq() {
45        assert_eq!(Error::Unknown, Error::Unknown);
46        assert_ne!(Error::ProxyError("a".into()), Error::ProxyError("b".into()),);
47    }
48}