rsiot/components/cmp_tsdb_writer/
error.rs1use crate::executor::ComponentError;
2
3use super::COMPONENT_NAME;
4
5#[allow(missing_docs)]
6#[derive(thiserror::Error, Debug)]
7pub enum Error {
8 #[error("{COMPONENT_NAME} | DatabaseCloseConnection: {0}")]
9 DatabaseCloseConnection(sqlx::Error),
10
11 #[error("{COMPONENT_NAME} | DatabaseConnect: {0}")]
12 DatabaseConnect(sqlx::Error),
13
14 #[error("{COMPONENT_NAME} | DatabaseExecute: {0}")]
15 DatabaseExecute(sqlx::Error),
16
17 #[error("{COMPONENT_NAME} | TimeFormat: {0}")]
18 TimeFormat(#[from] time::error::Format),
19
20 #[error("{COMPONENT_NAME} | TimeIndeterminatedOffset: {0}")]
21 TimeIndeterminatedOffset(#[from] time::error::IndeterminateOffset),
22
23 #[error("{COMPONENT_NAME} | Internal buffer too large: {0}")]
24 LargeInternalBuffer(usize),
25
26 #[error(transparent)]
27 ParseError(#[from] url::ParseError),
28
29 #[error("{COMPONENT_NAME} | RowIncorrect: {0}")]
30 RowIncorrect(String),
31
32 #[error(transparent)]
33 SqlxError(#[from] sqlx::Error),
34
35 #[error("{COMPONENT_NAME} | Error spawning task")]
36 Spawn(std::io::Error),
37
38 #[error("{COMPONENT_NAME} | TaskCollectResults")]
39 TaskCollectResults,
40
41 #[error("{COMPONENT_NAME} | TaskInputEnd")]
42 TaskInputEnd,
43
44 #[error("{COMPONENT_NAME} | TaskSendToDatabase")]
45 TaskSendToDatabase,
46
47 #[error("{COMPONENT_NAME} | TokioJoin")]
48 TokioJoin(#[from] tokio::task::JoinError),
49
50 #[error("{COMPONENT_NAME} | TokioMpsc in task: {task_name}")]
51 TokioMpsc { task_name: &'static str },
52}
53
54impl From<Error> for ComponentError {
55 fn from(value: Error) -> Self {
56 ComponentError::Execution(value.to_string())
57 }
58}