| @@ -79,7 +79,7 @@ unsafe fn grow_zerofill(buf: &mut Vec<u8>, additional: usize) { | |||||||
|     use std::ptr; |     use std::ptr; | ||||||
|     let len = buf.len(); |     let len = buf.len(); | ||||||
|     buf.set_len(len + additional); |     buf.set_len(len + additional); | ||||||
|     ptr::write_bytes(buf.as_mut_ptr(), 0, buf.len()); |     ptr::write_bytes(buf.as_mut_ptr().offset(len as isize), 0, buf.len()); | ||||||
| } | } | ||||||
|  |  | ||||||
| impl<R: Read> Read for BufReader<R> { | impl<R: Read> Read for BufReader<R> { | ||||||
| @@ -151,4 +151,14 @@ mod tests { | |||||||
|         assert_eq!(rdr.pos, 0); |         assert_eq!(rdr.pos, 0); | ||||||
|         assert_eq!(rdr.cap, 0); |         assert_eq!(rdr.cap, 0); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     #[test] | ||||||
|  |     fn test_resize() { | ||||||
|  |         let raw = b"hello world"; | ||||||
|  |         let mut rdr = BufReader::with_capacity(&raw[..], 5); | ||||||
|  |         rdr.read_into_buf().unwrap(); | ||||||
|  |         assert_eq!(rdr.get_buf(), b"hello"); | ||||||
|  |         rdr.read_into_buf().unwrap(); | ||||||
|  |         assert_eq!(rdr.get_buf(), b"hello world"); | ||||||
|  |     } | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user