This adds a function for decompressing an iterator over source slices into a single output slice.
Mostly this lets you decompress the IDAT chunks of a PNG, but I'm sure there's other uses for this too.
Notably, this lets us decompress without an allocation just for the decompression step. When decompressing many PNGs, the caller could reuse their temporary buffer to speed up the process. Because of how PNG works, the decompressed data can't be directly used as a the final data buffer, so making the decompression buffer be reusable across parsing work is a useful gain.
This adds a function for decompressing an iterator over source slices into a single output slice.
Mostly this lets you decompress the IDAT chunks of a PNG, but I'm sure there's other uses for this too.
Notably, this lets us decompress without an allocation just for the decompression step. When decompressing many PNGs, the caller could reuse their temporary buffer to speed up the process. Because of how PNG works, the decompressed data can't be directly used as a the final data buffer, so making the decompression buffer be reusable across parsing work is a useful gain.