deflate::write

Struct GzEncoder

Source
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>

Source

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.

Source

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.

Source

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.

Source

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).

Source

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.

Source

pub fn checksum(&self) -> u32

Get the crc32 checksum of the data consumed so far.

Trait Implementations§

Source§

impl<W: Write> Drop for GzEncoder<W>

Source§

fn drop(&mut self)

When the encoder is dropped, output the rest of the data.

WARNING: This may silently fail if writing fails, so using this to finish encoding for writers where writing might fail is not recommended, for that call finish() instead.

Source§

impl<W: Write> Write for GzEncoder<W>

Source§

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>

Writes a buffer into this writer, returning how many bytes were written. Read more
1.36.0 · Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
1.0.0 · Source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · Source§

fn write_fmt(&mut self, fmt: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more

Auto Trait Implementations§

§

impl<W> Freeze for GzEncoder<W>
where W: Freeze,

§

impl<W> RefUnwindSafe for GzEncoder<W>
where W: RefUnwindSafe,

§

impl<W> Send for GzEncoder<W>
where W: Send,

§

impl<W> Sync for GzEncoder<W>
where W: Sync,

§

impl<W> Unpin for GzEncoder<W>
where W: Unpin,

§

impl<W> UnwindSafe for GzEncoder<W>
where W: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.