Documentation ¶
Overview ¶
Package buffer implements a buffer for serialization, consisting of a chain of []byte-s to reduce copying and to allow reuse of individual chunks.
Index ¶
- func Init(cfg PoolConfig)
- type Buffer
- func (b *Buffer) AppendByte(data byte)
- func (b *Buffer) AppendBytes(data []byte)
- func (b *Buffer) AppendString(data string)
- func (b *Buffer) BuildBytes(reuse ...[]byte) []byte
- func (b *Buffer) Bytes() []byte
- func (b *Buffer) DumpTo(w io.Writer) (written int, err error)
- func (b *Buffer) EnsureSpace(s int)
- func (b *Buffer) ReadCloser() io.ReadCloser
- func (b *Buffer) ReadFrom(r io.Reader) (int64, error)
- func (b *Buffer) RecyclableReader() RecyclableReader
- func (b *Buffer) Size() int
- func (b *Buffer) String() string
- func (b *Buffer) Write(data []byte) (n int, err error)
- func (b *Buffer) WriteString(data string) (n int, err error)
- func (b *Buffer) WriteTo(w io.Writer) (n int64, err error)
- type PoolConfig
- type RecyclableReader
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Init ¶
func Init(cfg PoolConfig)
Init sets up a non-default pooling and allocation strategy. Should be run before serialization is done.
Types ¶
type Buffer ¶
type Buffer struct { // Buf is the current chunk that can be used for serialization. Buf []byte // contains filtered or unexported fields }
Buffer is a buffer optimized for serialization without extra copying.
func (*Buffer) AppendByte ¶
AppendByte appends a single byte to buffer.
func (*Buffer) AppendBytes ¶
AppendBytes appends a byte slice to buffer.
func (*Buffer) AppendString ¶
AppendString appends a string to buffer.
func (*Buffer) BuildBytes ¶
BuildBytes creates a single byte slice with all the contents of the buffer. Data is copied if it does not fit in a single chunk. You can optionally provide one byte slice as argument that it will try to reuse.
func (*Buffer) EnsureSpace ¶
EnsureSpace makes sure that the current chunk contains at least s free bytes, possibly creating a new chunk.
func (*Buffer) ReadCloser ¶
func (b *Buffer) ReadCloser() io.ReadCloser
ReadCloser creates an io.ReadCloser with all the contents of the buffer.
func (*Buffer) RecyclableReader ¶ added in v0.0.6
func (b *Buffer) RecyclableReader() RecyclableReader
ReadCloser creates an io.ReadCloser with all the contents of the buffer.
func (*Buffer) WriteString ¶
AppendBytes appends a byte slice to buffer.
type PoolConfig ¶
type PoolConfig struct { StartSize int // Minimum chunk size that is allocated. PooledSize int // Minimum chunk size that is reused, reusing chunks too small will result in overhead. MaxSize int // Maximum chunk size that will be allocated. }
PoolConfig contains configuration for the allocation and reuse strategy.
type RecyclableReader ¶ added in v1.0.0
type RecyclableReader interface { io.ReadCloser WriteTo(w io.Writer) (n int64, err error) Clone() RecyclableReader Recycle() Len() int Bytes() []byte String() string }