]> git.lizzy.rs Git - rust.git/commitdiff
impl Write for Cursor<[u8; N]>
authorJosh Stone <jistone@redhat.com>
Wed, 19 Jan 2022 23:57:36 +0000 (15:57 -0800)
committerJosh Stone <jistone@redhat.com>
Wed, 19 Jan 2022 23:57:40 +0000 (15:57 -0800)
library/std/src/io/cursor.rs
library/std/src/io/cursor/tests.rs

index 416cc906e65a56d0162dd13a639cb010675f8235..7670a8592925ffa50e815b13b93615ca23ffd137 100644 (file)
@@ -525,3 +525,26 @@ fn flush(&mut self) -> io::Result<()> {
         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(())
+    }
+}
index 2d0836d9a85950a4d71a622f98baa6deb32fd4db..f1ee177b7f3bccaaef053a128053334ab8c63a58 100644 (file)
@@ -104,6 +104,18 @@ fn test_box_slice_writer_vectored() {
     test_slice_writer_vectored(&mut writer);
 }
 
+#[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];