package helpers import ( "bytes" "sync" ) var pool sync.Pool func NewBuffer() (*bytes.Buffer, func(*bytes.Buffer)) { if v := pool.Get(); v != nil { b, _ := v.(*bytes.Buffer) b.Reset() return b, putter } return &bytes.Buffer{}, putter } func putter(buff *bytes.Buffer) { pool.Put(buff) }