MCPcopy
hub / github.com/tinylib/msgp / ReadJSONNumber

Method ReadJSONNumber

msgp/read.go:1480–1506  ·  view source on GitHub ↗

ReadJSONNumber reads an integer or a float value and return as json.Number

()

Source from the content-addressed store, hash-verified

1478
1479// ReadJSONNumber reads an integer or a float value and return as json.Number
1480func (m *Reader) ReadJSONNumber() (n json.Number, err error) {
1481 t, err := m.NextType()
1482 if err != nil {
1483 return
1484 }
1485 switch t {
1486 case IntType:
1487 v, err := m.ReadInt64()
1488 if err == nil {
1489 return json.Number(strconv.FormatInt(v, 10)), nil
1490 }
1491 return "", err
1492 case UintType:
1493 v, err := m.ReadUint64()
1494 if err == nil {
1495 return json.Number(strconv.FormatUint(v, 10)), nil
1496 }
1497 return "", err
1498 case Float32Type, Float64Type:
1499 v, err := m.ReadFloat64()
1500 if err == nil {
1501 return json.Number(strconv.FormatFloat(v, 'f', -1, 64)), nil
1502 }
1503 return "", err
1504 }
1505 return "", TypeError{Method: NumberType, Encoded: t}
1506}
1507
1508// ReadIntf reads out the next object as a raw interface{}/any.
1509// Arrays are decoded as []interface{}, and maps are decoded

Callers 1

FuzzReaderFunction · 0.95

Calls 4

NextTypeMethod · 0.95
ReadInt64Method · 0.95
ReadUint64Method · 0.95
ReadFloat64Method · 0.95

Tested by 1

FuzzReaderFunction · 0.76