//go:build linux || freebsd // +build linux freebsd package compression import ( "compress/flate" "fmt" "io" ) type flateDecompressor struct{ *BaseDecompressor } func NewFlateDecompressor() *flateDecompressor { return &flateDecompressor{NewBaseDecompressor("flate", []string{}, []string{".deflate", ".fl"})} } // ✅ Oprava: flate.NewReader returns io.ReadCloser, ale my returnsme io.Reader func (f *flateDecompressor) Reader(r io.Reader) (io.ReadCloser, error) { return flate.NewReader(r), nil } type flateCompressor struct { name string level int } func NewFlateCompressor() *flateCompressor { return &flateCompressor{name: "flate", level: flate.DefaultCompression} } func NewFlateCompressorWithLevel(level int) (*flateCompressor, error) { if level < flate.HuffmanOnly || level > flate.BestCompression { return nil, fmt.Errorf("invalid compression level: %d (must be %d-%d)", level, flate.HuffmanOnly, flate.BestCompression) } return &flateCompressor{name: "flate", level: level}, nil } func (f *flateCompressor) Name() string { return f.name } func (f *flateCompressor) Writer(w io.Writer) (io.WriteCloser, error) { return flate.NewWriter(w, f.level) } func init() { Register(NewFlateDecompressor()) }