diff --git a/embedded-hal-nb/src/serial.rs b/embedded-hal-nb/src/serial.rs index 98142270..6b4d7903 100644 --- a/embedded-hal-nb/src/serial.rs +++ b/embedded-hal-nb/src/serial.rs @@ -127,7 +127,7 @@ where let _ = s .bytes() .map(|c| nb::block!(self.write(Word::from(c)))) - .last(); + .next_back(); Ok(()) } } diff --git a/embedded-io/CHANGELOG.md b/embedded-io/CHANGELOG.md index 1c8ea414..f7c2e0e6 100644 --- a/embedded-io/CHANGELOG.md +++ b/embedded-io/CHANGELOG.md @@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Added `core::error::Error` implementations for every custom `impl Error` - Migrated `std` feature-gated `std::error::Error` implementations to `core::error::Error` - Increased MSRV to 1.81 due to `core::error::Error` +- Implemented `ReadReady` for `&[u8]` and `WriteReady` for `&mut [u8]` ## 0.6.1 - 2023-10-22 diff --git a/embedded-io/src/impls/slice_mut.rs b/embedded-io/src/impls/slice_mut.rs index 67606561..cee991ea 100644 --- a/embedded-io/src/impls/slice_mut.rs +++ b/embedded-io/src/impls/slice_mut.rs @@ -1,4 +1,4 @@ -use crate::{Error, ErrorKind, ErrorType, SliceWriteError, Write}; +use crate::{Error, ErrorKind, ErrorType, SliceWriteError, Write, WriteReady}; use core::mem; impl Error for SliceWriteError { @@ -47,3 +47,10 @@ impl Write for &mut [u8] { Ok(()) } } + +impl WriteReady for &mut [u8] { + #[inline] + fn write_ready(&mut self) -> Result { + Ok(true) + } +} diff --git a/embedded-io/src/impls/slice_ref.rs b/embedded-io/src/impls/slice_ref.rs index 6332d70d..0270aca2 100644 --- a/embedded-io/src/impls/slice_ref.rs +++ b/embedded-io/src/impls/slice_ref.rs @@ -1,4 +1,4 @@ -use crate::{BufRead, ErrorType, Read}; +use crate::{BufRead, ErrorType, Read, ReadReady}; impl ErrorType for &[u8] { type Error = core::convert::Infallible; @@ -39,3 +39,10 @@ impl BufRead for &[u8] { *self = &self[amt..]; } } + +impl ReadReady for &[u8] { + #[inline] + fn read_ready(&mut self) -> Result { + Ok(true) + } +}