stm32f4xx_hal/i2c/
hal_02.rs

1mod blocking {
2    use super::super::{Error, I2c, Instance};
3    use embedded_hal_02::blocking::i2c::{Operation, Read, Transactional, Write, WriteRead};
4
5    impl<I2C: Instance> WriteRead for I2c<I2C> {
6        type Error = Error;
7
8        fn write_read(
9            &mut self,
10            addr: u8,
11            bytes: &[u8],
12            buffer: &mut [u8],
13        ) -> Result<(), Self::Error> {
14            self.write_read(addr, bytes, buffer)
15        }
16    }
17
18    impl<I2C: Instance> Write for I2c<I2C> {
19        type Error = Error;
20
21        fn write(&mut self, addr: u8, bytes: &[u8]) -> Result<(), Self::Error> {
22            self.write(addr, bytes)
23        }
24    }
25
26    impl<I2C: Instance> Read for I2c<I2C> {
27        type Error = Error;
28
29        fn read(&mut self, addr: u8, buffer: &mut [u8]) -> Result<(), Self::Error> {
30            self.read(addr, buffer)
31        }
32    }
33
34    impl<I2C: Instance> Transactional for I2c<I2C> {
35        type Error = Error;
36
37        fn exec(
38            &mut self,
39            address: u8,
40            operations: &mut [Operation<'_>],
41        ) -> Result<(), Self::Error> {
42            self.transaction_slice_hal_02(address, operations)
43        }
44    }
45}