gitee.com/h79/goutils@v1.22.10/common/compress/compress.go (about) 1 package compress 2 3 import "strings" 4 5 type Compressor interface { 6 Name() string 7 CompressBound(int) int 8 Compress(dst, src []byte) (int, error) 9 Decompress(dst, src []byte) (int, error) 10 } 11 12 func NewCompressor(level string) Compressor { 13 level = strings.ToLower(level) 14 switch level { 15 case "zstd": 16 return ZStandard{ZstdLevel} 17 case "lz4": 18 return LZ4{} 19 case "": 20 return noOp{} 21 } 22 return nil 23 }