func (b *Bytes) Write(p []byte) (int, error) {
	n := b.Len()
	b.grow(n + len(p))
	copy((*b.p)[n:], p)
	return len(p), nil
}
Write writes p into b and returns (len(p), nil).
package buffer
import (
	"github.com/cznic/internal/slice"
	"io"
)
func CGet(size int) *[]byte { return slice.Bytes.CGet(size).(*[]byte) }
func Get(size int) *[]byte { return slice.Bytes.Get(size).(*[]byte) }
func Put(p *[]byte) { slice.Bytes.Put(p) }
type Bytes struct {
	p *[]byte
}
func (b *Bytes) Bytes() []byte {
	if b.p != nil {
		return *b.p
	}
	return nil
}
func (b *Bytes) Close() error {
	if b.p != nil {
		Put(b.p)
		b.p = nil
	}
	return nil
}
func (b *Bytes) Len() int {
	if b.p != nil {
		return len(*b.p)
	}
	return 0
}
func (b *Bytes) Reset() {
	if b.p != nil {
		*b.p = (*b.p)[:0]
	}
}