File tree Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Expand file tree Collapse file tree 2 files changed +21
-2
lines changed Original file line number Diff line number Diff line change @@ -27,7 +27,12 @@ impl<R: Read> BufReader<R> {
27
27
pub fn get_mut ( & mut self ) -> & mut R { & mut self . inner }
28
28
29
29
pub fn get_buf ( & self ) -> & [ u8 ] {
30
- self . buf . get_ref ( )
30
+ let pos = self . buf . position ( ) as usize ;
31
+ if pos < self . buf . get_ref ( ) . len ( ) {
32
+ & self . buf . get_ref ( ) [ pos..]
33
+ } else {
34
+ & [ ]
35
+ }
31
36
}
32
37
33
38
pub fn into_inner ( self ) -> R { self . inner }
@@ -93,3 +98,18 @@ fn reserve(v: &mut Vec<u8>) {
93
98
v. reserve ( cmp:: min ( cap * 4 , MAX_BUFFER_SIZE ) - cap) ;
94
99
}
95
100
}
101
+
102
+ #[ cfg( test) ]
103
+ mod tests {
104
+
105
+ use std:: io:: BufRead ;
106
+ use super :: BufReader ;
107
+
108
+ #[ test]
109
+ fn test_consume_and_get_buf ( ) {
110
+ let mut rdr = BufReader :: new ( & b"foo bar baz" [ ..] ) ;
111
+ rdr. read_into_buf ( ) . unwrap ( ) ;
112
+ rdr. consume ( 8 ) ;
113
+ assert_eq ! ( rdr. get_buf( ) , b"baz" ) ;
114
+ }
115
+ }
Original file line number Diff line number Diff line change @@ -228,7 +228,6 @@ mod tests {
228
228
Host: example.domain\r \n \
229
229
Expect: 100-continue\r \n \
230
230
Content-Length: 10\r \n \
231
- Connection: close\r \n \
232
231
\r \n \
233
232
1234567890\
234
233
") ;
You can’t perform that action at this time.
0 commit comments