Skip to main content

rsiot/components/cmp_esp_gpio/
error.rs

1use crate::executor::ComponentError;
2
3use super::COMPONENT_NAME;
4
5/// Ошибки cmp_esp_gpio
6#[allow(missing_docs)]
7#[derive(Debug, thiserror::Error)]
8pub enum Error {
9    #[error("{COMPONENT_NAME} | CreatePinDriver: {0}")]
10    CreatePinDriver(esp_idf_svc::sys::EspError),
11
12    #[error("{COMPONENT_NAME} | SetGpioOutput: {0}")]
13    SetGpioOutput(esp_idf_svc::sys::EspError),
14
15    #[error("{COMPONENT_NAME} | SetPinPull: {0}")]
16    SetPinPull(esp_idf_svc::sys::EspError),
17
18    #[error("{COMPONENT_NAME} | TaskEndGpioOutput")]
19    TaskEndGpioOutput,
20
21    #[error("{COMPONENT_NAME} | TokioSyncMpscSend")]
22    TokioSyncMpscSend,
23
24    #[error("{COMPONENT_NAME} | TokioTaskJoin: {0}")]
25    TokioTaskJoin(#[from] tokio::task::JoinError),
26
27    #[error("{COMPONENT_NAME} | WaitForAnyEdge: {0}")]
28    WaitForAnyEdge(esp_idf_svc::sys::EspError),
29}
30
31impl From<Error> for ComponentError {
32    fn from(value: Error) -> Self {
33        ComponentError::Execution(value.to_string())
34    }
35}