pub struct GzEncoder<W: Write> { /* private fields */ }
Expand description
A Gzip encoder/compressor.
A struct implementing a Write
interface that takes arbitrary data and compresses it to
the provided writer using DEFLATE compression with Gzip headers and trailers.
§Examples
use std::io::Write;
use deflate::Compression;
use deflate::write::GzEncoder;
let data = b"This is some test data";
let mut encoder = GzEncoder::new(Vec::new(), Compression::Default);
encoder.write_all(data)?;
let compressed_data = encoder.finish()?;
Implementations§
Source§impl<W: Write> GzEncoder<W>
impl<W: Write> GzEncoder<W>
Sourcepub fn new<O: Into<CompressionOptions>>(writer: W, options: O) -> GzEncoder<W> ⓘ
pub fn new<O: Into<CompressionOptions>>(writer: W, options: O) -> GzEncoder<W> ⓘ
Create a new GzEncoder
writing deflate-compressed data to the underlying writer when
written to, wrapped in a gzip header and trailer. The header details will be blank.
Sourcepub fn from_builder<O: Into<CompressionOptions>>(
builder: GzBuilder,
writer: W,
options: O,
) -> GzEncoder<W> ⓘ
pub fn from_builder<O: Into<CompressionOptions>>( builder: GzBuilder, writer: W, options: O, ) -> GzEncoder<W> ⓘ
Create a new GzEncoder from the provided GzBuilder
. This allows customising
the details of the header, such as the filename and comment fields.
Sourcepub fn finish(self) -> Result<W>
pub fn finish(self) -> Result<W>
Encode all pending data to the contained writer, consume this GzEncoder
,
and return the contained writer if writing succeeds.
Sourcepub fn reset(&mut self, writer: W) -> Result<W>
pub fn reset(&mut self, writer: W) -> Result<W>
Resets the encoder (except the compression options), replacing the current writer with a new one, returning the old one. (Using a blank header).
Sourcepub fn reset_with_builder(&mut self, writer: W, builder: GzBuilder) -> Result<W>
pub fn reset_with_builder(&mut self, writer: W, builder: GzBuilder) -> Result<W>
Resets the encoder (except the compression options), replacing the current writer
with a new one, returning the old one, and using the provided GzBuilder
to
create the header.
Trait Implementations§
Source§impl<W: Write> Write for GzEncoder<W>
impl<W: Write> Write for GzEncoder<W>
Source§fn flush(&mut self) -> Result<()>
fn flush(&mut self) -> Result<()>
Flush the encoder.
This will flush the encoder, emulating the Sync flush method from Zlib. This essentially finishes the current block, and sends an additional empty stored block to the writer.
Source§fn write(&mut self, buf: &[u8]) -> Result<usize>
fn write(&mut self, buf: &[u8]) -> Result<usize>
Source§fn is_write_vectored(&self) -> bool
fn is_write_vectored(&self) -> bool
can_vector
)1.0.0 · Source§fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>
Source§fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>
write_all_vectored
)