block.go
func UncompressBlock(src, dst []byte) (di int, err error) {
	sn := len(src)
	if sn == 0 {
		return 0, nil
	}

	di = decodeBlock(dst, src)
	if di < 0 {
		return 0, ErrInvalidSourceShortBuffer
	}
	return di, nil
}
func UncompressBlock(src, dst []byte) (di int, err error) {
	sn := len(src)
	if sn == 0 {
		return 0, nil
	}

	di = decodeBlock(dst, src)
	if di < 0 {
		return 0, ErrInvalidSourceShortBuffer
	}
	return di, nil
}
// UncompressBlock uncompresses the source buffer into the destination one,
// and returns the uncompressed size.
//
// The destination buffer must be sized appropriately.
//
// An error is returned if the source data is invalid or the destination buffer is too small.