| 1 | module zlib |
| 2 | |
| 3 | import compress.deflate |
| 4 | |
| 5 | // compress compresses data using the zlib container format. |
| 6 | pub fn compress(data []u8) ![]u8 { |
| 7 | return deflate.compress_zlib(data) |
| 8 | } |
| 9 | |
| 10 | // decompress decompresses zlib-compressed data. |
| 11 | pub fn decompress(data []u8) ![]u8 { |
| 12 | return deflate.decompress_zlib(data) |
| 13 | } |
| 14 | |
| 15 | // decompress_with_callback decompresses a zlib stream (RFC 1950) using a callback for chunked delivery. |
| 16 | // The callback receives chunks of decompressed data and should return the chunk length to continue, or 0 to abort. |
| 17 | // Returns the total decompressed length. |
| 18 | pub fn decompress_with_callback(data []u8, cb deflate.ChunkCallback, userdata voidptr) !int { |
| 19 | deflate.validate_zlib_header(data)! |
| 20 | return deflate.decompress_with_callback(data, cb, userdata) |
| 21 | } |
| 22 | |