| 12345678910111213141516171819202122232425262728293031323334353637383940 | package commandimport (	"io"	"time"	"github.com/v2ray/v2ray-core/common/serial"	"github.com/v2ray/v2ray-core/common/uuid"	"github.com/v2ray/v2ray-core/transport")func init() {	RegisterResponseCommand(1, func() Command { return new(SwitchAccount) })}// Size: 16 + 8 = 24type SwitchAccount struct {	ID         *uuid.UUID	ValidUntil time.Time}func (this *SwitchAccount) Marshal(writer io.Writer) (int, error) {	idBytes := this.ID.Bytes()	timestamp := this.ValidUntil.Unix()	timeBytes := serial.Int64Literal(timestamp).Bytes()	writer.Write(idBytes)	writer.Write(timeBytes)	return 24, nil}func (this *SwitchAccount) Unmarshal(data []byte) error {	if len(data) != 24 {		return transport.CorruptedPacket	}	this.ID, _ = uuid.ParseBytes(data[0:16])	this.ValidUntil = time.Unix(serial.BytesLiteral(data[16:24]).Int64Value(), 0)	return nil}
 |