MCPcopy Create free account
hub / github.com/francoispqt/gojay / decodeFloat64

Method decodeFloat64

decode_number_float.go:12–49  ·  view source on GitHub ↗
(v *float64)

Source from the content-addressed store, hash-verified

10 return dec.decodeFloat64(v)
11}
12func (dec *Decoder) decodeFloat64(v *float64) error {
13 for ; dec.cursor < dec.length || dec.read(); dec.cursor++ {
14 switch c := dec.data[dec.cursor]; c {
15 case ' ', '\n', '\t', '\r', ',':
16 continue
17 case '0', '1', '2', '3', '4', '5', '6', '7', '8', '9':
18 val, err := dec.getFloat()
19 if err != nil {
20 return err
21 }
22 *v = val
23 return nil
24 case '-':
25 dec.cursor = dec.cursor + 1
26 val, err := dec.getFloatNegative()
27 if err != nil {
28 return err
29 }
30 *v = -val
31 return nil
32 case 'n':
33 dec.cursor++
34 err := dec.assertNull()
35 if err != nil {
36 return err
37 }
38 return nil
39 default:
40 dec.err = dec.makeInvalidUnmarshalErr(v)
41 err := dec.skipData()
42 if err != nil {
43 return err
44 }
45 return nil
46 }
47 }
48 return dec.raiseInvalidJSONErr(dec.cursor)
49}
50func (dec *Decoder) decodeFloat64Null(v **float64) error {
51 for ; dec.cursor < dec.length || dec.read(); dec.cursor++ {
52 switch c := dec.data[dec.cursor]; c {

Callers 6

DecodeFloat64Method · 0.95
Float64Method · 0.95
UnmarshalMethod · 0.95
UnmarshalFunction · 0.95
DecodeMethod · 0.95
decodeSQLNullFloat64Method · 0.95

Calls 7

readMethod · 0.95
getFloatMethod · 0.95
getFloatNegativeMethod · 0.95
assertNullMethod · 0.95
skipDataMethod · 0.95
raiseInvalidJSONErrMethod · 0.95

Tested by

no test coverage detected