From 9bb5dea4feed42ceac0bcc43251cf2a2fe3d653f Mon Sep 17 00:00:00 2001 From: Victorien Elvinger Date: Tue, 16 Sep 2025 10:14:32 +0200 Subject: [PATCH] [io] Forward calls in Box adapters --- embedded-io-async/src/impls/boxx.rs | 23 +++++++++++++++++++ embedded-io/src/impls/boxx.rs | 34 +++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/embedded-io-async/src/impls/boxx.rs b/embedded-io-async/src/impls/boxx.rs index d6186b0c7..b3c1bab56 100644 --- a/embedded-io-async/src/impls/boxx.rs +++ b/embedded-io-async/src/impls/boxx.rs @@ -7,6 +7,14 @@ impl Read for Box { async fn read(&mut self, buf: &mut [u8]) -> Result { T::read(self, buf).await } + + #[inline] + async fn read_exact( + &mut self, + buf: &mut [u8], + ) -> Result<(), crate::ReadExactError> { + T::read_exact(self, buf).await + } } #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))] @@ -29,6 +37,11 @@ impl Write for Box { T::write(self, buf).await } + #[inline] + async fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error> { + T::write_all(self, buf).await + } + #[inline] async fn flush(&mut self) -> Result<(), Self::Error> { T::flush(self).await @@ -41,4 +54,14 @@ impl Seek for Box { async fn seek(&mut self, pos: SeekFrom) -> Result { T::seek(self, pos).await } + + #[inline] + async fn rewind(&mut self) -> Result<(), Self::Error> { + T::rewind(self).await + } + + #[inline] + async fn stream_position(&mut self) -> Result { + T::stream_position(self).await + } } diff --git a/embedded-io/src/impls/boxx.rs b/embedded-io/src/impls/boxx.rs index 037a6be0c..c7bb01a52 100644 --- a/embedded-io/src/impls/boxx.rs +++ b/embedded-io/src/impls/boxx.rs @@ -12,6 +12,11 @@ impl Read for Box { fn read(&mut self, buf: &mut [u8]) -> Result { T::read(self, buf) } + + #[inline] + fn read_exact(&mut self, buf: &mut [u8]) -> Result<(), crate::ReadExactError> { + T::read_exact(self, buf) + } } #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))] @@ -20,6 +25,7 @@ impl BufRead for Box { T::fill_buf(self) } + #[inline] fn consume(&mut self, amt: usize) { T::consume(self, amt); } @@ -32,6 +38,19 @@ impl Write for Box { T::write(self, buf) } + #[inline] + fn write_all(&mut self, buf: &[u8]) -> Result<(), Self::Error> { + T::write_all(self, buf) + } + + #[inline] + fn write_fmt( + &mut self, + fmt: core::fmt::Arguments<'_>, + ) -> Result<(), crate::WriteFmtError> { + T::write_fmt(self, fmt) + } + #[inline] fn flush(&mut self) -> Result<(), Self::Error> { T::flush(self) @@ -44,6 +63,21 @@ impl Seek for Box { fn seek(&mut self, pos: crate::SeekFrom) -> Result { T::seek(self, pos) } + + #[inline] + fn rewind(&mut self) -> Result<(), Self::Error> { + T::rewind(self) + } + + #[inline] + fn stream_position(&mut self) -> Result { + T::stream_position(self) + } + + #[inline] + fn seek_relative(&mut self, offset: i64) -> Result<(), Self::Error> { + T::seek_relative(self, offset) + } } #[cfg_attr(docsrs, doc(cfg(any(feature = "std", feature = "alloc"))))]