func AcquireResponse() *Response {
	v := responsePool.Get()
	if v == nil {
		v = &Response{}
	}
	return v.(*Response)
}
AcquireResponse acquires new response.
package tlv
import (
	"bufio"
	"fmt"
	"sync"
)
type Response struct {
	value []byte
	sizeBuf [4]byte
}
func (resp *Response) Reset() {
	resp.value = resp.value[:0]
}
func (resp *Response) Write(p []byte) (int, error) {
	resp.Append(p)
	return len(p), nil
}
func (resp *Response) Append(p []byte) {
	resp.value = append(resp.value, p...)
}
func (resp *Response) SwapValue(value []byte) []byte {
	v := resp.value
	resp.value = value
	return v
}
func (resp *Response) Value() []byte {
	return resp.value
}
func (resp *Response) WriteResponse(bw *bufio.Writer) error {
	if err := writeBytes(bw, resp.value, resp.sizeBuf[:]); err != nil {
		return fmt.Errorf("cannot write response value: %s", err)
	}
	return nil
}
func (resp *Response) ReadResponse(br *bufio.Reader) error {
	var err error
	resp.value, err = readBytes(br, resp.value[:0], resp.sizeBuf[:])
	if err != nil {
		return fmt.Errorf("cannot read request value: %s", err)
	}
	return nil
}