From 47ae565ed4f1b2a7cc754d4cf0af520b5e6841b9 Mon Sep 17 00:00:00 2001 From: Andreas Molzer Date: Sun, 26 Jan 2020 21:52:04 +0100 Subject: [PATCH] Add a method to query the capacity of a BufWriter --- src/libstd/io/buffered.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/libstd/io/buffered.rs b/src/libstd/io/buffered.rs index 9e6849ba5bc..3d644b13f43 100644 --- a/src/libstd/io/buffered.rs +++ b/src/libstd/io/buffered.rs @@ -576,6 +576,25 @@ pub fn buffer(&self) -> &[u8] { &self.buf } + /// Returns the number of bytes the internal buffer can hold without flushing. + /// + /// # Examples + /// + /// ```no_run + /// use std::io::BufWriter; + /// use std::net::TcpStream; + /// + /// let buf_writer = BufWriter::new(TcpStream::connect("127.0.0.1:34254").unwrap()); + /// + /// // Check the capacity of the inner buffer + /// let capacity = buf_writer.capacity(); + /// // Calculate how many bytes can be written without flushing + /// let without_flush = capacity - buf_writer.buffer().len(); + /// ``` + pub fn capacity(&self) -> usize { + self.buf.capacity() + } + /// Unwraps this `BufWriter`, returning the underlying writer. /// /// The buffer is written out before returning the writer.