[go: up one dir, main page]

Struct libflate::zlib::Encoder[][src]

pub struct Encoder<W, E = DefaultLz77Encoder> { /* fields omitted */ }

ZLIB encoder.

Methods

impl<W> Encoder<W, DefaultLz77Encoder> where
    W: Write
[src]

Makes a new encoder instance.

Encoded ZLIB stream is written to inner.

Examples

use std::io::Write;
use libflate::zlib::Encoder;

let mut encoder = Encoder::new(Vec::new()).unwrap();
encoder.write_all(b"Hello World!").unwrap();

assert_eq!(encoder.finish().into_result().unwrap(),
           [120, 156, 5, 128, 65, 9, 0, 0, 8, 3, 171, 104, 27, 27, 88, 64, 127,
            7, 131, 245, 127, 140, 121, 80, 173, 204, 117, 0, 28, 73, 4, 62]);

impl<W, E> Encoder<W, E> where
    W: Write,
    E: Lz77Encode
[src]

Makes a new encoder instance with specified options.

Encoded ZLIB stream is written to inner.

Examples

use std::io::Write;
use libflate::zlib::{Encoder, EncodeOptions};

let options = EncodeOptions::new().no_compression();
let mut encoder = Encoder::with_options(Vec::new(), options).unwrap();
encoder.write_all(b"Hello World!").unwrap();

assert_eq!(encoder.finish().into_result().unwrap(),
           [120, 1, 1, 12, 0, 243, 255, 72, 101, 108, 108, 111, 32, 87, 111,
            114, 108, 100, 33, 28, 73, 4, 62]);

Returns the header of the ZLIB stream.

Examples

use libflate::zlib::{Encoder, Lz77WindowSize};

let encoder = Encoder::new(Vec::new()).unwrap();
assert_eq!(encoder.header().window_size(), Lz77WindowSize::KB32);

Writes the ZLIB trailer and returns the inner stream.

Examples

use std::io::Write;
use libflate::zlib::Encoder;

let mut encoder = Encoder::new(Vec::new()).unwrap();
encoder.write_all(b"Hello World!").unwrap();

assert_eq!(encoder.finish().into_result().unwrap(),
           [120, 156, 5, 128, 65, 9, 0, 0, 8, 3, 171, 104, 27, 27, 88, 64, 127,
            7, 131, 245, 127, 140, 121, 80, 173, 204, 117, 0, 28, 73, 4, 62]);

Note

If you are not concerned the result of this encoding, it may be convenient to use AutoFinishUnchecked instead of the explicit invocation of this method.

use std::io;
use libflate::finish::AutoFinishUnchecked;
use libflate::zlib::Encoder;

let plain = b"Hello World!";
let mut buf = Vec::new();
let mut encoder = AutoFinishUnchecked::new(Encoder::new(&mut buf).unwrap());
io::copy(&mut &plain[..], &mut encoder).unwrap();

Returns the immutable reference to the inner stream.

Returns the mutable reference to the inner stream.

Unwraps the Encoder, returning the inner stream.

Trait Implementations

impl<W: Debug, E: Debug> Debug for Encoder<W, E>
[src]

Formats the value using the given formatter. Read more

impl<W, E> Write for Encoder<W, E> where
    W: Write,
    E: Lz77Encode
[src]

Write a buffer into this object, returning how many bytes were written. Read more

Flush this output stream, ensuring that all intermediately buffered contents reach their destination. Read more

Attempts to write an entire buffer into this write. Read more

Writes a formatted string into this writer, returning any error encountered. Read more

Creates a "by reference" adaptor for this instance of Write. Read more

impl<W, E> Complete for Encoder<W, E> where
    W: Write,
    E: Lz77Encode
[src]

Completes the current processing and returns the result.

Auto Trait Implementations

impl<W, E> Send for Encoder<W, E> where
    E: Send,
    W: Send

impl<W, E> Sync for Encoder<W, E> where
    E: Sync,
    W: Sync