func (u *URI) SetPathBytes(path []byte) {
	u.pathOriginal = append(u.pathOriginal[:0], path...)
	u.path = normalizePath(u.path, u.pathOriginal)
}
SetPathBytes sets URI path.
package fasthttp
import (
	"bytes"
	"io"
	"sync"
)
func AcquireURI() *URI {
	return uriPool.Get().(*URI)
}
func ReleaseURI(u *URI) {
	u.Reset()
	uriPool.Put(u)
}
var uriPool = &sync.Pool{
	New: func() interface{} {
		return &URI{}
	},
}
type URI struct {
	noCopy noCopy
	pathOriginal []byte
	scheme       []byte
	path         []byte
	queryString  []byte
	hash         []byte
	host         []byte
	queryArgs       Args
	parsedQueryArgs bool
	fullURI    []byte
	requestURI []byte
	h *RequestHeader
}
func (u *URI) CopyTo(dst *URI) {
	dst.Reset()
	dst.pathOriginal = append(dst.pathOriginal[:0], u.pathOriginal...)
	dst.scheme = append(dst.scheme[:0], u.scheme...)
	dst.path = append(dst.path[:0], u.path...)
	dst.queryString = append(dst.queryString[:0], u.queryString...)
	dst.hash = append(dst.hash[:0], u.hash...)
	dst.host = append(dst.host[:0], u.host...)
	u.queryArgs.CopyTo(&dst.queryArgs)
	dst.parsedQueryArgs = u.parsedQueryArgs
	dst.h = u.h
}
func (u *URI) Hash() []byte {
	return u.hash
}
func (u *URI) SetHash(hash string) {
	u.hash = append(u.hash[:0], hash...)
}
func (u *URI) SetHashBytes(hash []byte) {
	u.hash = append(u.hash[:0], hash...)
}
func (u *URI) QueryString() []byte {
	return u.queryString
}
func (u *URI) SetQueryString(queryString string) {
	u.queryString = append(u.queryString[:0], queryString...)
	u.parsedQueryArgs = false
}
func (u *URI) SetQueryStringBytes(queryString []byte) {
	u.queryString = append(u.queryString[:0], queryString...)
	u.parsedQueryArgs = false
}
func (u *URI) Path() []byte {
	path := u.path
	if len(path) == 0 {
		path = strSlash
	}
	return path
}
func (u *URI) SetPath(path string) {
	u.pathOriginal = append(u.pathOriginal[:0], path...)
	u.path = normalizePath(u.path, u.pathOriginal)
}