llm_incident_manager/messaging/
error.rs1use crate::error::AppError;
4
5pub type MessagingResult<T> = std::result::Result<T, MessagingError>;
7
8#[derive(Debug, thiserror::Error)]
10pub enum MessagingError {
11 #[error("Connection failed: {0}")]
13 ConnectionFailed(String),
14
15 #[error("Publish failed: {0}")]
17 PublishFailed(String),
18
19 #[error("Subscribe failed: {0}")]
21 SubscribeFailed(String),
22
23 #[error("Consume failed: {0}")]
25 ConsumeFailed(String),
26
27 #[error("Serialization error: {0}")]
29 SerializationError(String),
30
31 #[error("Deserialization error: {0}")]
33 DeserializationError(String),
34
35 #[error("Configuration error: {0}")]
37 ConfigurationError(String),
38
39 #[error("Backend not available: {0}")]
41 BackendUnavailable(String),
42
43 #[error("Operation timed out: {0}")]
45 Timeout(String),
46
47 #[error("Invalid message format: {0}")]
49 InvalidMessage(String),
50}
51
52impl From<serde_json::Error> for MessagingError {
53 fn from(err: serde_json::Error) -> Self {
54 MessagingError::SerializationError(err.to_string())
55 }
56}
57
58impl From<MessagingError> for AppError {
59 fn from(err: MessagingError) -> Self {
60 match err {
61 MessagingError::ConfigurationError(msg) => AppError::Configuration(msg),
62 _ => AppError::Internal(err.to_string()),
63 }
64 }
65}