diff options
author | 2025-02-25 20:50:23 +0000 | |
---|---|---|
committer | 2025-02-25 20:50:23 +0000 | |
commit | 76b00cd644768d6a1b66b50b802bb72e2be228ce (patch) | |
tree | bd9e5c6a7df6c00fb68692cdb6b39c6912658054 /jabber/src/error.rs | |
parent | d30131e0fcf7d64a333493bc430baa02fd156f4d (diff) | |
download | luz-76b00cd644768d6a1b66b50b802bb72e2be228ce.tar.gz luz-76b00cd644768d6a1b66b50b802bb72e2be228ce.tar.bz2 luz-76b00cd644768d6a1b66b50b802bb72e2be228ce.zip |
implement Clone for error types
Diffstat (limited to 'jabber/src/error.rs')
-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)) + } +} |