Skip to content

Commit 7b51c1c

Browse files
committed
Use Vec::drain in BufWriter
I happened past a comment that asked for functionality that we now have.
1 parent 1b28ffa commit 7b51c1c

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

src/libstd/io/buffered.rs

+1-8
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ use cmp;
1818
use error;
1919
use fmt;
2020
use io::{self, DEFAULT_BUF_SIZE, Error, ErrorKind, SeekFrom};
21-
use ptr;
2221

2322
/// The `BufReader` struct adds buffering to any reader.
2423
///
@@ -308,14 +307,8 @@ impl<W: Write> BufWriter<W> {
308307
}
309308
}
310309
if written > 0 {
311-
// NB: would be better expressed as .remove(0..n) if it existed
312-
unsafe {
313-
ptr::copy(self.buf.as_ptr().offset(written as isize),
314-
self.buf.as_mut_ptr(),
315-
len - written);
316-
}
310+
self.buf.drain(..written);
317311
}
318-
self.buf.truncate(len - written);
319312
ret
320313
}
321314

src/libstd/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@
119119
#![feature(core_intrinsics)]
120120
#![feature(core_prelude)]
121121
#![feature(core_simd)]
122+
#![feature(drain)]
122123
#![feature(fnbox)]
123124
#![feature(heap_api)]
124125
#![feature(int_error_internals)]

0 commit comments

Comments
 (0)