aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/usart/ringbuffered.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-stm32/src/usart/ringbuffered.rs')
-rw-r--r--embassy-stm32/src/usart/ringbuffered.rs38
1 files changed, 15 insertions, 23 deletions
diff --git a/embassy-stm32/src/usart/ringbuffered.rs b/embassy-stm32/src/usart/ringbuffered.rs
index eceabbe9a..b8d17e4e4 100644
--- a/embassy-stm32/src/usart/ringbuffered.rs
+++ b/embassy-stm32/src/usart/ringbuffered.rs
@@ -7,7 +7,7 @@ use embassy_embedded_hal::SetConfig;
7use embassy_hal_internal::PeripheralRef; 7use embassy_hal_internal::PeripheralRef;
8use futures::future::{select, Either}; 8use futures::future::{select, Either};
9 9
10use super::{clear_interrupt_flags, rdr, reconfigure, sr, BasicInstance, Config, ConfigError, Error, UartRx}; 10use super::{clear_interrupt_flags, rdr, reconfigure, sr, BasicInstance, Config, ConfigError, Error, RxDma, UartRx};
11use crate::dma::ReadableRingBuffer; 11use crate::dma::ReadableRingBuffer;
12use crate::usart::{Regs, Sr}; 12use crate::usart::{Regs, Sr};
13 13
@@ -240,28 +240,20 @@ fn clear_idle_flag(r: Regs) -> Sr {
240 sr 240 sr
241} 241}
242 242
243#[cfg(all(feature = "unstable-traits", feature = "nightly"))] 243impl<T, Rx> embedded_io_async::ErrorType for RingBufferedUartRx<'_, T, Rx>
244mod eio { 244where
245 use embedded_io_async::{ErrorType, Read}; 245 T: BasicInstance,
246 246 Rx: RxDma<T>,
247 use super::RingBufferedUartRx; 247{
248 use crate::usart::{BasicInstance, Error, RxDma}; 248 type Error = Error;
249 249}
250 impl<T, Rx> ErrorType for RingBufferedUartRx<'_, T, Rx>
251 where
252 T: BasicInstance,
253 Rx: RxDma<T>,
254 {
255 type Error = Error;
256 }
257 250
258 impl<T, Rx> Read for RingBufferedUartRx<'_, T, Rx> 251impl<T, Rx> embedded_io_async::Read for RingBufferedUartRx<'_, T, Rx>
259 where 252where
260 T: BasicInstance, 253 T: BasicInstance,
261 Rx: RxDma<T>, 254 Rx: RxDma<T>,
262 { 255{
263 async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error> { 256 async fn read(&mut self, buf: &mut [u8]) -> Result<usize, Self::Error> {
264 self.read(buf).await 257 self.read(buf).await
265 }
266 } 258 }
267} 259}