eldritch_shield 0.2.2

Crate for interfacing with the Blackmagic 3G-SDI Shield for Arduino
Documentation
use crate::traits::I2cTransport;
use rppal::i2c::I2c;

impl I2cTransport for I2c {
    type Error = rppal::i2c::Error;

    fn write(&mut self, addr: &[u8; 2], bytes: &[u8]) -> Result<(), Self::Error> {
        let mut buff: Vec<u8> = Vec::from(addr);
        buff.extend_from_slice(bytes);
        self.write(buff.as_slice())?;
        Ok(())
    }

    fn read(&mut self, addr: &[u8; 2], buffer: &mut [u8]) -> Result<(), Self::Error> {
        self.write(addr)?;
        self.read(buffer)?;
        Ok(())
    }
}