diff options
| author | Josh Stone <jistone@redhat.com> | 2022-01-19 15:57:36 -0800 | 
|---|---|---|
| committer | Josh Stone <jistone@redhat.com> | 2022-01-19 15:57:40 -0800 | 
| commit | a04d553e882196146aaa632cf00877c4af37d447 (patch) | |
| tree | b56f8a91e84cd4e45577cae3b97a6bf0311bd715 /library/std/src | |
| parent | 4038ca0965151b42afa4692b23b2eeaa4236a29f (diff) | |
| download | rust-a04d553e882196146aaa632cf00877c4af37d447.tar.gz rust-a04d553e882196146aaa632cf00877c4af37d447.zip | |
impl Write for Cursor<[u8; N]>
Diffstat (limited to 'library/std/src')
| -rw-r--r-- | library/std/src/io/cursor.rs | 23 | ||||
| -rw-r--r-- | library/std/src/io/cursor/tests.rs | 12 | 
2 files changed, 35 insertions, 0 deletions
| diff --git a/library/std/src/io/cursor.rs b/library/std/src/io/cursor.rs index 416cc906e65..7670a859292 100644 --- a/library/std/src/io/cursor.rs +++ b/library/std/src/io/cursor.rs @@ -525,3 +525,26 @@ impl Write for Cursor<Box<[u8]>> { Ok(()) } } + +#[stable(feature = "cursor_array", since = "1.60.0")] +impl<const N: usize> Write for Cursor<[u8; N]> { + #[inline] + fn write(&mut self, buf: &[u8]) -> io::Result<usize> { + slice_write(&mut self.pos, &mut self.inner, buf) + } + + #[inline] + fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> io::Result<usize> { + slice_write_vectored(&mut self.pos, &mut self.inner, bufs) + } + + #[inline] + fn is_write_vectored(&self) -> bool { + true + } + + #[inline] + fn flush(&mut self) -> io::Result<()> { + Ok(()) + } +} diff --git a/library/std/src/io/cursor/tests.rs b/library/std/src/io/cursor/tests.rs index 2d0836d9a85..f1ee177b7f3 100644 --- a/library/std/src/io/cursor/tests.rs +++ b/library/std/src/io/cursor/tests.rs @@ -105,6 +105,18 @@ fn test_box_slice_writer_vectored() { } #[test] +fn test_array_writer() { + let mut writer = Cursor::new([0u8; 9]); + test_slice_writer(&mut writer); +} + +#[test] +fn test_array_writer_vectored() { + let mut writer = Cursor::new([0u8; 9]); + test_slice_writer_vectored(&mut writer); +} + +#[test] fn test_buf_writer() { let mut buf = [0 as u8; 9]; let mut writer = Cursor::new(&mut buf[..]); | 
