diff --git a/src/backup/chunk_stream.rs b/src/backup/chunk_stream.rs index e21224dc..e8180a75 100644 --- a/src/backup/chunk_stream.rs +++ b/src/backup/chunk_stream.rs @@ -43,9 +43,14 @@ impl , Error=Error>> Stream for ChunkStream { return Ok(Async::Ready(None)); } } - Ok(Async::Ready(Some(mut data))) => { + Ok(Async::Ready(Some(data))) => { - if let Some(rest) = self.rest.take() { data.extend(rest); } + let data = if let Some(mut rest) = self.rest.take() { + rest.extend(data); + rest + } else { + data + }; let buffer = self.buffer.get_or_insert_with(|| Vec::with_capacity(1024*1024)); let boundary = self.chunker.scan(&data);