github.com/newrelic/go-agent@v3.26.0+incompatible/internal/compress.go (about)

     1  // Copyright 2020 New Relic Corporation. All rights reserved.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package internal
     5  
     6  import (
     7  	"bytes"
     8  	"compress/gzip"
     9  	"sync"
    10  )
    11  
    12  func compress(b []byte, gzipWriterPool *sync.Pool) (*bytes.Buffer, error) {
    13  	w := gzipWriterPool.Get().(*gzip.Writer)
    14  	defer gzipWriterPool.Put(w)
    15  
    16  	var buf bytes.Buffer
    17  	w.Reset(&buf)
    18  	_, err := w.Write(b)
    19  	w.Close()
    20  
    21  	if nil != err {
    22  		return nil, err
    23  	}
    24  
    25  	return &buf, nil
    26  }