Skip to content

Commit

Permalink
feat: use box instead of vec
Browse files Browse the repository at this point in the history
  • Loading branch information
CosminPerRam committed Feb 23, 2025
1 parent 5a2fd04 commit edcaa64
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 8 deletions.
4 changes: 2 additions & 2 deletions src/gz/bufread.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ fn copy(into: &mut [u8], from: &[u8], pos: &mut usize) -> usize {
#[derive(Debug)]
pub struct GzEncoder<R> {
inner: deflate::bufread::DeflateEncoder<CrcReader<R>>,
header: Vec<u8>,
header: Box<[u8]>,
pos: usize,
eof: bool,
}
Expand All @@ -57,7 +57,7 @@ pub fn gz_encoder<R: BufRead>(header: Vec<u8>, r: R, lvl: Compression) -> GzEnco
let crc = CrcReader::new(r);
GzEncoder {
inner: deflate::bufread::DeflateEncoder::new(crc, lvl),
header,
header: header.into_boxed_slice(),
pos: 0,
eof: false,
}
Expand Down
10 changes: 4 additions & 6 deletions src/gz/write.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,14 +34,14 @@ pub struct GzEncoder<W: Write> {
inner: zio::Writer<W, Compress>,
crc: Crc,
crc_bytes_written: usize,
header: Vec<u8>,
header: Box<[u8]>,
}

pub fn gz_encoder<W: Write>(header: Vec<u8>, w: W, lvl: Compression) -> GzEncoder<W> {
GzEncoder {
inner: zio::Writer::new(w, Compress::new(lvl, false)),
crc: Crc::new(),
header,
header: header.into_boxed_slice(),
crc_bytes_written: 0,
}
}
Expand Down Expand Up @@ -128,10 +128,8 @@ impl<W: Write> GzEncoder<W> {
}

fn write_header(&mut self) -> io::Result<()> {
while !self.header.is_empty() {
let n = self.inner.get_mut().write(&self.header)?;
self.header.drain(..n);
}
self.inner.get_mut().write_all(&self.header)?;
self.header = [].into();
Ok(())
}
}
Expand Down

0 comments on commit edcaa64

Please # to comment.