31 lines
792 B
Go
31 lines
792 B
Go
//go:build linux || freebsd
|
|
// +build linux freebsd
|
|
|
|
package compression
|
|
|
|
import (
|
|
"compress/zlib"
|
|
"io"
|
|
)
|
|
|
|
type zlibDecompressor struct{ *BaseDecompressor }
|
|
|
|
func NewZlibDecompressor() *zlibDecompressor {
|
|
return &zlibDecompressor{NewBaseDecompressor("zlib", []string{"deflate"}, []string{".zlib", ".zz"})}
|
|
}
|
|
|
|
// ✅ Oprava: returns (io.Reader, error)
|
|
func (z *zlibDecompressor) Reader(r io.Reader) (io.ReadCloser, error) {
|
|
return zlib.NewReader(r)
|
|
}
|
|
|
|
type zlibCompressor struct{ name string }
|
|
|
|
func NewZlibCompressor() *zlibCompressor { return &zlibCompressor{name: "zlib"} }
|
|
func (z *zlibCompressor) Name() string { return z.name }
|
|
func (z *zlibCompressor) Writer(w io.Writer) (io.WriteCloser, error) {
|
|
return zlib.NewWriter(w), nil
|
|
}
|
|
|
|
func init() { Register(NewZlibDecompressor()) }
|