Allow user to specify the output buffer size as well

This commit is contained in:
Chris Hennick 2023-06-18 13:41:17 -07:00
parent 986a27f047
commit 548f21d92f
No known key found for this signature in database
GPG key ID: 25653935CC8B6C74

View file

@ -59,13 +59,15 @@ impl Deflater for Deflaters {
#[derive(Copy, Clone, Debug)] #[derive(Copy, Clone, Debug)]
pub struct BufferedZopfliDeflater { pub struct BufferedZopfliDeflater {
iterations: NonZeroU8, iterations: NonZeroU8,
buffer_size: usize input_buffer_size: usize,
output_buffer_size: usize
} }
impl BufferedZopfliDeflater { impl BufferedZopfliDeflater {
pub const fn new(iterations: NonZeroU8, pub const fn new(iterations: NonZeroU8,
buffer_size: usize) -> Self { input_buffer_size: usize,
BufferedZopfliDeflater {iterations, buffer_size} output_buffer_size: usize) -> Self {
BufferedZopfliDeflater {iterations, input_buffer_size, output_buffer_size }
} }
} }
@ -76,7 +78,7 @@ impl Deflater for BufferedZopfliDeflater {
iteration_count: self.iterations, iteration_count: self.iterations,
..Default::default() ..Default::default()
}; };
let mut buffer = BufWriter::with_capacity(self.buffer_size, let mut buffer = BufWriter::with_capacity(self.input_buffer_size,
DeflateEncoder::new( DeflateEncoder::new(
options, Default::default(), Cursor::new(Vec::new()))); options, Default::default(), Cursor::new(Vec::new())));
let result = (|| -> io::Result<Vec<u8>> { let result = (|| -> io::Result<Vec<u8>> {