25 lines
663 B
Go
25 lines
663 B
Go
// Package pool contains helpers for pooling structures distinguishable by
|
|
// size.
|
|
//
|
|
// Quick example:
|
|
//
|
|
// import "github.com/gobwas/pool"
|
|
//
|
|
// func main() {
|
|
// // Reuse objects in logarithmic range from 0 to 64 (0,1,2,4,6,8,16,32,64).
|
|
// p := pool.New(0, 64)
|
|
//
|
|
// buf, n := p.Get(10) // Returns buffer with 16 capacity.
|
|
// if buf == nil {
|
|
// buf = bytes.NewBuffer(make([]byte, n))
|
|
// }
|
|
// defer p.Put(buf, n)
|
|
//
|
|
// // Work with buf.
|
|
// }
|
|
//
|
|
// There are non-generic implementations for pooling:
|
|
// - pool/pbytes for []byte reuse;
|
|
// - pool/pbufio for *bufio.Reader and *bufio.Writer reuse;
|
|
//
|
|
package pool
|