diff options
Diffstat (limited to '')
| -rw-r--r-- | jabber/src/error.rs | 16 | 
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)) +    } +} | 
