rsiot/components/cmp_raspberrypi_gpio/
error.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use crate::executor::ComponentError;

/// Ошибки компонента cmp_raspberrypi_gpio
#[derive(Debug, thiserror::Error)]
pub enum Error {
    /// Ошибка отправки сообщения в исходящий канал
    #[error("CmpOutput: {0}")]
    CmpOutput(crate::executor::ComponentError),

    /// Ошибка доступа к GPIO
    #[error("RppalGpio: {0}")]
    RppalGpio(#[from] rppal::gpio::Error),

    /// Ошибка tokio
    #[error("TokioTaskJoin: {0}")]
    TokioTaskJoin(#[from] tokio::task::JoinError),
}

impl From<Error> for ComponentError {
    fn from(value: Error) -> Self {
        ComponentError::Execution(value.to_string())
    }
}