[][src]Crate weezl

LZW decoder and encoder

This crates provides a LzwEncoder and LzwDecoder. The code words are written from and to bit streams where it is possible to write either the most or least significant bit first. The maximum possible code size is 16 bits. Both types rely on RAII to produced correct results.

The de- and encoder expect the LZW stream to start with a clear code and end with an end code which are defined as follows:

  • CLEAR_CODE == 1 << min_code_size
  • END_CODE == CLEAR_CODE + 1

Examplary use of the encoder:

use weezl::{BitOrder, encode::Encoder};
let size = 8;
let data = b"TOBEORNOTTOBEORTOBEORNOT";
let mut compressed = vec![];

let mut enc = Encoder::new(BitOrder::Msb, size);
let result = enc.into_stream(&mut compressed).encode(&data[..]);
result.status.unwrap();

Modules

decode

A module for all decoding needs.

encode

A module for all encoding needs.

Enums

BitOrder

The order of bits in bytes.