diff options
| author | Jacob Pratt <jacob@jhpratt.dev> | 2025-02-15 02:37:33 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-15 02:37:33 -0500 |
| commit | ba89ea8add87522ac0a1158d36edd7d2301cc2bd (patch) | |
| tree | 12b2f82fce04161bc98f8c2cafb92adcd0765b61 /library/std/src/io/impls.rs | |
| parent | 6593a25028f9b6e75900e2606e3067911cc042fc (diff) | |
| parent | 11c174006e94de3c78faa679fe958c3ff3986842 (diff) | |
| download | rust-ba89ea8add87522ac0a1158d36edd7d2301cc2bd.tar.gz rust-ba89ea8add87522ac0a1158d36edd7d2301cc2bd.zip | |
Rollup merge of #137062 - thaliaarchi:io-optional-methods/write, r=workingjubilee
Forward all default methods for I/O impls Forward all default methods for `&mut T` and `Box<T>` to the inner `io::Read`, `io::Write`, `io::Seek`, and `io::BufRead` types.
Diffstat (limited to 'library/std/src/io/impls.rs')
| -rw-r--r-- | library/std/src/io/impls.rs | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/library/std/src/io/impls.rs b/library/std/src/io/impls.rs index b952c85addf..8239b29884e 100644 --- a/library/std/src/io/impls.rs +++ b/library/std/src/io/impls.rs @@ -45,6 +45,7 @@ impl<R: Read + ?Sized> Read for &mut R { fn read_exact(&mut self, buf: &mut [u8]) -> io::Result<()> { (**self).read_exact(buf) } + #[inline] fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> io::Result<()> { (**self).read_buf_exact(cursor) @@ -78,6 +79,11 @@ impl<W: Write + ?Sized> Write for &mut W { } #[inline] + fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> io::Result<()> { + (**self).write_all_vectored(bufs) + } + + #[inline] fn write_fmt(&mut self, fmt: fmt::Arguments<'_>) -> io::Result<()> { (**self).write_fmt(fmt) } @@ -90,9 +96,24 @@ impl<S: Seek + ?Sized> Seek for &mut S { } #[inline] + fn rewind(&mut self) -> io::Result<()> { + (**self).rewind() + } + + #[inline] + fn stream_len(&mut self) -> io::Result<u64> { + (**self).stream_len() + } + + #[inline] fn stream_position(&mut self) -> io::Result<u64> { (**self).stream_position() } + + #[inline] + fn seek_relative(&mut self, offset: i64) -> io::Result<()> { + (**self).seek_relative(offset) + } } #[stable(feature = "rust1", since = "1.0.0")] impl<B: BufRead + ?Sized> BufRead for &mut B { @@ -107,11 +128,21 @@ impl<B: BufRead + ?Sized> BufRead for &mut B { } #[inline] + fn has_data_left(&mut self) -> io::Result<bool> { + (**self).has_data_left() + } + + #[inline] fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> io::Result<usize> { (**self).read_until(byte, buf) } #[inline] + fn skip_until(&mut self, byte: u8) -> io::Result<usize> { + (**self).skip_until(byte) + } + + #[inline] fn read_line(&mut self, buf: &mut String) -> io::Result<usize> { (**self).read_line(buf) } @@ -153,6 +184,7 @@ impl<R: Read + ?Sized> Read for Box<R> { fn read_exact(&mut self, buf: &mut [u8]) -> io::Result<()> { (**self).read_exact(buf) } + #[inline] fn read_buf_exact(&mut self, cursor: BorrowedCursor<'_>) -> io::Result<()> { (**self).read_buf_exact(cursor) @@ -186,6 +218,11 @@ impl<W: Write + ?Sized> Write for Box<W> { } #[inline] + fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> io::Result<()> { + (**self).write_all_vectored(bufs) + } + + #[inline] fn write_fmt(&mut self, fmt: fmt::Arguments<'_>) -> io::Result<()> { (**self).write_fmt(fmt) } @@ -198,9 +235,24 @@ impl<S: Seek + ?Sized> Seek for Box<S> { } #[inline] + fn rewind(&mut self) -> io::Result<()> { + (**self).rewind() + } + + #[inline] + fn stream_len(&mut self) -> io::Result<u64> { + (**self).stream_len() + } + + #[inline] fn stream_position(&mut self) -> io::Result<u64> { (**self).stream_position() } + + #[inline] + fn seek_relative(&mut self, offset: i64) -> io::Result<()> { + (**self).seek_relative(offset) + } } #[stable(feature = "rust1", since = "1.0.0")] impl<B: BufRead + ?Sized> BufRead for Box<B> { @@ -215,11 +267,21 @@ impl<B: BufRead + ?Sized> BufRead for Box<B> { } #[inline] + fn has_data_left(&mut self) -> io::Result<bool> { + (**self).has_data_left() + } + + #[inline] fn read_until(&mut self, byte: u8, buf: &mut Vec<u8>) -> io::Result<usize> { (**self).read_until(byte, buf) } #[inline] + fn skip_until(&mut self, byte: u8) -> io::Result<usize> { + (**self).skip_until(byte) + } + + #[inline] fn read_line(&mut self, buf: &mut String) -> io::Result<usize> { (**self).read_line(buf) } |
