File tree 1 file changed +29
-1
lines changed
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> {
168
168
/// # }
169
169
/// ```
170
170
#[ unstable( feature = "bufreader_is_empty" , issue = "45323" , reason = "recently added" ) ]
171
+ #[ rustc_deprecated( since = "1.26.0" , reason = "use .buffer().is_empty() instead" ) ]
171
172
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 ]
173
201
}
174
202
175
203
/// Unwraps this `BufReader`, returning the underlying reader.
You can’t perform that action at this time.
0 commit comments