v / vlib / compress / zlib / zlib.v
21 lines · 17 sloc · 757 bytes · 02d9ab594d19c672bbfc9f290201f39697949f7a
Raw
1module zlib
2
3import compress.deflate
4
5// compress compresses data using the zlib container format.
6pub fn compress(data []u8) ![]u8 {
7 return deflate.compress_zlib(data)
8}
9
10// decompress decompresses zlib-compressed data.
11pub 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.
18pub 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