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  }