diff options
Diffstat (limited to 'ext/flash/lib.rs')
-rw-r--r-- | ext/flash/lib.rs | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/ext/flash/lib.rs b/ext/flash/lib.rs index a7bd8b439..f9ce1c744 100644 --- a/ext/flash/lib.rs +++ b/ext/flash/lib.rs @@ -253,20 +253,16 @@ async fn op_flash_write_resource( .write_all(b"Transfer-Encoding: chunked\r\n\r\n") .await?; loop { - let vec = vec![0u8; 64 * 1024]; // 64KB - let buf = ZeroCopyBuf::new_temp(vec); - let (nread, buf) = resource.clone().read_return(buf).await?; - if nread == 0 { + let view = resource.clone().read(64 * 1024).await?; // 64KB + if view.is_empty() { stream.write_all(b"0\r\n\r\n").await?; break; } - - let response = &buf[..nread]; // TODO(@littledivy): use vectored writes. stream - .write_all(format!("{:x}\r\n", response.len()).as_bytes()) + .write_all(format!("{:x}\r\n", view.len()).as_bytes()) .await?; - stream.write_all(response).await?; + stream.write_all(&view).await?; stream.write_all(b"\r\n").await?; } resource.close(); |