i2c-multiplexer 0.2.0

An I2C Multiplexer library that supports the PCA9546 and TCA9546A chips
Documentation
use embedded_hal::i2c::{Error, ErrorKind};
use thiserror::Error;

pub type Result<T, I2cError> = core::result::Result<T, MultiplexerError<I2cError>>;

#[derive(Error, Copy, Clone, Debug, Ord, PartialOrd, Eq, PartialEq)]
pub enum MultiplexerError<I2cError>
where
    I2cError: Error,
{
    #[error("Write Read I2C Error")]
    WriteReadI2CError,
    #[error("Write I2C Error")]
    WriteI2CError,
    #[error("Read I2C Error")]
    ReadI2CError,
    #[error("Incorrect port supplied")]
    PortError,
    #[error("I2C Error")]
    I2CError(I2cError),
}

impl<I2cError> Error for MultiplexerError<I2cError>
where
    I2cError: Error,
{
    fn kind(&self) -> ErrorKind {
        match self {
            Self::I2CError(e) => e.kind(),
            _ => ErrorKind::Other,
        }
    }
}