pub trait I2c<A: AddressMode = SevenBitAddress>: ErrorType {
    #[inline]
    fn read(&mut self, address: A, read: &mut [u8])
        -> Result<(), Self::Error>;
    #[inline]
    fn write(&mut self, address: A, write: &[u8])
        -> Result<(), Self::Error>;
    #[inline]
    fn write_read(&mut self, address: A, write:
       &[u8], read: &mut [u8]) -> Result<(),
       Self::Error>;
    fn transaction(
        &mut self,
        address: A,
        operations: &mut [Operation<'_>],
    ) -> Result<(), Self::Error>;
}
