File tree Expand file tree Collapse file tree 2 files changed +16
-1
lines changed
branches/beta/src/libstd/io Expand file tree Collapse file tree 2 files changed +16
-1
lines changed Original file line number Diff line number Diff line change @@ -31,7 +31,7 @@ refs/heads/automation-fail: 1bf06495443584539b958873e04cc2f864ab10e4
31
31
refs/heads/issue-18208-method-dispatch-3-quick-reject: 2009f85b9f99dedcec4404418eda9ddba90258a2
32
32
refs/heads/batch: b7fd822592a4fb577552d93010c4a4e14f314346
33
33
refs/heads/building: 126db549b038c84269a1e4fe46f051b2c15d6970
34
- refs/heads/beta: 03753ba5a21fe0e4bfc34e9691d4b13f24c90af4
34
+ refs/heads/beta: b46e3eec7aec546d8c4e212cc4e27ec870071e74
35
35
refs/heads/windistfix: 7608dbad651f02e837ed05eef3d74a6662a6e928
36
36
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
37
37
refs/heads/tmp: de8a23bbc3a7b9cbd7574b5b91a34af59bf030e6
Original file line number Diff line number Diff line change @@ -681,6 +681,21 @@ impl<T: Read> Read for Take<T> {
681
681
}
682
682
}
683
683
684
+ impl < T : BufRead > BufRead for Take < T > {
685
+ fn fill_buf ( & mut self ) -> Result < & [ u8 ] > {
686
+ let buf = try!( self . inner . fill_buf ( ) ) ;
687
+ let cap = cmp:: min ( buf. len ( ) as u64 , self . limit ) as usize ;
688
+ Ok ( & buf[ ..cap] )
689
+ }
690
+
691
+ fn consume ( & mut self , amt : usize ) {
692
+ // Don't let callers reset the limit by passing an overlarge value
693
+ let amt = cmp:: min ( amt as u64 , self . limit ) as usize ;
694
+ self . limit -= amt as u64 ;
695
+ self . inner . consume ( amt) ;
696
+ }
697
+ }
698
+
684
699
/// An adaptor which will emit all read data to a specified writer as well.
685
700
///
686
701
/// For more information see `ReadExt::tee`
You can’t perform that action at this time.
0 commit comments