diff --git a/src/helpers/async_extracter.rs b/src/helpers/async_extracter.rs index 16cf6c03..04a6117b 100644 --- a/src/helpers/async_extracter.rs +++ b/src/helpers/async_extracter.rs @@ -219,11 +219,11 @@ where extract_impl( stream, - Box::new(move |mut rx| { + Box::new(move |rx| { fs::create_dir_all(path.parent().unwrap())?; extract_compressed_from_readable::( - ReadableRx::new(&mut rx), + ReadableRx::new(rx), fmt, Op::UnpackToPath(&path), ) @@ -242,8 +242,8 @@ where { extract_impl( stream, - Box::new(move |mut rx| { - extract_compressed_from_readable(ReadableRx::new(&mut rx), fmt, Op::Visit(&mut visitor)) + Box::new(move |rx| { + extract_compressed_from_readable(ReadableRx::new(rx), fmt, Op::Visit(&mut visitor)) .map(|_| visitor) }), ) diff --git a/src/helpers/readable_rx.rs b/src/helpers/readable_rx.rs index 545bc176..e2597aae 100644 --- a/src/helpers/readable_rx.rs +++ b/src/helpers/readable_rx.rs @@ -7,13 +7,13 @@ use tokio::sync::mpsc::Receiver; use super::async_extracter::Content; #[derive(Debug)] -pub(crate) struct ReadableRx<'a> { - rx: &'a mut Receiver, +pub(crate) struct ReadableRx { + rx: Receiver, bytes: Bytes, } -impl<'a> ReadableRx<'a> { - pub(crate) fn new(rx: &'a mut Receiver) -> Self { +impl ReadableRx { + pub(crate) fn new(rx: Receiver) -> Self { Self { rx, bytes: Bytes::new(), @@ -21,7 +21,7 @@ impl<'a> ReadableRx<'a> { } } -impl Read for ReadableRx<'_> { +impl Read for ReadableRx { fn read(&mut self, buf: &mut [u8]) -> io::Result { if buf.is_empty() { return Ok(0); @@ -43,7 +43,7 @@ impl Read for ReadableRx<'_> { } } -impl BufRead for ReadableRx<'_> { +impl BufRead for ReadableRx { fn fill_buf(&mut self) -> io::Result<&[u8]> { let bytes = &mut self.bytes; if !bytes.has_remaining() {