Skip to content

Commit dffd0c4

Browse files
ethetaiki-e
authored andcommitted
Make non constructor methods of futures::io::{BufReader,BufWriter} not require inner trait bound (#2848)
1 parent e843c70 commit dffd0c4

File tree

2 files changed

+22
-18
lines changed

2 files changed

+22
-18
lines changed

futures-util/src/io/buf_reader.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ impl<R: AsyncRead> BufReader<R> {
5555
Self { inner, buffer: buffer.into_boxed_slice(), pos: 0, cap: 0 }
5656
}
5757
}
58+
}
5859

60+
impl<R> BufReader<R> {
5961
delegate_access_inner!(inner, R, ());
6062

6163
/// Returns a reference to the internally buffered data.

futures-util/src/io/buf_writer.rs

Lines changed: 20 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,26 @@ impl<W: AsyncWrite> BufWriter<W> {
7979
Poll::Ready(ret)
8080
}
8181

82+
/// Write directly using `inner`, bypassing buffering
83+
pub(super) fn inner_poll_write(
84+
self: Pin<&mut Self>,
85+
cx: &mut Context<'_>,
86+
buf: &[u8],
87+
) -> Poll<io::Result<usize>> {
88+
self.project().inner.poll_write(cx, buf)
89+
}
90+
91+
/// Write directly using `inner`, bypassing buffering
92+
pub(super) fn inner_poll_write_vectored(
93+
self: Pin<&mut Self>,
94+
cx: &mut Context<'_>,
95+
bufs: &[IoSlice<'_>],
96+
) -> Poll<io::Result<usize>> {
97+
self.project().inner.poll_write_vectored(cx, bufs)
98+
}
99+
}
100+
101+
impl<W> BufWriter<W> {
82102
delegate_access_inner!(inner, W, ());
83103

84104
/// Returns a reference to the internally buffered data.
@@ -131,24 +151,6 @@ impl<W: AsyncWrite> BufWriter<W> {
131151
this.buf.set_len(old_len + buf_len);
132152
}
133153
}
134-
135-
/// Write directly using `inner`, bypassing buffering
136-
pub(super) fn inner_poll_write(
137-
self: Pin<&mut Self>,
138-
cx: &mut Context<'_>,
139-
buf: &[u8],
140-
) -> Poll<io::Result<usize>> {
141-
self.project().inner.poll_write(cx, buf)
142-
}
143-
144-
/// Write directly using `inner`, bypassing buffering
145-
pub(super) fn inner_poll_write_vectored(
146-
self: Pin<&mut Self>,
147-
cx: &mut Context<'_>,
148-
bufs: &[IoSlice<'_>],
149-
) -> Poll<io::Result<usize>> {
150-
self.project().inner.poll_write_vectored(cx, bufs)
151-
}
152154
}
153155

154156
impl<W: AsyncWrite> AsyncWrite for BufWriter<W> {

0 commit comments

Comments
 (0)