1use core::fmt::Formatter;
2use embedded_hal::i2c::ErrorType;
3
4pub enum BmeError<I2C>
6where
7 I2C: ErrorType,
8{
9 WriteError(I2C::Error),
11 WriteReadError(I2C::Error),
13 UnexpectedChipId(u8),
15 MeasuringTimeOut,
18 #[cfg(feature = "embedded-hal-async")]
20 Uninitialized,
21}
22
23impl<I2C> core::fmt::Debug for BmeError<I2C>
24where
25 I2C: ErrorType,
26{
27 fn fmt(&self, f: &mut Formatter<'_>) -> core::result::Result<(), core::fmt::Error> {
28 match self {
29 BmeError::WriteReadError(e) => f.debug_tuple("WriteReadError").field(e).finish(),
30 BmeError::WriteError(e) => f.debug_tuple("WriteError").field(e).finish(),
31 BmeError::UnexpectedChipId(chip_id) => f
32 .debug_tuple("Got unimplemented chip id: ")
33 .field(chip_id)
34 .finish(),
35 BmeError::MeasuringTimeOut => f
36 .debug_tuple("Timed out while waiting for new measurement values. Either no new data or the sensor took unexpectedly long to finish measuring.").finish(),
37 #[cfg(feature = "embedded-hal-async")]
38 BmeError::Uninitialized => f.debug_tuple("Uninitialized").finish(),
39 }
40 }
41}