package mq

import (
	"github.com/klauspost/compress/zstd"
)

// Compress 压缩
func Compress(src []byte) []byte {
	encoder, _ := zstd.NewWriter(nil)
	zstd.WithEncoderConcurrency(3)
	return encoder.EncodeAll(src, make([]byte, 0, len(src)))
}

func UnCompress(src []byte) ([]byte, error) {
	d, err := zstd.NewReader(nil)
	if err != nil {
		return nil, err
	}
	defer d.Close()

	uncompressed, err := d.DecodeAll(src, nil)
	if err != nil {
		return nil, err
	}

	return uncompressed, nil
}
