1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
//! # xpress_rs
//!
//! `xpess_rs` is a Rust implementation of the Microsoft Xpress compression algorithm defined in [MS-XCA](https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-XCA/%5bMS-XCA%5d.pdf)
//!
//! For the moment, only the LZ77 compression and decompression is implemented.
//!
//!
//! # Examples
//!
//! ```
//! use xpress_rs::lz77::{LZ77Compressor,LZ77Decompressor};
//! use std::error::Error;
//!
//!
//!
//! // data to compress
//! let data_to_compress: Vec<u8> = b"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.".to_vec();
//!
//! // init the Compressor
//! let compressor = LZ77Compressor::new(data_to_compress);
//!
//! // compress the data
//! let result: Result<Vec<u8>,Box<dyn Error>> = compressor.compress();
//!
//! // check if the compression is successful
//! match result {
//! Ok(compressed_data) => {
//! // init the Decompressor
//! let decompressor = LZ77Decompressor::new(compressed_data);
//!
//! // decompress the data
//! let result: Result<Vec<u8>,Box<dyn Error>> = decompressor.decompress();
//!
//! // check if the decompression is successful
//! match result {
//! Ok(decompressed_data) => {
//! println!("Decompressed data: {:?}",decompressed_data);
//! }
//! Err(e) => {
//! println!("Error: {}",e);
//! }
//! }
//! }
//! Err(e) => {
//! println!("Error: {}",e);
//! }
//! }
//!
//! ```