MCPcopy
hub / github.com/pquerna/ffjson / readU4

Method readU4

fflib/v1/reader.go:132–156  ·  view source on GitHub ↗
(j int)

Source from the content-addressed store, hash-verified

130}
131
132func (r *ffReader) readU4(j int) (rune, error) {
133
134 var u4 [4]byte
135 for i := 0; i < 4; i++ {
136 if j >= r.l {
137 return -1, io.EOF
138 }
139 c := r.s[j]
140 if byteLookupTable[c]&cVHC != 0 {
141 u4[i] = c
142 j++
143 continue
144 } else {
145 // TODO(pquerna): handle errors better. layering violation.
146 return -1, fmt.Errorf("lex_string_invalid_hex_char: %v %v", c, string(u4[:]))
147 }
148 }
149
150 // TODO(pquerna): utf16.IsSurrogate
151 rr, err := ParseUint(u4[:], 16, 64)
152 if err != nil {
153 return -1, err
154 }
155 return rune(rr), nil
156}
157
158func (r *ffReader) handleEscaped(c byte, j int, out DecodingBuffer) (int, error) {
159 if j >= r.l {

Callers 1

handleEscapedMethod · 0.95

Calls 1

ParseUintFunction · 0.70

Tested by

no test coverage detected