pub fn decompress_vec(&mut self, input: &[u8]) -> Result<Vec<u8>> {
        let mut buf = vec![0; decompress_len(input)?];
        let n = self.decompress(input, &mut buf)?;
        buf.truncate(n);
        Ok(buf)
    }
Decompresses all bytes in `input` into a freshly allocated `Vec`.

This is just like the `decompress` method, except it allocates a `Vec`
with the right size for you. (This is intended to be a convenience
method.)

This method returns an error under the same circumstances that
`decompress` does.
src/decompress.rs