1
0
mirror of https://github.com/redis/go-redis.git synced 2025-07-29 17:41:15 +03:00
This commit is contained in:
Vladimir Mihailenco
2018-08-06 13:59:15 +03:00
parent 464daeb271
commit 96d1b85009
8 changed files with 61 additions and 39 deletions

View File

@ -44,6 +44,14 @@ func (r *Reader) Reset(rd io.Reader) {
r.src.Reset(rd)
}
func (r *Reader) Buffer() []byte {
return r.src.Buffer()
}
func (r *Reader) ResetBuffer(buf []byte) {
r.src.ResetBuffer(buf)
}
func (r *Reader) Bytes() []byte {
return r.src.Bytes()
}

View File

@ -7,14 +7,11 @@ import (
)
type WriteBuffer struct {
rb *ElasticBufReader
buf []byte
}
func NewWriteBuffer(rb *ElasticBufReader) *WriteBuffer {
return &WriteBuffer{
rb: rb,
}
func NewWriteBuffer() *WriteBuffer {
return &WriteBuffer{}
}
func (w *WriteBuffer) Len() int {
@ -25,26 +22,16 @@ func (w *WriteBuffer) Bytes() []byte {
return w.buf
}
func (w *WriteBuffer) AllocBuffer() {
w.rb = nil
w.buf = make([]byte, defaultBufSize)
}
func (w *WriteBuffer) Reset() {
if w.rb != nil {
w.buf = w.rb.Buffer()[:0]
} else {
w.buf = w.buf[:0]
}
w.buf = w.buf[:0]
}
func (w *WriteBuffer) Flush() []byte {
b := w.buf
if w.rb != nil {
w.rb.ResetBuffer(w.buf[:cap(w.buf)])
w.buf = nil
}
return b
func (w *WriteBuffer) Buffer() []byte {
return w.buf[:cap(w.buf)]
}
func (w *WriteBuffer) ResetBuffer(buf []byte) {
w.buf = buf[:0]
}
func (w *WriteBuffer) Append(args []interface{}) error {

View File

@ -1,7 +1,6 @@
package proto_test
import (
"strings"
"testing"
"time"
@ -15,7 +14,7 @@ var _ = Describe("WriteBuffer", func() {
var buf *proto.WriteBuffer
BeforeEach(func() {
buf = proto.NewWriteBuffer(proto.NewElasticBufReader(strings.NewReader("")))
buf = proto.NewWriteBuffer()
})
It("should reset", func() {
@ -54,7 +53,7 @@ var _ = Describe("WriteBuffer", func() {
})
func BenchmarkWriteBuffer_Append(b *testing.B) {
buf := proto.NewWriteBuffer(proto.NewElasticBufReader(strings.NewReader("")))
buf := proto.NewWriteBuffer()
args := []interface{}{"hello", "world", "foo", "bar"}
for i := 0; i < b.N; i++ {