func (req *Request) ReadRequest(br *bufio.Reader) error {
	var err error
	req.name, err = readBytes(br, req.name[:0], req.sizeBuf[:])
	if err != nil {
		return fmt.Errorf("cannot read request name: %s", err)
	}
	req.value, err = readBytes(br, req.value[:0], req.sizeBuf[:])
	if err != nil {
		return fmt.Errorf("cannot read request value: %s", err)
	}
	return nil
}
ReadRequest reads the request from br.
package tlv
import (
	"bufio"
	"fmt"
	"sync"
)
type Request struct {
	value   []byte
	name    []byte
	sizeBuf [4]byte
}
func (req *Request) Reset() {
	req.name = req.name[:0]
	req.value = req.value[:0]
}
func (req *Request) SetName(name string) {
	req.name = append(req.name[:0], name...)
}
func (req *Request) SetNameBytes(name []byte) {
	req.name = append(req.name[:0], name...)
}
func (req *Request) Name() []byte {
	return req.name
}
func (req *Request) Write(p []byte) (int, error) {
	req.Append(p)
	return len(p), nil
}
func (req *Request) Append(p []byte) {
	req.value = append(req.value, p...)
}
func (req *Request) SwapValue(value []byte) []byte {
	v := req.value
	req.value = value
	return v
}
func (req *Request) Value() []byte {
	return req.value
}
func (req *Request) WriteRequest(bw *bufio.Writer) error {
	if err := writeBytes(bw, req.name, req.sizeBuf[:]); err != nil {
		return fmt.Errorf("cannot write request name: %s", err)
	}
	if err := writeBytes(bw, req.value, req.sizeBuf[:]); err != nil {
		return fmt.Errorf("cannot write request value: %s", err)
	}
	return nil
}