| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 | package protocolimport (	v2net "github.com/v2ray/v2ray-core/common/net"	"github.com/v2ray/v2ray-core/common/serial"	"github.com/v2ray/v2ray-core/common/uuid")type RequestCommand byteconst (	RequestCommandTCP = RequestCommand(0x01)	RequestCommandUDP = RequestCommand(0x02))const (	RequestOptionChunkStream = RequestOption(0x01))type RequestOption bytefunc (this RequestOption) IsChunkStream() bool {	return (this & RequestOptionChunkStream) == RequestOptionChunkStream}type RequestHeader struct {	Version byte	User    *User	Command RequestCommand	Option  RequestOption	Address v2net.Address	Port    v2net.Port}func (this *RequestHeader) Destination() v2net.Destination {	if this.Command == RequestCommandUDP {		return v2net.UDPDestination(this.Address, this.Port)	}	return v2net.TCPDestination(this.Address, this.Port)}type ResponseCommand interface{}type ResponseHeader struct {	Command ResponseCommand}type CommandSwitchAccount struct {	Host     v2net.Address	Port     v2net.Port	ID       *uuid.UUID	AlterIds serial.Uint16Literal	Level    UserLevel	ValidMin byte}
 |