summaryrefslogtreecommitdiff
path: root/utils/tcp_connection/src/error.rs
diff options
context:
space:
mode:
Diffstat (limited to 'utils/tcp_connection/src/error.rs')
-rw-r--r--utils/tcp_connection/src/error.rs122
1 files changed, 122 insertions, 0 deletions
diff --git a/utils/tcp_connection/src/error.rs b/utils/tcp_connection/src/error.rs
new file mode 100644
index 0000000..32d06cc
--- /dev/null
+++ b/utils/tcp_connection/src/error.rs
@@ -0,0 +1,122 @@
+use std::io;
+use thiserror::Error;
+
+#[derive(Error, Debug, Clone)]
+pub enum TcpTargetError {
+ #[error("Authentication failed: {0}")]
+ Authentication(String),
+
+ #[error("Reference sheet not allowed: {0}")]
+ ReferenceSheetNotAllowed(String),
+
+ #[error("Cryptographic error: {0}")]
+ Crypto(String),
+
+ #[error("File operation error: {0}")]
+ File(String),
+
+ #[error("I/O error: {0}")]
+ Io(String),
+
+ #[error("Invalid configuration: {0}")]
+ Config(String),
+
+ #[error("Locked: {0}")]
+ Locked(String),
+
+ #[error("Network error: {0}")]
+ Network(String),
+
+ #[error("No result: {0}")]
+ NoResult(String),
+
+ #[error("Not found: {0}")]
+ NotFound(String),
+
+ #[error("Not local machine: {0}")]
+ NotLocal(String),
+
+ #[error("Not remote machine: {0}")]
+ NotRemote(String),
+
+ #[error("Pool already exists: {0}")]
+ PoolAlreadyExists(String),
+
+ #[error("Protocol error: {0}")]
+ Protocol(String),
+
+ #[error("Serialization error: {0}")]
+ Serialization(String),
+
+ #[error("Timeout: {0}")]
+ Timeout(String),
+
+ #[error("Unsupported operation: {0}")]
+ Unsupported(String),
+}
+
+impl From<io::Error> for TcpTargetError {
+ fn from(error: io::Error) -> Self {
+ TcpTargetError::Io(error.to_string())
+ }
+}
+
+impl From<serde_json::Error> for TcpTargetError {
+ fn from(error: serde_json::Error) -> Self {
+ TcpTargetError::Serialization(error.to_string())
+ }
+}
+
+impl From<&str> for TcpTargetError {
+ fn from(value: &str) -> Self {
+ TcpTargetError::Protocol(value.to_string())
+ }
+}
+
+impl From<String> for TcpTargetError {
+ fn from(value: String) -> Self {
+ TcpTargetError::Protocol(value)
+ }
+}
+
+impl From<rsa::errors::Error> for TcpTargetError {
+ fn from(error: rsa::errors::Error) -> Self {
+ TcpTargetError::Crypto(error.to_string())
+ }
+}
+
+impl From<ed25519_dalek::SignatureError> for TcpTargetError {
+ fn from(error: ed25519_dalek::SignatureError) -> Self {
+ TcpTargetError::Crypto(error.to_string())
+ }
+}
+
+impl From<ring::error::Unspecified> for TcpTargetError {
+ fn from(error: ring::error::Unspecified) -> Self {
+ TcpTargetError::Crypto(error.to_string())
+ }
+}
+
+impl From<base64::DecodeError> for TcpTargetError {
+ fn from(error: base64::DecodeError) -> Self {
+ TcpTargetError::Serialization(error.to_string())
+ }
+}
+
+impl From<pem::PemError> for TcpTargetError {
+ fn from(error: pem::PemError) -> Self {
+ TcpTargetError::Crypto(error.to_string())
+ }
+}
+
+impl From<rmp_serde::encode::Error> for TcpTargetError {
+ fn from(error: rmp_serde::encode::Error) -> Self {
+ TcpTargetError::Serialization(error.to_string())
+ }
+}
+
+impl From<rmp_serde::decode::Error> for TcpTargetError {
+ fn from(error: rmp_serde::decode::Error) -> Self {
+ TcpTargetError::Serialization(error.to_string())
+ }
+}