package bin

import 

// Pool is a bin.Buffer pool.
type Pool struct {
	pool sync.Pool
}

// NewPool creates new Pool.
// Length is initial buffer length.
func ( int) *Pool {
	return &Pool{
		pool: sync.Pool{
			New: func() interface{} {
				var  []byte
				if  > 0 {
					 = make([]byte, 0, )
				}
				return &Buffer{Buf: }
			},
		},
	}
}

// Put returns buffer to pool.
func ( *Pool) ( *Buffer) {
	.pool.Put()
}

// Get takes buffer from pool.
func ( *Pool) () *Buffer {
	 := .pool.Get().(*Buffer)
	.Reset()
	return 
}

// GetSize takes buffer with given size from pool.
func ( *Pool) ( int) *Buffer {
	 := .Get()
	.ResetN()

	return 
}