aboutsummaryrefslogtreecommitdiffstats
path: root/jabber/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'jabber/src/error.rs')
-rw-r--r--jabber/src/error.rs16
1 files changed, 10 insertions, 6 deletions
diff --git a/jabber/src/error.rs b/jabber/src/error.rs
index 8c27cc9..ec60778 100644
--- a/jabber/src/error.rs
+++ b/jabber/src/error.rs
@@ -1,4 +1,5 @@
use std::str::Utf8Error;
+use std::sync::Arc;
use jid::ParseError;
use rsasl::mechname::MechanismNameError;
@@ -6,9 +7,8 @@ use stanza::client::error::Error as ClientError;
use stanza::sasl::Failure;
use stanza::stream::Error as StreamError;
use thiserror::Error;
-use tokio::task::JoinError;
-#[derive(Error, Debug)]
+#[derive(Error, Debug, Clone)]
pub enum Error {
#[error("connection")]
Connection,
@@ -39,16 +39,20 @@ pub enum Error {
StreamError(#[from] StreamError),
#[error("error missing")]
MissingError,
- #[error("task join error")]
- JoinError(#[from] JoinError),
}
-#[derive(Error, Debug)]
+#[derive(Error, Debug, Clone)]
pub enum SASLError {
#[error("sasl error: {0}")]
- SASL(#[from] rsasl::prelude::SASLError),
+ SASL(Arc<rsasl::prelude::SASLError>),
#[error("mechanism error: {0}")]
MechanismName(#[from] MechanismNameError),
#[error("authentication failure: {0}")]
Authentication(#[from] Failure),
}
+
+impl From<rsasl::prelude::SASLError> for SASLError {
+ fn from(e: rsasl::prelude::SASLError) -> Self {
+ Self::SASL(Arc::new(e))
+ }
+}