aboutsummaryrefslogtreecommitdiff
path: root/embassy-nrf/src/buffered_uarte.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-nrf/src/buffered_uarte.rs')
-rw-r--r--embassy-nrf/src/buffered_uarte.rs66
1 files changed, 17 insertions, 49 deletions
diff --git a/embassy-nrf/src/buffered_uarte.rs b/embassy-nrf/src/buffered_uarte.rs
index 9c8fe65f4..ea25236f0 100644
--- a/embassy-nrf/src/buffered_uarte.rs
+++ b/embassy-nrf/src/buffered_uarte.rs
@@ -15,7 +15,7 @@
15 15
16use core::cell::RefCell; 16use core::cell::RefCell;
17use core::cmp::min; 17use core::cmp::min;
18use core::future::{poll_fn, Future}; 18use core::future::poll_fn;
19use core::sync::atomic::{compiler_fence, Ordering}; 19use core::sync::atomic::{compiler_fence, Ordering};
20use core::task::Poll; 20use core::task::Poll;
21 21
@@ -341,32 +341,20 @@ impl<'u, 'd, U: UarteInstance, T: TimerInstance> embedded_io::Io for BufferedUar
341} 341}
342 342
343impl<'d, U: UarteInstance, T: TimerInstance> embedded_io::asynch::Read for BufferedUarte<'d, U, T> { 343impl<'d, U: UarteInstance, T: TimerInstance> embedded_io::asynch::Read for BufferedUarte<'d, U, T> {
344 type ReadFuture<'a> = impl Future<Output = Result<usize, Self::Error>> + 'a 344 async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error> {
345 where 345 self.inner_read(buf).await
346 Self: 'a;
347
348 fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Self::ReadFuture<'a> {
349 self.inner_read(buf)
350 } 346 }
351} 347}
352 348
353impl<'u, 'd: 'u, U: UarteInstance, T: TimerInstance> embedded_io::asynch::Read for BufferedUarteRx<'u, 'd, U, T> { 349impl<'u, 'd: 'u, U: UarteInstance, T: TimerInstance> embedded_io::asynch::Read for BufferedUarteRx<'u, 'd, U, T> {
354 type ReadFuture<'a> = impl Future<Output = Result<usize, Self::Error>> + 'a 350 async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error> {
355 where 351 self.inner.inner_read(buf).await
356 Self: 'a;
357
358 fn read<'a>(&'a mut self, buf: &'a mut [u8]) -> Self::ReadFuture<'a> {
359 self.inner.inner_read(buf)
360 } 352 }
361} 353}
362 354
363impl<'d, U: UarteInstance, T: TimerInstance> embedded_io::asynch::BufRead for BufferedUarte<'d, U, T> { 355impl<'d, U: UarteInstance, T: TimerInstance> embedded_io::asynch::BufRead for BufferedUarte<'d, U, T> {
364 type FillBufFuture<'a> = impl Future<Output = Result<&'a [u8], Self::Error>> + 'a 356 async fn fill_buf(&mut self) -> Result<&[u8], Self::Error> {
365 where 357 self.inner_fill_buf().await
366 Self: 'a;
367
368 fn fill_buf<'a>(&'a mut self) -> Self::FillBufFuture<'a> {
369 self.inner_fill_buf()
370 } 358 }
371 359
372 fn consume(&mut self, amt: usize) { 360 fn consume(&mut self, amt: usize) {
@@ -375,12 +363,8 @@ impl<'d, U: UarteInstance, T: TimerInstance> embedded_io::asynch::BufRead for Bu
375} 363}
376 364
377impl<'u, 'd: 'u, U: UarteInstance, T: TimerInstance> embedded_io::asynch::BufRead for BufferedUarteRx<'u, 'd, U, T> { 365impl<'u, 'd: 'u, U: UarteInstance, T: TimerInstance> embedded_io::asynch::BufRead for BufferedUarteRx<'u, 'd, U, T> {
378 type FillBufFuture<'a> = impl Future<Output = Result<&'a [u8], Self::Error>> + 'a 366 async fn fill_buf(&mut self) -> Result<&[u8], Self::Error> {
379 where 367 self.inner.inner_fill_buf().await
380 Self: 'a;
381
382 fn fill_buf<'a>(&'a mut self) -> Self::FillBufFuture<'a> {
383 self.inner.inner_fill_buf()
384 } 368 }
385 369
386 fn consume(&mut self, amt: usize) { 370 fn consume(&mut self, amt: usize) {
@@ -389,38 +373,22 @@ impl<'u, 'd: 'u, U: UarteInstance, T: TimerInstance> embedded_io::asynch::BufRea
389} 373}
390 374
391impl<'d, U: UarteInstance, T: TimerInstance> embedded_io::asynch::Write for BufferedUarte<'d, U, T> { 375impl<'d, U: UarteInstance, T: TimerInstance> embedded_io::asynch::Write for BufferedUarte<'d, U, T> {
392 type WriteFuture<'a> = impl Future<Output = Result<usize, Self::Error>> + 'a 376 async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error> {
393 where 377 self.inner_write(buf).await
394 Self: 'a;
395
396 fn write<'a>(&'a mut self, buf: &'a [u8]) -> Self::WriteFuture<'a> {
397 self.inner_write(buf)
398 } 378 }
399 379
400 type FlushFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a 380 async fn flush(&mut self) -> Result<(), Self::Error> {
401 where 381 self.inner_flush().await
402 Self: 'a;
403
404 fn flush<'a>(&'a mut self) -> Self::FlushFuture<'a> {
405 self.inner_flush()
406 } 382 }
407} 383}
408 384
409impl<'u, 'd: 'u, U: UarteInstance, T: TimerInstance> embedded_io::asynch::Write for BufferedUarteTx<'u, 'd, U, T> { 385impl<'u, 'd: 'u, U: UarteInstance, T: TimerInstance> embedded_io::asynch::Write for BufferedUarteTx<'u, 'd, U, T> {
410 type WriteFuture<'a> = impl Future<Output = Result<usize, Self::Error>> + 'a 386 async fn write(&mut self, buf: &[u8]) -> Result<usize, Self::Error> {
411 where 387 self.inner.inner_write(buf).await
412 Self: 'a;
413
414 fn write<'a>(&'a mut self, buf: &'a [u8]) -> Self::WriteFuture<'a> {
415 self.inner.inner_write(buf)
416 } 388 }
417 389
418 type FlushFuture<'a> = impl Future<Output = Result<(), Self::Error>> + 'a 390 async fn flush(&mut self) -> Result<(), Self::Error> {
419 where 391 self.inner.inner_flush().await
420 Self: 'a;
421
422 fn flush<'a>(&'a mut self) -> Self::FlushFuture<'a> {
423 self.inner.inner_flush()
424 } 392 }
425} 393}
426 394