rsiot/components/cmp_websocket_server/
errors.rs1use crate::{components::shared_tasks, executor::ComponentError, serde_utils};
2
3use super::COMPONENT_NAME;
4
5#[allow(missing_docs)]
6#[derive(Debug, thiserror::Error)]
7pub enum Error {
8 #[error("{0}")]
9 Tungstenite(#[from] tokio_tungstenite::tungstenite::Error),
10
11 #[error("Error bind to port: {0}")]
12 BindToPort(std::io::Error),
13
14 #[error("{0}")]
15 TokioTaskJoin(#[from] tokio::task::JoinError),
16
17 #[error("TokioSyncMpsc")]
18 TokioSyncMpsc,
19
20 #[error("{0}")]
21 FnInput(anyhow::Error),
22
23 #[error("Error: {err}, text from client: {data}")]
24 FnOutput { err: anyhow::Error, data: String },
25
26 #[error("{COMPONENT_NAME} | FnProcessEnd")]
27 FnProcessEnd,
28
29 #[error("Client disconnected")]
30 ClientDisconnected,
31
32 #[error(transparent)]
33 CmpOutput(crate::executor::ComponentError),
34
35 #[error("TaskEndInput")]
36 TaskEndInput,
37
38 #[error("TaskEndOutput")]
39 TaskEndOutput,
40
41 #[error(transparent)]
42 SharedTaskMsgBusToMpsc(shared_tasks::msgbus_to_mpsc::Error),
43
44 #[error(transparent)]
45 SharedTaskMpscToMsgBus(shared_tasks::mpsc_to_msgbus::Error),
46
47 #[error(transparent)]
48 Serde(#[from] serde_utils::Error),
49}
50
51impl From<Error> for ComponentError {
52 fn from(value: Error) -> Self {
53 ComponentError::Execution(value.to_string())
54 }
55}