summaryrefslogtreecommitdiffstats
path: root/src/error.rs
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@blos.sm>2023-07-04 21:27:15 +0100
committerLibravatar cel 🌸 <cel@blos.sm>2023-07-04 21:27:15 +0100
commit143a0365d0822e6786cdac3530a725bbf450f38f (patch)
tree8b540aa73c1365ddc658e502ed93847dbb522064 /src/error.rs
parentc0a7116eef13ea75340fe7d75da97dfbd04fac20 (diff)
downloadluz-143a0365d0822e6786cdac3530a725bbf450f38f.tar.gz
luz-143a0365d0822e6786cdac3530a725bbf450f38f.tar.bz2
luz-143a0365d0822e6786cdac3530a725bbf450f38f.zip
horrible
Diffstat (limited to 'src/error.rs')
-rw-r--r--src/error.rs39
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)
+ }
}