| 110 | ) |
| 111 | |
| 112 | func compress(cc CompressionCodec, level int, data []byte) ([]byte, error) { |
| 113 | switch cc { |
| 114 | case CompressionNone: |
| 115 | return data, nil |
| 116 | case CompressionGZIP: |
| 117 | return gzipCompress(level, data) |
| 118 | case CompressionSnappy: |
| 119 | return snappy.Encode(nil, data), nil |
| 120 | case CompressionLZ4: |
| 121 | return lz4Compress(data) |
| 122 | case CompressionZSTD: |
| 123 | return zstdCompress(ZstdEncoderParams{level}, nil, data) |
| 124 | default: |
| 125 | return nil, PacketEncodingError{fmt.Sprintf("unsupported compression codec (%d)", cc)} |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | func gzipCompress(level int, data []byte) ([]byte, error) { |
| 130 | var ( |