aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--embassy-traits/src/i2c.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/embassy-traits/src/i2c.rs b/embassy-traits/src/i2c.rs
index e426a00b0..0fdf50a12 100644
--- a/embassy-traits/src/i2c.rs
+++ b/embassy-traits/src/i2c.rs
@@ -171,3 +171,22 @@ pub trait I2c<A: AddressMode = SevenBitAddress> {
171 buffer: &'a mut [u8], 171 buffer: &'a mut [u8],
172 ) -> Self::WriteReadFuture<'a>; 172 ) -> Self::WriteReadFuture<'a>;
173} 173}
174
175pub trait WriteIter<A: AddressMode = SevenBitAddress> {
176 /// Error type
177 type Error;
178
179 type WriteIterFuture<'a, V>: Future<Output = Result<(), Self::Error>> + 'a
180 where
181 V: 'a + IntoIterator<Item = u8>,
182 Self: 'a;
183
184 /// Sends bytes to slave with address `address`
185 ///
186 /// # I2C Events (contract)
187 ///
188 /// Same as `I2c::write`
189 fn write_iter<'a, U>(&'a mut self, address: A, bytes: U) -> Self::WriteIterFuture<'a, U>
190 where
191 U: IntoIterator<Item = u8> + 'a;
192}