Skip to main content

rsiot/components/cmp_linux_gpio/
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} | CreateAsyncLineEventHandle: {0}")]
9    CreateAsyncLineEventHandle(linux_embedded_hal::gpio_cdev::Error),
10
11    #[error("{COMPONENT_NAME} | CreateLineEventHandle: {0}")]
12    CreateLineEventHandle(linux_embedded_hal::gpio_cdev::Error),
13
14    #[error("{COMPONENT_NAME} | GpioSetup: {0}")]
15    GpioSetup(linux_embedded_hal::gpio_cdev::Error),
16
17    #[error("{COMPONENT_NAME} | GpioSetValue: {0}")]
18    GpioSetValue(linux_embedded_hal::gpio_cdev::Error),
19
20    #[error("{COMPONENT_NAME} TaskEnd")]
21    TaskEnd,
22
23    #[error("{COMPONENT_NAME} TaskGpioInputEnd")]
24    TaskGpioInputEnd,
25
26    #[error("{COMPONENT_NAME} TaskGpioOutputEnd")]
27    TaskGpioOutputEnd,
28
29    #[error("{COMPONENT_NAME} | TokioSyncMpscSend")]
30    TokioSyncMpscSend,
31
32    #[error("{COMPONENT_NAME} | TokioTaskJoin: {0}")]
33    TokioTaskJoin(#[from] tokio::task::JoinError),
34
35    #[error("{COMPONENT_NAME} | UnwrapEvent: {0}")]
36    UnwrapEvent(linux_embedded_hal::gpio_cdev::Error),
37}
38
39impl From<Error> for ComponentError {
40    fn from(value: Error) -> Self {
41        ComponentError::Execution(value.to_string())
42    }
43}