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

Method ReadInt64

msgp/read.go:655–746  ·  view source on GitHub ↗

ReadInt64 reads an int64 from the reader

()

Source from the content-addressed store, hash-verified

653
654// ReadInt64 reads an int64 from the reader
655func (m *Reader) ReadInt64() (i int64, err error) {
656 var p []byte
657 lead, err := m.R.PeekByte()
658 if err != nil {
659 return
660 }
661
662 if isfixint(lead) {
663 i = int64(rfixint(lead))
664 _, err = m.R.Skip(1)
665 return
666 } else if isnfixint(lead) {
667 i = int64(rnfixint(lead))
668 _, err = m.R.Skip(1)
669 return
670 }
671
672 switch lead {
673 case mint8:
674 p, err = m.R.Next(2)
675 if err != nil {
676 return
677 }
678 i = int64(getMint8(p))
679 return
680
681 case muint8:
682 p, err = m.R.Next(2)
683 if err != nil {
684 return
685 }
686 i = int64(getMuint8(p))
687 return
688
689 case mint16:
690 p, err = m.R.Next(3)
691 if err != nil {
692 return
693 }
694 i = int64(getMint16(p))
695 return
696
697 case muint16:
698 p, err = m.R.Next(3)
699 if err != nil {
700 return
701 }
702 i = int64(getMuint16(p))
703 return
704
705 case mint32:
706 p, err = m.R.Next(5)
707 if err != nil {
708 return
709 }
710 i = int64(getMint32(p))
711 return
712

Callers 15

TestReadInt64Function · 0.95
TestReadIntOverflowsFunction · 0.95
BenchmarkReadInt64Function · 0.95
FuzzReaderFunction · 0.95
ReadDurationMethod · 0.95
ReadInt32Method · 0.95
ReadInt16Method · 0.95
ReadInt8Method · 0.95
ReadIntMethod · 0.95
ReadJSONNumberMethod · 0.95
ReadIntfMethod · 0.95

Calls 14

isfixintFunction · 0.85
rfixintFunction · 0.85
isnfixintFunction · 0.85
rnfixintFunction · 0.85
getMint8Function · 0.85
getMuint8Function · 0.85
getMint16Function · 0.85
getMuint16Function · 0.85
getMint32Function · 0.85
getMuint32Function · 0.85
getMint64Function · 0.85
getMuint64Function · 0.85

Tested by 6

TestReadInt64Function · 0.76
TestReadIntOverflowsFunction · 0.76
BenchmarkReadInt64Function · 0.76
FuzzReaderFunction · 0.76
TestIssue116Function · 0.64