Skip to main content

rsiot/components/cmp_linux_uart_slave/
error.rs

1use linux_embedded_hal::serialport;
2
3use crate::executor::ComponentError;
4
5use super::COMPONENT_NAME;
6
7#[allow(missing_docs)]
8#[derive(Debug, thiserror::Error)]
9pub enum Error {
10    #[error("BufferFull")]
11    BufferFull,
12
13    #[error("{COMPONENT_NAME} | CmpOutput: {0}")]
14    CmpOutput(ComponentError),
15
16    #[error("{COMPONENT_NAME} | FnProcessEnd")]
17    FnProcessEnd,
18
19    #[error("{COMPONENT_NAME} | FnOutput: {0}")]
20    FnOutput(anyhow::Error),
21
22    #[error("{COMPONENT_NAME} | PortClear: {0}")]
23    PortClear(serialport::Error),
24
25    #[error("{COMPONENT_NAME} | PortOpen: {0}")]
26    PortOpen(serialport::Error),
27
28    #[error("UartRead: {0}")]
29    PortRead(String),
30
31    #[error("{COMPONENT_NAME} | TaskEnd")]
32    TaskEnd,
33
34    #[error("{COMPONENT_NAME} | TokioSyncMpscSend")]
35    TokioSyncMpscSend,
36
37    #[error("{COMPONENT_NAME} | TokioTaskJoin: {0}")]
38    TokioTaskJoin(#[from] tokio::task::JoinError),
39}
40
41impl From<Error> for ComponentError {
42    fn from(value: Error) -> Self {
43        ComponentError::Execution(value.to_string())
44    }
45}