From e62b4df7edd8806932237e15b1d243bfdfdd1b4f Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Fri, 12 Jun 2015 00:44:51 -0700 Subject: [PATCH] Optimize copy_in a bit io::copy has to first copy onto the stack and then into the writer, but we can just explicitly call read_to_end which knows it's dealing with a Vec. --- src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 83ea6850..04541bf8 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1577,12 +1577,12 @@ impl<'conn> Statement<'conn> { let mut buf = vec![]; loop { - match std::io::copy(&mut r.take(16 * 1024), &mut buf) { + match r.take(16 * 1024).read_to_end(&mut buf) { Ok(0) => break, - Ok(len) => { + Ok(_) => { try_desync!(conn, conn.stream.write_message( &CopyData { - data: &buf[..len as usize], + data: &buf, })); buf.clear(); }