Struct lz4_flex::frame::FrameEncoder[][src]

pub struct FrameEncoder<W: Write> { /* fields omitted */ }
Expand description

A writer for compressing a LZ4 stream.

This FrameEncoder wraps any other writer that implements io::Write. Bytes written to this writer are compressed using the LZ4 frame format.

Writes are buffered automatically, so there’s no need to wrap the given writer in a std::io::BufWriter.

To ensure a well formed stream the encoder must be finalized by calling either finish or try_finish() methods.

Example 1

Serializing json values into a compressed file.

let compressed_file = std::fs::File::create("datafile").unwrap();
let mut compressor = lz4_flex::frame::FrameEncoder::new(compressed_file);
serde_json::to_writer(&mut compressor, &serde_json::json!({ "an": "object" })).unwrap();
compressor.finish().unwrap();

Example 2

Serializing multiple json values into a compressed file using linked blocks.

let compressed_file = std::fs::File::create("datafile").unwrap();
let mut frame_info = lz4_flex::frame::FrameInfo::new();
frame_info.block_mode = lz4_flex::frame::BlockMode::Linked;
let mut compressor = lz4_flex::frame::FrameEncoder::with_frame_info(frame_info, compressed_file);
for i in 0..10u64 {
    serde_json::to_writer(&mut compressor, &serde_json::json!({ "i": i })).unwrap();
}
compressor.finish().unwrap();

Implementations

Creates a new Encoder with the specified FrameInfo.

Creates a new Encoder with the default settings.

The frame information used by this Encoder.

Consumes this encoder, flushing internal buffer and writing stream terminator.

Attempt to finish this output stream, flushing internal buffer and writing stream terminator.

Returns the underlying writer without flushing the stream. This may lave the output in an unfinished state.

Gets a reference to the underlying writer in this encoder.

Gets a reference to the underlying writer in this encoder.

Note that mutating the output/input state of the stream may corrupt this encoder, so care must be taken when using this method.

Trait Implementations

Formats the value using the given formatter. Read more

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

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

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

🔬 This is a nightly-only experimental API. (can_vector)

Determines if this Writer has an efficient write_vectored implementation. Read more

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

🔬 This is a nightly-only experimental API. (write_all_vectored)

Attempts to write multiple buffers into this writer. 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

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.