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

Method ReadIntf

msgp/read.go:1512–1631  ·  view source on GitHub ↗

ReadIntf reads out the next object as a raw interface{}/any. Arrays are decoded as []interface{}, and maps are decoded as map[string]interface{}. Integers are decoded as int64 and unsigned integers are decoded as uint64.

()

Source from the content-addressed store, hash-verified

1510// as map[string]interface{}. Integers are decoded as int64
1511// and unsigned integers are decoded as uint64.
1512func (m *Reader) ReadIntf() (i any, err error) {
1513 var t Type
1514 t, err = m.NextType()
1515 if err != nil {
1516 return
1517 }
1518 switch t {
1519 case BoolType:
1520 i, err = m.ReadBool()
1521 return
1522
1523 case IntType:
1524 i, err = m.ReadInt64()
1525 return
1526
1527 case UintType:
1528 i, err = m.ReadUint64()
1529 return
1530
1531 case BinType:
1532 i, err = m.ReadBytes(nil)
1533 return
1534
1535 case StrType:
1536 i, err = m.ReadString()
1537 return
1538
1539 case Complex64Type:
1540 i, err = m.ReadComplex64()
1541 return
1542
1543 case Complex128Type:
1544 i, err = m.ReadComplex128()
1545 return
1546
1547 case TimeType:
1548 i, err = m.ReadTime()
1549 return
1550
1551 case DurationType:
1552 i, err = m.ReadDuration()
1553 return
1554
1555 case ExtensionType:
1556 var t int8
1557 t, err = m.peekExtensionType()
1558 if err != nil {
1559 return
1560 }
1561 f, ok := extensionReg[t]
1562 if ok {
1563 e := f()
1564 err = m.ReadExtension(e)
1565 i = e
1566 return
1567 }
1568 var e RawExtension
1569 e.Type = t

Callers 4

TestReadIntfFunction · 0.95
TestReadIntfRecursionFunction · 0.95
FuzzReaderFunction · 0.95
ReadMapStrIntfMethod · 0.95

Calls 15

NextTypeMethod · 0.95
ReadBoolMethod · 0.95
ReadInt64Method · 0.95
ReadUint64Method · 0.95
ReadBytesMethod · 0.95
ReadStringMethod · 0.95
ReadComplex64Method · 0.95
ReadComplex128Method · 0.95
ReadTimeMethod · 0.95
ReadDurationMethod · 0.95
peekExtensionTypeMethod · 0.95
ReadExtensionMethod · 0.95

Tested by 3

TestReadIntfFunction · 0.76
TestReadIntfRecursionFunction · 0.76
FuzzReaderFunction · 0.76