diff --git a/io/src/bridge.rs b/io/src/bridge.rs index cba47e6bc..4ff12fed1 100644 --- a/io/src/bridge.rs +++ b/io/src/bridge.rs @@ -254,3 +254,35 @@ impl super::Write for ToStd { self.0.write_all(buf) } } + +impl super::Read for std::io::BufReader { + #[inline] + fn read(&mut self, buf: &mut [u8]) -> super::Result { Ok(std::io::Read::read(self, buf)?) } +} + +impl super::BufRead for std::io::BufReader { + #[inline] + fn fill_buf(&mut self) -> super::Result<&[u8]> { Ok(std::io::BufRead::fill_buf(self)?) } + + #[inline] + fn consume(&mut self, amount: usize) { std::io::BufRead::consume(self, amount) } +} + +impl std::io::Write for super::Sink { + #[inline] + fn write(&mut self, buf: &[u8]) -> std::io::Result { Ok(buf.len()) } + + #[inline] + fn write_all(&mut self, _: &[u8]) -> std::io::Result<()> { Ok(()) } + + #[inline] + fn flush(&mut self) -> std::io::Result<()> { Ok(()) } +} + +impl super::Write for std::io::BufWriter { + #[inline] + fn write(&mut self, buf: &[u8]) -> super::Result { Ok(std::io::Write::write(self, buf)?) } + + #[inline] + fn flush(&mut self) -> super::Result<()> { Ok(std::io::Write::flush(self)?) } +} diff --git a/io/src/lib.rs b/io/src/lib.rs index 8de9f28d9..1fc5dd53e 100644 --- a/io/src/lib.rs +++ b/io/src/lib.rs @@ -163,12 +163,6 @@ impl Read for &[u8] { } } -#[cfg(feature = "std")] -impl Read for std::io::BufReader { - #[inline] - fn read(&mut self, buf: &mut [u8]) -> Result { Ok(std::io::Read::read(self, buf)?) } -} - impl BufRead for &[u8] { #[inline] fn fill_buf(&mut self) -> Result<&[u8]> { Ok(self) } @@ -178,15 +172,6 @@ impl BufRead for &[u8] { fn consume(&mut self, amount: usize) { *self = &self[amount..] } } -#[cfg(feature = "std")] -impl BufRead for std::io::BufReader { - #[inline] - fn fill_buf(&mut self) -> Result<&[u8]> { Ok(std::io::BufRead::fill_buf(self)?) } - - #[inline] - fn consume(&mut self, amount: usize) { std::io::BufRead::consume(self, amount) } -} - /// Wraps an in memory reader providing the `position` function. pub struct Cursor { inner: T, @@ -301,15 +286,6 @@ impl<'a> Write for &'a mut [u8] { fn flush(&mut self) -> Result<()> { Ok(()) } } -#[cfg(feature = "std")] -impl Write for std::io::BufWriter { - #[inline] - fn write(&mut self, buf: &[u8]) -> Result { Ok(std::io::Write::write(self, buf)?) } - - #[inline] - fn flush(&mut self) -> Result<()> { Ok(std::io::Write::flush(self)?) } -} - /// A sink to which all writes succeed. See [`std::io::Sink`] for more info. /// /// Created using `io::sink()`. @@ -326,18 +302,6 @@ impl Write for Sink { fn flush(&mut self) -> Result<()> { Ok(()) } } -#[cfg(feature = "std")] -impl std::io::Write for Sink { - #[inline] - fn write(&mut self, buf: &[u8]) -> std::io::Result { Ok(buf.len()) } - - #[inline] - fn write_all(&mut self, _: &[u8]) -> std::io::Result<()> { Ok(()) } - - #[inline] - fn flush(&mut self) -> std::io::Result<()> { Ok(()) } -} - /// Returns a sink to which all writes succeed. See [`std::io::sink`] for more info. #[inline] pub fn sink() -> Sink { Sink }