1use thiserror::Error;
5
6use crate::session::SessionMessage;
7
8#[derive(Error, Debug)]
9pub enum ServiceError {
10 #[error("configuration error {0}")]
11 ConfigError(String),
12 #[error("agent already registered")]
13 AgentAlreadyRegistered,
14 #[error("agent not found: {0}")]
15 AgentNotFound(String),
16 #[error("connection error: {0}")]
17 ConnectionError(String),
18 #[error("disconnect error: {0}")]
19 DisconnectError(String),
20 #[error("error sending subscription: {0}")]
21 SubscriptionError(String),
22 #[error("error sending unsubscription: {0}")]
23 UnsubscriptionError(String),
24 #[error("error on set route: {0}")]
25 SetRouteError(String),
26 #[error("error on remove route: {0}")]
27 RemoveRouteError(String),
28 #[error("error publishing message: {0}")]
29 PublishError(String),
30 #[error("error receiving message: {0}")]
31 ReceiveError(String),
32 #[error("session not found: {0}")]
33 SessionNotFound(String),
34 #[error("error in session: {0}")]
35 SessionError(String),
36 #[error("client already connected: {0}")]
37 ClientAlreadyConnected(String),
38 #[error("server not found: {0}")]
39 ServerNotFound(String),
40 #[error("error sendinfg message: {0}")]
41 MessageSendingError(String),
42 #[error("unknown error")]
43 Unknown,
44}
45
46#[derive(Error, Debug, PartialEq)]
47pub enum SessionError {
48 #[error("error receiving message from gateway: {0}")]
49 GatewayReception(String),
50 #[error("error sending message to gateway: {0}")]
51 GatewayTransmission(String),
52 #[error("error in message forwarding: {0}")]
53 Forward(String),
54 #[error("error receiving message from app: {0}")]
55 AppReception(String),
56 #[error("error sending message to app: {0}")]
57 AppTransmission(String),
58 #[error("error processing message: {0}")]
59 Processing(String),
60 #[error("session id already used: {0}")]
61 SessionIdAlreadyUsed(String),
62 #[error("invalid session id: {0}")]
63 InvalidSessionId(String),
64 #[error("missing AGP header: {0}")]
65 MissingAgpHeader(String),
66 #[error("missing session header")]
67 MissingSessionHeader,
68 #[error("session unknown: {0}")]
69 SessionUnknown(String),
70 #[error("session not found: {0}")]
71 SessionNotFound(String),
72 #[error("default for session not supported: {0}")]
73 SessionDefaultNotSupported(String),
74 #[error("missing session id: {0}")]
75 MissingSessionId(String),
76 #[error("error during message validation: {0}")]
77 ValidationError(String),
78 #[error("message={message_id} session={session_id}: timeout")]
79 Timeout {
80 session_id: u32,
81 message_id: u32,
82 message: Box<SessionMessage>,
83 },
84 #[error("configuration error: {0}")]
85 ConfigurationError(String),
86 #[error("message lost: {0}")]
87 MessageLost(String),
88}