Skip to main content

rsiot/components/cmp_esp_can/
error.rs

1use crate::executor::ComponentError;
2
3use super::COMPONENT_NAME;
4
5#[allow(missing_docs)]
6#[derive(Debug, thiserror::Error)]
7pub enum Error {
8    #[error("{COMPONENT_NAME} | DriverCreate: {0:?}")]
9    DriverCreate(esp_idf_svc::sys::EspError),
10
11    #[error("{COMPONENT_NAME} | DriverRecovery: {0:?}")]
12    DriverRecovery(esp_idf_svc::sys::EspError),
13
14    #[error("{COMPONENT_NAME} | DriverStart: {0:?}")]
15    DriverStart(esp_idf_svc::sys::EspError),
16
17    #[error("{COMPONENT_NAME} | FilterSetup: {0:?}")]
18    FilterSetup(&'static str),
19
20    #[error("{COMPONENT_NAME} | FrameConversionFromField: {0}")]
21    FrameConversionFromField(String),
22
23    #[error("{COMPONENT_NAME} | FrameConversionIntoField: {0:?}")]
24    FrameConversionIntoField(crate::components_config::can_general::CanFrame),
25
26    #[error("{COMPONENT_NAME} | TaskEnd")]
27    TaskEnd,
28
29    #[error("{COMPONENT_NAME} | TaskEndInput")]
30    TaskEndInput,
31
32    #[error("{COMPONENT_NAME} | TaskEndOutput")]
33    TaskEndOutput,
34
35    #[error("{COMPONENT_NAME} | TokioSyncMpscSend")]
36    TokioSyncMpscSend,
37
38    #[error("{COMPONENT_NAME} | TokioTaskJoin: {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}