Add support uint64 to tlv8
This commit is contained in:
@@ -112,6 +112,10 @@ func appendValue(b []byte, tag byte, value reflect.Value) ([]byte, error) {
|
|||||||
v := value.Uint()
|
v := value.Uint()
|
||||||
return append(b, tag, 4, byte(v), byte(v>>8), byte(v>>16), byte(v>>24)), nil
|
return append(b, tag, 4, byte(v), byte(v>>8), byte(v>>16), byte(v>>24)), nil
|
||||||
|
|
||||||
|
case reflect.Uint64:
|
||||||
|
v := value.Uint()
|
||||||
|
return binary.LittleEndian.AppendUint64(append(b, tag, 8), v), nil
|
||||||
|
|
||||||
case reflect.Float32:
|
case reflect.Float32:
|
||||||
v := math.Float32bits(float32(value.Float()))
|
v := math.Float32bits(float32(value.Float()))
|
||||||
return append(b, tag, 4, byte(v), byte(v>>8), byte(v>>16), byte(v>>24)), nil
|
return append(b, tag, 4, byte(v), byte(v>>8), byte(v>>16), byte(v>>24)), nil
|
||||||
@@ -310,6 +314,12 @@ func unmarshalValue(v []byte, value reflect.Value) error {
|
|||||||
}
|
}
|
||||||
value.SetUint(uint64(v[0]) | uint64(v[1])<<8 | uint64(v[2])<<16 | uint64(v[3])<<24)
|
value.SetUint(uint64(v[0]) | uint64(v[1])<<8 | uint64(v[2])<<16 | uint64(v[3])<<24)
|
||||||
|
|
||||||
|
case reflect.Uint64:
|
||||||
|
if len(v) != 8 {
|
||||||
|
return errors.New("tlv8: wrong size: " + value.Type().Name())
|
||||||
|
}
|
||||||
|
value.SetUint(binary.LittleEndian.Uint64(v))
|
||||||
|
|
||||||
case reflect.Float32:
|
case reflect.Float32:
|
||||||
f := math.Float32frombits(binary.LittleEndian.Uint32(v))
|
f := math.Float32frombits(binary.LittleEndian.Uint32(v))
|
||||||
value.SetFloat(float64(f))
|
value.SetFloat(float64(f))
|
||||||
|
|||||||
Reference in New Issue
Block a user