improve codes

This commit is contained in:
John
2019-06-19 23:28:37 +08:00
parent 6e7ac60d4d
commit d771ed9209
11 changed files with 198 additions and 121 deletions

View File

@ -15,53 +15,69 @@ import (
)
// Zlib compresses <data> with zlib algorithm.
func Zlib(data []byte) []byte {
func Zlib(data []byte) ([]byte, error) {
if data == nil || len(data) < 13 {
return data
return data, nil
}
var in bytes.Buffer
var err error
w := zlib.NewWriter(&in)
_, _ = w.Write(data)
_ = w.Close()
return in.Bytes()
if _, err = w.Write(data); err != nil {
return nil, err
}
if err = w.Close(); err != nil {
return in.Bytes(), err
}
return in.Bytes(), nil
}
// UnZlib decompresses <data> with zlib algorithm.
func UnZlib(data []byte) []byte {
func UnZlib(data []byte) ([]byte, error) {
if data == nil || len(data) < 13 {
return data
return data, nil
}
b := bytes.NewReader(data)
var out bytes.Buffer
var err error
r, err := zlib.NewReader(b)
if err != nil {
return nil
return nil, err
}
_, _ = io.Copy(&out, r)
return out.Bytes()
if _, err = io.Copy(&out, r); err != nil {
return nil, err
}
return out.Bytes(), nil
}
// Gzip compresses <data> with gzip algorithm.
func Gzip(data []byte) []byte {
func Gzip(data []byte) ([]byte, error) {
var buf bytes.Buffer
var err error
zip := gzip.NewWriter(&buf)
_, err := zip.Write(data)
_, err = zip.Write(data)
if err != nil {
return nil
return nil, err
}
_ = zip.Close()
return buf.Bytes()
if err = zip.Close(); err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// UnGzip decompresses <data> with gzip algorithm.
func UnGzip(data []byte) []byte {
func UnGzip(data []byte) ([]byte, error) {
var buf bytes.Buffer
content := bytes.NewReader(data)
zipData, err := gzip.NewReader(content)
if err != nil {
return nil
return nil, err
}
_, _ = io.Copy(&buf, zipData)
_ = zipData.Close()
return buf.Bytes()
if _, err = io.Copy(&buf, zipData); err != nil {
return nil, err
}
if err = zipData.Close(); err != nil {
return buf.Bytes(), err
}
return buf.Bytes(), nil
}