|
|
@@ -5,10 +5,6 @@ import (
|
|
|
"io"
|
|
|
)
|
|
|
|
|
|
-const (
|
|
|
- defaultOffset = 16
|
|
|
-)
|
|
|
-
|
|
|
// BytesWriter is a writer that writes contents into the given buffer.
|
|
|
type BytesWriter func([]byte) int
|
|
|
|
|
|
@@ -28,8 +24,8 @@ func CreateBuffer(container []byte, parent Pool) *Buffer {
|
|
|
b := new(Buffer)
|
|
|
b.v = container
|
|
|
b.pool = parent
|
|
|
- b.start = defaultOffset
|
|
|
- b.end = defaultOffset
|
|
|
+ b.start = 0
|
|
|
+ b.end = 0
|
|
|
return b
|
|
|
}
|
|
|
|
|
|
@@ -48,14 +44,8 @@ func (b *Buffer) Release() {
|
|
|
// Clear clears the content of the buffer, results an empty buffer with
|
|
|
// Len() = 0.
|
|
|
func (b *Buffer) Clear() {
|
|
|
- b.start = defaultOffset
|
|
|
- b.end = defaultOffset
|
|
|
-}
|
|
|
-
|
|
|
-// Reset resets this Buffer into its original state.
|
|
|
-func (b *Buffer) Reset() {
|
|
|
- b.start = defaultOffset
|
|
|
- b.end = len(b.v)
|
|
|
+ b.start = 0
|
|
|
+ b.end = 0
|
|
|
}
|
|
|
|
|
|
// AppendBytes appends one or more bytes to the end of the buffer.
|
|
|
@@ -75,23 +65,6 @@ func (b *Buffer) AppendFunc(writer BytesWriter) {
|
|
|
b.end += nBytes
|
|
|
}
|
|
|
|
|
|
-// Prepend prepends bytes in front of the buffer. Caller must ensure total bytes prepended is
|
|
|
-// no more than 16 bytes.
|
|
|
-func (b *Buffer) Prepend(data []byte) {
|
|
|
- b.SliceBack(len(data))
|
|
|
- copy(b.v[b.start:], data)
|
|
|
-}
|
|
|
-
|
|
|
-// PrependBytes prepends all data in front of the buffer.
|
|
|
-func (b *Buffer) PrependBytes(data ...byte) {
|
|
|
- b.Prepend(data)
|
|
|
-}
|
|
|
-
|
|
|
-func (b *Buffer) PrependFunc(offset int, writer BytesWriter) {
|
|
|
- b.SliceBack(offset)
|
|
|
- writer(b.v[b.start:])
|
|
|
-}
|
|
|
-
|
|
|
// Byte returns the bytes at index.
|
|
|
func (b *Buffer) Byte(index int) byte {
|
|
|
return b.v[b.start+index]
|
|
|
@@ -108,7 +81,7 @@ func (b *Buffer) Bytes() []byte {
|
|
|
}
|
|
|
|
|
|
func (b *Buffer) SetBytesFunc(writer BytesWriter) {
|
|
|
- b.start = defaultOffset
|
|
|
+ b.start = 0
|
|
|
b.end = b.start + writer(b.v[b.start:])
|
|
|
}
|
|
|
|
|
|
@@ -160,15 +133,6 @@ func (b *Buffer) SliceFrom(from int) {
|
|
|
b.start += from
|
|
|
}
|
|
|
|
|
|
-// SliceBack extends the Buffer to its front by offset bytes.
|
|
|
-// Caller must ensure cumulated offset is no more than 16.
|
|
|
-func (b *Buffer) SliceBack(offset int) {
|
|
|
- b.start -= offset
|
|
|
- if b.start < 0 {
|
|
|
- panic("Negative buffer offset.")
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
// Len returns the length of the buffer content.
|
|
|
func (b *Buffer) Len() int {
|
|
|
if b == nil {
|