mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-06-06 02:59:27 -04:00
bytes to number methods
This commit is contained in:
@@ -10,6 +10,24 @@ func (this BytesLiteral) Value() []byte {
|
||||
return []byte(this)
|
||||
}
|
||||
|
||||
func (this BytesLiteral) Uint8Value() uint8 {
|
||||
return this.Value()[0]
|
||||
}
|
||||
|
||||
func (this BytesLiteral) Uint16() Uint16Literal {
|
||||
return Uint16Literal(this.Uint16Value())
|
||||
}
|
||||
|
||||
func (this BytesLiteral) Uint16Value() uint16 {
|
||||
value := this.Value()
|
||||
return uint16(value[0])<<8 + uint16(value[1])
|
||||
}
|
||||
|
||||
func (this BytesLiteral) IntValue() int {
|
||||
value := this.Value()
|
||||
return int(value[0])<<24 + int(value[1])<<16 + int(value[2])<<8 + int(value[3])
|
||||
}
|
||||
|
||||
func (this BytesLiteral) Uint32Value() uint32 {
|
||||
value := this.Value()
|
||||
return uint32(value[0])<<24 +
|
||||
|
||||
@@ -10,17 +10,6 @@ type Uint16 interface {
|
||||
|
||||
type Uint16Literal uint16
|
||||
|
||||
func ParseUint16(data []byte) Uint16Literal {
|
||||
switch len(data) {
|
||||
case 0:
|
||||
return Uint16Literal(0)
|
||||
case 1:
|
||||
return Uint16Literal(uint16(data[0]))
|
||||
default:
|
||||
return Uint16Literal(uint16(data[0])<<8 + uint16(data[1]))
|
||||
}
|
||||
}
|
||||
|
||||
func (this Uint16Literal) String() string {
|
||||
return strconv.Itoa(int(this))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user