diff options
author | cel 🌸 <cel@blos.sm> | 2023-07-04 21:27:15 +0100 |
---|---|---|
committer | cel 🌸 <cel@blos.sm> | 2023-07-04 21:27:15 +0100 |
commit | 143a0365d0822e6786cdac3530a725bbf450f38f (patch) | |
tree | 8b540aa73c1365ddc658e502ed93847dbb522064 /src/error.rs | |
parent | c0a7116eef13ea75340fe7d75da97dfbd04fac20 (diff) | |
download | luz-143a0365d0822e6786cdac3530a725bbf450f38f.tar.gz luz-143a0365d0822e6786cdac3530a725bbf450f38f.tar.bz2 luz-143a0365d0822e6786cdac3530a725bbf450f38f.zip |
horrible
Diffstat (limited to 'src/error.rs')
-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) + } } |