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

Method ReadUint64

msgp/read.go:799–904  ·  view source on GitHub ↗

ReadUint64 reads a uint64 from the reader

()

Source from the content-addressed store, hash-verified

797
798// ReadUint64 reads a uint64 from the reader
799func (m *Reader) ReadUint64() (u uint64, err error) {
800 var p []byte
801 lead, err := m.R.PeekByte()
802 if err != nil {
803 return
804 }
805 if isfixint(lead) {
806 u = uint64(rfixint(lead))
807 _, err = m.R.Skip(1)
808 return
809 }
810 switch lead {
811 case mint8:
812 p, err = m.R.Next(2)
813 if err != nil {
814 return
815 }
816 v := int64(getMint8(p))
817 if v < 0 {
818 err = UintBelowZero{Value: v}
819 return
820 }
821 u = uint64(v)
822 return
823
824 case muint8:
825 p, err = m.R.Next(2)
826 if err != nil {
827 return
828 }
829 u = uint64(getMuint8(p))
830 return
831
832 case mint16:
833 p, err = m.R.Next(3)
834 if err != nil {
835 return
836 }
837 v := int64(getMint16(p))
838 if v < 0 {
839 err = UintBelowZero{Value: v}
840 return
841 }
842 u = uint64(v)
843 return
844
845 case muint16:
846 p, err = m.R.Next(3)
847 if err != nil {
848 return
849 }
850 u = uint64(getMuint16(p))
851 return
852
853 case mint32:
854 p, err = m.R.Next(5)
855 if err != nil {
856 return

Callers 15

TestReadIntOverflowsFunction · 0.95
TestReadUint64Function · 0.95
BenchmarkReadUint64Function · 0.95
FuzzReaderFunction · 0.95
ReadUint32Method · 0.95
ReadUint16Method · 0.95
ReadUint8Method · 0.95
ReadUintMethod · 0.95
ReadByteMethod · 0.95
ReadJSONNumberMethod · 0.95
ReadIntfMethod · 0.95

Calls 14

isfixintFunction · 0.85
rfixintFunction · 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
isnfixintFunction · 0.85
rnfixintFunction · 0.85

Tested by 5

TestReadIntOverflowsFunction · 0.76
TestReadUint64Function · 0.76
BenchmarkReadUint64Function · 0.76
FuzzReaderFunction · 0.76