macro_rules! impl_common {
($ic:ident) => {
#[derive(Debug)]
pub struct $ic<I2C> {
i2c: I2C,
}
impl<I2C, E> $ic<I2C>
where
I2C: i2c::I2c<Error = E>,
{
pub fn new(i2c: I2C) -> Self {
$ic { i2c }
}
pub fn destroy(self) -> I2C {
self.i2c
}
pub fn quickstart(&mut self) -> Result<(), Error<E>> {
self.write_register(Register::MODE, Command::QSTRT)
}
pub fn version(&mut self) -> Result<u16, Error<E>> {
self.read_register(Register::VERSION)
}
}
impl_register_access!($ic);
};
}