rsiot/components/cmp_esp_i2c_slave/
error.rs1use crate::serde_utils::postcard_serde;
2use crate::{components::shared_tasks, executor::ComponentError};
3
4#[allow(missing_docs)]
5#[derive(Debug, thiserror::Error)]
6pub enum Error {
7 #[error("CmpOutput: {0}")]
8 CmpOutput(ComponentError),
9
10 #[error("FnOutput: {0}")]
11 FnInput(anyhow::Error),
12
13 #[error("FnOutput: {0}")]
14 FnOutput(anyhow::Error),
15
16 #[error("TokioTaskJoin: {0}")]
17 TokioTaskJoin(#[from] tokio::task::JoinError),
18
19 #[error(transparent)]
20 Postcard(#[from] postcard_serde::Error),
21
22 #[error("Error in fn_i2c_comm function: {0}")]
23 FnI2cComm(anyhow::Error),
24
25 #[error("Error writing to I2C buffer: {0}")]
26 WritingToI2cBuffer(esp_idf_svc::hal::sys::EspError),
27
28 #[error("Error reading from I2C buffer: {0}")]
29 ReadingFromI2cBuffer(esp_idf_svc::hal::sys::EspError),
30
31 #[error(transparent)]
32 TaskFilterIdenticalData(shared_tasks::filter_identical_data::Error),
33
34 #[error("{0}")]
35 TaskOutput(String),
36
37 #[error(transparent)]
38 TaskToMsgBus(shared_tasks::mpsc_to_msgbus::Error),
39}
40
41impl From<Error> for ComponentError {
42 fn from(value: Error) -> Self {
43 ComponentError::Execution(value.to_string())
44 }
45}