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
52
53
54
55
//! A decompression implementation for the *implode* algorithm from
//! the PKWARE Data Compression Library.
//!
//! This implementation is based on `blast.c` by Mark Adler,
//! [distributed with zlib][blast].
//!
//! [blast]: https://github.com/madler/zlib/tree/master/contrib/blast
//!
//! # Examples
//!
//! To decompress a block of bytes in memory, use
//! [`explode`](fn.explode.html).
//!
//! ```
//! # fn main() -> explode::Result<()> {
//! let bytes = vec![0x00, 0x04, 0x82, 0x24, 0x25, 0x8f, 0x80, 0x7f];
//! let result = explode::explode(&bytes)?;
//! assert_eq!(result, "AIAIAIAIAIAIA".as_bytes());
//! # Ok(()) }
//! ```
//!
//! To decompress a [`File`][File] or other type that implements
//! [`Read`][Read], use [`ExplodeReader`](struct.ExplodeReader.html).
//!
//! [Read]: https://doc.rust-lang.org/std/io/trait.Read.html
//! [File]: https://doc.rust-lang.org/std/io/struct.File.html
//!
//! ```
//! # fn main() -> explode::Result<()> {
//! # let bytes = vec![0x00, 0x04, 0x82, 0x24, 0x25, 0x8f, 0x80, 0x7f];
//! # let some_file = std::io::Cursor::new(&bytes);
//! use std::io::Read;
//! let mut reader = explode::ExplodeReader::new(some_file);
//! let mut decompressed = vec![];
//! reader.read_to_end(&mut decompressed)?;
//! // or other functions from Read
//! # assert_eq!(decompressed, "AIAIAIAIAIAIA".as_bytes());
//! # Ok(()) }
//! ```
//!
//! For more complicated uses that do not fit into these categories,
//! use [`Explode`](struct.Explode.html).
pub use ;
pub use ;
pub use ExplodeReader;