File tree Expand file tree Collapse file tree 1 file changed +29
-1
lines changed Expand file tree Collapse file tree 1 file changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -168,8 +168,36 @@ impl<R: Read> BufReader<R> {
168168 /// # }
169169 /// ```
170170 #[ unstable( feature = "bufreader_is_empty" , issue = "45323" , reason = "recently added" ) ]
171+ #[ rustc_deprecated( since = "1.26.0" , reason = "use .buffer().is_empty() instead" ) ]
171172 pub fn is_empty ( & self ) -> bool {
172- self . pos == self . cap
173+ self . buffer ( ) . is_empty ( )
174+ }
175+
176+ /// Returns a reference to the internally buffered data.
177+ ///
178+ /// Unlike `fill_buf`, this will not attempt to fill the buffer if it is empty.
179+ ///
180+ /// # Examples
181+ ///
182+ /// ```
183+ /// # #![feature(bufreader_buffer)]
184+ /// use std::io::{BufReader, BufRead};
185+ /// use std::fs::File;
186+ ///
187+ /// # fn foo() -> std::io::Result<()> {
188+ /// let f = File::open("log.txt")?;
189+ /// let mut reader = BufReader::new(f);
190+ /// assert!(reader.buffer().is_empty());
191+ ///
192+ /// if reader.fill_buf()?.len() > 0 {
193+ /// assert!(!reader.buffer().is_empty());
194+ /// }
195+ /// # Ok(())
196+ /// # }
197+ /// ```
198+ #[ unstable( feature = "bufreader_buffer" , issue = "45323" ) ]
199+ pub fn buffer ( & self ) -> & [ u8 ] {
200+ & self . buf [ self . pos ..self . cap ]
173201 }
174202
175203 /// Unwraps this `BufReader`, returning the underlying reader.
You can’t perform that action at this time.
0 commit comments