Skip to content

Commit 505ecd8

Browse files
committed
Move std impl from lib.rs to bridge.rs
This reduces the number of compilation conditions.
1 parent 94768d3 commit 505ecd8

File tree

2 files changed

+32
-36
lines changed

2 files changed

+32
-36
lines changed

io/src/bridge.rs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -254,3 +254,35 @@ impl<T: super::Write> super::Write for ToStd<T> {
254254
self.0.write_all(buf)
255255
}
256256
}
257+
258+
impl<R: std::io::Read> super::Read for std::io::BufReader<R> {
259+
#[inline]
260+
fn read(&mut self, buf: &mut [u8]) -> super::Result<usize> { Ok(std::io::Read::read(self, buf)?) }
261+
}
262+
263+
impl<R: std::io::Read> super::BufRead for std::io::BufReader<R> {
264+
#[inline]
265+
fn fill_buf(&mut self) -> super::Result<&[u8]> { Ok(std::io::BufRead::fill_buf(self)?) }
266+
267+
#[inline]
268+
fn consume(&mut self, amount: usize) { std::io::BufRead::consume(self, amount) }
269+
}
270+
271+
impl std::io::Write for super::Sink {
272+
#[inline]
273+
fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> { Ok(buf.len()) }
274+
275+
#[inline]
276+
fn write_all(&mut self, _: &[u8]) -> std::io::Result<()> { Ok(()) }
277+
278+
#[inline]
279+
fn flush(&mut self) -> std::io::Result<()> { Ok(()) }
280+
}
281+
282+
impl<W: std::io::Write> super::Write for std::io::BufWriter<W> {
283+
#[inline]
284+
fn write(&mut self, buf: &[u8]) -> super::Result<usize> { Ok(std::io::Write::write(self, buf)?) }
285+
286+
#[inline]
287+
fn flush(&mut self) -> super::Result<()> { Ok(std::io::Write::flush(self)?) }
288+
}

io/src/lib.rs

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -163,12 +163,6 @@ impl Read for &[u8] {
163163
}
164164
}
165165

166-
#[cfg(feature = "std")]
167-
impl<R: std::io::Read> Read for std::io::BufReader<R> {
168-
#[inline]
169-
fn read(&mut self, buf: &mut [u8]) -> Result<usize> { Ok(std::io::Read::read(self, buf)?) }
170-
}
171-
172166
impl BufRead for &[u8] {
173167
#[inline]
174168
fn fill_buf(&mut self) -> Result<&[u8]> { Ok(self) }
@@ -178,15 +172,6 @@ impl BufRead for &[u8] {
178172
fn consume(&mut self, amount: usize) { *self = &self[amount..] }
179173
}
180174

181-
#[cfg(feature = "std")]
182-
impl<R: std::io::Read> BufRead for std::io::BufReader<R> {
183-
#[inline]
184-
fn fill_buf(&mut self) -> Result<&[u8]> { Ok(std::io::BufRead::fill_buf(self)?) }
185-
186-
#[inline]
187-
fn consume(&mut self, amount: usize) { std::io::BufRead::consume(self, amount) }
188-
}
189-
190175
/// Wraps an in memory reader providing the `position` function.
191176
pub struct Cursor<T> {
192177
inner: T,
@@ -301,15 +286,6 @@ impl<'a> Write for &'a mut [u8] {
301286
fn flush(&mut self) -> Result<()> { Ok(()) }
302287
}
303288

304-
#[cfg(feature = "std")]
305-
impl<W: std::io::Write> Write for std::io::BufWriter<W> {
306-
#[inline]
307-
fn write(&mut self, buf: &[u8]) -> Result<usize> { Ok(std::io::Write::write(self, buf)?) }
308-
309-
#[inline]
310-
fn flush(&mut self) -> Result<()> { Ok(std::io::Write::flush(self)?) }
311-
}
312-
313289
/// A sink to which all writes succeed. See [`std::io::Sink`] for more info.
314290
///
315291
/// Created using `io::sink()`.
@@ -326,18 +302,6 @@ impl Write for Sink {
326302
fn flush(&mut self) -> Result<()> { Ok(()) }
327303
}
328304

329-
#[cfg(feature = "std")]
330-
impl std::io::Write for Sink {
331-
#[inline]
332-
fn write(&mut self, buf: &[u8]) -> std::io::Result<usize> { Ok(buf.len()) }
333-
334-
#[inline]
335-
fn write_all(&mut self, _: &[u8]) -> std::io::Result<()> { Ok(()) }
336-
337-
#[inline]
338-
fn flush(&mut self) -> std::io::Result<()> { Ok(()) }
339-
}
340-
341305
/// Returns a sink to which all writes succeed. See [`std::io::sink`] for more info.
342306
#[inline]
343307
pub fn sink() -> Sink { Sink }

0 commit comments

Comments
 (0)