diff options
| author | Matt Ickstadt <[email protected]> | 2023-07-31 13:35:06 -0500 |
|---|---|---|
| committer | Matt Ickstadt <[email protected]> | 2023-07-31 13:35:06 -0500 |
| commit | 1b0f4ee65390ec0e511c2455c0f26c8d4f661ec3 (patch) | |
| tree | 5a2d93d94bb0fc1556a5d6e6354a3e7777f40276 /embassy-stm32 | |
| parent | 4da97433173fcab5196e7c2a69c295edff3588eb (diff) | |
stm32: add outlives bounds to TimeoutI2c impl blocks
This should make usage and error messages more clear.
Diffstat (limited to 'embassy-stm32')
| -rw-r--r-- | embassy-stm32/src/i2c/timeout.rs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/embassy-stm32/src/i2c/timeout.rs b/embassy-stm32/src/i2c/timeout.rs index 8dc228b34..bb6e105de 100644 --- a/embassy-stm32/src/i2c/timeout.rs +++ b/embassy-stm32/src/i2c/timeout.rs | |||
| @@ -22,7 +22,7 @@ fn timeout_fn(timeout: Duration) -> impl Fn() -> Result<(), Error> { | |||
| 22 | } | 22 | } |
| 23 | } | 23 | } |
| 24 | 24 | ||
| 25 | impl<'a, 'd, T: Instance, TXDMA, RXDMA> TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { | 25 | impl<'a, 'd: 'a, T: Instance, TXDMA, RXDMA> TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { |
| 26 | pub fn new(i2c: &'a mut I2c<'d, T, TXDMA, RXDMA>, timeout: Duration) -> Self { | 26 | pub fn new(i2c: &'a mut I2c<'d, T, TXDMA, RXDMA>, timeout: Duration) -> Self { |
| 27 | Self { i2c, timeout } | 27 | Self { i2c, timeout } |
| 28 | } | 28 | } |
| @@ -65,7 +65,9 @@ impl<'a, 'd, T: Instance, TXDMA, RXDMA> TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { | |||
| 65 | } | 65 | } |
| 66 | } | 66 | } |
| 67 | 67 | ||
| 68 | impl<'a, 'd, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::Read for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { | 68 | impl<'a, 'd: 'a, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::Read |
| 69 | for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> | ||
| 70 | { | ||
| 69 | type Error = Error; | 71 | type Error = Error; |
| 70 | 72 | ||
| 71 | fn read(&mut self, addr: u8, read: &mut [u8]) -> Result<(), Self::Error> { | 73 | fn read(&mut self, addr: u8, read: &mut [u8]) -> Result<(), Self::Error> { |
| @@ -73,7 +75,9 @@ impl<'a, 'd, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::Read for | |||
| 73 | } | 75 | } |
| 74 | } | 76 | } |
| 75 | 77 | ||
| 76 | impl<'a, 'd, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::Write for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { | 78 | impl<'a, 'd: 'a, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::Write |
| 79 | for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> | ||
| 80 | { | ||
| 77 | type Error = Error; | 81 | type Error = Error; |
| 78 | 82 | ||
| 79 | fn write(&mut self, addr: u8, write: &[u8]) -> Result<(), Self::Error> { | 83 | fn write(&mut self, addr: u8, write: &[u8]) -> Result<(), Self::Error> { |
| @@ -81,7 +85,7 @@ impl<'a, 'd, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::Write fo | |||
| 81 | } | 85 | } |
| 82 | } | 86 | } |
| 83 | 87 | ||
| 84 | impl<'a, 'd, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::WriteRead | 88 | impl<'a, 'd: 'a, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::WriteRead |
| 85 | for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> | 89 | for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> |
| 86 | { | 90 | { |
| 87 | type Error = Error; | 91 | type Error = Error; |
| @@ -95,11 +99,11 @@ impl<'a, 'd, T: Instance, TXDMA, RXDMA> embedded_hal_02::blocking::i2c::WriteRea | |||
| 95 | mod eh1 { | 99 | mod eh1 { |
| 96 | use super::*; | 100 | use super::*; |
| 97 | 101 | ||
| 98 | impl<'a, 'd, T: Instance, TXDMA, RXDMA> embedded_hal_1::i2c::ErrorType for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { | 102 | impl<'a, 'd: 'a, T: Instance, TXDMA, RXDMA> embedded_hal_1::i2c::ErrorType for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { |
| 99 | type Error = Error; | 103 | type Error = Error; |
| 100 | } | 104 | } |
| 101 | 105 | ||
| 102 | impl<'a, 'd, T: Instance, TXDMA, RXDMA> embedded_hal_1::i2c::I2c for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { | 106 | impl<'a, 'd: 'a, T: Instance, TXDMA, RXDMA> embedded_hal_1::i2c::I2c for TimeoutI2c<'a, 'd, T, TXDMA, RXDMA> { |
| 103 | fn read(&mut self, address: u8, read: &mut [u8]) -> Result<(), Self::Error> { | 107 | fn read(&mut self, address: u8, read: &mut [u8]) -> Result<(), Self::Error> { |
| 104 | self.blocking_read(address, read) | 108 | self.blocking_read(address, read) |
| 105 | } | 109 | } |
