diff options
Diffstat (limited to '')
| -rw-r--r-- | src/error.rs | 39 | 
1 files changed, 38 insertions, 1 deletions
diff --git a/src/error.rs b/src/error.rs index a632537..20ebc3e 100644 --- a/src/error.rs +++ b/src/error.rs @@ -1,7 +1,44 @@ +use std::str::Utf8Error; + +use rsasl::mechname::MechanismNameError; +  #[derive(Debug)]  pub enum JabberError { -    ConnectionError, +    Connection,      BadStream,      StartTlsUnavailable,      TlsNegotiation, +    Utf8Decode, +    XML(quick_xml::Error), +    SASL(SASLError), +} + +#[derive(Debug)] +pub enum SASLError { +    SASL(rsasl::prelude::SASLError), +    MechanismName(MechanismNameError), +} + +impl From<rsasl::prelude::SASLError> for JabberError { +    fn from(e: rsasl::prelude::SASLError) -> Self { +        Self::SASL(SASLError::SASL(e)) +    } +} + +impl From<MechanismNameError> for JabberError { +    fn from(value: MechanismNameError) -> Self { +        Self::SASL(SASLError::MechanismName(value)) +    } +} + +impl From<Utf8Error> for JabberError { +    fn from(e: Utf8Error) -> Self { +        Self::Utf8Decode +    } +} + +impl From<quick_xml::Error> for JabberError { +    fn from(e: quick_xml::Error) -> Self { +        Self::XML(e) +    }  }  | 
