rsiot/components/cmp_esp_i2c_master/
error.rs1use crate::{components::shared_tasks, components_config::master_device, executor::ComponentError};
2
3use super::COMPONENT_NAME;
4
5#[allow(missing_docs)]
6#[derive(Debug, thiserror::Error)]
7pub enum Error {
8 #[error("CmpOutput: {0}")]
9 CmpOutput(ComponentError),
10
11 #[error("FnOutput: {0}")]
12 FnOutput(anyhow::Error),
13
14 #[error("{COMPONENT_NAME} | DeviceError: {0}")]
15 DeviceError(#[from] master_device::Error),
16
17 #[error("{COMPONENT_NAME} | FnProcessEnd")]
18 FnProcessEnd,
19
20 #[error("{COMPONENT_NAME} | I2cDriverCreation: {0}")]
21 I2cDriverCreation(esp_idf_svc::sys::EspError),
22
23 #[error("{COMPONENT_NAME} | TaskEndI2cComm")]
24 TaskEndI2cComm,
25
26 #[error("{COMPONENT_NAME} | TaskFilter: {0}")]
27 TaskFilter(shared_tasks::filter_identical_data::Error),
28
29 #[error("{COMPONENT_NAME} | TaskMpscToMsgBus: {0}")]
30 TaskMpscToMsgBus(shared_tasks::mpsc_to_msgbus::Error),
31
32 #[error("{COMPONENT_NAME} | TaskMsgbusToBroadcast: {0}")]
33 TaskMsgbusToBroadcast(shared_tasks::msgbus_to_broadcast::Error),
34
35 #[error("{COMPONENT_NAME} | TokioSyncMpsc")]
36 TokioSyncMpsc,
37
38 #[error("{COMPONENT_NAME}: {0}")]
39 TokioTaskJoin(#[from] tokio::task::JoinError),
40}
41
42impl From<Error> for ComponentError {
43 fn from(value: Error) -> Self {
44 ComponentError::Execution(value.to_string())
45 }
46}