[#1268] blobstor: Cleanup zstd encoders/decoders

Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
Evgenii Stratonikov 2022-03-25 10:59:32 +03:00 committed by fyrchik
parent 4253931699
commit ad92493b86
3 changed files with 25 additions and 8 deletions

View file

@ -16,24 +16,24 @@ func noOpDecompressor(data []byte) ([]byte, error) {
return data, nil
}
func zstdCompressor() (func([]byte) []byte, error) {
func zstdCompressor() (*zstd.Encoder, func([]byte) []byte, error) {
enc, err := zstd.NewWriter(nil)
if err != nil {
return nil, err
return nil, nil, err
}
return func(data []byte) []byte {
return enc, func(data []byte) []byte {
return enc.EncodeAll(data, make([]byte, 0, len(data)))
}, nil
}
func zstdDecompressor() (func([]byte) ([]byte, error), error) {
func zstdDecompressor() (*zstd.Decoder, func([]byte) ([]byte, error), error) {
dec, err := zstd.NewReader(nil)
if err != nil {
return nil, err
return nil, nil, err
}
return func(data []byte) ([]byte, error) {
return dec, func(data []byte) ([]byte, error) {
return dec.DecodeAll(data, nil)
}, nil
}