]> git.lizzy.rs Git - rust.git/commitdiff
Overwrite Cursor's `Seek::stream_{len, position}` for performance
authorLukas Kalbertodt <lukas.kalbertodt@gmail.com>
Thu, 14 Mar 2019 12:27:49 +0000 (13:27 +0100)
committerLukas Kalbertodt <lukas.kalbertodt@gmail.com>
Thu, 14 Mar 2019 12:43:19 +0000 (13:43 +0100)
src/libstd/io/cursor.rs

index 873da0898c7fe01c4765c20e42a101bd0dca4e91..247d45c3ec91f6391522e04d1dad32bb7e772874 100644 (file)
@@ -212,6 +212,14 @@ fn seek(&mut self, style: SeekFrom) -> io::Result<u64> {
                            "invalid seek to a negative or overflowing position"))
         }
     }
+
+    fn stream_len(&mut self) -> io::Result<u64> {
+        Ok(self.inner.as_ref().len() as u64)
+    }
+
+    fn stream_position(&mut self) -> io::Result<u64> {
+        Ok(self.pos)
+    }
 }
 
 #[stable(feature = "rust1", since = "1.0.0")]