use embedded_hal::blocking::i2c::{Read, Write, WriteRead};
use super::{Error, I2c, Result};
impl Write for I2c {
type Error = Error;
fn write(&mut self, address: u8, bytes: &[u8]) -> Result<()> {
self.set_slave_address(u16::from(address))?;
I2c::write(self, bytes)?;
Ok(())
}
}
impl Read for I2c {
type Error = Error;
fn read(&mut self, address: u8, buffer: &mut [u8]) -> Result<()> {
self.set_slave_address(u16::from(address))?;
I2c::read(self, buffer)?;
Ok(())
}
}
impl WriteRead for I2c {
type Error = Error;
fn write_read(&mut self, address: u8, bytes: &[u8], buffer: &mut [u8]) -> Result<()> {
self.set_slave_address(u16::from(address))?;
I2c::write_read(self, bytes, buffer)?;
Ok(())
}
}