blob: 87f2562f65403c24b23e1f4de11f4fcb812ba507 [file] [log] [blame]
khenaidooffe076b2019-01-15 16:08:08 -05001// +build !notfastpath
2
3// Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.
4// Use of this source code is governed by a MIT license found in the LICENSE file.
5
6// Code generated from fast-path.go.tmpl - DO NOT EDIT.
7
8package codec
9
10// Fast path functions try to create a fast path encode or decode implementation
11// for common maps and slices.
12//
13// We define the functions and register then in this single file
14// so as not to pollute the encode.go and decode.go, and create a dependency in there.
15// This file can be omitted without causing a build failure.
16//
17// The advantage of fast paths is:
18// - Many calls bypass reflection altogether
19//
20// Currently support
21// - slice of all builtin types,
22// - map of all builtin types to string or interface value
23// - symmetrical maps of all builtin types (e.g. str-str, uint8-uint8)
24// This should provide adequate "typical" implementations.
25//
26// Note that fast track decode functions must handle values for which an address cannot be obtained.
27// For example:
28// m2 := map[string]int{}
29// p2 := []interface{}{m2}
30// // decoding into p2 will bomb if fast track functions do not treat like unaddressable.
31//
32
33import (
34 "reflect"
35 "sort"
36)
37
38const fastpathEnabled = true
39
40type fastpathT struct{}
41
42var fastpathTV fastpathT
43
44type fastpathE struct {
45 rtid uintptr
46 rt reflect.Type
47 encfn func(*Encoder, *codecFnInfo, reflect.Value)
48 decfn func(*Decoder, *codecFnInfo, reflect.Value)
49}
50
51type fastpathA [271]fastpathE
52
53func (x *fastpathA) index(rtid uintptr) int {
54 // use binary search to grab the index (adapted from sort/search.go)
55 h, i, j := 0, 0, 271 // len(x)
56 for i < j {
57 h = i + (j-i)/2
58 if x[h].rtid < rtid {
59 i = h + 1
60 } else {
61 j = h
62 }
63 }
64 if i < 271 && x[i].rtid == rtid {
65 return i
66 }
67 return -1
68}
69
70type fastpathAslice []fastpathE
71
72func (x fastpathAslice) Len() int { return len(x) }
73func (x fastpathAslice) Less(i, j int) bool { return x[i].rtid < x[j].rtid }
74func (x fastpathAslice) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
75
76var fastpathAV fastpathA
77
78// due to possible initialization loop error, make fastpath in an init()
79func init() {
80 i := 0
81 fn := func(v interface{},
82 fe func(*Encoder, *codecFnInfo, reflect.Value),
83 fd func(*Decoder, *codecFnInfo, reflect.Value)) (f fastpathE) {
84 xrt := reflect.TypeOf(v)
85 xptr := rt2id(xrt)
86 fastpathAV[i] = fastpathE{xptr, xrt, fe, fd}
87 i++
88 return
89 }
90
91 fn([]interface{}(nil), (*Encoder).fastpathEncSliceIntfR, (*Decoder).fastpathDecSliceIntfR)
92 fn([]string(nil), (*Encoder).fastpathEncSliceStringR, (*Decoder).fastpathDecSliceStringR)
93 fn([]float32(nil), (*Encoder).fastpathEncSliceFloat32R, (*Decoder).fastpathDecSliceFloat32R)
94 fn([]float64(nil), (*Encoder).fastpathEncSliceFloat64R, (*Decoder).fastpathDecSliceFloat64R)
95 fn([]uint(nil), (*Encoder).fastpathEncSliceUintR, (*Decoder).fastpathDecSliceUintR)
96 fn([]uint16(nil), (*Encoder).fastpathEncSliceUint16R, (*Decoder).fastpathDecSliceUint16R)
97 fn([]uint32(nil), (*Encoder).fastpathEncSliceUint32R, (*Decoder).fastpathDecSliceUint32R)
98 fn([]uint64(nil), (*Encoder).fastpathEncSliceUint64R, (*Decoder).fastpathDecSliceUint64R)
99 fn([]uintptr(nil), (*Encoder).fastpathEncSliceUintptrR, (*Decoder).fastpathDecSliceUintptrR)
100 fn([]int(nil), (*Encoder).fastpathEncSliceIntR, (*Decoder).fastpathDecSliceIntR)
101 fn([]int8(nil), (*Encoder).fastpathEncSliceInt8R, (*Decoder).fastpathDecSliceInt8R)
102 fn([]int16(nil), (*Encoder).fastpathEncSliceInt16R, (*Decoder).fastpathDecSliceInt16R)
103 fn([]int32(nil), (*Encoder).fastpathEncSliceInt32R, (*Decoder).fastpathDecSliceInt32R)
104 fn([]int64(nil), (*Encoder).fastpathEncSliceInt64R, (*Decoder).fastpathDecSliceInt64R)
105 fn([]bool(nil), (*Encoder).fastpathEncSliceBoolR, (*Decoder).fastpathDecSliceBoolR)
106
107 fn(map[interface{}]interface{}(nil), (*Encoder).fastpathEncMapIntfIntfR, (*Decoder).fastpathDecMapIntfIntfR)
108 fn(map[interface{}]string(nil), (*Encoder).fastpathEncMapIntfStringR, (*Decoder).fastpathDecMapIntfStringR)
109 fn(map[interface{}]uint(nil), (*Encoder).fastpathEncMapIntfUintR, (*Decoder).fastpathDecMapIntfUintR)
110 fn(map[interface{}]uint8(nil), (*Encoder).fastpathEncMapIntfUint8R, (*Decoder).fastpathDecMapIntfUint8R)
111 fn(map[interface{}]uint16(nil), (*Encoder).fastpathEncMapIntfUint16R, (*Decoder).fastpathDecMapIntfUint16R)
112 fn(map[interface{}]uint32(nil), (*Encoder).fastpathEncMapIntfUint32R, (*Decoder).fastpathDecMapIntfUint32R)
113 fn(map[interface{}]uint64(nil), (*Encoder).fastpathEncMapIntfUint64R, (*Decoder).fastpathDecMapIntfUint64R)
114 fn(map[interface{}]uintptr(nil), (*Encoder).fastpathEncMapIntfUintptrR, (*Decoder).fastpathDecMapIntfUintptrR)
115 fn(map[interface{}]int(nil), (*Encoder).fastpathEncMapIntfIntR, (*Decoder).fastpathDecMapIntfIntR)
116 fn(map[interface{}]int8(nil), (*Encoder).fastpathEncMapIntfInt8R, (*Decoder).fastpathDecMapIntfInt8R)
117 fn(map[interface{}]int16(nil), (*Encoder).fastpathEncMapIntfInt16R, (*Decoder).fastpathDecMapIntfInt16R)
118 fn(map[interface{}]int32(nil), (*Encoder).fastpathEncMapIntfInt32R, (*Decoder).fastpathDecMapIntfInt32R)
119 fn(map[interface{}]int64(nil), (*Encoder).fastpathEncMapIntfInt64R, (*Decoder).fastpathDecMapIntfInt64R)
120 fn(map[interface{}]float32(nil), (*Encoder).fastpathEncMapIntfFloat32R, (*Decoder).fastpathDecMapIntfFloat32R)
121 fn(map[interface{}]float64(nil), (*Encoder).fastpathEncMapIntfFloat64R, (*Decoder).fastpathDecMapIntfFloat64R)
122 fn(map[interface{}]bool(nil), (*Encoder).fastpathEncMapIntfBoolR, (*Decoder).fastpathDecMapIntfBoolR)
123 fn(map[string]interface{}(nil), (*Encoder).fastpathEncMapStringIntfR, (*Decoder).fastpathDecMapStringIntfR)
124 fn(map[string]string(nil), (*Encoder).fastpathEncMapStringStringR, (*Decoder).fastpathDecMapStringStringR)
125 fn(map[string]uint(nil), (*Encoder).fastpathEncMapStringUintR, (*Decoder).fastpathDecMapStringUintR)
126 fn(map[string]uint8(nil), (*Encoder).fastpathEncMapStringUint8R, (*Decoder).fastpathDecMapStringUint8R)
127 fn(map[string]uint16(nil), (*Encoder).fastpathEncMapStringUint16R, (*Decoder).fastpathDecMapStringUint16R)
128 fn(map[string]uint32(nil), (*Encoder).fastpathEncMapStringUint32R, (*Decoder).fastpathDecMapStringUint32R)
129 fn(map[string]uint64(nil), (*Encoder).fastpathEncMapStringUint64R, (*Decoder).fastpathDecMapStringUint64R)
130 fn(map[string]uintptr(nil), (*Encoder).fastpathEncMapStringUintptrR, (*Decoder).fastpathDecMapStringUintptrR)
131 fn(map[string]int(nil), (*Encoder).fastpathEncMapStringIntR, (*Decoder).fastpathDecMapStringIntR)
132 fn(map[string]int8(nil), (*Encoder).fastpathEncMapStringInt8R, (*Decoder).fastpathDecMapStringInt8R)
133 fn(map[string]int16(nil), (*Encoder).fastpathEncMapStringInt16R, (*Decoder).fastpathDecMapStringInt16R)
134 fn(map[string]int32(nil), (*Encoder).fastpathEncMapStringInt32R, (*Decoder).fastpathDecMapStringInt32R)
135 fn(map[string]int64(nil), (*Encoder).fastpathEncMapStringInt64R, (*Decoder).fastpathDecMapStringInt64R)
136 fn(map[string]float32(nil), (*Encoder).fastpathEncMapStringFloat32R, (*Decoder).fastpathDecMapStringFloat32R)
137 fn(map[string]float64(nil), (*Encoder).fastpathEncMapStringFloat64R, (*Decoder).fastpathDecMapStringFloat64R)
138 fn(map[string]bool(nil), (*Encoder).fastpathEncMapStringBoolR, (*Decoder).fastpathDecMapStringBoolR)
139 fn(map[float32]interface{}(nil), (*Encoder).fastpathEncMapFloat32IntfR, (*Decoder).fastpathDecMapFloat32IntfR)
140 fn(map[float32]string(nil), (*Encoder).fastpathEncMapFloat32StringR, (*Decoder).fastpathDecMapFloat32StringR)
141 fn(map[float32]uint(nil), (*Encoder).fastpathEncMapFloat32UintR, (*Decoder).fastpathDecMapFloat32UintR)
142 fn(map[float32]uint8(nil), (*Encoder).fastpathEncMapFloat32Uint8R, (*Decoder).fastpathDecMapFloat32Uint8R)
143 fn(map[float32]uint16(nil), (*Encoder).fastpathEncMapFloat32Uint16R, (*Decoder).fastpathDecMapFloat32Uint16R)
144 fn(map[float32]uint32(nil), (*Encoder).fastpathEncMapFloat32Uint32R, (*Decoder).fastpathDecMapFloat32Uint32R)
145 fn(map[float32]uint64(nil), (*Encoder).fastpathEncMapFloat32Uint64R, (*Decoder).fastpathDecMapFloat32Uint64R)
146 fn(map[float32]uintptr(nil), (*Encoder).fastpathEncMapFloat32UintptrR, (*Decoder).fastpathDecMapFloat32UintptrR)
147 fn(map[float32]int(nil), (*Encoder).fastpathEncMapFloat32IntR, (*Decoder).fastpathDecMapFloat32IntR)
148 fn(map[float32]int8(nil), (*Encoder).fastpathEncMapFloat32Int8R, (*Decoder).fastpathDecMapFloat32Int8R)
149 fn(map[float32]int16(nil), (*Encoder).fastpathEncMapFloat32Int16R, (*Decoder).fastpathDecMapFloat32Int16R)
150 fn(map[float32]int32(nil), (*Encoder).fastpathEncMapFloat32Int32R, (*Decoder).fastpathDecMapFloat32Int32R)
151 fn(map[float32]int64(nil), (*Encoder).fastpathEncMapFloat32Int64R, (*Decoder).fastpathDecMapFloat32Int64R)
152 fn(map[float32]float32(nil), (*Encoder).fastpathEncMapFloat32Float32R, (*Decoder).fastpathDecMapFloat32Float32R)
153 fn(map[float32]float64(nil), (*Encoder).fastpathEncMapFloat32Float64R, (*Decoder).fastpathDecMapFloat32Float64R)
154 fn(map[float32]bool(nil), (*Encoder).fastpathEncMapFloat32BoolR, (*Decoder).fastpathDecMapFloat32BoolR)
155 fn(map[float64]interface{}(nil), (*Encoder).fastpathEncMapFloat64IntfR, (*Decoder).fastpathDecMapFloat64IntfR)
156 fn(map[float64]string(nil), (*Encoder).fastpathEncMapFloat64StringR, (*Decoder).fastpathDecMapFloat64StringR)
157 fn(map[float64]uint(nil), (*Encoder).fastpathEncMapFloat64UintR, (*Decoder).fastpathDecMapFloat64UintR)
158 fn(map[float64]uint8(nil), (*Encoder).fastpathEncMapFloat64Uint8R, (*Decoder).fastpathDecMapFloat64Uint8R)
159 fn(map[float64]uint16(nil), (*Encoder).fastpathEncMapFloat64Uint16R, (*Decoder).fastpathDecMapFloat64Uint16R)
160 fn(map[float64]uint32(nil), (*Encoder).fastpathEncMapFloat64Uint32R, (*Decoder).fastpathDecMapFloat64Uint32R)
161 fn(map[float64]uint64(nil), (*Encoder).fastpathEncMapFloat64Uint64R, (*Decoder).fastpathDecMapFloat64Uint64R)
162 fn(map[float64]uintptr(nil), (*Encoder).fastpathEncMapFloat64UintptrR, (*Decoder).fastpathDecMapFloat64UintptrR)
163 fn(map[float64]int(nil), (*Encoder).fastpathEncMapFloat64IntR, (*Decoder).fastpathDecMapFloat64IntR)
164 fn(map[float64]int8(nil), (*Encoder).fastpathEncMapFloat64Int8R, (*Decoder).fastpathDecMapFloat64Int8R)
165 fn(map[float64]int16(nil), (*Encoder).fastpathEncMapFloat64Int16R, (*Decoder).fastpathDecMapFloat64Int16R)
166 fn(map[float64]int32(nil), (*Encoder).fastpathEncMapFloat64Int32R, (*Decoder).fastpathDecMapFloat64Int32R)
167 fn(map[float64]int64(nil), (*Encoder).fastpathEncMapFloat64Int64R, (*Decoder).fastpathDecMapFloat64Int64R)
168 fn(map[float64]float32(nil), (*Encoder).fastpathEncMapFloat64Float32R, (*Decoder).fastpathDecMapFloat64Float32R)
169 fn(map[float64]float64(nil), (*Encoder).fastpathEncMapFloat64Float64R, (*Decoder).fastpathDecMapFloat64Float64R)
170 fn(map[float64]bool(nil), (*Encoder).fastpathEncMapFloat64BoolR, (*Decoder).fastpathDecMapFloat64BoolR)
171 fn(map[uint]interface{}(nil), (*Encoder).fastpathEncMapUintIntfR, (*Decoder).fastpathDecMapUintIntfR)
172 fn(map[uint]string(nil), (*Encoder).fastpathEncMapUintStringR, (*Decoder).fastpathDecMapUintStringR)
173 fn(map[uint]uint(nil), (*Encoder).fastpathEncMapUintUintR, (*Decoder).fastpathDecMapUintUintR)
174 fn(map[uint]uint8(nil), (*Encoder).fastpathEncMapUintUint8R, (*Decoder).fastpathDecMapUintUint8R)
175 fn(map[uint]uint16(nil), (*Encoder).fastpathEncMapUintUint16R, (*Decoder).fastpathDecMapUintUint16R)
176 fn(map[uint]uint32(nil), (*Encoder).fastpathEncMapUintUint32R, (*Decoder).fastpathDecMapUintUint32R)
177 fn(map[uint]uint64(nil), (*Encoder).fastpathEncMapUintUint64R, (*Decoder).fastpathDecMapUintUint64R)
178 fn(map[uint]uintptr(nil), (*Encoder).fastpathEncMapUintUintptrR, (*Decoder).fastpathDecMapUintUintptrR)
179 fn(map[uint]int(nil), (*Encoder).fastpathEncMapUintIntR, (*Decoder).fastpathDecMapUintIntR)
180 fn(map[uint]int8(nil), (*Encoder).fastpathEncMapUintInt8R, (*Decoder).fastpathDecMapUintInt8R)
181 fn(map[uint]int16(nil), (*Encoder).fastpathEncMapUintInt16R, (*Decoder).fastpathDecMapUintInt16R)
182 fn(map[uint]int32(nil), (*Encoder).fastpathEncMapUintInt32R, (*Decoder).fastpathDecMapUintInt32R)
183 fn(map[uint]int64(nil), (*Encoder).fastpathEncMapUintInt64R, (*Decoder).fastpathDecMapUintInt64R)
184 fn(map[uint]float32(nil), (*Encoder).fastpathEncMapUintFloat32R, (*Decoder).fastpathDecMapUintFloat32R)
185 fn(map[uint]float64(nil), (*Encoder).fastpathEncMapUintFloat64R, (*Decoder).fastpathDecMapUintFloat64R)
186 fn(map[uint]bool(nil), (*Encoder).fastpathEncMapUintBoolR, (*Decoder).fastpathDecMapUintBoolR)
187 fn(map[uint8]interface{}(nil), (*Encoder).fastpathEncMapUint8IntfR, (*Decoder).fastpathDecMapUint8IntfR)
188 fn(map[uint8]string(nil), (*Encoder).fastpathEncMapUint8StringR, (*Decoder).fastpathDecMapUint8StringR)
189 fn(map[uint8]uint(nil), (*Encoder).fastpathEncMapUint8UintR, (*Decoder).fastpathDecMapUint8UintR)
190 fn(map[uint8]uint8(nil), (*Encoder).fastpathEncMapUint8Uint8R, (*Decoder).fastpathDecMapUint8Uint8R)
191 fn(map[uint8]uint16(nil), (*Encoder).fastpathEncMapUint8Uint16R, (*Decoder).fastpathDecMapUint8Uint16R)
192 fn(map[uint8]uint32(nil), (*Encoder).fastpathEncMapUint8Uint32R, (*Decoder).fastpathDecMapUint8Uint32R)
193 fn(map[uint8]uint64(nil), (*Encoder).fastpathEncMapUint8Uint64R, (*Decoder).fastpathDecMapUint8Uint64R)
194 fn(map[uint8]uintptr(nil), (*Encoder).fastpathEncMapUint8UintptrR, (*Decoder).fastpathDecMapUint8UintptrR)
195 fn(map[uint8]int(nil), (*Encoder).fastpathEncMapUint8IntR, (*Decoder).fastpathDecMapUint8IntR)
196 fn(map[uint8]int8(nil), (*Encoder).fastpathEncMapUint8Int8R, (*Decoder).fastpathDecMapUint8Int8R)
197 fn(map[uint8]int16(nil), (*Encoder).fastpathEncMapUint8Int16R, (*Decoder).fastpathDecMapUint8Int16R)
198 fn(map[uint8]int32(nil), (*Encoder).fastpathEncMapUint8Int32R, (*Decoder).fastpathDecMapUint8Int32R)
199 fn(map[uint8]int64(nil), (*Encoder).fastpathEncMapUint8Int64R, (*Decoder).fastpathDecMapUint8Int64R)
200 fn(map[uint8]float32(nil), (*Encoder).fastpathEncMapUint8Float32R, (*Decoder).fastpathDecMapUint8Float32R)
201 fn(map[uint8]float64(nil), (*Encoder).fastpathEncMapUint8Float64R, (*Decoder).fastpathDecMapUint8Float64R)
202 fn(map[uint8]bool(nil), (*Encoder).fastpathEncMapUint8BoolR, (*Decoder).fastpathDecMapUint8BoolR)
203 fn(map[uint16]interface{}(nil), (*Encoder).fastpathEncMapUint16IntfR, (*Decoder).fastpathDecMapUint16IntfR)
204 fn(map[uint16]string(nil), (*Encoder).fastpathEncMapUint16StringR, (*Decoder).fastpathDecMapUint16StringR)
205 fn(map[uint16]uint(nil), (*Encoder).fastpathEncMapUint16UintR, (*Decoder).fastpathDecMapUint16UintR)
206 fn(map[uint16]uint8(nil), (*Encoder).fastpathEncMapUint16Uint8R, (*Decoder).fastpathDecMapUint16Uint8R)
207 fn(map[uint16]uint16(nil), (*Encoder).fastpathEncMapUint16Uint16R, (*Decoder).fastpathDecMapUint16Uint16R)
208 fn(map[uint16]uint32(nil), (*Encoder).fastpathEncMapUint16Uint32R, (*Decoder).fastpathDecMapUint16Uint32R)
209 fn(map[uint16]uint64(nil), (*Encoder).fastpathEncMapUint16Uint64R, (*Decoder).fastpathDecMapUint16Uint64R)
210 fn(map[uint16]uintptr(nil), (*Encoder).fastpathEncMapUint16UintptrR, (*Decoder).fastpathDecMapUint16UintptrR)
211 fn(map[uint16]int(nil), (*Encoder).fastpathEncMapUint16IntR, (*Decoder).fastpathDecMapUint16IntR)
212 fn(map[uint16]int8(nil), (*Encoder).fastpathEncMapUint16Int8R, (*Decoder).fastpathDecMapUint16Int8R)
213 fn(map[uint16]int16(nil), (*Encoder).fastpathEncMapUint16Int16R, (*Decoder).fastpathDecMapUint16Int16R)
214 fn(map[uint16]int32(nil), (*Encoder).fastpathEncMapUint16Int32R, (*Decoder).fastpathDecMapUint16Int32R)
215 fn(map[uint16]int64(nil), (*Encoder).fastpathEncMapUint16Int64R, (*Decoder).fastpathDecMapUint16Int64R)
216 fn(map[uint16]float32(nil), (*Encoder).fastpathEncMapUint16Float32R, (*Decoder).fastpathDecMapUint16Float32R)
217 fn(map[uint16]float64(nil), (*Encoder).fastpathEncMapUint16Float64R, (*Decoder).fastpathDecMapUint16Float64R)
218 fn(map[uint16]bool(nil), (*Encoder).fastpathEncMapUint16BoolR, (*Decoder).fastpathDecMapUint16BoolR)
219 fn(map[uint32]interface{}(nil), (*Encoder).fastpathEncMapUint32IntfR, (*Decoder).fastpathDecMapUint32IntfR)
220 fn(map[uint32]string(nil), (*Encoder).fastpathEncMapUint32StringR, (*Decoder).fastpathDecMapUint32StringR)
221 fn(map[uint32]uint(nil), (*Encoder).fastpathEncMapUint32UintR, (*Decoder).fastpathDecMapUint32UintR)
222 fn(map[uint32]uint8(nil), (*Encoder).fastpathEncMapUint32Uint8R, (*Decoder).fastpathDecMapUint32Uint8R)
223 fn(map[uint32]uint16(nil), (*Encoder).fastpathEncMapUint32Uint16R, (*Decoder).fastpathDecMapUint32Uint16R)
224 fn(map[uint32]uint32(nil), (*Encoder).fastpathEncMapUint32Uint32R, (*Decoder).fastpathDecMapUint32Uint32R)
225 fn(map[uint32]uint64(nil), (*Encoder).fastpathEncMapUint32Uint64R, (*Decoder).fastpathDecMapUint32Uint64R)
226 fn(map[uint32]uintptr(nil), (*Encoder).fastpathEncMapUint32UintptrR, (*Decoder).fastpathDecMapUint32UintptrR)
227 fn(map[uint32]int(nil), (*Encoder).fastpathEncMapUint32IntR, (*Decoder).fastpathDecMapUint32IntR)
228 fn(map[uint32]int8(nil), (*Encoder).fastpathEncMapUint32Int8R, (*Decoder).fastpathDecMapUint32Int8R)
229 fn(map[uint32]int16(nil), (*Encoder).fastpathEncMapUint32Int16R, (*Decoder).fastpathDecMapUint32Int16R)
230 fn(map[uint32]int32(nil), (*Encoder).fastpathEncMapUint32Int32R, (*Decoder).fastpathDecMapUint32Int32R)
231 fn(map[uint32]int64(nil), (*Encoder).fastpathEncMapUint32Int64R, (*Decoder).fastpathDecMapUint32Int64R)
232 fn(map[uint32]float32(nil), (*Encoder).fastpathEncMapUint32Float32R, (*Decoder).fastpathDecMapUint32Float32R)
233 fn(map[uint32]float64(nil), (*Encoder).fastpathEncMapUint32Float64R, (*Decoder).fastpathDecMapUint32Float64R)
234 fn(map[uint32]bool(nil), (*Encoder).fastpathEncMapUint32BoolR, (*Decoder).fastpathDecMapUint32BoolR)
235 fn(map[uint64]interface{}(nil), (*Encoder).fastpathEncMapUint64IntfR, (*Decoder).fastpathDecMapUint64IntfR)
236 fn(map[uint64]string(nil), (*Encoder).fastpathEncMapUint64StringR, (*Decoder).fastpathDecMapUint64StringR)
237 fn(map[uint64]uint(nil), (*Encoder).fastpathEncMapUint64UintR, (*Decoder).fastpathDecMapUint64UintR)
238 fn(map[uint64]uint8(nil), (*Encoder).fastpathEncMapUint64Uint8R, (*Decoder).fastpathDecMapUint64Uint8R)
239 fn(map[uint64]uint16(nil), (*Encoder).fastpathEncMapUint64Uint16R, (*Decoder).fastpathDecMapUint64Uint16R)
240 fn(map[uint64]uint32(nil), (*Encoder).fastpathEncMapUint64Uint32R, (*Decoder).fastpathDecMapUint64Uint32R)
241 fn(map[uint64]uint64(nil), (*Encoder).fastpathEncMapUint64Uint64R, (*Decoder).fastpathDecMapUint64Uint64R)
242 fn(map[uint64]uintptr(nil), (*Encoder).fastpathEncMapUint64UintptrR, (*Decoder).fastpathDecMapUint64UintptrR)
243 fn(map[uint64]int(nil), (*Encoder).fastpathEncMapUint64IntR, (*Decoder).fastpathDecMapUint64IntR)
244 fn(map[uint64]int8(nil), (*Encoder).fastpathEncMapUint64Int8R, (*Decoder).fastpathDecMapUint64Int8R)
245 fn(map[uint64]int16(nil), (*Encoder).fastpathEncMapUint64Int16R, (*Decoder).fastpathDecMapUint64Int16R)
246 fn(map[uint64]int32(nil), (*Encoder).fastpathEncMapUint64Int32R, (*Decoder).fastpathDecMapUint64Int32R)
247 fn(map[uint64]int64(nil), (*Encoder).fastpathEncMapUint64Int64R, (*Decoder).fastpathDecMapUint64Int64R)
248 fn(map[uint64]float32(nil), (*Encoder).fastpathEncMapUint64Float32R, (*Decoder).fastpathDecMapUint64Float32R)
249 fn(map[uint64]float64(nil), (*Encoder).fastpathEncMapUint64Float64R, (*Decoder).fastpathDecMapUint64Float64R)
250 fn(map[uint64]bool(nil), (*Encoder).fastpathEncMapUint64BoolR, (*Decoder).fastpathDecMapUint64BoolR)
251 fn(map[uintptr]interface{}(nil), (*Encoder).fastpathEncMapUintptrIntfR, (*Decoder).fastpathDecMapUintptrIntfR)
252 fn(map[uintptr]string(nil), (*Encoder).fastpathEncMapUintptrStringR, (*Decoder).fastpathDecMapUintptrStringR)
253 fn(map[uintptr]uint(nil), (*Encoder).fastpathEncMapUintptrUintR, (*Decoder).fastpathDecMapUintptrUintR)
254 fn(map[uintptr]uint8(nil), (*Encoder).fastpathEncMapUintptrUint8R, (*Decoder).fastpathDecMapUintptrUint8R)
255 fn(map[uintptr]uint16(nil), (*Encoder).fastpathEncMapUintptrUint16R, (*Decoder).fastpathDecMapUintptrUint16R)
256 fn(map[uintptr]uint32(nil), (*Encoder).fastpathEncMapUintptrUint32R, (*Decoder).fastpathDecMapUintptrUint32R)
257 fn(map[uintptr]uint64(nil), (*Encoder).fastpathEncMapUintptrUint64R, (*Decoder).fastpathDecMapUintptrUint64R)
258 fn(map[uintptr]uintptr(nil), (*Encoder).fastpathEncMapUintptrUintptrR, (*Decoder).fastpathDecMapUintptrUintptrR)
259 fn(map[uintptr]int(nil), (*Encoder).fastpathEncMapUintptrIntR, (*Decoder).fastpathDecMapUintptrIntR)
260 fn(map[uintptr]int8(nil), (*Encoder).fastpathEncMapUintptrInt8R, (*Decoder).fastpathDecMapUintptrInt8R)
261 fn(map[uintptr]int16(nil), (*Encoder).fastpathEncMapUintptrInt16R, (*Decoder).fastpathDecMapUintptrInt16R)
262 fn(map[uintptr]int32(nil), (*Encoder).fastpathEncMapUintptrInt32R, (*Decoder).fastpathDecMapUintptrInt32R)
263 fn(map[uintptr]int64(nil), (*Encoder).fastpathEncMapUintptrInt64R, (*Decoder).fastpathDecMapUintptrInt64R)
264 fn(map[uintptr]float32(nil), (*Encoder).fastpathEncMapUintptrFloat32R, (*Decoder).fastpathDecMapUintptrFloat32R)
265 fn(map[uintptr]float64(nil), (*Encoder).fastpathEncMapUintptrFloat64R, (*Decoder).fastpathDecMapUintptrFloat64R)
266 fn(map[uintptr]bool(nil), (*Encoder).fastpathEncMapUintptrBoolR, (*Decoder).fastpathDecMapUintptrBoolR)
267 fn(map[int]interface{}(nil), (*Encoder).fastpathEncMapIntIntfR, (*Decoder).fastpathDecMapIntIntfR)
268 fn(map[int]string(nil), (*Encoder).fastpathEncMapIntStringR, (*Decoder).fastpathDecMapIntStringR)
269 fn(map[int]uint(nil), (*Encoder).fastpathEncMapIntUintR, (*Decoder).fastpathDecMapIntUintR)
270 fn(map[int]uint8(nil), (*Encoder).fastpathEncMapIntUint8R, (*Decoder).fastpathDecMapIntUint8R)
271 fn(map[int]uint16(nil), (*Encoder).fastpathEncMapIntUint16R, (*Decoder).fastpathDecMapIntUint16R)
272 fn(map[int]uint32(nil), (*Encoder).fastpathEncMapIntUint32R, (*Decoder).fastpathDecMapIntUint32R)
273 fn(map[int]uint64(nil), (*Encoder).fastpathEncMapIntUint64R, (*Decoder).fastpathDecMapIntUint64R)
274 fn(map[int]uintptr(nil), (*Encoder).fastpathEncMapIntUintptrR, (*Decoder).fastpathDecMapIntUintptrR)
275 fn(map[int]int(nil), (*Encoder).fastpathEncMapIntIntR, (*Decoder).fastpathDecMapIntIntR)
276 fn(map[int]int8(nil), (*Encoder).fastpathEncMapIntInt8R, (*Decoder).fastpathDecMapIntInt8R)
277 fn(map[int]int16(nil), (*Encoder).fastpathEncMapIntInt16R, (*Decoder).fastpathDecMapIntInt16R)
278 fn(map[int]int32(nil), (*Encoder).fastpathEncMapIntInt32R, (*Decoder).fastpathDecMapIntInt32R)
279 fn(map[int]int64(nil), (*Encoder).fastpathEncMapIntInt64R, (*Decoder).fastpathDecMapIntInt64R)
280 fn(map[int]float32(nil), (*Encoder).fastpathEncMapIntFloat32R, (*Decoder).fastpathDecMapIntFloat32R)
281 fn(map[int]float64(nil), (*Encoder).fastpathEncMapIntFloat64R, (*Decoder).fastpathDecMapIntFloat64R)
282 fn(map[int]bool(nil), (*Encoder).fastpathEncMapIntBoolR, (*Decoder).fastpathDecMapIntBoolR)
283 fn(map[int8]interface{}(nil), (*Encoder).fastpathEncMapInt8IntfR, (*Decoder).fastpathDecMapInt8IntfR)
284 fn(map[int8]string(nil), (*Encoder).fastpathEncMapInt8StringR, (*Decoder).fastpathDecMapInt8StringR)
285 fn(map[int8]uint(nil), (*Encoder).fastpathEncMapInt8UintR, (*Decoder).fastpathDecMapInt8UintR)
286 fn(map[int8]uint8(nil), (*Encoder).fastpathEncMapInt8Uint8R, (*Decoder).fastpathDecMapInt8Uint8R)
287 fn(map[int8]uint16(nil), (*Encoder).fastpathEncMapInt8Uint16R, (*Decoder).fastpathDecMapInt8Uint16R)
288 fn(map[int8]uint32(nil), (*Encoder).fastpathEncMapInt8Uint32R, (*Decoder).fastpathDecMapInt8Uint32R)
289 fn(map[int8]uint64(nil), (*Encoder).fastpathEncMapInt8Uint64R, (*Decoder).fastpathDecMapInt8Uint64R)
290 fn(map[int8]uintptr(nil), (*Encoder).fastpathEncMapInt8UintptrR, (*Decoder).fastpathDecMapInt8UintptrR)
291 fn(map[int8]int(nil), (*Encoder).fastpathEncMapInt8IntR, (*Decoder).fastpathDecMapInt8IntR)
292 fn(map[int8]int8(nil), (*Encoder).fastpathEncMapInt8Int8R, (*Decoder).fastpathDecMapInt8Int8R)
293 fn(map[int8]int16(nil), (*Encoder).fastpathEncMapInt8Int16R, (*Decoder).fastpathDecMapInt8Int16R)
294 fn(map[int8]int32(nil), (*Encoder).fastpathEncMapInt8Int32R, (*Decoder).fastpathDecMapInt8Int32R)
295 fn(map[int8]int64(nil), (*Encoder).fastpathEncMapInt8Int64R, (*Decoder).fastpathDecMapInt8Int64R)
296 fn(map[int8]float32(nil), (*Encoder).fastpathEncMapInt8Float32R, (*Decoder).fastpathDecMapInt8Float32R)
297 fn(map[int8]float64(nil), (*Encoder).fastpathEncMapInt8Float64R, (*Decoder).fastpathDecMapInt8Float64R)
298 fn(map[int8]bool(nil), (*Encoder).fastpathEncMapInt8BoolR, (*Decoder).fastpathDecMapInt8BoolR)
299 fn(map[int16]interface{}(nil), (*Encoder).fastpathEncMapInt16IntfR, (*Decoder).fastpathDecMapInt16IntfR)
300 fn(map[int16]string(nil), (*Encoder).fastpathEncMapInt16StringR, (*Decoder).fastpathDecMapInt16StringR)
301 fn(map[int16]uint(nil), (*Encoder).fastpathEncMapInt16UintR, (*Decoder).fastpathDecMapInt16UintR)
302 fn(map[int16]uint8(nil), (*Encoder).fastpathEncMapInt16Uint8R, (*Decoder).fastpathDecMapInt16Uint8R)
303 fn(map[int16]uint16(nil), (*Encoder).fastpathEncMapInt16Uint16R, (*Decoder).fastpathDecMapInt16Uint16R)
304 fn(map[int16]uint32(nil), (*Encoder).fastpathEncMapInt16Uint32R, (*Decoder).fastpathDecMapInt16Uint32R)
305 fn(map[int16]uint64(nil), (*Encoder).fastpathEncMapInt16Uint64R, (*Decoder).fastpathDecMapInt16Uint64R)
306 fn(map[int16]uintptr(nil), (*Encoder).fastpathEncMapInt16UintptrR, (*Decoder).fastpathDecMapInt16UintptrR)
307 fn(map[int16]int(nil), (*Encoder).fastpathEncMapInt16IntR, (*Decoder).fastpathDecMapInt16IntR)
308 fn(map[int16]int8(nil), (*Encoder).fastpathEncMapInt16Int8R, (*Decoder).fastpathDecMapInt16Int8R)
309 fn(map[int16]int16(nil), (*Encoder).fastpathEncMapInt16Int16R, (*Decoder).fastpathDecMapInt16Int16R)
310 fn(map[int16]int32(nil), (*Encoder).fastpathEncMapInt16Int32R, (*Decoder).fastpathDecMapInt16Int32R)
311 fn(map[int16]int64(nil), (*Encoder).fastpathEncMapInt16Int64R, (*Decoder).fastpathDecMapInt16Int64R)
312 fn(map[int16]float32(nil), (*Encoder).fastpathEncMapInt16Float32R, (*Decoder).fastpathDecMapInt16Float32R)
313 fn(map[int16]float64(nil), (*Encoder).fastpathEncMapInt16Float64R, (*Decoder).fastpathDecMapInt16Float64R)
314 fn(map[int16]bool(nil), (*Encoder).fastpathEncMapInt16BoolR, (*Decoder).fastpathDecMapInt16BoolR)
315 fn(map[int32]interface{}(nil), (*Encoder).fastpathEncMapInt32IntfR, (*Decoder).fastpathDecMapInt32IntfR)
316 fn(map[int32]string(nil), (*Encoder).fastpathEncMapInt32StringR, (*Decoder).fastpathDecMapInt32StringR)
317 fn(map[int32]uint(nil), (*Encoder).fastpathEncMapInt32UintR, (*Decoder).fastpathDecMapInt32UintR)
318 fn(map[int32]uint8(nil), (*Encoder).fastpathEncMapInt32Uint8R, (*Decoder).fastpathDecMapInt32Uint8R)
319 fn(map[int32]uint16(nil), (*Encoder).fastpathEncMapInt32Uint16R, (*Decoder).fastpathDecMapInt32Uint16R)
320 fn(map[int32]uint32(nil), (*Encoder).fastpathEncMapInt32Uint32R, (*Decoder).fastpathDecMapInt32Uint32R)
321 fn(map[int32]uint64(nil), (*Encoder).fastpathEncMapInt32Uint64R, (*Decoder).fastpathDecMapInt32Uint64R)
322 fn(map[int32]uintptr(nil), (*Encoder).fastpathEncMapInt32UintptrR, (*Decoder).fastpathDecMapInt32UintptrR)
323 fn(map[int32]int(nil), (*Encoder).fastpathEncMapInt32IntR, (*Decoder).fastpathDecMapInt32IntR)
324 fn(map[int32]int8(nil), (*Encoder).fastpathEncMapInt32Int8R, (*Decoder).fastpathDecMapInt32Int8R)
325 fn(map[int32]int16(nil), (*Encoder).fastpathEncMapInt32Int16R, (*Decoder).fastpathDecMapInt32Int16R)
326 fn(map[int32]int32(nil), (*Encoder).fastpathEncMapInt32Int32R, (*Decoder).fastpathDecMapInt32Int32R)
327 fn(map[int32]int64(nil), (*Encoder).fastpathEncMapInt32Int64R, (*Decoder).fastpathDecMapInt32Int64R)
328 fn(map[int32]float32(nil), (*Encoder).fastpathEncMapInt32Float32R, (*Decoder).fastpathDecMapInt32Float32R)
329 fn(map[int32]float64(nil), (*Encoder).fastpathEncMapInt32Float64R, (*Decoder).fastpathDecMapInt32Float64R)
330 fn(map[int32]bool(nil), (*Encoder).fastpathEncMapInt32BoolR, (*Decoder).fastpathDecMapInt32BoolR)
331 fn(map[int64]interface{}(nil), (*Encoder).fastpathEncMapInt64IntfR, (*Decoder).fastpathDecMapInt64IntfR)
332 fn(map[int64]string(nil), (*Encoder).fastpathEncMapInt64StringR, (*Decoder).fastpathDecMapInt64StringR)
333 fn(map[int64]uint(nil), (*Encoder).fastpathEncMapInt64UintR, (*Decoder).fastpathDecMapInt64UintR)
334 fn(map[int64]uint8(nil), (*Encoder).fastpathEncMapInt64Uint8R, (*Decoder).fastpathDecMapInt64Uint8R)
335 fn(map[int64]uint16(nil), (*Encoder).fastpathEncMapInt64Uint16R, (*Decoder).fastpathDecMapInt64Uint16R)
336 fn(map[int64]uint32(nil), (*Encoder).fastpathEncMapInt64Uint32R, (*Decoder).fastpathDecMapInt64Uint32R)
337 fn(map[int64]uint64(nil), (*Encoder).fastpathEncMapInt64Uint64R, (*Decoder).fastpathDecMapInt64Uint64R)
338 fn(map[int64]uintptr(nil), (*Encoder).fastpathEncMapInt64UintptrR, (*Decoder).fastpathDecMapInt64UintptrR)
339 fn(map[int64]int(nil), (*Encoder).fastpathEncMapInt64IntR, (*Decoder).fastpathDecMapInt64IntR)
340 fn(map[int64]int8(nil), (*Encoder).fastpathEncMapInt64Int8R, (*Decoder).fastpathDecMapInt64Int8R)
341 fn(map[int64]int16(nil), (*Encoder).fastpathEncMapInt64Int16R, (*Decoder).fastpathDecMapInt64Int16R)
342 fn(map[int64]int32(nil), (*Encoder).fastpathEncMapInt64Int32R, (*Decoder).fastpathDecMapInt64Int32R)
343 fn(map[int64]int64(nil), (*Encoder).fastpathEncMapInt64Int64R, (*Decoder).fastpathDecMapInt64Int64R)
344 fn(map[int64]float32(nil), (*Encoder).fastpathEncMapInt64Float32R, (*Decoder).fastpathDecMapInt64Float32R)
345 fn(map[int64]float64(nil), (*Encoder).fastpathEncMapInt64Float64R, (*Decoder).fastpathDecMapInt64Float64R)
346 fn(map[int64]bool(nil), (*Encoder).fastpathEncMapInt64BoolR, (*Decoder).fastpathDecMapInt64BoolR)
347 fn(map[bool]interface{}(nil), (*Encoder).fastpathEncMapBoolIntfR, (*Decoder).fastpathDecMapBoolIntfR)
348 fn(map[bool]string(nil), (*Encoder).fastpathEncMapBoolStringR, (*Decoder).fastpathDecMapBoolStringR)
349 fn(map[bool]uint(nil), (*Encoder).fastpathEncMapBoolUintR, (*Decoder).fastpathDecMapBoolUintR)
350 fn(map[bool]uint8(nil), (*Encoder).fastpathEncMapBoolUint8R, (*Decoder).fastpathDecMapBoolUint8R)
351 fn(map[bool]uint16(nil), (*Encoder).fastpathEncMapBoolUint16R, (*Decoder).fastpathDecMapBoolUint16R)
352 fn(map[bool]uint32(nil), (*Encoder).fastpathEncMapBoolUint32R, (*Decoder).fastpathDecMapBoolUint32R)
353 fn(map[bool]uint64(nil), (*Encoder).fastpathEncMapBoolUint64R, (*Decoder).fastpathDecMapBoolUint64R)
354 fn(map[bool]uintptr(nil), (*Encoder).fastpathEncMapBoolUintptrR, (*Decoder).fastpathDecMapBoolUintptrR)
355 fn(map[bool]int(nil), (*Encoder).fastpathEncMapBoolIntR, (*Decoder).fastpathDecMapBoolIntR)
356 fn(map[bool]int8(nil), (*Encoder).fastpathEncMapBoolInt8R, (*Decoder).fastpathDecMapBoolInt8R)
357 fn(map[bool]int16(nil), (*Encoder).fastpathEncMapBoolInt16R, (*Decoder).fastpathDecMapBoolInt16R)
358 fn(map[bool]int32(nil), (*Encoder).fastpathEncMapBoolInt32R, (*Decoder).fastpathDecMapBoolInt32R)
359 fn(map[bool]int64(nil), (*Encoder).fastpathEncMapBoolInt64R, (*Decoder).fastpathDecMapBoolInt64R)
360 fn(map[bool]float32(nil), (*Encoder).fastpathEncMapBoolFloat32R, (*Decoder).fastpathDecMapBoolFloat32R)
361 fn(map[bool]float64(nil), (*Encoder).fastpathEncMapBoolFloat64R, (*Decoder).fastpathDecMapBoolFloat64R)
362 fn(map[bool]bool(nil), (*Encoder).fastpathEncMapBoolBoolR, (*Decoder).fastpathDecMapBoolBoolR)
363
364 sort.Sort(fastpathAslice(fastpathAV[:]))
365}
366
367// -- encode
368
369// -- -- fast path type switch
370func fastpathEncodeTypeSwitch(iv interface{}, e *Encoder) bool {
371 switch v := iv.(type) {
372
373 case []interface{}:
374 fastpathTV.EncSliceIntfV(v, e)
375 case *[]interface{}:
376 fastpathTV.EncSliceIntfV(*v, e)
377 case []string:
378 fastpathTV.EncSliceStringV(v, e)
379 case *[]string:
380 fastpathTV.EncSliceStringV(*v, e)
381 case []float32:
382 fastpathTV.EncSliceFloat32V(v, e)
383 case *[]float32:
384 fastpathTV.EncSliceFloat32V(*v, e)
385 case []float64:
386 fastpathTV.EncSliceFloat64V(v, e)
387 case *[]float64:
388 fastpathTV.EncSliceFloat64V(*v, e)
389 case []uint:
390 fastpathTV.EncSliceUintV(v, e)
391 case *[]uint:
392 fastpathTV.EncSliceUintV(*v, e)
393 case []uint16:
394 fastpathTV.EncSliceUint16V(v, e)
395 case *[]uint16:
396 fastpathTV.EncSliceUint16V(*v, e)
397 case []uint32:
398 fastpathTV.EncSliceUint32V(v, e)
399 case *[]uint32:
400 fastpathTV.EncSliceUint32V(*v, e)
401 case []uint64:
402 fastpathTV.EncSliceUint64V(v, e)
403 case *[]uint64:
404 fastpathTV.EncSliceUint64V(*v, e)
405 case []uintptr:
406 fastpathTV.EncSliceUintptrV(v, e)
407 case *[]uintptr:
408 fastpathTV.EncSliceUintptrV(*v, e)
409 case []int:
410 fastpathTV.EncSliceIntV(v, e)
411 case *[]int:
412 fastpathTV.EncSliceIntV(*v, e)
413 case []int8:
414 fastpathTV.EncSliceInt8V(v, e)
415 case *[]int8:
416 fastpathTV.EncSliceInt8V(*v, e)
417 case []int16:
418 fastpathTV.EncSliceInt16V(v, e)
419 case *[]int16:
420 fastpathTV.EncSliceInt16V(*v, e)
421 case []int32:
422 fastpathTV.EncSliceInt32V(v, e)
423 case *[]int32:
424 fastpathTV.EncSliceInt32V(*v, e)
425 case []int64:
426 fastpathTV.EncSliceInt64V(v, e)
427 case *[]int64:
428 fastpathTV.EncSliceInt64V(*v, e)
429 case []bool:
430 fastpathTV.EncSliceBoolV(v, e)
431 case *[]bool:
432 fastpathTV.EncSliceBoolV(*v, e)
433
434 case map[interface{}]interface{}:
435 fastpathTV.EncMapIntfIntfV(v, e)
436 case *map[interface{}]interface{}:
437 fastpathTV.EncMapIntfIntfV(*v, e)
438 case map[interface{}]string:
439 fastpathTV.EncMapIntfStringV(v, e)
440 case *map[interface{}]string:
441 fastpathTV.EncMapIntfStringV(*v, e)
442 case map[interface{}]uint:
443 fastpathTV.EncMapIntfUintV(v, e)
444 case *map[interface{}]uint:
445 fastpathTV.EncMapIntfUintV(*v, e)
446 case map[interface{}]uint8:
447 fastpathTV.EncMapIntfUint8V(v, e)
448 case *map[interface{}]uint8:
449 fastpathTV.EncMapIntfUint8V(*v, e)
450 case map[interface{}]uint16:
451 fastpathTV.EncMapIntfUint16V(v, e)
452 case *map[interface{}]uint16:
453 fastpathTV.EncMapIntfUint16V(*v, e)
454 case map[interface{}]uint32:
455 fastpathTV.EncMapIntfUint32V(v, e)
456 case *map[interface{}]uint32:
457 fastpathTV.EncMapIntfUint32V(*v, e)
458 case map[interface{}]uint64:
459 fastpathTV.EncMapIntfUint64V(v, e)
460 case *map[interface{}]uint64:
461 fastpathTV.EncMapIntfUint64V(*v, e)
462 case map[interface{}]uintptr:
463 fastpathTV.EncMapIntfUintptrV(v, e)
464 case *map[interface{}]uintptr:
465 fastpathTV.EncMapIntfUintptrV(*v, e)
466 case map[interface{}]int:
467 fastpathTV.EncMapIntfIntV(v, e)
468 case *map[interface{}]int:
469 fastpathTV.EncMapIntfIntV(*v, e)
470 case map[interface{}]int8:
471 fastpathTV.EncMapIntfInt8V(v, e)
472 case *map[interface{}]int8:
473 fastpathTV.EncMapIntfInt8V(*v, e)
474 case map[interface{}]int16:
475 fastpathTV.EncMapIntfInt16V(v, e)
476 case *map[interface{}]int16:
477 fastpathTV.EncMapIntfInt16V(*v, e)
478 case map[interface{}]int32:
479 fastpathTV.EncMapIntfInt32V(v, e)
480 case *map[interface{}]int32:
481 fastpathTV.EncMapIntfInt32V(*v, e)
482 case map[interface{}]int64:
483 fastpathTV.EncMapIntfInt64V(v, e)
484 case *map[interface{}]int64:
485 fastpathTV.EncMapIntfInt64V(*v, e)
486 case map[interface{}]float32:
487 fastpathTV.EncMapIntfFloat32V(v, e)
488 case *map[interface{}]float32:
489 fastpathTV.EncMapIntfFloat32V(*v, e)
490 case map[interface{}]float64:
491 fastpathTV.EncMapIntfFloat64V(v, e)
492 case *map[interface{}]float64:
493 fastpathTV.EncMapIntfFloat64V(*v, e)
494 case map[interface{}]bool:
495 fastpathTV.EncMapIntfBoolV(v, e)
496 case *map[interface{}]bool:
497 fastpathTV.EncMapIntfBoolV(*v, e)
498 case map[string]interface{}:
499 fastpathTV.EncMapStringIntfV(v, e)
500 case *map[string]interface{}:
501 fastpathTV.EncMapStringIntfV(*v, e)
502 case map[string]string:
503 fastpathTV.EncMapStringStringV(v, e)
504 case *map[string]string:
505 fastpathTV.EncMapStringStringV(*v, e)
506 case map[string]uint:
507 fastpathTV.EncMapStringUintV(v, e)
508 case *map[string]uint:
509 fastpathTV.EncMapStringUintV(*v, e)
510 case map[string]uint8:
511 fastpathTV.EncMapStringUint8V(v, e)
512 case *map[string]uint8:
513 fastpathTV.EncMapStringUint8V(*v, e)
514 case map[string]uint16:
515 fastpathTV.EncMapStringUint16V(v, e)
516 case *map[string]uint16:
517 fastpathTV.EncMapStringUint16V(*v, e)
518 case map[string]uint32:
519 fastpathTV.EncMapStringUint32V(v, e)
520 case *map[string]uint32:
521 fastpathTV.EncMapStringUint32V(*v, e)
522 case map[string]uint64:
523 fastpathTV.EncMapStringUint64V(v, e)
524 case *map[string]uint64:
525 fastpathTV.EncMapStringUint64V(*v, e)
526 case map[string]uintptr:
527 fastpathTV.EncMapStringUintptrV(v, e)
528 case *map[string]uintptr:
529 fastpathTV.EncMapStringUintptrV(*v, e)
530 case map[string]int:
531 fastpathTV.EncMapStringIntV(v, e)
532 case *map[string]int:
533 fastpathTV.EncMapStringIntV(*v, e)
534 case map[string]int8:
535 fastpathTV.EncMapStringInt8V(v, e)
536 case *map[string]int8:
537 fastpathTV.EncMapStringInt8V(*v, e)
538 case map[string]int16:
539 fastpathTV.EncMapStringInt16V(v, e)
540 case *map[string]int16:
541 fastpathTV.EncMapStringInt16V(*v, e)
542 case map[string]int32:
543 fastpathTV.EncMapStringInt32V(v, e)
544 case *map[string]int32:
545 fastpathTV.EncMapStringInt32V(*v, e)
546 case map[string]int64:
547 fastpathTV.EncMapStringInt64V(v, e)
548 case *map[string]int64:
549 fastpathTV.EncMapStringInt64V(*v, e)
550 case map[string]float32:
551 fastpathTV.EncMapStringFloat32V(v, e)
552 case *map[string]float32:
553 fastpathTV.EncMapStringFloat32V(*v, e)
554 case map[string]float64:
555 fastpathTV.EncMapStringFloat64V(v, e)
556 case *map[string]float64:
557 fastpathTV.EncMapStringFloat64V(*v, e)
558 case map[string]bool:
559 fastpathTV.EncMapStringBoolV(v, e)
560 case *map[string]bool:
561 fastpathTV.EncMapStringBoolV(*v, e)
562 case map[float32]interface{}:
563 fastpathTV.EncMapFloat32IntfV(v, e)
564 case *map[float32]interface{}:
565 fastpathTV.EncMapFloat32IntfV(*v, e)
566 case map[float32]string:
567 fastpathTV.EncMapFloat32StringV(v, e)
568 case *map[float32]string:
569 fastpathTV.EncMapFloat32StringV(*v, e)
570 case map[float32]uint:
571 fastpathTV.EncMapFloat32UintV(v, e)
572 case *map[float32]uint:
573 fastpathTV.EncMapFloat32UintV(*v, e)
574 case map[float32]uint8:
575 fastpathTV.EncMapFloat32Uint8V(v, e)
576 case *map[float32]uint8:
577 fastpathTV.EncMapFloat32Uint8V(*v, e)
578 case map[float32]uint16:
579 fastpathTV.EncMapFloat32Uint16V(v, e)
580 case *map[float32]uint16:
581 fastpathTV.EncMapFloat32Uint16V(*v, e)
582 case map[float32]uint32:
583 fastpathTV.EncMapFloat32Uint32V(v, e)
584 case *map[float32]uint32:
585 fastpathTV.EncMapFloat32Uint32V(*v, e)
586 case map[float32]uint64:
587 fastpathTV.EncMapFloat32Uint64V(v, e)
588 case *map[float32]uint64:
589 fastpathTV.EncMapFloat32Uint64V(*v, e)
590 case map[float32]uintptr:
591 fastpathTV.EncMapFloat32UintptrV(v, e)
592 case *map[float32]uintptr:
593 fastpathTV.EncMapFloat32UintptrV(*v, e)
594 case map[float32]int:
595 fastpathTV.EncMapFloat32IntV(v, e)
596 case *map[float32]int:
597 fastpathTV.EncMapFloat32IntV(*v, e)
598 case map[float32]int8:
599 fastpathTV.EncMapFloat32Int8V(v, e)
600 case *map[float32]int8:
601 fastpathTV.EncMapFloat32Int8V(*v, e)
602 case map[float32]int16:
603 fastpathTV.EncMapFloat32Int16V(v, e)
604 case *map[float32]int16:
605 fastpathTV.EncMapFloat32Int16V(*v, e)
606 case map[float32]int32:
607 fastpathTV.EncMapFloat32Int32V(v, e)
608 case *map[float32]int32:
609 fastpathTV.EncMapFloat32Int32V(*v, e)
610 case map[float32]int64:
611 fastpathTV.EncMapFloat32Int64V(v, e)
612 case *map[float32]int64:
613 fastpathTV.EncMapFloat32Int64V(*v, e)
614 case map[float32]float32:
615 fastpathTV.EncMapFloat32Float32V(v, e)
616 case *map[float32]float32:
617 fastpathTV.EncMapFloat32Float32V(*v, e)
618 case map[float32]float64:
619 fastpathTV.EncMapFloat32Float64V(v, e)
620 case *map[float32]float64:
621 fastpathTV.EncMapFloat32Float64V(*v, e)
622 case map[float32]bool:
623 fastpathTV.EncMapFloat32BoolV(v, e)
624 case *map[float32]bool:
625 fastpathTV.EncMapFloat32BoolV(*v, e)
626 case map[float64]interface{}:
627 fastpathTV.EncMapFloat64IntfV(v, e)
628 case *map[float64]interface{}:
629 fastpathTV.EncMapFloat64IntfV(*v, e)
630 case map[float64]string:
631 fastpathTV.EncMapFloat64StringV(v, e)
632 case *map[float64]string:
633 fastpathTV.EncMapFloat64StringV(*v, e)
634 case map[float64]uint:
635 fastpathTV.EncMapFloat64UintV(v, e)
636 case *map[float64]uint:
637 fastpathTV.EncMapFloat64UintV(*v, e)
638 case map[float64]uint8:
639 fastpathTV.EncMapFloat64Uint8V(v, e)
640 case *map[float64]uint8:
641 fastpathTV.EncMapFloat64Uint8V(*v, e)
642 case map[float64]uint16:
643 fastpathTV.EncMapFloat64Uint16V(v, e)
644 case *map[float64]uint16:
645 fastpathTV.EncMapFloat64Uint16V(*v, e)
646 case map[float64]uint32:
647 fastpathTV.EncMapFloat64Uint32V(v, e)
648 case *map[float64]uint32:
649 fastpathTV.EncMapFloat64Uint32V(*v, e)
650 case map[float64]uint64:
651 fastpathTV.EncMapFloat64Uint64V(v, e)
652 case *map[float64]uint64:
653 fastpathTV.EncMapFloat64Uint64V(*v, e)
654 case map[float64]uintptr:
655 fastpathTV.EncMapFloat64UintptrV(v, e)
656 case *map[float64]uintptr:
657 fastpathTV.EncMapFloat64UintptrV(*v, e)
658 case map[float64]int:
659 fastpathTV.EncMapFloat64IntV(v, e)
660 case *map[float64]int:
661 fastpathTV.EncMapFloat64IntV(*v, e)
662 case map[float64]int8:
663 fastpathTV.EncMapFloat64Int8V(v, e)
664 case *map[float64]int8:
665 fastpathTV.EncMapFloat64Int8V(*v, e)
666 case map[float64]int16:
667 fastpathTV.EncMapFloat64Int16V(v, e)
668 case *map[float64]int16:
669 fastpathTV.EncMapFloat64Int16V(*v, e)
670 case map[float64]int32:
671 fastpathTV.EncMapFloat64Int32V(v, e)
672 case *map[float64]int32:
673 fastpathTV.EncMapFloat64Int32V(*v, e)
674 case map[float64]int64:
675 fastpathTV.EncMapFloat64Int64V(v, e)
676 case *map[float64]int64:
677 fastpathTV.EncMapFloat64Int64V(*v, e)
678 case map[float64]float32:
679 fastpathTV.EncMapFloat64Float32V(v, e)
680 case *map[float64]float32:
681 fastpathTV.EncMapFloat64Float32V(*v, e)
682 case map[float64]float64:
683 fastpathTV.EncMapFloat64Float64V(v, e)
684 case *map[float64]float64:
685 fastpathTV.EncMapFloat64Float64V(*v, e)
686 case map[float64]bool:
687 fastpathTV.EncMapFloat64BoolV(v, e)
688 case *map[float64]bool:
689 fastpathTV.EncMapFloat64BoolV(*v, e)
690 case map[uint]interface{}:
691 fastpathTV.EncMapUintIntfV(v, e)
692 case *map[uint]interface{}:
693 fastpathTV.EncMapUintIntfV(*v, e)
694 case map[uint]string:
695 fastpathTV.EncMapUintStringV(v, e)
696 case *map[uint]string:
697 fastpathTV.EncMapUintStringV(*v, e)
698 case map[uint]uint:
699 fastpathTV.EncMapUintUintV(v, e)
700 case *map[uint]uint:
701 fastpathTV.EncMapUintUintV(*v, e)
702 case map[uint]uint8:
703 fastpathTV.EncMapUintUint8V(v, e)
704 case *map[uint]uint8:
705 fastpathTV.EncMapUintUint8V(*v, e)
706 case map[uint]uint16:
707 fastpathTV.EncMapUintUint16V(v, e)
708 case *map[uint]uint16:
709 fastpathTV.EncMapUintUint16V(*v, e)
710 case map[uint]uint32:
711 fastpathTV.EncMapUintUint32V(v, e)
712 case *map[uint]uint32:
713 fastpathTV.EncMapUintUint32V(*v, e)
714 case map[uint]uint64:
715 fastpathTV.EncMapUintUint64V(v, e)
716 case *map[uint]uint64:
717 fastpathTV.EncMapUintUint64V(*v, e)
718 case map[uint]uintptr:
719 fastpathTV.EncMapUintUintptrV(v, e)
720 case *map[uint]uintptr:
721 fastpathTV.EncMapUintUintptrV(*v, e)
722 case map[uint]int:
723 fastpathTV.EncMapUintIntV(v, e)
724 case *map[uint]int:
725 fastpathTV.EncMapUintIntV(*v, e)
726 case map[uint]int8:
727 fastpathTV.EncMapUintInt8V(v, e)
728 case *map[uint]int8:
729 fastpathTV.EncMapUintInt8V(*v, e)
730 case map[uint]int16:
731 fastpathTV.EncMapUintInt16V(v, e)
732 case *map[uint]int16:
733 fastpathTV.EncMapUintInt16V(*v, e)
734 case map[uint]int32:
735 fastpathTV.EncMapUintInt32V(v, e)
736 case *map[uint]int32:
737 fastpathTV.EncMapUintInt32V(*v, e)
738 case map[uint]int64:
739 fastpathTV.EncMapUintInt64V(v, e)
740 case *map[uint]int64:
741 fastpathTV.EncMapUintInt64V(*v, e)
742 case map[uint]float32:
743 fastpathTV.EncMapUintFloat32V(v, e)
744 case *map[uint]float32:
745 fastpathTV.EncMapUintFloat32V(*v, e)
746 case map[uint]float64:
747 fastpathTV.EncMapUintFloat64V(v, e)
748 case *map[uint]float64:
749 fastpathTV.EncMapUintFloat64V(*v, e)
750 case map[uint]bool:
751 fastpathTV.EncMapUintBoolV(v, e)
752 case *map[uint]bool:
753 fastpathTV.EncMapUintBoolV(*v, e)
754 case map[uint8]interface{}:
755 fastpathTV.EncMapUint8IntfV(v, e)
756 case *map[uint8]interface{}:
757 fastpathTV.EncMapUint8IntfV(*v, e)
758 case map[uint8]string:
759 fastpathTV.EncMapUint8StringV(v, e)
760 case *map[uint8]string:
761 fastpathTV.EncMapUint8StringV(*v, e)
762 case map[uint8]uint:
763 fastpathTV.EncMapUint8UintV(v, e)
764 case *map[uint8]uint:
765 fastpathTV.EncMapUint8UintV(*v, e)
766 case map[uint8]uint8:
767 fastpathTV.EncMapUint8Uint8V(v, e)
768 case *map[uint8]uint8:
769 fastpathTV.EncMapUint8Uint8V(*v, e)
770 case map[uint8]uint16:
771 fastpathTV.EncMapUint8Uint16V(v, e)
772 case *map[uint8]uint16:
773 fastpathTV.EncMapUint8Uint16V(*v, e)
774 case map[uint8]uint32:
775 fastpathTV.EncMapUint8Uint32V(v, e)
776 case *map[uint8]uint32:
777 fastpathTV.EncMapUint8Uint32V(*v, e)
778 case map[uint8]uint64:
779 fastpathTV.EncMapUint8Uint64V(v, e)
780 case *map[uint8]uint64:
781 fastpathTV.EncMapUint8Uint64V(*v, e)
782 case map[uint8]uintptr:
783 fastpathTV.EncMapUint8UintptrV(v, e)
784 case *map[uint8]uintptr:
785 fastpathTV.EncMapUint8UintptrV(*v, e)
786 case map[uint8]int:
787 fastpathTV.EncMapUint8IntV(v, e)
788 case *map[uint8]int:
789 fastpathTV.EncMapUint8IntV(*v, e)
790 case map[uint8]int8:
791 fastpathTV.EncMapUint8Int8V(v, e)
792 case *map[uint8]int8:
793 fastpathTV.EncMapUint8Int8V(*v, e)
794 case map[uint8]int16:
795 fastpathTV.EncMapUint8Int16V(v, e)
796 case *map[uint8]int16:
797 fastpathTV.EncMapUint8Int16V(*v, e)
798 case map[uint8]int32:
799 fastpathTV.EncMapUint8Int32V(v, e)
800 case *map[uint8]int32:
801 fastpathTV.EncMapUint8Int32V(*v, e)
802 case map[uint8]int64:
803 fastpathTV.EncMapUint8Int64V(v, e)
804 case *map[uint8]int64:
805 fastpathTV.EncMapUint8Int64V(*v, e)
806 case map[uint8]float32:
807 fastpathTV.EncMapUint8Float32V(v, e)
808 case *map[uint8]float32:
809 fastpathTV.EncMapUint8Float32V(*v, e)
810 case map[uint8]float64:
811 fastpathTV.EncMapUint8Float64V(v, e)
812 case *map[uint8]float64:
813 fastpathTV.EncMapUint8Float64V(*v, e)
814 case map[uint8]bool:
815 fastpathTV.EncMapUint8BoolV(v, e)
816 case *map[uint8]bool:
817 fastpathTV.EncMapUint8BoolV(*v, e)
818 case map[uint16]interface{}:
819 fastpathTV.EncMapUint16IntfV(v, e)
820 case *map[uint16]interface{}:
821 fastpathTV.EncMapUint16IntfV(*v, e)
822 case map[uint16]string:
823 fastpathTV.EncMapUint16StringV(v, e)
824 case *map[uint16]string:
825 fastpathTV.EncMapUint16StringV(*v, e)
826 case map[uint16]uint:
827 fastpathTV.EncMapUint16UintV(v, e)
828 case *map[uint16]uint:
829 fastpathTV.EncMapUint16UintV(*v, e)
830 case map[uint16]uint8:
831 fastpathTV.EncMapUint16Uint8V(v, e)
832 case *map[uint16]uint8:
833 fastpathTV.EncMapUint16Uint8V(*v, e)
834 case map[uint16]uint16:
835 fastpathTV.EncMapUint16Uint16V(v, e)
836 case *map[uint16]uint16:
837 fastpathTV.EncMapUint16Uint16V(*v, e)
838 case map[uint16]uint32:
839 fastpathTV.EncMapUint16Uint32V(v, e)
840 case *map[uint16]uint32:
841 fastpathTV.EncMapUint16Uint32V(*v, e)
842 case map[uint16]uint64:
843 fastpathTV.EncMapUint16Uint64V(v, e)
844 case *map[uint16]uint64:
845 fastpathTV.EncMapUint16Uint64V(*v, e)
846 case map[uint16]uintptr:
847 fastpathTV.EncMapUint16UintptrV(v, e)
848 case *map[uint16]uintptr:
849 fastpathTV.EncMapUint16UintptrV(*v, e)
850 case map[uint16]int:
851 fastpathTV.EncMapUint16IntV(v, e)
852 case *map[uint16]int:
853 fastpathTV.EncMapUint16IntV(*v, e)
854 case map[uint16]int8:
855 fastpathTV.EncMapUint16Int8V(v, e)
856 case *map[uint16]int8:
857 fastpathTV.EncMapUint16Int8V(*v, e)
858 case map[uint16]int16:
859 fastpathTV.EncMapUint16Int16V(v, e)
860 case *map[uint16]int16:
861 fastpathTV.EncMapUint16Int16V(*v, e)
862 case map[uint16]int32:
863 fastpathTV.EncMapUint16Int32V(v, e)
864 case *map[uint16]int32:
865 fastpathTV.EncMapUint16Int32V(*v, e)
866 case map[uint16]int64:
867 fastpathTV.EncMapUint16Int64V(v, e)
868 case *map[uint16]int64:
869 fastpathTV.EncMapUint16Int64V(*v, e)
870 case map[uint16]float32:
871 fastpathTV.EncMapUint16Float32V(v, e)
872 case *map[uint16]float32:
873 fastpathTV.EncMapUint16Float32V(*v, e)
874 case map[uint16]float64:
875 fastpathTV.EncMapUint16Float64V(v, e)
876 case *map[uint16]float64:
877 fastpathTV.EncMapUint16Float64V(*v, e)
878 case map[uint16]bool:
879 fastpathTV.EncMapUint16BoolV(v, e)
880 case *map[uint16]bool:
881 fastpathTV.EncMapUint16BoolV(*v, e)
882 case map[uint32]interface{}:
883 fastpathTV.EncMapUint32IntfV(v, e)
884 case *map[uint32]interface{}:
885 fastpathTV.EncMapUint32IntfV(*v, e)
886 case map[uint32]string:
887 fastpathTV.EncMapUint32StringV(v, e)
888 case *map[uint32]string:
889 fastpathTV.EncMapUint32StringV(*v, e)
890 case map[uint32]uint:
891 fastpathTV.EncMapUint32UintV(v, e)
892 case *map[uint32]uint:
893 fastpathTV.EncMapUint32UintV(*v, e)
894 case map[uint32]uint8:
895 fastpathTV.EncMapUint32Uint8V(v, e)
896 case *map[uint32]uint8:
897 fastpathTV.EncMapUint32Uint8V(*v, e)
898 case map[uint32]uint16:
899 fastpathTV.EncMapUint32Uint16V(v, e)
900 case *map[uint32]uint16:
901 fastpathTV.EncMapUint32Uint16V(*v, e)
902 case map[uint32]uint32:
903 fastpathTV.EncMapUint32Uint32V(v, e)
904 case *map[uint32]uint32:
905 fastpathTV.EncMapUint32Uint32V(*v, e)
906 case map[uint32]uint64:
907 fastpathTV.EncMapUint32Uint64V(v, e)
908 case *map[uint32]uint64:
909 fastpathTV.EncMapUint32Uint64V(*v, e)
910 case map[uint32]uintptr:
911 fastpathTV.EncMapUint32UintptrV(v, e)
912 case *map[uint32]uintptr:
913 fastpathTV.EncMapUint32UintptrV(*v, e)
914 case map[uint32]int:
915 fastpathTV.EncMapUint32IntV(v, e)
916 case *map[uint32]int:
917 fastpathTV.EncMapUint32IntV(*v, e)
918 case map[uint32]int8:
919 fastpathTV.EncMapUint32Int8V(v, e)
920 case *map[uint32]int8:
921 fastpathTV.EncMapUint32Int8V(*v, e)
922 case map[uint32]int16:
923 fastpathTV.EncMapUint32Int16V(v, e)
924 case *map[uint32]int16:
925 fastpathTV.EncMapUint32Int16V(*v, e)
926 case map[uint32]int32:
927 fastpathTV.EncMapUint32Int32V(v, e)
928 case *map[uint32]int32:
929 fastpathTV.EncMapUint32Int32V(*v, e)
930 case map[uint32]int64:
931 fastpathTV.EncMapUint32Int64V(v, e)
932 case *map[uint32]int64:
933 fastpathTV.EncMapUint32Int64V(*v, e)
934 case map[uint32]float32:
935 fastpathTV.EncMapUint32Float32V(v, e)
936 case *map[uint32]float32:
937 fastpathTV.EncMapUint32Float32V(*v, e)
938 case map[uint32]float64:
939 fastpathTV.EncMapUint32Float64V(v, e)
940 case *map[uint32]float64:
941 fastpathTV.EncMapUint32Float64V(*v, e)
942 case map[uint32]bool:
943 fastpathTV.EncMapUint32BoolV(v, e)
944 case *map[uint32]bool:
945 fastpathTV.EncMapUint32BoolV(*v, e)
946 case map[uint64]interface{}:
947 fastpathTV.EncMapUint64IntfV(v, e)
948 case *map[uint64]interface{}:
949 fastpathTV.EncMapUint64IntfV(*v, e)
950 case map[uint64]string:
951 fastpathTV.EncMapUint64StringV(v, e)
952 case *map[uint64]string:
953 fastpathTV.EncMapUint64StringV(*v, e)
954 case map[uint64]uint:
955 fastpathTV.EncMapUint64UintV(v, e)
956 case *map[uint64]uint:
957 fastpathTV.EncMapUint64UintV(*v, e)
958 case map[uint64]uint8:
959 fastpathTV.EncMapUint64Uint8V(v, e)
960 case *map[uint64]uint8:
961 fastpathTV.EncMapUint64Uint8V(*v, e)
962 case map[uint64]uint16:
963 fastpathTV.EncMapUint64Uint16V(v, e)
964 case *map[uint64]uint16:
965 fastpathTV.EncMapUint64Uint16V(*v, e)
966 case map[uint64]uint32:
967 fastpathTV.EncMapUint64Uint32V(v, e)
968 case *map[uint64]uint32:
969 fastpathTV.EncMapUint64Uint32V(*v, e)
970 case map[uint64]uint64:
971 fastpathTV.EncMapUint64Uint64V(v, e)
972 case *map[uint64]uint64:
973 fastpathTV.EncMapUint64Uint64V(*v, e)
974 case map[uint64]uintptr:
975 fastpathTV.EncMapUint64UintptrV(v, e)
976 case *map[uint64]uintptr:
977 fastpathTV.EncMapUint64UintptrV(*v, e)
978 case map[uint64]int:
979 fastpathTV.EncMapUint64IntV(v, e)
980 case *map[uint64]int:
981 fastpathTV.EncMapUint64IntV(*v, e)
982 case map[uint64]int8:
983 fastpathTV.EncMapUint64Int8V(v, e)
984 case *map[uint64]int8:
985 fastpathTV.EncMapUint64Int8V(*v, e)
986 case map[uint64]int16:
987 fastpathTV.EncMapUint64Int16V(v, e)
988 case *map[uint64]int16:
989 fastpathTV.EncMapUint64Int16V(*v, e)
990 case map[uint64]int32:
991 fastpathTV.EncMapUint64Int32V(v, e)
992 case *map[uint64]int32:
993 fastpathTV.EncMapUint64Int32V(*v, e)
994 case map[uint64]int64:
995 fastpathTV.EncMapUint64Int64V(v, e)
996 case *map[uint64]int64:
997 fastpathTV.EncMapUint64Int64V(*v, e)
998 case map[uint64]float32:
999 fastpathTV.EncMapUint64Float32V(v, e)
1000 case *map[uint64]float32:
1001 fastpathTV.EncMapUint64Float32V(*v, e)
1002 case map[uint64]float64:
1003 fastpathTV.EncMapUint64Float64V(v, e)
1004 case *map[uint64]float64:
1005 fastpathTV.EncMapUint64Float64V(*v, e)
1006 case map[uint64]bool:
1007 fastpathTV.EncMapUint64BoolV(v, e)
1008 case *map[uint64]bool:
1009 fastpathTV.EncMapUint64BoolV(*v, e)
1010 case map[uintptr]interface{}:
1011 fastpathTV.EncMapUintptrIntfV(v, e)
1012 case *map[uintptr]interface{}:
1013 fastpathTV.EncMapUintptrIntfV(*v, e)
1014 case map[uintptr]string:
1015 fastpathTV.EncMapUintptrStringV(v, e)
1016 case *map[uintptr]string:
1017 fastpathTV.EncMapUintptrStringV(*v, e)
1018 case map[uintptr]uint:
1019 fastpathTV.EncMapUintptrUintV(v, e)
1020 case *map[uintptr]uint:
1021 fastpathTV.EncMapUintptrUintV(*v, e)
1022 case map[uintptr]uint8:
1023 fastpathTV.EncMapUintptrUint8V(v, e)
1024 case *map[uintptr]uint8:
1025 fastpathTV.EncMapUintptrUint8V(*v, e)
1026 case map[uintptr]uint16:
1027 fastpathTV.EncMapUintptrUint16V(v, e)
1028 case *map[uintptr]uint16:
1029 fastpathTV.EncMapUintptrUint16V(*v, e)
1030 case map[uintptr]uint32:
1031 fastpathTV.EncMapUintptrUint32V(v, e)
1032 case *map[uintptr]uint32:
1033 fastpathTV.EncMapUintptrUint32V(*v, e)
1034 case map[uintptr]uint64:
1035 fastpathTV.EncMapUintptrUint64V(v, e)
1036 case *map[uintptr]uint64:
1037 fastpathTV.EncMapUintptrUint64V(*v, e)
1038 case map[uintptr]uintptr:
1039 fastpathTV.EncMapUintptrUintptrV(v, e)
1040 case *map[uintptr]uintptr:
1041 fastpathTV.EncMapUintptrUintptrV(*v, e)
1042 case map[uintptr]int:
1043 fastpathTV.EncMapUintptrIntV(v, e)
1044 case *map[uintptr]int:
1045 fastpathTV.EncMapUintptrIntV(*v, e)
1046 case map[uintptr]int8:
1047 fastpathTV.EncMapUintptrInt8V(v, e)
1048 case *map[uintptr]int8:
1049 fastpathTV.EncMapUintptrInt8V(*v, e)
1050 case map[uintptr]int16:
1051 fastpathTV.EncMapUintptrInt16V(v, e)
1052 case *map[uintptr]int16:
1053 fastpathTV.EncMapUintptrInt16V(*v, e)
1054 case map[uintptr]int32:
1055 fastpathTV.EncMapUintptrInt32V(v, e)
1056 case *map[uintptr]int32:
1057 fastpathTV.EncMapUintptrInt32V(*v, e)
1058 case map[uintptr]int64:
1059 fastpathTV.EncMapUintptrInt64V(v, e)
1060 case *map[uintptr]int64:
1061 fastpathTV.EncMapUintptrInt64V(*v, e)
1062 case map[uintptr]float32:
1063 fastpathTV.EncMapUintptrFloat32V(v, e)
1064 case *map[uintptr]float32:
1065 fastpathTV.EncMapUintptrFloat32V(*v, e)
1066 case map[uintptr]float64:
1067 fastpathTV.EncMapUintptrFloat64V(v, e)
1068 case *map[uintptr]float64:
1069 fastpathTV.EncMapUintptrFloat64V(*v, e)
1070 case map[uintptr]bool:
1071 fastpathTV.EncMapUintptrBoolV(v, e)
1072 case *map[uintptr]bool:
1073 fastpathTV.EncMapUintptrBoolV(*v, e)
1074 case map[int]interface{}:
1075 fastpathTV.EncMapIntIntfV(v, e)
1076 case *map[int]interface{}:
1077 fastpathTV.EncMapIntIntfV(*v, e)
1078 case map[int]string:
1079 fastpathTV.EncMapIntStringV(v, e)
1080 case *map[int]string:
1081 fastpathTV.EncMapIntStringV(*v, e)
1082 case map[int]uint:
1083 fastpathTV.EncMapIntUintV(v, e)
1084 case *map[int]uint:
1085 fastpathTV.EncMapIntUintV(*v, e)
1086 case map[int]uint8:
1087 fastpathTV.EncMapIntUint8V(v, e)
1088 case *map[int]uint8:
1089 fastpathTV.EncMapIntUint8V(*v, e)
1090 case map[int]uint16:
1091 fastpathTV.EncMapIntUint16V(v, e)
1092 case *map[int]uint16:
1093 fastpathTV.EncMapIntUint16V(*v, e)
1094 case map[int]uint32:
1095 fastpathTV.EncMapIntUint32V(v, e)
1096 case *map[int]uint32:
1097 fastpathTV.EncMapIntUint32V(*v, e)
1098 case map[int]uint64:
1099 fastpathTV.EncMapIntUint64V(v, e)
1100 case *map[int]uint64:
1101 fastpathTV.EncMapIntUint64V(*v, e)
1102 case map[int]uintptr:
1103 fastpathTV.EncMapIntUintptrV(v, e)
1104 case *map[int]uintptr:
1105 fastpathTV.EncMapIntUintptrV(*v, e)
1106 case map[int]int:
1107 fastpathTV.EncMapIntIntV(v, e)
1108 case *map[int]int:
1109 fastpathTV.EncMapIntIntV(*v, e)
1110 case map[int]int8:
1111 fastpathTV.EncMapIntInt8V(v, e)
1112 case *map[int]int8:
1113 fastpathTV.EncMapIntInt8V(*v, e)
1114 case map[int]int16:
1115 fastpathTV.EncMapIntInt16V(v, e)
1116 case *map[int]int16:
1117 fastpathTV.EncMapIntInt16V(*v, e)
1118 case map[int]int32:
1119 fastpathTV.EncMapIntInt32V(v, e)
1120 case *map[int]int32:
1121 fastpathTV.EncMapIntInt32V(*v, e)
1122 case map[int]int64:
1123 fastpathTV.EncMapIntInt64V(v, e)
1124 case *map[int]int64:
1125 fastpathTV.EncMapIntInt64V(*v, e)
1126 case map[int]float32:
1127 fastpathTV.EncMapIntFloat32V(v, e)
1128 case *map[int]float32:
1129 fastpathTV.EncMapIntFloat32V(*v, e)
1130 case map[int]float64:
1131 fastpathTV.EncMapIntFloat64V(v, e)
1132 case *map[int]float64:
1133 fastpathTV.EncMapIntFloat64V(*v, e)
1134 case map[int]bool:
1135 fastpathTV.EncMapIntBoolV(v, e)
1136 case *map[int]bool:
1137 fastpathTV.EncMapIntBoolV(*v, e)
1138 case map[int8]interface{}:
1139 fastpathTV.EncMapInt8IntfV(v, e)
1140 case *map[int8]interface{}:
1141 fastpathTV.EncMapInt8IntfV(*v, e)
1142 case map[int8]string:
1143 fastpathTV.EncMapInt8StringV(v, e)
1144 case *map[int8]string:
1145 fastpathTV.EncMapInt8StringV(*v, e)
1146 case map[int8]uint:
1147 fastpathTV.EncMapInt8UintV(v, e)
1148 case *map[int8]uint:
1149 fastpathTV.EncMapInt8UintV(*v, e)
1150 case map[int8]uint8:
1151 fastpathTV.EncMapInt8Uint8V(v, e)
1152 case *map[int8]uint8:
1153 fastpathTV.EncMapInt8Uint8V(*v, e)
1154 case map[int8]uint16:
1155 fastpathTV.EncMapInt8Uint16V(v, e)
1156 case *map[int8]uint16:
1157 fastpathTV.EncMapInt8Uint16V(*v, e)
1158 case map[int8]uint32:
1159 fastpathTV.EncMapInt8Uint32V(v, e)
1160 case *map[int8]uint32:
1161 fastpathTV.EncMapInt8Uint32V(*v, e)
1162 case map[int8]uint64:
1163 fastpathTV.EncMapInt8Uint64V(v, e)
1164 case *map[int8]uint64:
1165 fastpathTV.EncMapInt8Uint64V(*v, e)
1166 case map[int8]uintptr:
1167 fastpathTV.EncMapInt8UintptrV(v, e)
1168 case *map[int8]uintptr:
1169 fastpathTV.EncMapInt8UintptrV(*v, e)
1170 case map[int8]int:
1171 fastpathTV.EncMapInt8IntV(v, e)
1172 case *map[int8]int:
1173 fastpathTV.EncMapInt8IntV(*v, e)
1174 case map[int8]int8:
1175 fastpathTV.EncMapInt8Int8V(v, e)
1176 case *map[int8]int8:
1177 fastpathTV.EncMapInt8Int8V(*v, e)
1178 case map[int8]int16:
1179 fastpathTV.EncMapInt8Int16V(v, e)
1180 case *map[int8]int16:
1181 fastpathTV.EncMapInt8Int16V(*v, e)
1182 case map[int8]int32:
1183 fastpathTV.EncMapInt8Int32V(v, e)
1184 case *map[int8]int32:
1185 fastpathTV.EncMapInt8Int32V(*v, e)
1186 case map[int8]int64:
1187 fastpathTV.EncMapInt8Int64V(v, e)
1188 case *map[int8]int64:
1189 fastpathTV.EncMapInt8Int64V(*v, e)
1190 case map[int8]float32:
1191 fastpathTV.EncMapInt8Float32V(v, e)
1192 case *map[int8]float32:
1193 fastpathTV.EncMapInt8Float32V(*v, e)
1194 case map[int8]float64:
1195 fastpathTV.EncMapInt8Float64V(v, e)
1196 case *map[int8]float64:
1197 fastpathTV.EncMapInt8Float64V(*v, e)
1198 case map[int8]bool:
1199 fastpathTV.EncMapInt8BoolV(v, e)
1200 case *map[int8]bool:
1201 fastpathTV.EncMapInt8BoolV(*v, e)
1202 case map[int16]interface{}:
1203 fastpathTV.EncMapInt16IntfV(v, e)
1204 case *map[int16]interface{}:
1205 fastpathTV.EncMapInt16IntfV(*v, e)
1206 case map[int16]string:
1207 fastpathTV.EncMapInt16StringV(v, e)
1208 case *map[int16]string:
1209 fastpathTV.EncMapInt16StringV(*v, e)
1210 case map[int16]uint:
1211 fastpathTV.EncMapInt16UintV(v, e)
1212 case *map[int16]uint:
1213 fastpathTV.EncMapInt16UintV(*v, e)
1214 case map[int16]uint8:
1215 fastpathTV.EncMapInt16Uint8V(v, e)
1216 case *map[int16]uint8:
1217 fastpathTV.EncMapInt16Uint8V(*v, e)
1218 case map[int16]uint16:
1219 fastpathTV.EncMapInt16Uint16V(v, e)
1220 case *map[int16]uint16:
1221 fastpathTV.EncMapInt16Uint16V(*v, e)
1222 case map[int16]uint32:
1223 fastpathTV.EncMapInt16Uint32V(v, e)
1224 case *map[int16]uint32:
1225 fastpathTV.EncMapInt16Uint32V(*v, e)
1226 case map[int16]uint64:
1227 fastpathTV.EncMapInt16Uint64V(v, e)
1228 case *map[int16]uint64:
1229 fastpathTV.EncMapInt16Uint64V(*v, e)
1230 case map[int16]uintptr:
1231 fastpathTV.EncMapInt16UintptrV(v, e)
1232 case *map[int16]uintptr:
1233 fastpathTV.EncMapInt16UintptrV(*v, e)
1234 case map[int16]int:
1235 fastpathTV.EncMapInt16IntV(v, e)
1236 case *map[int16]int:
1237 fastpathTV.EncMapInt16IntV(*v, e)
1238 case map[int16]int8:
1239 fastpathTV.EncMapInt16Int8V(v, e)
1240 case *map[int16]int8:
1241 fastpathTV.EncMapInt16Int8V(*v, e)
1242 case map[int16]int16:
1243 fastpathTV.EncMapInt16Int16V(v, e)
1244 case *map[int16]int16:
1245 fastpathTV.EncMapInt16Int16V(*v, e)
1246 case map[int16]int32:
1247 fastpathTV.EncMapInt16Int32V(v, e)
1248 case *map[int16]int32:
1249 fastpathTV.EncMapInt16Int32V(*v, e)
1250 case map[int16]int64:
1251 fastpathTV.EncMapInt16Int64V(v, e)
1252 case *map[int16]int64:
1253 fastpathTV.EncMapInt16Int64V(*v, e)
1254 case map[int16]float32:
1255 fastpathTV.EncMapInt16Float32V(v, e)
1256 case *map[int16]float32:
1257 fastpathTV.EncMapInt16Float32V(*v, e)
1258 case map[int16]float64:
1259 fastpathTV.EncMapInt16Float64V(v, e)
1260 case *map[int16]float64:
1261 fastpathTV.EncMapInt16Float64V(*v, e)
1262 case map[int16]bool:
1263 fastpathTV.EncMapInt16BoolV(v, e)
1264 case *map[int16]bool:
1265 fastpathTV.EncMapInt16BoolV(*v, e)
1266 case map[int32]interface{}:
1267 fastpathTV.EncMapInt32IntfV(v, e)
1268 case *map[int32]interface{}:
1269 fastpathTV.EncMapInt32IntfV(*v, e)
1270 case map[int32]string:
1271 fastpathTV.EncMapInt32StringV(v, e)
1272 case *map[int32]string:
1273 fastpathTV.EncMapInt32StringV(*v, e)
1274 case map[int32]uint:
1275 fastpathTV.EncMapInt32UintV(v, e)
1276 case *map[int32]uint:
1277 fastpathTV.EncMapInt32UintV(*v, e)
1278 case map[int32]uint8:
1279 fastpathTV.EncMapInt32Uint8V(v, e)
1280 case *map[int32]uint8:
1281 fastpathTV.EncMapInt32Uint8V(*v, e)
1282 case map[int32]uint16:
1283 fastpathTV.EncMapInt32Uint16V(v, e)
1284 case *map[int32]uint16:
1285 fastpathTV.EncMapInt32Uint16V(*v, e)
1286 case map[int32]uint32:
1287 fastpathTV.EncMapInt32Uint32V(v, e)
1288 case *map[int32]uint32:
1289 fastpathTV.EncMapInt32Uint32V(*v, e)
1290 case map[int32]uint64:
1291 fastpathTV.EncMapInt32Uint64V(v, e)
1292 case *map[int32]uint64:
1293 fastpathTV.EncMapInt32Uint64V(*v, e)
1294 case map[int32]uintptr:
1295 fastpathTV.EncMapInt32UintptrV(v, e)
1296 case *map[int32]uintptr:
1297 fastpathTV.EncMapInt32UintptrV(*v, e)
1298 case map[int32]int:
1299 fastpathTV.EncMapInt32IntV(v, e)
1300 case *map[int32]int:
1301 fastpathTV.EncMapInt32IntV(*v, e)
1302 case map[int32]int8:
1303 fastpathTV.EncMapInt32Int8V(v, e)
1304 case *map[int32]int8:
1305 fastpathTV.EncMapInt32Int8V(*v, e)
1306 case map[int32]int16:
1307 fastpathTV.EncMapInt32Int16V(v, e)
1308 case *map[int32]int16:
1309 fastpathTV.EncMapInt32Int16V(*v, e)
1310 case map[int32]int32:
1311 fastpathTV.EncMapInt32Int32V(v, e)
1312 case *map[int32]int32:
1313 fastpathTV.EncMapInt32Int32V(*v, e)
1314 case map[int32]int64:
1315 fastpathTV.EncMapInt32Int64V(v, e)
1316 case *map[int32]int64:
1317 fastpathTV.EncMapInt32Int64V(*v, e)
1318 case map[int32]float32:
1319 fastpathTV.EncMapInt32Float32V(v, e)
1320 case *map[int32]float32:
1321 fastpathTV.EncMapInt32Float32V(*v, e)
1322 case map[int32]float64:
1323 fastpathTV.EncMapInt32Float64V(v, e)
1324 case *map[int32]float64:
1325 fastpathTV.EncMapInt32Float64V(*v, e)
1326 case map[int32]bool:
1327 fastpathTV.EncMapInt32BoolV(v, e)
1328 case *map[int32]bool:
1329 fastpathTV.EncMapInt32BoolV(*v, e)
1330 case map[int64]interface{}:
1331 fastpathTV.EncMapInt64IntfV(v, e)
1332 case *map[int64]interface{}:
1333 fastpathTV.EncMapInt64IntfV(*v, e)
1334 case map[int64]string:
1335 fastpathTV.EncMapInt64StringV(v, e)
1336 case *map[int64]string:
1337 fastpathTV.EncMapInt64StringV(*v, e)
1338 case map[int64]uint:
1339 fastpathTV.EncMapInt64UintV(v, e)
1340 case *map[int64]uint:
1341 fastpathTV.EncMapInt64UintV(*v, e)
1342 case map[int64]uint8:
1343 fastpathTV.EncMapInt64Uint8V(v, e)
1344 case *map[int64]uint8:
1345 fastpathTV.EncMapInt64Uint8V(*v, e)
1346 case map[int64]uint16:
1347 fastpathTV.EncMapInt64Uint16V(v, e)
1348 case *map[int64]uint16:
1349 fastpathTV.EncMapInt64Uint16V(*v, e)
1350 case map[int64]uint32:
1351 fastpathTV.EncMapInt64Uint32V(v, e)
1352 case *map[int64]uint32:
1353 fastpathTV.EncMapInt64Uint32V(*v, e)
1354 case map[int64]uint64:
1355 fastpathTV.EncMapInt64Uint64V(v, e)
1356 case *map[int64]uint64:
1357 fastpathTV.EncMapInt64Uint64V(*v, e)
1358 case map[int64]uintptr:
1359 fastpathTV.EncMapInt64UintptrV(v, e)
1360 case *map[int64]uintptr:
1361 fastpathTV.EncMapInt64UintptrV(*v, e)
1362 case map[int64]int:
1363 fastpathTV.EncMapInt64IntV(v, e)
1364 case *map[int64]int:
1365 fastpathTV.EncMapInt64IntV(*v, e)
1366 case map[int64]int8:
1367 fastpathTV.EncMapInt64Int8V(v, e)
1368 case *map[int64]int8:
1369 fastpathTV.EncMapInt64Int8V(*v, e)
1370 case map[int64]int16:
1371 fastpathTV.EncMapInt64Int16V(v, e)
1372 case *map[int64]int16:
1373 fastpathTV.EncMapInt64Int16V(*v, e)
1374 case map[int64]int32:
1375 fastpathTV.EncMapInt64Int32V(v, e)
1376 case *map[int64]int32:
1377 fastpathTV.EncMapInt64Int32V(*v, e)
1378 case map[int64]int64:
1379 fastpathTV.EncMapInt64Int64V(v, e)
1380 case *map[int64]int64:
1381 fastpathTV.EncMapInt64Int64V(*v, e)
1382 case map[int64]float32:
1383 fastpathTV.EncMapInt64Float32V(v, e)
1384 case *map[int64]float32:
1385 fastpathTV.EncMapInt64Float32V(*v, e)
1386 case map[int64]float64:
1387 fastpathTV.EncMapInt64Float64V(v, e)
1388 case *map[int64]float64:
1389 fastpathTV.EncMapInt64Float64V(*v, e)
1390 case map[int64]bool:
1391 fastpathTV.EncMapInt64BoolV(v, e)
1392 case *map[int64]bool:
1393 fastpathTV.EncMapInt64BoolV(*v, e)
1394 case map[bool]interface{}:
1395 fastpathTV.EncMapBoolIntfV(v, e)
1396 case *map[bool]interface{}:
1397 fastpathTV.EncMapBoolIntfV(*v, e)
1398 case map[bool]string:
1399 fastpathTV.EncMapBoolStringV(v, e)
1400 case *map[bool]string:
1401 fastpathTV.EncMapBoolStringV(*v, e)
1402 case map[bool]uint:
1403 fastpathTV.EncMapBoolUintV(v, e)
1404 case *map[bool]uint:
1405 fastpathTV.EncMapBoolUintV(*v, e)
1406 case map[bool]uint8:
1407 fastpathTV.EncMapBoolUint8V(v, e)
1408 case *map[bool]uint8:
1409 fastpathTV.EncMapBoolUint8V(*v, e)
1410 case map[bool]uint16:
1411 fastpathTV.EncMapBoolUint16V(v, e)
1412 case *map[bool]uint16:
1413 fastpathTV.EncMapBoolUint16V(*v, e)
1414 case map[bool]uint32:
1415 fastpathTV.EncMapBoolUint32V(v, e)
1416 case *map[bool]uint32:
1417 fastpathTV.EncMapBoolUint32V(*v, e)
1418 case map[bool]uint64:
1419 fastpathTV.EncMapBoolUint64V(v, e)
1420 case *map[bool]uint64:
1421 fastpathTV.EncMapBoolUint64V(*v, e)
1422 case map[bool]uintptr:
1423 fastpathTV.EncMapBoolUintptrV(v, e)
1424 case *map[bool]uintptr:
1425 fastpathTV.EncMapBoolUintptrV(*v, e)
1426 case map[bool]int:
1427 fastpathTV.EncMapBoolIntV(v, e)
1428 case *map[bool]int:
1429 fastpathTV.EncMapBoolIntV(*v, e)
1430 case map[bool]int8:
1431 fastpathTV.EncMapBoolInt8V(v, e)
1432 case *map[bool]int8:
1433 fastpathTV.EncMapBoolInt8V(*v, e)
1434 case map[bool]int16:
1435 fastpathTV.EncMapBoolInt16V(v, e)
1436 case *map[bool]int16:
1437 fastpathTV.EncMapBoolInt16V(*v, e)
1438 case map[bool]int32:
1439 fastpathTV.EncMapBoolInt32V(v, e)
1440 case *map[bool]int32:
1441 fastpathTV.EncMapBoolInt32V(*v, e)
1442 case map[bool]int64:
1443 fastpathTV.EncMapBoolInt64V(v, e)
1444 case *map[bool]int64:
1445 fastpathTV.EncMapBoolInt64V(*v, e)
1446 case map[bool]float32:
1447 fastpathTV.EncMapBoolFloat32V(v, e)
1448 case *map[bool]float32:
1449 fastpathTV.EncMapBoolFloat32V(*v, e)
1450 case map[bool]float64:
1451 fastpathTV.EncMapBoolFloat64V(v, e)
1452 case *map[bool]float64:
1453 fastpathTV.EncMapBoolFloat64V(*v, e)
1454 case map[bool]bool:
1455 fastpathTV.EncMapBoolBoolV(v, e)
1456 case *map[bool]bool:
1457 fastpathTV.EncMapBoolBoolV(*v, e)
1458
1459 default:
1460 _ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4
1461 return false
1462 }
1463 return true
1464}
1465
1466// -- -- fast path functions
1467
1468func (e *Encoder) fastpathEncSliceIntfR(f *codecFnInfo, rv reflect.Value) {
1469 if f.ti.mbs {
1470 fastpathTV.EncAsMapSliceIntfV(rv2i(rv).([]interface{}), e)
1471 } else {
1472 fastpathTV.EncSliceIntfV(rv2i(rv).([]interface{}), e)
1473 }
1474}
1475func (_ fastpathT) EncSliceIntfV(v []interface{}, e *Encoder) {
1476 if v == nil {
1477 e.e.EncodeNil()
1478 return
1479 }
1480 ee, esep := e.e, e.hh.hasElemSeparators()
1481 ee.WriteArrayStart(len(v))
1482 if esep {
1483 for _, v2 := range v {
1484 ee.WriteArrayElem()
1485 e.encode(v2)
1486 }
1487 } else {
1488 for _, v2 := range v {
1489 e.encode(v2)
1490 }
1491 }
1492 ee.WriteArrayEnd()
1493}
1494func (_ fastpathT) EncAsMapSliceIntfV(v []interface{}, e *Encoder) {
1495 ee, esep := e.e, e.hh.hasElemSeparators()
1496 if len(v)%2 == 1 {
1497 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1498 return
1499 }
1500 ee.WriteMapStart(len(v) / 2)
1501 if esep {
1502 for j, v2 := range v {
1503 if j%2 == 0 {
1504 ee.WriteMapElemKey()
1505 } else {
1506 ee.WriteMapElemValue()
1507 }
1508 e.encode(v2)
1509 }
1510 } else {
1511 for _, v2 := range v {
1512 e.encode(v2)
1513 }
1514 }
1515 ee.WriteMapEnd()
1516}
1517
1518func (e *Encoder) fastpathEncSliceStringR(f *codecFnInfo, rv reflect.Value) {
1519 if f.ti.mbs {
1520 fastpathTV.EncAsMapSliceStringV(rv2i(rv).([]string), e)
1521 } else {
1522 fastpathTV.EncSliceStringV(rv2i(rv).([]string), e)
1523 }
1524}
1525func (_ fastpathT) EncSliceStringV(v []string, e *Encoder) {
1526 if v == nil {
1527 e.e.EncodeNil()
1528 return
1529 }
1530 ee, esep := e.e, e.hh.hasElemSeparators()
1531 ee.WriteArrayStart(len(v))
1532 if esep {
1533 for _, v2 := range v {
1534 ee.WriteArrayElem()
1535 ee.EncodeString(cUTF8, v2)
1536 }
1537 } else {
1538 for _, v2 := range v {
1539 ee.EncodeString(cUTF8, v2)
1540 }
1541 }
1542 ee.WriteArrayEnd()
1543}
1544func (_ fastpathT) EncAsMapSliceStringV(v []string, e *Encoder) {
1545 ee, esep := e.e, e.hh.hasElemSeparators()
1546 if len(v)%2 == 1 {
1547 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1548 return
1549 }
1550 ee.WriteMapStart(len(v) / 2)
1551 if esep {
1552 for j, v2 := range v {
1553 if j%2 == 0 {
1554 ee.WriteMapElemKey()
1555 } else {
1556 ee.WriteMapElemValue()
1557 }
1558 ee.EncodeString(cUTF8, v2)
1559 }
1560 } else {
1561 for _, v2 := range v {
1562 ee.EncodeString(cUTF8, v2)
1563 }
1564 }
1565 ee.WriteMapEnd()
1566}
1567
1568func (e *Encoder) fastpathEncSliceFloat32R(f *codecFnInfo, rv reflect.Value) {
1569 if f.ti.mbs {
1570 fastpathTV.EncAsMapSliceFloat32V(rv2i(rv).([]float32), e)
1571 } else {
1572 fastpathTV.EncSliceFloat32V(rv2i(rv).([]float32), e)
1573 }
1574}
1575func (_ fastpathT) EncSliceFloat32V(v []float32, e *Encoder) {
1576 if v == nil {
1577 e.e.EncodeNil()
1578 return
1579 }
1580 ee, esep := e.e, e.hh.hasElemSeparators()
1581 ee.WriteArrayStart(len(v))
1582 if esep {
1583 for _, v2 := range v {
1584 ee.WriteArrayElem()
1585 ee.EncodeFloat32(v2)
1586 }
1587 } else {
1588 for _, v2 := range v {
1589 ee.EncodeFloat32(v2)
1590 }
1591 }
1592 ee.WriteArrayEnd()
1593}
1594func (_ fastpathT) EncAsMapSliceFloat32V(v []float32, e *Encoder) {
1595 ee, esep := e.e, e.hh.hasElemSeparators()
1596 if len(v)%2 == 1 {
1597 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1598 return
1599 }
1600 ee.WriteMapStart(len(v) / 2)
1601 if esep {
1602 for j, v2 := range v {
1603 if j%2 == 0 {
1604 ee.WriteMapElemKey()
1605 } else {
1606 ee.WriteMapElemValue()
1607 }
1608 ee.EncodeFloat32(v2)
1609 }
1610 } else {
1611 for _, v2 := range v {
1612 ee.EncodeFloat32(v2)
1613 }
1614 }
1615 ee.WriteMapEnd()
1616}
1617
1618func (e *Encoder) fastpathEncSliceFloat64R(f *codecFnInfo, rv reflect.Value) {
1619 if f.ti.mbs {
1620 fastpathTV.EncAsMapSliceFloat64V(rv2i(rv).([]float64), e)
1621 } else {
1622 fastpathTV.EncSliceFloat64V(rv2i(rv).([]float64), e)
1623 }
1624}
1625func (_ fastpathT) EncSliceFloat64V(v []float64, e *Encoder) {
1626 if v == nil {
1627 e.e.EncodeNil()
1628 return
1629 }
1630 ee, esep := e.e, e.hh.hasElemSeparators()
1631 ee.WriteArrayStart(len(v))
1632 if esep {
1633 for _, v2 := range v {
1634 ee.WriteArrayElem()
1635 ee.EncodeFloat64(v2)
1636 }
1637 } else {
1638 for _, v2 := range v {
1639 ee.EncodeFloat64(v2)
1640 }
1641 }
1642 ee.WriteArrayEnd()
1643}
1644func (_ fastpathT) EncAsMapSliceFloat64V(v []float64, e *Encoder) {
1645 ee, esep := e.e, e.hh.hasElemSeparators()
1646 if len(v)%2 == 1 {
1647 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1648 return
1649 }
1650 ee.WriteMapStart(len(v) / 2)
1651 if esep {
1652 for j, v2 := range v {
1653 if j%2 == 0 {
1654 ee.WriteMapElemKey()
1655 } else {
1656 ee.WriteMapElemValue()
1657 }
1658 ee.EncodeFloat64(v2)
1659 }
1660 } else {
1661 for _, v2 := range v {
1662 ee.EncodeFloat64(v2)
1663 }
1664 }
1665 ee.WriteMapEnd()
1666}
1667
1668func (e *Encoder) fastpathEncSliceUintR(f *codecFnInfo, rv reflect.Value) {
1669 if f.ti.mbs {
1670 fastpathTV.EncAsMapSliceUintV(rv2i(rv).([]uint), e)
1671 } else {
1672 fastpathTV.EncSliceUintV(rv2i(rv).([]uint), e)
1673 }
1674}
1675func (_ fastpathT) EncSliceUintV(v []uint, e *Encoder) {
1676 if v == nil {
1677 e.e.EncodeNil()
1678 return
1679 }
1680 ee, esep := e.e, e.hh.hasElemSeparators()
1681 ee.WriteArrayStart(len(v))
1682 if esep {
1683 for _, v2 := range v {
1684 ee.WriteArrayElem()
1685 ee.EncodeUint(uint64(v2))
1686 }
1687 } else {
1688 for _, v2 := range v {
1689 ee.EncodeUint(uint64(v2))
1690 }
1691 }
1692 ee.WriteArrayEnd()
1693}
1694func (_ fastpathT) EncAsMapSliceUintV(v []uint, e *Encoder) {
1695 ee, esep := e.e, e.hh.hasElemSeparators()
1696 if len(v)%2 == 1 {
1697 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1698 return
1699 }
1700 ee.WriteMapStart(len(v) / 2)
1701 if esep {
1702 for j, v2 := range v {
1703 if j%2 == 0 {
1704 ee.WriteMapElemKey()
1705 } else {
1706 ee.WriteMapElemValue()
1707 }
1708 ee.EncodeUint(uint64(v2))
1709 }
1710 } else {
1711 for _, v2 := range v {
1712 ee.EncodeUint(uint64(v2))
1713 }
1714 }
1715 ee.WriteMapEnd()
1716}
1717
1718func (e *Encoder) fastpathEncSliceUint8R(f *codecFnInfo, rv reflect.Value) {
1719 if f.ti.mbs {
1720 fastpathTV.EncAsMapSliceUint8V(rv2i(rv).([]uint8), e)
1721 } else {
1722 fastpathTV.EncSliceUint8V(rv2i(rv).([]uint8), e)
1723 }
1724}
1725func (_ fastpathT) EncSliceUint8V(v []uint8, e *Encoder) {
1726 if v == nil {
1727 e.e.EncodeNil()
1728 return
1729 }
1730 ee, esep := e.e, e.hh.hasElemSeparators()
1731 ee.WriteArrayStart(len(v))
1732 if esep {
1733 for _, v2 := range v {
1734 ee.WriteArrayElem()
1735 ee.EncodeUint(uint64(v2))
1736 }
1737 } else {
1738 for _, v2 := range v {
1739 ee.EncodeUint(uint64(v2))
1740 }
1741 }
1742 ee.WriteArrayEnd()
1743}
1744func (_ fastpathT) EncAsMapSliceUint8V(v []uint8, e *Encoder) {
1745 ee, esep := e.e, e.hh.hasElemSeparators()
1746 if len(v)%2 == 1 {
1747 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1748 return
1749 }
1750 ee.WriteMapStart(len(v) / 2)
1751 if esep {
1752 for j, v2 := range v {
1753 if j%2 == 0 {
1754 ee.WriteMapElemKey()
1755 } else {
1756 ee.WriteMapElemValue()
1757 }
1758 ee.EncodeUint(uint64(v2))
1759 }
1760 } else {
1761 for _, v2 := range v {
1762 ee.EncodeUint(uint64(v2))
1763 }
1764 }
1765 ee.WriteMapEnd()
1766}
1767
1768func (e *Encoder) fastpathEncSliceUint16R(f *codecFnInfo, rv reflect.Value) {
1769 if f.ti.mbs {
1770 fastpathTV.EncAsMapSliceUint16V(rv2i(rv).([]uint16), e)
1771 } else {
1772 fastpathTV.EncSliceUint16V(rv2i(rv).([]uint16), e)
1773 }
1774}
1775func (_ fastpathT) EncSliceUint16V(v []uint16, e *Encoder) {
1776 if v == nil {
1777 e.e.EncodeNil()
1778 return
1779 }
1780 ee, esep := e.e, e.hh.hasElemSeparators()
1781 ee.WriteArrayStart(len(v))
1782 if esep {
1783 for _, v2 := range v {
1784 ee.WriteArrayElem()
1785 ee.EncodeUint(uint64(v2))
1786 }
1787 } else {
1788 for _, v2 := range v {
1789 ee.EncodeUint(uint64(v2))
1790 }
1791 }
1792 ee.WriteArrayEnd()
1793}
1794func (_ fastpathT) EncAsMapSliceUint16V(v []uint16, e *Encoder) {
1795 ee, esep := e.e, e.hh.hasElemSeparators()
1796 if len(v)%2 == 1 {
1797 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1798 return
1799 }
1800 ee.WriteMapStart(len(v) / 2)
1801 if esep {
1802 for j, v2 := range v {
1803 if j%2 == 0 {
1804 ee.WriteMapElemKey()
1805 } else {
1806 ee.WriteMapElemValue()
1807 }
1808 ee.EncodeUint(uint64(v2))
1809 }
1810 } else {
1811 for _, v2 := range v {
1812 ee.EncodeUint(uint64(v2))
1813 }
1814 }
1815 ee.WriteMapEnd()
1816}
1817
1818func (e *Encoder) fastpathEncSliceUint32R(f *codecFnInfo, rv reflect.Value) {
1819 if f.ti.mbs {
1820 fastpathTV.EncAsMapSliceUint32V(rv2i(rv).([]uint32), e)
1821 } else {
1822 fastpathTV.EncSliceUint32V(rv2i(rv).([]uint32), e)
1823 }
1824}
1825func (_ fastpathT) EncSliceUint32V(v []uint32, e *Encoder) {
1826 if v == nil {
1827 e.e.EncodeNil()
1828 return
1829 }
1830 ee, esep := e.e, e.hh.hasElemSeparators()
1831 ee.WriteArrayStart(len(v))
1832 if esep {
1833 for _, v2 := range v {
1834 ee.WriteArrayElem()
1835 ee.EncodeUint(uint64(v2))
1836 }
1837 } else {
1838 for _, v2 := range v {
1839 ee.EncodeUint(uint64(v2))
1840 }
1841 }
1842 ee.WriteArrayEnd()
1843}
1844func (_ fastpathT) EncAsMapSliceUint32V(v []uint32, e *Encoder) {
1845 ee, esep := e.e, e.hh.hasElemSeparators()
1846 if len(v)%2 == 1 {
1847 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1848 return
1849 }
1850 ee.WriteMapStart(len(v) / 2)
1851 if esep {
1852 for j, v2 := range v {
1853 if j%2 == 0 {
1854 ee.WriteMapElemKey()
1855 } else {
1856 ee.WriteMapElemValue()
1857 }
1858 ee.EncodeUint(uint64(v2))
1859 }
1860 } else {
1861 for _, v2 := range v {
1862 ee.EncodeUint(uint64(v2))
1863 }
1864 }
1865 ee.WriteMapEnd()
1866}
1867
1868func (e *Encoder) fastpathEncSliceUint64R(f *codecFnInfo, rv reflect.Value) {
1869 if f.ti.mbs {
1870 fastpathTV.EncAsMapSliceUint64V(rv2i(rv).([]uint64), e)
1871 } else {
1872 fastpathTV.EncSliceUint64V(rv2i(rv).([]uint64), e)
1873 }
1874}
1875func (_ fastpathT) EncSliceUint64V(v []uint64, e *Encoder) {
1876 if v == nil {
1877 e.e.EncodeNil()
1878 return
1879 }
1880 ee, esep := e.e, e.hh.hasElemSeparators()
1881 ee.WriteArrayStart(len(v))
1882 if esep {
1883 for _, v2 := range v {
1884 ee.WriteArrayElem()
1885 ee.EncodeUint(uint64(v2))
1886 }
1887 } else {
1888 for _, v2 := range v {
1889 ee.EncodeUint(uint64(v2))
1890 }
1891 }
1892 ee.WriteArrayEnd()
1893}
1894func (_ fastpathT) EncAsMapSliceUint64V(v []uint64, e *Encoder) {
1895 ee, esep := e.e, e.hh.hasElemSeparators()
1896 if len(v)%2 == 1 {
1897 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1898 return
1899 }
1900 ee.WriteMapStart(len(v) / 2)
1901 if esep {
1902 for j, v2 := range v {
1903 if j%2 == 0 {
1904 ee.WriteMapElemKey()
1905 } else {
1906 ee.WriteMapElemValue()
1907 }
1908 ee.EncodeUint(uint64(v2))
1909 }
1910 } else {
1911 for _, v2 := range v {
1912 ee.EncodeUint(uint64(v2))
1913 }
1914 }
1915 ee.WriteMapEnd()
1916}
1917
1918func (e *Encoder) fastpathEncSliceUintptrR(f *codecFnInfo, rv reflect.Value) {
1919 if f.ti.mbs {
1920 fastpathTV.EncAsMapSliceUintptrV(rv2i(rv).([]uintptr), e)
1921 } else {
1922 fastpathTV.EncSliceUintptrV(rv2i(rv).([]uintptr), e)
1923 }
1924}
1925func (_ fastpathT) EncSliceUintptrV(v []uintptr, e *Encoder) {
1926 if v == nil {
1927 e.e.EncodeNil()
1928 return
1929 }
1930 ee, esep := e.e, e.hh.hasElemSeparators()
1931 ee.WriteArrayStart(len(v))
1932 if esep {
1933 for _, v2 := range v {
1934 ee.WriteArrayElem()
1935 e.encode(v2)
1936 }
1937 } else {
1938 for _, v2 := range v {
1939 e.encode(v2)
1940 }
1941 }
1942 ee.WriteArrayEnd()
1943}
1944func (_ fastpathT) EncAsMapSliceUintptrV(v []uintptr, e *Encoder) {
1945 ee, esep := e.e, e.hh.hasElemSeparators()
1946 if len(v)%2 == 1 {
1947 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1948 return
1949 }
1950 ee.WriteMapStart(len(v) / 2)
1951 if esep {
1952 for j, v2 := range v {
1953 if j%2 == 0 {
1954 ee.WriteMapElemKey()
1955 } else {
1956 ee.WriteMapElemValue()
1957 }
1958 e.encode(v2)
1959 }
1960 } else {
1961 for _, v2 := range v {
1962 e.encode(v2)
1963 }
1964 }
1965 ee.WriteMapEnd()
1966}
1967
1968func (e *Encoder) fastpathEncSliceIntR(f *codecFnInfo, rv reflect.Value) {
1969 if f.ti.mbs {
1970 fastpathTV.EncAsMapSliceIntV(rv2i(rv).([]int), e)
1971 } else {
1972 fastpathTV.EncSliceIntV(rv2i(rv).([]int), e)
1973 }
1974}
1975func (_ fastpathT) EncSliceIntV(v []int, e *Encoder) {
1976 if v == nil {
1977 e.e.EncodeNil()
1978 return
1979 }
1980 ee, esep := e.e, e.hh.hasElemSeparators()
1981 ee.WriteArrayStart(len(v))
1982 if esep {
1983 for _, v2 := range v {
1984 ee.WriteArrayElem()
1985 ee.EncodeInt(int64(v2))
1986 }
1987 } else {
1988 for _, v2 := range v {
1989 ee.EncodeInt(int64(v2))
1990 }
1991 }
1992 ee.WriteArrayEnd()
1993}
1994func (_ fastpathT) EncAsMapSliceIntV(v []int, e *Encoder) {
1995 ee, esep := e.e, e.hh.hasElemSeparators()
1996 if len(v)%2 == 1 {
1997 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
1998 return
1999 }
2000 ee.WriteMapStart(len(v) / 2)
2001 if esep {
2002 for j, v2 := range v {
2003 if j%2 == 0 {
2004 ee.WriteMapElemKey()
2005 } else {
2006 ee.WriteMapElemValue()
2007 }
2008 ee.EncodeInt(int64(v2))
2009 }
2010 } else {
2011 for _, v2 := range v {
2012 ee.EncodeInt(int64(v2))
2013 }
2014 }
2015 ee.WriteMapEnd()
2016}
2017
2018func (e *Encoder) fastpathEncSliceInt8R(f *codecFnInfo, rv reflect.Value) {
2019 if f.ti.mbs {
2020 fastpathTV.EncAsMapSliceInt8V(rv2i(rv).([]int8), e)
2021 } else {
2022 fastpathTV.EncSliceInt8V(rv2i(rv).([]int8), e)
2023 }
2024}
2025func (_ fastpathT) EncSliceInt8V(v []int8, e *Encoder) {
2026 if v == nil {
2027 e.e.EncodeNil()
2028 return
2029 }
2030 ee, esep := e.e, e.hh.hasElemSeparators()
2031 ee.WriteArrayStart(len(v))
2032 if esep {
2033 for _, v2 := range v {
2034 ee.WriteArrayElem()
2035 ee.EncodeInt(int64(v2))
2036 }
2037 } else {
2038 for _, v2 := range v {
2039 ee.EncodeInt(int64(v2))
2040 }
2041 }
2042 ee.WriteArrayEnd()
2043}
2044func (_ fastpathT) EncAsMapSliceInt8V(v []int8, e *Encoder) {
2045 ee, esep := e.e, e.hh.hasElemSeparators()
2046 if len(v)%2 == 1 {
2047 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
2048 return
2049 }
2050 ee.WriteMapStart(len(v) / 2)
2051 if esep {
2052 for j, v2 := range v {
2053 if j%2 == 0 {
2054 ee.WriteMapElemKey()
2055 } else {
2056 ee.WriteMapElemValue()
2057 }
2058 ee.EncodeInt(int64(v2))
2059 }
2060 } else {
2061 for _, v2 := range v {
2062 ee.EncodeInt(int64(v2))
2063 }
2064 }
2065 ee.WriteMapEnd()
2066}
2067
2068func (e *Encoder) fastpathEncSliceInt16R(f *codecFnInfo, rv reflect.Value) {
2069 if f.ti.mbs {
2070 fastpathTV.EncAsMapSliceInt16V(rv2i(rv).([]int16), e)
2071 } else {
2072 fastpathTV.EncSliceInt16V(rv2i(rv).([]int16), e)
2073 }
2074}
2075func (_ fastpathT) EncSliceInt16V(v []int16, e *Encoder) {
2076 if v == nil {
2077 e.e.EncodeNil()
2078 return
2079 }
2080 ee, esep := e.e, e.hh.hasElemSeparators()
2081 ee.WriteArrayStart(len(v))
2082 if esep {
2083 for _, v2 := range v {
2084 ee.WriteArrayElem()
2085 ee.EncodeInt(int64(v2))
2086 }
2087 } else {
2088 for _, v2 := range v {
2089 ee.EncodeInt(int64(v2))
2090 }
2091 }
2092 ee.WriteArrayEnd()
2093}
2094func (_ fastpathT) EncAsMapSliceInt16V(v []int16, e *Encoder) {
2095 ee, esep := e.e, e.hh.hasElemSeparators()
2096 if len(v)%2 == 1 {
2097 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
2098 return
2099 }
2100 ee.WriteMapStart(len(v) / 2)
2101 if esep {
2102 for j, v2 := range v {
2103 if j%2 == 0 {
2104 ee.WriteMapElemKey()
2105 } else {
2106 ee.WriteMapElemValue()
2107 }
2108 ee.EncodeInt(int64(v2))
2109 }
2110 } else {
2111 for _, v2 := range v {
2112 ee.EncodeInt(int64(v2))
2113 }
2114 }
2115 ee.WriteMapEnd()
2116}
2117
2118func (e *Encoder) fastpathEncSliceInt32R(f *codecFnInfo, rv reflect.Value) {
2119 if f.ti.mbs {
2120 fastpathTV.EncAsMapSliceInt32V(rv2i(rv).([]int32), e)
2121 } else {
2122 fastpathTV.EncSliceInt32V(rv2i(rv).([]int32), e)
2123 }
2124}
2125func (_ fastpathT) EncSliceInt32V(v []int32, e *Encoder) {
2126 if v == nil {
2127 e.e.EncodeNil()
2128 return
2129 }
2130 ee, esep := e.e, e.hh.hasElemSeparators()
2131 ee.WriteArrayStart(len(v))
2132 if esep {
2133 for _, v2 := range v {
2134 ee.WriteArrayElem()
2135 ee.EncodeInt(int64(v2))
2136 }
2137 } else {
2138 for _, v2 := range v {
2139 ee.EncodeInt(int64(v2))
2140 }
2141 }
2142 ee.WriteArrayEnd()
2143}
2144func (_ fastpathT) EncAsMapSliceInt32V(v []int32, e *Encoder) {
2145 ee, esep := e.e, e.hh.hasElemSeparators()
2146 if len(v)%2 == 1 {
2147 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
2148 return
2149 }
2150 ee.WriteMapStart(len(v) / 2)
2151 if esep {
2152 for j, v2 := range v {
2153 if j%2 == 0 {
2154 ee.WriteMapElemKey()
2155 } else {
2156 ee.WriteMapElemValue()
2157 }
2158 ee.EncodeInt(int64(v2))
2159 }
2160 } else {
2161 for _, v2 := range v {
2162 ee.EncodeInt(int64(v2))
2163 }
2164 }
2165 ee.WriteMapEnd()
2166}
2167
2168func (e *Encoder) fastpathEncSliceInt64R(f *codecFnInfo, rv reflect.Value) {
2169 if f.ti.mbs {
2170 fastpathTV.EncAsMapSliceInt64V(rv2i(rv).([]int64), e)
2171 } else {
2172 fastpathTV.EncSliceInt64V(rv2i(rv).([]int64), e)
2173 }
2174}
2175func (_ fastpathT) EncSliceInt64V(v []int64, e *Encoder) {
2176 if v == nil {
2177 e.e.EncodeNil()
2178 return
2179 }
2180 ee, esep := e.e, e.hh.hasElemSeparators()
2181 ee.WriteArrayStart(len(v))
2182 if esep {
2183 for _, v2 := range v {
2184 ee.WriteArrayElem()
2185 ee.EncodeInt(int64(v2))
2186 }
2187 } else {
2188 for _, v2 := range v {
2189 ee.EncodeInt(int64(v2))
2190 }
2191 }
2192 ee.WriteArrayEnd()
2193}
2194func (_ fastpathT) EncAsMapSliceInt64V(v []int64, e *Encoder) {
2195 ee, esep := e.e, e.hh.hasElemSeparators()
2196 if len(v)%2 == 1 {
2197 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
2198 return
2199 }
2200 ee.WriteMapStart(len(v) / 2)
2201 if esep {
2202 for j, v2 := range v {
2203 if j%2 == 0 {
2204 ee.WriteMapElemKey()
2205 } else {
2206 ee.WriteMapElemValue()
2207 }
2208 ee.EncodeInt(int64(v2))
2209 }
2210 } else {
2211 for _, v2 := range v {
2212 ee.EncodeInt(int64(v2))
2213 }
2214 }
2215 ee.WriteMapEnd()
2216}
2217
2218func (e *Encoder) fastpathEncSliceBoolR(f *codecFnInfo, rv reflect.Value) {
2219 if f.ti.mbs {
2220 fastpathTV.EncAsMapSliceBoolV(rv2i(rv).([]bool), e)
2221 } else {
2222 fastpathTV.EncSliceBoolV(rv2i(rv).([]bool), e)
2223 }
2224}
2225func (_ fastpathT) EncSliceBoolV(v []bool, e *Encoder) {
2226 if v == nil {
2227 e.e.EncodeNil()
2228 return
2229 }
2230 ee, esep := e.e, e.hh.hasElemSeparators()
2231 ee.WriteArrayStart(len(v))
2232 if esep {
2233 for _, v2 := range v {
2234 ee.WriteArrayElem()
2235 ee.EncodeBool(v2)
2236 }
2237 } else {
2238 for _, v2 := range v {
2239 ee.EncodeBool(v2)
2240 }
2241 }
2242 ee.WriteArrayEnd()
2243}
2244func (_ fastpathT) EncAsMapSliceBoolV(v []bool, e *Encoder) {
2245 ee, esep := e.e, e.hh.hasElemSeparators()
2246 if len(v)%2 == 1 {
2247 e.errorf("mapBySlice requires even slice length, but got %v", len(v))
2248 return
2249 }
2250 ee.WriteMapStart(len(v) / 2)
2251 if esep {
2252 for j, v2 := range v {
2253 if j%2 == 0 {
2254 ee.WriteMapElemKey()
2255 } else {
2256 ee.WriteMapElemValue()
2257 }
2258 ee.EncodeBool(v2)
2259 }
2260 } else {
2261 for _, v2 := range v {
2262 ee.EncodeBool(v2)
2263 }
2264 }
2265 ee.WriteMapEnd()
2266}
2267
2268func (e *Encoder) fastpathEncMapIntfIntfR(f *codecFnInfo, rv reflect.Value) {
2269 fastpathTV.EncMapIntfIntfV(rv2i(rv).(map[interface{}]interface{}), e)
2270}
2271func (_ fastpathT) EncMapIntfIntfV(v map[interface{}]interface{}, e *Encoder) {
2272 if v == nil {
2273 e.e.EncodeNil()
2274 return
2275 }
2276 ee, esep := e.e, e.hh.hasElemSeparators()
2277 ee.WriteMapStart(len(v))
2278 if e.h.Canonical {
2279 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2280 e2 := NewEncoderBytes(&mksv, e.hh)
2281 v2 := make([]bytesI, len(v))
2282 var i, l int
2283 var vp *bytesI
2284 for k2, _ := range v {
2285 l = len(mksv)
2286 e2.MustEncode(k2)
2287 vp = &v2[i]
2288 vp.v = mksv[l:]
2289 vp.i = k2
2290 i++
2291 }
2292 sort.Sort(bytesISlice(v2))
2293 if esep {
2294 for j := range v2 {
2295 ee.WriteMapElemKey()
2296 e.asis(v2[j].v)
2297 ee.WriteMapElemValue()
2298 e.encode(v[v2[j].i])
2299 }
2300 } else {
2301 for j := range v2 {
2302 e.asis(v2[j].v)
2303 e.encode(v[v2[j].i])
2304 }
2305 }
2306 } else {
2307 if esep {
2308 for k2, v2 := range v {
2309 ee.WriteMapElemKey()
2310 e.encode(k2)
2311 ee.WriteMapElemValue()
2312 e.encode(v2)
2313 }
2314 } else {
2315 for k2, v2 := range v {
2316 e.encode(k2)
2317 e.encode(v2)
2318 }
2319 }
2320 }
2321 ee.WriteMapEnd()
2322}
2323
2324func (e *Encoder) fastpathEncMapIntfStringR(f *codecFnInfo, rv reflect.Value) {
2325 fastpathTV.EncMapIntfStringV(rv2i(rv).(map[interface{}]string), e)
2326}
2327func (_ fastpathT) EncMapIntfStringV(v map[interface{}]string, e *Encoder) {
2328 if v == nil {
2329 e.e.EncodeNil()
2330 return
2331 }
2332 ee, esep := e.e, e.hh.hasElemSeparators()
2333 ee.WriteMapStart(len(v))
2334 if e.h.Canonical {
2335 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2336 e2 := NewEncoderBytes(&mksv, e.hh)
2337 v2 := make([]bytesI, len(v))
2338 var i, l int
2339 var vp *bytesI
2340 for k2, _ := range v {
2341 l = len(mksv)
2342 e2.MustEncode(k2)
2343 vp = &v2[i]
2344 vp.v = mksv[l:]
2345 vp.i = k2
2346 i++
2347 }
2348 sort.Sort(bytesISlice(v2))
2349 if esep {
2350 for j := range v2 {
2351 ee.WriteMapElemKey()
2352 e.asis(v2[j].v)
2353 ee.WriteMapElemValue()
2354 e.encode(v[v2[j].i])
2355 }
2356 } else {
2357 for j := range v2 {
2358 e.asis(v2[j].v)
2359 e.encode(v[v2[j].i])
2360 }
2361 }
2362 } else {
2363 if esep {
2364 for k2, v2 := range v {
2365 ee.WriteMapElemKey()
2366 e.encode(k2)
2367 ee.WriteMapElemValue()
2368 ee.EncodeString(cUTF8, v2)
2369 }
2370 } else {
2371 for k2, v2 := range v {
2372 e.encode(k2)
2373 ee.EncodeString(cUTF8, v2)
2374 }
2375 }
2376 }
2377 ee.WriteMapEnd()
2378}
2379
2380func (e *Encoder) fastpathEncMapIntfUintR(f *codecFnInfo, rv reflect.Value) {
2381 fastpathTV.EncMapIntfUintV(rv2i(rv).(map[interface{}]uint), e)
2382}
2383func (_ fastpathT) EncMapIntfUintV(v map[interface{}]uint, e *Encoder) {
2384 if v == nil {
2385 e.e.EncodeNil()
2386 return
2387 }
2388 ee, esep := e.e, e.hh.hasElemSeparators()
2389 ee.WriteMapStart(len(v))
2390 if e.h.Canonical {
2391 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2392 e2 := NewEncoderBytes(&mksv, e.hh)
2393 v2 := make([]bytesI, len(v))
2394 var i, l int
2395 var vp *bytesI
2396 for k2, _ := range v {
2397 l = len(mksv)
2398 e2.MustEncode(k2)
2399 vp = &v2[i]
2400 vp.v = mksv[l:]
2401 vp.i = k2
2402 i++
2403 }
2404 sort.Sort(bytesISlice(v2))
2405 if esep {
2406 for j := range v2 {
2407 ee.WriteMapElemKey()
2408 e.asis(v2[j].v)
2409 ee.WriteMapElemValue()
2410 e.encode(v[v2[j].i])
2411 }
2412 } else {
2413 for j := range v2 {
2414 e.asis(v2[j].v)
2415 e.encode(v[v2[j].i])
2416 }
2417 }
2418 } else {
2419 if esep {
2420 for k2, v2 := range v {
2421 ee.WriteMapElemKey()
2422 e.encode(k2)
2423 ee.WriteMapElemValue()
2424 ee.EncodeUint(uint64(v2))
2425 }
2426 } else {
2427 for k2, v2 := range v {
2428 e.encode(k2)
2429 ee.EncodeUint(uint64(v2))
2430 }
2431 }
2432 }
2433 ee.WriteMapEnd()
2434}
2435
2436func (e *Encoder) fastpathEncMapIntfUint8R(f *codecFnInfo, rv reflect.Value) {
2437 fastpathTV.EncMapIntfUint8V(rv2i(rv).(map[interface{}]uint8), e)
2438}
2439func (_ fastpathT) EncMapIntfUint8V(v map[interface{}]uint8, e *Encoder) {
2440 if v == nil {
2441 e.e.EncodeNil()
2442 return
2443 }
2444 ee, esep := e.e, e.hh.hasElemSeparators()
2445 ee.WriteMapStart(len(v))
2446 if e.h.Canonical {
2447 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2448 e2 := NewEncoderBytes(&mksv, e.hh)
2449 v2 := make([]bytesI, len(v))
2450 var i, l int
2451 var vp *bytesI
2452 for k2, _ := range v {
2453 l = len(mksv)
2454 e2.MustEncode(k2)
2455 vp = &v2[i]
2456 vp.v = mksv[l:]
2457 vp.i = k2
2458 i++
2459 }
2460 sort.Sort(bytesISlice(v2))
2461 if esep {
2462 for j := range v2 {
2463 ee.WriteMapElemKey()
2464 e.asis(v2[j].v)
2465 ee.WriteMapElemValue()
2466 e.encode(v[v2[j].i])
2467 }
2468 } else {
2469 for j := range v2 {
2470 e.asis(v2[j].v)
2471 e.encode(v[v2[j].i])
2472 }
2473 }
2474 } else {
2475 if esep {
2476 for k2, v2 := range v {
2477 ee.WriteMapElemKey()
2478 e.encode(k2)
2479 ee.WriteMapElemValue()
2480 ee.EncodeUint(uint64(v2))
2481 }
2482 } else {
2483 for k2, v2 := range v {
2484 e.encode(k2)
2485 ee.EncodeUint(uint64(v2))
2486 }
2487 }
2488 }
2489 ee.WriteMapEnd()
2490}
2491
2492func (e *Encoder) fastpathEncMapIntfUint16R(f *codecFnInfo, rv reflect.Value) {
2493 fastpathTV.EncMapIntfUint16V(rv2i(rv).(map[interface{}]uint16), e)
2494}
2495func (_ fastpathT) EncMapIntfUint16V(v map[interface{}]uint16, e *Encoder) {
2496 if v == nil {
2497 e.e.EncodeNil()
2498 return
2499 }
2500 ee, esep := e.e, e.hh.hasElemSeparators()
2501 ee.WriteMapStart(len(v))
2502 if e.h.Canonical {
2503 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2504 e2 := NewEncoderBytes(&mksv, e.hh)
2505 v2 := make([]bytesI, len(v))
2506 var i, l int
2507 var vp *bytesI
2508 for k2, _ := range v {
2509 l = len(mksv)
2510 e2.MustEncode(k2)
2511 vp = &v2[i]
2512 vp.v = mksv[l:]
2513 vp.i = k2
2514 i++
2515 }
2516 sort.Sort(bytesISlice(v2))
2517 if esep {
2518 for j := range v2 {
2519 ee.WriteMapElemKey()
2520 e.asis(v2[j].v)
2521 ee.WriteMapElemValue()
2522 e.encode(v[v2[j].i])
2523 }
2524 } else {
2525 for j := range v2 {
2526 e.asis(v2[j].v)
2527 e.encode(v[v2[j].i])
2528 }
2529 }
2530 } else {
2531 if esep {
2532 for k2, v2 := range v {
2533 ee.WriteMapElemKey()
2534 e.encode(k2)
2535 ee.WriteMapElemValue()
2536 ee.EncodeUint(uint64(v2))
2537 }
2538 } else {
2539 for k2, v2 := range v {
2540 e.encode(k2)
2541 ee.EncodeUint(uint64(v2))
2542 }
2543 }
2544 }
2545 ee.WriteMapEnd()
2546}
2547
2548func (e *Encoder) fastpathEncMapIntfUint32R(f *codecFnInfo, rv reflect.Value) {
2549 fastpathTV.EncMapIntfUint32V(rv2i(rv).(map[interface{}]uint32), e)
2550}
2551func (_ fastpathT) EncMapIntfUint32V(v map[interface{}]uint32, e *Encoder) {
2552 if v == nil {
2553 e.e.EncodeNil()
2554 return
2555 }
2556 ee, esep := e.e, e.hh.hasElemSeparators()
2557 ee.WriteMapStart(len(v))
2558 if e.h.Canonical {
2559 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2560 e2 := NewEncoderBytes(&mksv, e.hh)
2561 v2 := make([]bytesI, len(v))
2562 var i, l int
2563 var vp *bytesI
2564 for k2, _ := range v {
2565 l = len(mksv)
2566 e2.MustEncode(k2)
2567 vp = &v2[i]
2568 vp.v = mksv[l:]
2569 vp.i = k2
2570 i++
2571 }
2572 sort.Sort(bytesISlice(v2))
2573 if esep {
2574 for j := range v2 {
2575 ee.WriteMapElemKey()
2576 e.asis(v2[j].v)
2577 ee.WriteMapElemValue()
2578 e.encode(v[v2[j].i])
2579 }
2580 } else {
2581 for j := range v2 {
2582 e.asis(v2[j].v)
2583 e.encode(v[v2[j].i])
2584 }
2585 }
2586 } else {
2587 if esep {
2588 for k2, v2 := range v {
2589 ee.WriteMapElemKey()
2590 e.encode(k2)
2591 ee.WriteMapElemValue()
2592 ee.EncodeUint(uint64(v2))
2593 }
2594 } else {
2595 for k2, v2 := range v {
2596 e.encode(k2)
2597 ee.EncodeUint(uint64(v2))
2598 }
2599 }
2600 }
2601 ee.WriteMapEnd()
2602}
2603
2604func (e *Encoder) fastpathEncMapIntfUint64R(f *codecFnInfo, rv reflect.Value) {
2605 fastpathTV.EncMapIntfUint64V(rv2i(rv).(map[interface{}]uint64), e)
2606}
2607func (_ fastpathT) EncMapIntfUint64V(v map[interface{}]uint64, e *Encoder) {
2608 if v == nil {
2609 e.e.EncodeNil()
2610 return
2611 }
2612 ee, esep := e.e, e.hh.hasElemSeparators()
2613 ee.WriteMapStart(len(v))
2614 if e.h.Canonical {
2615 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2616 e2 := NewEncoderBytes(&mksv, e.hh)
2617 v2 := make([]bytesI, len(v))
2618 var i, l int
2619 var vp *bytesI
2620 for k2, _ := range v {
2621 l = len(mksv)
2622 e2.MustEncode(k2)
2623 vp = &v2[i]
2624 vp.v = mksv[l:]
2625 vp.i = k2
2626 i++
2627 }
2628 sort.Sort(bytesISlice(v2))
2629 if esep {
2630 for j := range v2 {
2631 ee.WriteMapElemKey()
2632 e.asis(v2[j].v)
2633 ee.WriteMapElemValue()
2634 e.encode(v[v2[j].i])
2635 }
2636 } else {
2637 for j := range v2 {
2638 e.asis(v2[j].v)
2639 e.encode(v[v2[j].i])
2640 }
2641 }
2642 } else {
2643 if esep {
2644 for k2, v2 := range v {
2645 ee.WriteMapElemKey()
2646 e.encode(k2)
2647 ee.WriteMapElemValue()
2648 ee.EncodeUint(uint64(v2))
2649 }
2650 } else {
2651 for k2, v2 := range v {
2652 e.encode(k2)
2653 ee.EncodeUint(uint64(v2))
2654 }
2655 }
2656 }
2657 ee.WriteMapEnd()
2658}
2659
2660func (e *Encoder) fastpathEncMapIntfUintptrR(f *codecFnInfo, rv reflect.Value) {
2661 fastpathTV.EncMapIntfUintptrV(rv2i(rv).(map[interface{}]uintptr), e)
2662}
2663func (_ fastpathT) EncMapIntfUintptrV(v map[interface{}]uintptr, e *Encoder) {
2664 if v == nil {
2665 e.e.EncodeNil()
2666 return
2667 }
2668 ee, esep := e.e, e.hh.hasElemSeparators()
2669 ee.WriteMapStart(len(v))
2670 if e.h.Canonical {
2671 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2672 e2 := NewEncoderBytes(&mksv, e.hh)
2673 v2 := make([]bytesI, len(v))
2674 var i, l int
2675 var vp *bytesI
2676 for k2, _ := range v {
2677 l = len(mksv)
2678 e2.MustEncode(k2)
2679 vp = &v2[i]
2680 vp.v = mksv[l:]
2681 vp.i = k2
2682 i++
2683 }
2684 sort.Sort(bytesISlice(v2))
2685 if esep {
2686 for j := range v2 {
2687 ee.WriteMapElemKey()
2688 e.asis(v2[j].v)
2689 ee.WriteMapElemValue()
2690 e.encode(v[v2[j].i])
2691 }
2692 } else {
2693 for j := range v2 {
2694 e.asis(v2[j].v)
2695 e.encode(v[v2[j].i])
2696 }
2697 }
2698 } else {
2699 if esep {
2700 for k2, v2 := range v {
2701 ee.WriteMapElemKey()
2702 e.encode(k2)
2703 ee.WriteMapElemValue()
2704 e.encode(v2)
2705 }
2706 } else {
2707 for k2, v2 := range v {
2708 e.encode(k2)
2709 e.encode(v2)
2710 }
2711 }
2712 }
2713 ee.WriteMapEnd()
2714}
2715
2716func (e *Encoder) fastpathEncMapIntfIntR(f *codecFnInfo, rv reflect.Value) {
2717 fastpathTV.EncMapIntfIntV(rv2i(rv).(map[interface{}]int), e)
2718}
2719func (_ fastpathT) EncMapIntfIntV(v map[interface{}]int, e *Encoder) {
2720 if v == nil {
2721 e.e.EncodeNil()
2722 return
2723 }
2724 ee, esep := e.e, e.hh.hasElemSeparators()
2725 ee.WriteMapStart(len(v))
2726 if e.h.Canonical {
2727 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2728 e2 := NewEncoderBytes(&mksv, e.hh)
2729 v2 := make([]bytesI, len(v))
2730 var i, l int
2731 var vp *bytesI
2732 for k2, _ := range v {
2733 l = len(mksv)
2734 e2.MustEncode(k2)
2735 vp = &v2[i]
2736 vp.v = mksv[l:]
2737 vp.i = k2
2738 i++
2739 }
2740 sort.Sort(bytesISlice(v2))
2741 if esep {
2742 for j := range v2 {
2743 ee.WriteMapElemKey()
2744 e.asis(v2[j].v)
2745 ee.WriteMapElemValue()
2746 e.encode(v[v2[j].i])
2747 }
2748 } else {
2749 for j := range v2 {
2750 e.asis(v2[j].v)
2751 e.encode(v[v2[j].i])
2752 }
2753 }
2754 } else {
2755 if esep {
2756 for k2, v2 := range v {
2757 ee.WriteMapElemKey()
2758 e.encode(k2)
2759 ee.WriteMapElemValue()
2760 ee.EncodeInt(int64(v2))
2761 }
2762 } else {
2763 for k2, v2 := range v {
2764 e.encode(k2)
2765 ee.EncodeInt(int64(v2))
2766 }
2767 }
2768 }
2769 ee.WriteMapEnd()
2770}
2771
2772func (e *Encoder) fastpathEncMapIntfInt8R(f *codecFnInfo, rv reflect.Value) {
2773 fastpathTV.EncMapIntfInt8V(rv2i(rv).(map[interface{}]int8), e)
2774}
2775func (_ fastpathT) EncMapIntfInt8V(v map[interface{}]int8, e *Encoder) {
2776 if v == nil {
2777 e.e.EncodeNil()
2778 return
2779 }
2780 ee, esep := e.e, e.hh.hasElemSeparators()
2781 ee.WriteMapStart(len(v))
2782 if e.h.Canonical {
2783 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2784 e2 := NewEncoderBytes(&mksv, e.hh)
2785 v2 := make([]bytesI, len(v))
2786 var i, l int
2787 var vp *bytesI
2788 for k2, _ := range v {
2789 l = len(mksv)
2790 e2.MustEncode(k2)
2791 vp = &v2[i]
2792 vp.v = mksv[l:]
2793 vp.i = k2
2794 i++
2795 }
2796 sort.Sort(bytesISlice(v2))
2797 if esep {
2798 for j := range v2 {
2799 ee.WriteMapElemKey()
2800 e.asis(v2[j].v)
2801 ee.WriteMapElemValue()
2802 e.encode(v[v2[j].i])
2803 }
2804 } else {
2805 for j := range v2 {
2806 e.asis(v2[j].v)
2807 e.encode(v[v2[j].i])
2808 }
2809 }
2810 } else {
2811 if esep {
2812 for k2, v2 := range v {
2813 ee.WriteMapElemKey()
2814 e.encode(k2)
2815 ee.WriteMapElemValue()
2816 ee.EncodeInt(int64(v2))
2817 }
2818 } else {
2819 for k2, v2 := range v {
2820 e.encode(k2)
2821 ee.EncodeInt(int64(v2))
2822 }
2823 }
2824 }
2825 ee.WriteMapEnd()
2826}
2827
2828func (e *Encoder) fastpathEncMapIntfInt16R(f *codecFnInfo, rv reflect.Value) {
2829 fastpathTV.EncMapIntfInt16V(rv2i(rv).(map[interface{}]int16), e)
2830}
2831func (_ fastpathT) EncMapIntfInt16V(v map[interface{}]int16, e *Encoder) {
2832 if v == nil {
2833 e.e.EncodeNil()
2834 return
2835 }
2836 ee, esep := e.e, e.hh.hasElemSeparators()
2837 ee.WriteMapStart(len(v))
2838 if e.h.Canonical {
2839 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2840 e2 := NewEncoderBytes(&mksv, e.hh)
2841 v2 := make([]bytesI, len(v))
2842 var i, l int
2843 var vp *bytesI
2844 for k2, _ := range v {
2845 l = len(mksv)
2846 e2.MustEncode(k2)
2847 vp = &v2[i]
2848 vp.v = mksv[l:]
2849 vp.i = k2
2850 i++
2851 }
2852 sort.Sort(bytesISlice(v2))
2853 if esep {
2854 for j := range v2 {
2855 ee.WriteMapElemKey()
2856 e.asis(v2[j].v)
2857 ee.WriteMapElemValue()
2858 e.encode(v[v2[j].i])
2859 }
2860 } else {
2861 for j := range v2 {
2862 e.asis(v2[j].v)
2863 e.encode(v[v2[j].i])
2864 }
2865 }
2866 } else {
2867 if esep {
2868 for k2, v2 := range v {
2869 ee.WriteMapElemKey()
2870 e.encode(k2)
2871 ee.WriteMapElemValue()
2872 ee.EncodeInt(int64(v2))
2873 }
2874 } else {
2875 for k2, v2 := range v {
2876 e.encode(k2)
2877 ee.EncodeInt(int64(v2))
2878 }
2879 }
2880 }
2881 ee.WriteMapEnd()
2882}
2883
2884func (e *Encoder) fastpathEncMapIntfInt32R(f *codecFnInfo, rv reflect.Value) {
2885 fastpathTV.EncMapIntfInt32V(rv2i(rv).(map[interface{}]int32), e)
2886}
2887func (_ fastpathT) EncMapIntfInt32V(v map[interface{}]int32, e *Encoder) {
2888 if v == nil {
2889 e.e.EncodeNil()
2890 return
2891 }
2892 ee, esep := e.e, e.hh.hasElemSeparators()
2893 ee.WriteMapStart(len(v))
2894 if e.h.Canonical {
2895 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2896 e2 := NewEncoderBytes(&mksv, e.hh)
2897 v2 := make([]bytesI, len(v))
2898 var i, l int
2899 var vp *bytesI
2900 for k2, _ := range v {
2901 l = len(mksv)
2902 e2.MustEncode(k2)
2903 vp = &v2[i]
2904 vp.v = mksv[l:]
2905 vp.i = k2
2906 i++
2907 }
2908 sort.Sort(bytesISlice(v2))
2909 if esep {
2910 for j := range v2 {
2911 ee.WriteMapElemKey()
2912 e.asis(v2[j].v)
2913 ee.WriteMapElemValue()
2914 e.encode(v[v2[j].i])
2915 }
2916 } else {
2917 for j := range v2 {
2918 e.asis(v2[j].v)
2919 e.encode(v[v2[j].i])
2920 }
2921 }
2922 } else {
2923 if esep {
2924 for k2, v2 := range v {
2925 ee.WriteMapElemKey()
2926 e.encode(k2)
2927 ee.WriteMapElemValue()
2928 ee.EncodeInt(int64(v2))
2929 }
2930 } else {
2931 for k2, v2 := range v {
2932 e.encode(k2)
2933 ee.EncodeInt(int64(v2))
2934 }
2935 }
2936 }
2937 ee.WriteMapEnd()
2938}
2939
2940func (e *Encoder) fastpathEncMapIntfInt64R(f *codecFnInfo, rv reflect.Value) {
2941 fastpathTV.EncMapIntfInt64V(rv2i(rv).(map[interface{}]int64), e)
2942}
2943func (_ fastpathT) EncMapIntfInt64V(v map[interface{}]int64, e *Encoder) {
2944 if v == nil {
2945 e.e.EncodeNil()
2946 return
2947 }
2948 ee, esep := e.e, e.hh.hasElemSeparators()
2949 ee.WriteMapStart(len(v))
2950 if e.h.Canonical {
2951 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
2952 e2 := NewEncoderBytes(&mksv, e.hh)
2953 v2 := make([]bytesI, len(v))
2954 var i, l int
2955 var vp *bytesI
2956 for k2, _ := range v {
2957 l = len(mksv)
2958 e2.MustEncode(k2)
2959 vp = &v2[i]
2960 vp.v = mksv[l:]
2961 vp.i = k2
2962 i++
2963 }
2964 sort.Sort(bytesISlice(v2))
2965 if esep {
2966 for j := range v2 {
2967 ee.WriteMapElemKey()
2968 e.asis(v2[j].v)
2969 ee.WriteMapElemValue()
2970 e.encode(v[v2[j].i])
2971 }
2972 } else {
2973 for j := range v2 {
2974 e.asis(v2[j].v)
2975 e.encode(v[v2[j].i])
2976 }
2977 }
2978 } else {
2979 if esep {
2980 for k2, v2 := range v {
2981 ee.WriteMapElemKey()
2982 e.encode(k2)
2983 ee.WriteMapElemValue()
2984 ee.EncodeInt(int64(v2))
2985 }
2986 } else {
2987 for k2, v2 := range v {
2988 e.encode(k2)
2989 ee.EncodeInt(int64(v2))
2990 }
2991 }
2992 }
2993 ee.WriteMapEnd()
2994}
2995
2996func (e *Encoder) fastpathEncMapIntfFloat32R(f *codecFnInfo, rv reflect.Value) {
2997 fastpathTV.EncMapIntfFloat32V(rv2i(rv).(map[interface{}]float32), e)
2998}
2999func (_ fastpathT) EncMapIntfFloat32V(v map[interface{}]float32, e *Encoder) {
3000 if v == nil {
3001 e.e.EncodeNil()
3002 return
3003 }
3004 ee, esep := e.e, e.hh.hasElemSeparators()
3005 ee.WriteMapStart(len(v))
3006 if e.h.Canonical {
3007 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
3008 e2 := NewEncoderBytes(&mksv, e.hh)
3009 v2 := make([]bytesI, len(v))
3010 var i, l int
3011 var vp *bytesI
3012 for k2, _ := range v {
3013 l = len(mksv)
3014 e2.MustEncode(k2)
3015 vp = &v2[i]
3016 vp.v = mksv[l:]
3017 vp.i = k2
3018 i++
3019 }
3020 sort.Sort(bytesISlice(v2))
3021 if esep {
3022 for j := range v2 {
3023 ee.WriteMapElemKey()
3024 e.asis(v2[j].v)
3025 ee.WriteMapElemValue()
3026 e.encode(v[v2[j].i])
3027 }
3028 } else {
3029 for j := range v2 {
3030 e.asis(v2[j].v)
3031 e.encode(v[v2[j].i])
3032 }
3033 }
3034 } else {
3035 if esep {
3036 for k2, v2 := range v {
3037 ee.WriteMapElemKey()
3038 e.encode(k2)
3039 ee.WriteMapElemValue()
3040 ee.EncodeFloat32(v2)
3041 }
3042 } else {
3043 for k2, v2 := range v {
3044 e.encode(k2)
3045 ee.EncodeFloat32(v2)
3046 }
3047 }
3048 }
3049 ee.WriteMapEnd()
3050}
3051
3052func (e *Encoder) fastpathEncMapIntfFloat64R(f *codecFnInfo, rv reflect.Value) {
3053 fastpathTV.EncMapIntfFloat64V(rv2i(rv).(map[interface{}]float64), e)
3054}
3055func (_ fastpathT) EncMapIntfFloat64V(v map[interface{}]float64, e *Encoder) {
3056 if v == nil {
3057 e.e.EncodeNil()
3058 return
3059 }
3060 ee, esep := e.e, e.hh.hasElemSeparators()
3061 ee.WriteMapStart(len(v))
3062 if e.h.Canonical {
3063 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
3064 e2 := NewEncoderBytes(&mksv, e.hh)
3065 v2 := make([]bytesI, len(v))
3066 var i, l int
3067 var vp *bytesI
3068 for k2, _ := range v {
3069 l = len(mksv)
3070 e2.MustEncode(k2)
3071 vp = &v2[i]
3072 vp.v = mksv[l:]
3073 vp.i = k2
3074 i++
3075 }
3076 sort.Sort(bytesISlice(v2))
3077 if esep {
3078 for j := range v2 {
3079 ee.WriteMapElemKey()
3080 e.asis(v2[j].v)
3081 ee.WriteMapElemValue()
3082 e.encode(v[v2[j].i])
3083 }
3084 } else {
3085 for j := range v2 {
3086 e.asis(v2[j].v)
3087 e.encode(v[v2[j].i])
3088 }
3089 }
3090 } else {
3091 if esep {
3092 for k2, v2 := range v {
3093 ee.WriteMapElemKey()
3094 e.encode(k2)
3095 ee.WriteMapElemValue()
3096 ee.EncodeFloat64(v2)
3097 }
3098 } else {
3099 for k2, v2 := range v {
3100 e.encode(k2)
3101 ee.EncodeFloat64(v2)
3102 }
3103 }
3104 }
3105 ee.WriteMapEnd()
3106}
3107
3108func (e *Encoder) fastpathEncMapIntfBoolR(f *codecFnInfo, rv reflect.Value) {
3109 fastpathTV.EncMapIntfBoolV(rv2i(rv).(map[interface{}]bool), e)
3110}
3111func (_ fastpathT) EncMapIntfBoolV(v map[interface{}]bool, e *Encoder) {
3112 if v == nil {
3113 e.e.EncodeNil()
3114 return
3115 }
3116 ee, esep := e.e, e.hh.hasElemSeparators()
3117 ee.WriteMapStart(len(v))
3118 if e.h.Canonical {
3119 var mksv []byte = make([]byte, 0, len(v)*16) // temporary byte slice for the encoding
3120 e2 := NewEncoderBytes(&mksv, e.hh)
3121 v2 := make([]bytesI, len(v))
3122 var i, l int
3123 var vp *bytesI
3124 for k2, _ := range v {
3125 l = len(mksv)
3126 e2.MustEncode(k2)
3127 vp = &v2[i]
3128 vp.v = mksv[l:]
3129 vp.i = k2
3130 i++
3131 }
3132 sort.Sort(bytesISlice(v2))
3133 if esep {
3134 for j := range v2 {
3135 ee.WriteMapElemKey()
3136 e.asis(v2[j].v)
3137 ee.WriteMapElemValue()
3138 e.encode(v[v2[j].i])
3139 }
3140 } else {
3141 for j := range v2 {
3142 e.asis(v2[j].v)
3143 e.encode(v[v2[j].i])
3144 }
3145 }
3146 } else {
3147 if esep {
3148 for k2, v2 := range v {
3149 ee.WriteMapElemKey()
3150 e.encode(k2)
3151 ee.WriteMapElemValue()
3152 ee.EncodeBool(v2)
3153 }
3154 } else {
3155 for k2, v2 := range v {
3156 e.encode(k2)
3157 ee.EncodeBool(v2)
3158 }
3159 }
3160 }
3161 ee.WriteMapEnd()
3162}
3163
3164func (e *Encoder) fastpathEncMapStringIntfR(f *codecFnInfo, rv reflect.Value) {
3165 fastpathTV.EncMapStringIntfV(rv2i(rv).(map[string]interface{}), e)
3166}
3167func (_ fastpathT) EncMapStringIntfV(v map[string]interface{}, e *Encoder) {
3168 if v == nil {
3169 e.e.EncodeNil()
3170 return
3171 }
3172 ee, esep := e.e, e.hh.hasElemSeparators()
3173 ee.WriteMapStart(len(v))
3174 if e.h.Canonical {
3175 v2 := make([]string, len(v))
3176 var i int
3177 for k, _ := range v {
3178 v2[i] = string(k)
3179 i++
3180 }
3181 sort.Sort(stringSlice(v2))
3182 if esep {
3183 for _, k2 := range v2 {
3184 ee.WriteMapElemKey()
3185 ee.EncodeString(cUTF8, k2)
3186 ee.WriteMapElemValue()
3187 e.encode(v[string(k2)])
3188 }
3189 } else {
3190 for _, k2 := range v2 {
3191 ee.EncodeString(cUTF8, k2)
3192 e.encode(v[string(k2)])
3193 }
3194 }
3195 } else {
3196 if esep {
3197 for k2, v2 := range v {
3198 ee.WriteMapElemKey()
3199 ee.EncodeString(cUTF8, k2)
3200 ee.WriteMapElemValue()
3201 e.encode(v2)
3202 }
3203 } else {
3204 for k2, v2 := range v {
3205 ee.EncodeString(cUTF8, k2)
3206 e.encode(v2)
3207 }
3208 }
3209 }
3210 ee.WriteMapEnd()
3211}
3212
3213func (e *Encoder) fastpathEncMapStringStringR(f *codecFnInfo, rv reflect.Value) {
3214 fastpathTV.EncMapStringStringV(rv2i(rv).(map[string]string), e)
3215}
3216func (_ fastpathT) EncMapStringStringV(v map[string]string, e *Encoder) {
3217 if v == nil {
3218 e.e.EncodeNil()
3219 return
3220 }
3221 ee, esep := e.e, e.hh.hasElemSeparators()
3222 ee.WriteMapStart(len(v))
3223 if e.h.Canonical {
3224 v2 := make([]string, len(v))
3225 var i int
3226 for k, _ := range v {
3227 v2[i] = string(k)
3228 i++
3229 }
3230 sort.Sort(stringSlice(v2))
3231 if esep {
3232 for _, k2 := range v2 {
3233 ee.WriteMapElemKey()
3234 ee.EncodeString(cUTF8, k2)
3235 ee.WriteMapElemValue()
3236 ee.EncodeString(cUTF8, v[string(k2)])
3237 }
3238 } else {
3239 for _, k2 := range v2 {
3240 ee.EncodeString(cUTF8, k2)
3241 ee.EncodeString(cUTF8, v[string(k2)])
3242 }
3243 }
3244 } else {
3245 if esep {
3246 for k2, v2 := range v {
3247 ee.WriteMapElemKey()
3248 ee.EncodeString(cUTF8, k2)
3249 ee.WriteMapElemValue()
3250 ee.EncodeString(cUTF8, v2)
3251 }
3252 } else {
3253 for k2, v2 := range v {
3254 ee.EncodeString(cUTF8, k2)
3255 ee.EncodeString(cUTF8, v2)
3256 }
3257 }
3258 }
3259 ee.WriteMapEnd()
3260}
3261
3262func (e *Encoder) fastpathEncMapStringUintR(f *codecFnInfo, rv reflect.Value) {
3263 fastpathTV.EncMapStringUintV(rv2i(rv).(map[string]uint), e)
3264}
3265func (_ fastpathT) EncMapStringUintV(v map[string]uint, e *Encoder) {
3266 if v == nil {
3267 e.e.EncodeNil()
3268 return
3269 }
3270 ee, esep := e.e, e.hh.hasElemSeparators()
3271 ee.WriteMapStart(len(v))
3272 if e.h.Canonical {
3273 v2 := make([]string, len(v))
3274 var i int
3275 for k, _ := range v {
3276 v2[i] = string(k)
3277 i++
3278 }
3279 sort.Sort(stringSlice(v2))
3280 if esep {
3281 for _, k2 := range v2 {
3282 ee.WriteMapElemKey()
3283 ee.EncodeString(cUTF8, k2)
3284 ee.WriteMapElemValue()
3285 ee.EncodeUint(uint64(v[string(k2)]))
3286 }
3287 } else {
3288 for _, k2 := range v2 {
3289 ee.EncodeString(cUTF8, k2)
3290 ee.EncodeUint(uint64(v[string(k2)]))
3291 }
3292 }
3293 } else {
3294 if esep {
3295 for k2, v2 := range v {
3296 ee.WriteMapElemKey()
3297 ee.EncodeString(cUTF8, k2)
3298 ee.WriteMapElemValue()
3299 ee.EncodeUint(uint64(v2))
3300 }
3301 } else {
3302 for k2, v2 := range v {
3303 ee.EncodeString(cUTF8, k2)
3304 ee.EncodeUint(uint64(v2))
3305 }
3306 }
3307 }
3308 ee.WriteMapEnd()
3309}
3310
3311func (e *Encoder) fastpathEncMapStringUint8R(f *codecFnInfo, rv reflect.Value) {
3312 fastpathTV.EncMapStringUint8V(rv2i(rv).(map[string]uint8), e)
3313}
3314func (_ fastpathT) EncMapStringUint8V(v map[string]uint8, e *Encoder) {
3315 if v == nil {
3316 e.e.EncodeNil()
3317 return
3318 }
3319 ee, esep := e.e, e.hh.hasElemSeparators()
3320 ee.WriteMapStart(len(v))
3321 if e.h.Canonical {
3322 v2 := make([]string, len(v))
3323 var i int
3324 for k, _ := range v {
3325 v2[i] = string(k)
3326 i++
3327 }
3328 sort.Sort(stringSlice(v2))
3329 if esep {
3330 for _, k2 := range v2 {
3331 ee.WriteMapElemKey()
3332 ee.EncodeString(cUTF8, k2)
3333 ee.WriteMapElemValue()
3334 ee.EncodeUint(uint64(v[string(k2)]))
3335 }
3336 } else {
3337 for _, k2 := range v2 {
3338 ee.EncodeString(cUTF8, k2)
3339 ee.EncodeUint(uint64(v[string(k2)]))
3340 }
3341 }
3342 } else {
3343 if esep {
3344 for k2, v2 := range v {
3345 ee.WriteMapElemKey()
3346 ee.EncodeString(cUTF8, k2)
3347 ee.WriteMapElemValue()
3348 ee.EncodeUint(uint64(v2))
3349 }
3350 } else {
3351 for k2, v2 := range v {
3352 ee.EncodeString(cUTF8, k2)
3353 ee.EncodeUint(uint64(v2))
3354 }
3355 }
3356 }
3357 ee.WriteMapEnd()
3358}
3359
3360func (e *Encoder) fastpathEncMapStringUint16R(f *codecFnInfo, rv reflect.Value) {
3361 fastpathTV.EncMapStringUint16V(rv2i(rv).(map[string]uint16), e)
3362}
3363func (_ fastpathT) EncMapStringUint16V(v map[string]uint16, e *Encoder) {
3364 if v == nil {
3365 e.e.EncodeNil()
3366 return
3367 }
3368 ee, esep := e.e, e.hh.hasElemSeparators()
3369 ee.WriteMapStart(len(v))
3370 if e.h.Canonical {
3371 v2 := make([]string, len(v))
3372 var i int
3373 for k, _ := range v {
3374 v2[i] = string(k)
3375 i++
3376 }
3377 sort.Sort(stringSlice(v2))
3378 if esep {
3379 for _, k2 := range v2 {
3380 ee.WriteMapElemKey()
3381 ee.EncodeString(cUTF8, k2)
3382 ee.WriteMapElemValue()
3383 ee.EncodeUint(uint64(v[string(k2)]))
3384 }
3385 } else {
3386 for _, k2 := range v2 {
3387 ee.EncodeString(cUTF8, k2)
3388 ee.EncodeUint(uint64(v[string(k2)]))
3389 }
3390 }
3391 } else {
3392 if esep {
3393 for k2, v2 := range v {
3394 ee.WriteMapElemKey()
3395 ee.EncodeString(cUTF8, k2)
3396 ee.WriteMapElemValue()
3397 ee.EncodeUint(uint64(v2))
3398 }
3399 } else {
3400 for k2, v2 := range v {
3401 ee.EncodeString(cUTF8, k2)
3402 ee.EncodeUint(uint64(v2))
3403 }
3404 }
3405 }
3406 ee.WriteMapEnd()
3407}
3408
3409func (e *Encoder) fastpathEncMapStringUint32R(f *codecFnInfo, rv reflect.Value) {
3410 fastpathTV.EncMapStringUint32V(rv2i(rv).(map[string]uint32), e)
3411}
3412func (_ fastpathT) EncMapStringUint32V(v map[string]uint32, e *Encoder) {
3413 if v == nil {
3414 e.e.EncodeNil()
3415 return
3416 }
3417 ee, esep := e.e, e.hh.hasElemSeparators()
3418 ee.WriteMapStart(len(v))
3419 if e.h.Canonical {
3420 v2 := make([]string, len(v))
3421 var i int
3422 for k, _ := range v {
3423 v2[i] = string(k)
3424 i++
3425 }
3426 sort.Sort(stringSlice(v2))
3427 if esep {
3428 for _, k2 := range v2 {
3429 ee.WriteMapElemKey()
3430 ee.EncodeString(cUTF8, k2)
3431 ee.WriteMapElemValue()
3432 ee.EncodeUint(uint64(v[string(k2)]))
3433 }
3434 } else {
3435 for _, k2 := range v2 {
3436 ee.EncodeString(cUTF8, k2)
3437 ee.EncodeUint(uint64(v[string(k2)]))
3438 }
3439 }
3440 } else {
3441 if esep {
3442 for k2, v2 := range v {
3443 ee.WriteMapElemKey()
3444 ee.EncodeString(cUTF8, k2)
3445 ee.WriteMapElemValue()
3446 ee.EncodeUint(uint64(v2))
3447 }
3448 } else {
3449 for k2, v2 := range v {
3450 ee.EncodeString(cUTF8, k2)
3451 ee.EncodeUint(uint64(v2))
3452 }
3453 }
3454 }
3455 ee.WriteMapEnd()
3456}
3457
3458func (e *Encoder) fastpathEncMapStringUint64R(f *codecFnInfo, rv reflect.Value) {
3459 fastpathTV.EncMapStringUint64V(rv2i(rv).(map[string]uint64), e)
3460}
3461func (_ fastpathT) EncMapStringUint64V(v map[string]uint64, e *Encoder) {
3462 if v == nil {
3463 e.e.EncodeNil()
3464 return
3465 }
3466 ee, esep := e.e, e.hh.hasElemSeparators()
3467 ee.WriteMapStart(len(v))
3468 if e.h.Canonical {
3469 v2 := make([]string, len(v))
3470 var i int
3471 for k, _ := range v {
3472 v2[i] = string(k)
3473 i++
3474 }
3475 sort.Sort(stringSlice(v2))
3476 if esep {
3477 for _, k2 := range v2 {
3478 ee.WriteMapElemKey()
3479 ee.EncodeString(cUTF8, k2)
3480 ee.WriteMapElemValue()
3481 ee.EncodeUint(uint64(v[string(k2)]))
3482 }
3483 } else {
3484 for _, k2 := range v2 {
3485 ee.EncodeString(cUTF8, k2)
3486 ee.EncodeUint(uint64(v[string(k2)]))
3487 }
3488 }
3489 } else {
3490 if esep {
3491 for k2, v2 := range v {
3492 ee.WriteMapElemKey()
3493 ee.EncodeString(cUTF8, k2)
3494 ee.WriteMapElemValue()
3495 ee.EncodeUint(uint64(v2))
3496 }
3497 } else {
3498 for k2, v2 := range v {
3499 ee.EncodeString(cUTF8, k2)
3500 ee.EncodeUint(uint64(v2))
3501 }
3502 }
3503 }
3504 ee.WriteMapEnd()
3505}
3506
3507func (e *Encoder) fastpathEncMapStringUintptrR(f *codecFnInfo, rv reflect.Value) {
3508 fastpathTV.EncMapStringUintptrV(rv2i(rv).(map[string]uintptr), e)
3509}
3510func (_ fastpathT) EncMapStringUintptrV(v map[string]uintptr, e *Encoder) {
3511 if v == nil {
3512 e.e.EncodeNil()
3513 return
3514 }
3515 ee, esep := e.e, e.hh.hasElemSeparators()
3516 ee.WriteMapStart(len(v))
3517 if e.h.Canonical {
3518 v2 := make([]string, len(v))
3519 var i int
3520 for k, _ := range v {
3521 v2[i] = string(k)
3522 i++
3523 }
3524 sort.Sort(stringSlice(v2))
3525 if esep {
3526 for _, k2 := range v2 {
3527 ee.WriteMapElemKey()
3528 ee.EncodeString(cUTF8, k2)
3529 ee.WriteMapElemValue()
3530 e.encode(v[string(k2)])
3531 }
3532 } else {
3533 for _, k2 := range v2 {
3534 ee.EncodeString(cUTF8, k2)
3535 e.encode(v[string(k2)])
3536 }
3537 }
3538 } else {
3539 if esep {
3540 for k2, v2 := range v {
3541 ee.WriteMapElemKey()
3542 ee.EncodeString(cUTF8, k2)
3543 ee.WriteMapElemValue()
3544 e.encode(v2)
3545 }
3546 } else {
3547 for k2, v2 := range v {
3548 ee.EncodeString(cUTF8, k2)
3549 e.encode(v2)
3550 }
3551 }
3552 }
3553 ee.WriteMapEnd()
3554}
3555
3556func (e *Encoder) fastpathEncMapStringIntR(f *codecFnInfo, rv reflect.Value) {
3557 fastpathTV.EncMapStringIntV(rv2i(rv).(map[string]int), e)
3558}
3559func (_ fastpathT) EncMapStringIntV(v map[string]int, e *Encoder) {
3560 if v == nil {
3561 e.e.EncodeNil()
3562 return
3563 }
3564 ee, esep := e.e, e.hh.hasElemSeparators()
3565 ee.WriteMapStart(len(v))
3566 if e.h.Canonical {
3567 v2 := make([]string, len(v))
3568 var i int
3569 for k, _ := range v {
3570 v2[i] = string(k)
3571 i++
3572 }
3573 sort.Sort(stringSlice(v2))
3574 if esep {
3575 for _, k2 := range v2 {
3576 ee.WriteMapElemKey()
3577 ee.EncodeString(cUTF8, k2)
3578 ee.WriteMapElemValue()
3579 ee.EncodeInt(int64(v[string(k2)]))
3580 }
3581 } else {
3582 for _, k2 := range v2 {
3583 ee.EncodeString(cUTF8, k2)
3584 ee.EncodeInt(int64(v[string(k2)]))
3585 }
3586 }
3587 } else {
3588 if esep {
3589 for k2, v2 := range v {
3590 ee.WriteMapElemKey()
3591 ee.EncodeString(cUTF8, k2)
3592 ee.WriteMapElemValue()
3593 ee.EncodeInt(int64(v2))
3594 }
3595 } else {
3596 for k2, v2 := range v {
3597 ee.EncodeString(cUTF8, k2)
3598 ee.EncodeInt(int64(v2))
3599 }
3600 }
3601 }
3602 ee.WriteMapEnd()
3603}
3604
3605func (e *Encoder) fastpathEncMapStringInt8R(f *codecFnInfo, rv reflect.Value) {
3606 fastpathTV.EncMapStringInt8V(rv2i(rv).(map[string]int8), e)
3607}
3608func (_ fastpathT) EncMapStringInt8V(v map[string]int8, e *Encoder) {
3609 if v == nil {
3610 e.e.EncodeNil()
3611 return
3612 }
3613 ee, esep := e.e, e.hh.hasElemSeparators()
3614 ee.WriteMapStart(len(v))
3615 if e.h.Canonical {
3616 v2 := make([]string, len(v))
3617 var i int
3618 for k, _ := range v {
3619 v2[i] = string(k)
3620 i++
3621 }
3622 sort.Sort(stringSlice(v2))
3623 if esep {
3624 for _, k2 := range v2 {
3625 ee.WriteMapElemKey()
3626 ee.EncodeString(cUTF8, k2)
3627 ee.WriteMapElemValue()
3628 ee.EncodeInt(int64(v[string(k2)]))
3629 }
3630 } else {
3631 for _, k2 := range v2 {
3632 ee.EncodeString(cUTF8, k2)
3633 ee.EncodeInt(int64(v[string(k2)]))
3634 }
3635 }
3636 } else {
3637 if esep {
3638 for k2, v2 := range v {
3639 ee.WriteMapElemKey()
3640 ee.EncodeString(cUTF8, k2)
3641 ee.WriteMapElemValue()
3642 ee.EncodeInt(int64(v2))
3643 }
3644 } else {
3645 for k2, v2 := range v {
3646 ee.EncodeString(cUTF8, k2)
3647 ee.EncodeInt(int64(v2))
3648 }
3649 }
3650 }
3651 ee.WriteMapEnd()
3652}
3653
3654func (e *Encoder) fastpathEncMapStringInt16R(f *codecFnInfo, rv reflect.Value) {
3655 fastpathTV.EncMapStringInt16V(rv2i(rv).(map[string]int16), e)
3656}
3657func (_ fastpathT) EncMapStringInt16V(v map[string]int16, e *Encoder) {
3658 if v == nil {
3659 e.e.EncodeNil()
3660 return
3661 }
3662 ee, esep := e.e, e.hh.hasElemSeparators()
3663 ee.WriteMapStart(len(v))
3664 if e.h.Canonical {
3665 v2 := make([]string, len(v))
3666 var i int
3667 for k, _ := range v {
3668 v2[i] = string(k)
3669 i++
3670 }
3671 sort.Sort(stringSlice(v2))
3672 if esep {
3673 for _, k2 := range v2 {
3674 ee.WriteMapElemKey()
3675 ee.EncodeString(cUTF8, k2)
3676 ee.WriteMapElemValue()
3677 ee.EncodeInt(int64(v[string(k2)]))
3678 }
3679 } else {
3680 for _, k2 := range v2 {
3681 ee.EncodeString(cUTF8, k2)
3682 ee.EncodeInt(int64(v[string(k2)]))
3683 }
3684 }
3685 } else {
3686 if esep {
3687 for k2, v2 := range v {
3688 ee.WriteMapElemKey()
3689 ee.EncodeString(cUTF8, k2)
3690 ee.WriteMapElemValue()
3691 ee.EncodeInt(int64(v2))
3692 }
3693 } else {
3694 for k2, v2 := range v {
3695 ee.EncodeString(cUTF8, k2)
3696 ee.EncodeInt(int64(v2))
3697 }
3698 }
3699 }
3700 ee.WriteMapEnd()
3701}
3702
3703func (e *Encoder) fastpathEncMapStringInt32R(f *codecFnInfo, rv reflect.Value) {
3704 fastpathTV.EncMapStringInt32V(rv2i(rv).(map[string]int32), e)
3705}
3706func (_ fastpathT) EncMapStringInt32V(v map[string]int32, e *Encoder) {
3707 if v == nil {
3708 e.e.EncodeNil()
3709 return
3710 }
3711 ee, esep := e.e, e.hh.hasElemSeparators()
3712 ee.WriteMapStart(len(v))
3713 if e.h.Canonical {
3714 v2 := make([]string, len(v))
3715 var i int
3716 for k, _ := range v {
3717 v2[i] = string(k)
3718 i++
3719 }
3720 sort.Sort(stringSlice(v2))
3721 if esep {
3722 for _, k2 := range v2 {
3723 ee.WriteMapElemKey()
3724 ee.EncodeString(cUTF8, k2)
3725 ee.WriteMapElemValue()
3726 ee.EncodeInt(int64(v[string(k2)]))
3727 }
3728 } else {
3729 for _, k2 := range v2 {
3730 ee.EncodeString(cUTF8, k2)
3731 ee.EncodeInt(int64(v[string(k2)]))
3732 }
3733 }
3734 } else {
3735 if esep {
3736 for k2, v2 := range v {
3737 ee.WriteMapElemKey()
3738 ee.EncodeString(cUTF8, k2)
3739 ee.WriteMapElemValue()
3740 ee.EncodeInt(int64(v2))
3741 }
3742 } else {
3743 for k2, v2 := range v {
3744 ee.EncodeString(cUTF8, k2)
3745 ee.EncodeInt(int64(v2))
3746 }
3747 }
3748 }
3749 ee.WriteMapEnd()
3750}
3751
3752func (e *Encoder) fastpathEncMapStringInt64R(f *codecFnInfo, rv reflect.Value) {
3753 fastpathTV.EncMapStringInt64V(rv2i(rv).(map[string]int64), e)
3754}
3755func (_ fastpathT) EncMapStringInt64V(v map[string]int64, e *Encoder) {
3756 if v == nil {
3757 e.e.EncodeNil()
3758 return
3759 }
3760 ee, esep := e.e, e.hh.hasElemSeparators()
3761 ee.WriteMapStart(len(v))
3762 if e.h.Canonical {
3763 v2 := make([]string, len(v))
3764 var i int
3765 for k, _ := range v {
3766 v2[i] = string(k)
3767 i++
3768 }
3769 sort.Sort(stringSlice(v2))
3770 if esep {
3771 for _, k2 := range v2 {
3772 ee.WriteMapElemKey()
3773 ee.EncodeString(cUTF8, k2)
3774 ee.WriteMapElemValue()
3775 ee.EncodeInt(int64(v[string(k2)]))
3776 }
3777 } else {
3778 for _, k2 := range v2 {
3779 ee.EncodeString(cUTF8, k2)
3780 ee.EncodeInt(int64(v[string(k2)]))
3781 }
3782 }
3783 } else {
3784 if esep {
3785 for k2, v2 := range v {
3786 ee.WriteMapElemKey()
3787 ee.EncodeString(cUTF8, k2)
3788 ee.WriteMapElemValue()
3789 ee.EncodeInt(int64(v2))
3790 }
3791 } else {
3792 for k2, v2 := range v {
3793 ee.EncodeString(cUTF8, k2)
3794 ee.EncodeInt(int64(v2))
3795 }
3796 }
3797 }
3798 ee.WriteMapEnd()
3799}
3800
3801func (e *Encoder) fastpathEncMapStringFloat32R(f *codecFnInfo, rv reflect.Value) {
3802 fastpathTV.EncMapStringFloat32V(rv2i(rv).(map[string]float32), e)
3803}
3804func (_ fastpathT) EncMapStringFloat32V(v map[string]float32, e *Encoder) {
3805 if v == nil {
3806 e.e.EncodeNil()
3807 return
3808 }
3809 ee, esep := e.e, e.hh.hasElemSeparators()
3810 ee.WriteMapStart(len(v))
3811 if e.h.Canonical {
3812 v2 := make([]string, len(v))
3813 var i int
3814 for k, _ := range v {
3815 v2[i] = string(k)
3816 i++
3817 }
3818 sort.Sort(stringSlice(v2))
3819 if esep {
3820 for _, k2 := range v2 {
3821 ee.WriteMapElemKey()
3822 ee.EncodeString(cUTF8, k2)
3823 ee.WriteMapElemValue()
3824 ee.EncodeFloat32(v[string(k2)])
3825 }
3826 } else {
3827 for _, k2 := range v2 {
3828 ee.EncodeString(cUTF8, k2)
3829 ee.EncodeFloat32(v[string(k2)])
3830 }
3831 }
3832 } else {
3833 if esep {
3834 for k2, v2 := range v {
3835 ee.WriteMapElemKey()
3836 ee.EncodeString(cUTF8, k2)
3837 ee.WriteMapElemValue()
3838 ee.EncodeFloat32(v2)
3839 }
3840 } else {
3841 for k2, v2 := range v {
3842 ee.EncodeString(cUTF8, k2)
3843 ee.EncodeFloat32(v2)
3844 }
3845 }
3846 }
3847 ee.WriteMapEnd()
3848}
3849
3850func (e *Encoder) fastpathEncMapStringFloat64R(f *codecFnInfo, rv reflect.Value) {
3851 fastpathTV.EncMapStringFloat64V(rv2i(rv).(map[string]float64), e)
3852}
3853func (_ fastpathT) EncMapStringFloat64V(v map[string]float64, e *Encoder) {
3854 if v == nil {
3855 e.e.EncodeNil()
3856 return
3857 }
3858 ee, esep := e.e, e.hh.hasElemSeparators()
3859 ee.WriteMapStart(len(v))
3860 if e.h.Canonical {
3861 v2 := make([]string, len(v))
3862 var i int
3863 for k, _ := range v {
3864 v2[i] = string(k)
3865 i++
3866 }
3867 sort.Sort(stringSlice(v2))
3868 if esep {
3869 for _, k2 := range v2 {
3870 ee.WriteMapElemKey()
3871 ee.EncodeString(cUTF8, k2)
3872 ee.WriteMapElemValue()
3873 ee.EncodeFloat64(v[string(k2)])
3874 }
3875 } else {
3876 for _, k2 := range v2 {
3877 ee.EncodeString(cUTF8, k2)
3878 ee.EncodeFloat64(v[string(k2)])
3879 }
3880 }
3881 } else {
3882 if esep {
3883 for k2, v2 := range v {
3884 ee.WriteMapElemKey()
3885 ee.EncodeString(cUTF8, k2)
3886 ee.WriteMapElemValue()
3887 ee.EncodeFloat64(v2)
3888 }
3889 } else {
3890 for k2, v2 := range v {
3891 ee.EncodeString(cUTF8, k2)
3892 ee.EncodeFloat64(v2)
3893 }
3894 }
3895 }
3896 ee.WriteMapEnd()
3897}
3898
3899func (e *Encoder) fastpathEncMapStringBoolR(f *codecFnInfo, rv reflect.Value) {
3900 fastpathTV.EncMapStringBoolV(rv2i(rv).(map[string]bool), e)
3901}
3902func (_ fastpathT) EncMapStringBoolV(v map[string]bool, e *Encoder) {
3903 if v == nil {
3904 e.e.EncodeNil()
3905 return
3906 }
3907 ee, esep := e.e, e.hh.hasElemSeparators()
3908 ee.WriteMapStart(len(v))
3909 if e.h.Canonical {
3910 v2 := make([]string, len(v))
3911 var i int
3912 for k, _ := range v {
3913 v2[i] = string(k)
3914 i++
3915 }
3916 sort.Sort(stringSlice(v2))
3917 if esep {
3918 for _, k2 := range v2 {
3919 ee.WriteMapElemKey()
3920 ee.EncodeString(cUTF8, k2)
3921 ee.WriteMapElemValue()
3922 ee.EncodeBool(v[string(k2)])
3923 }
3924 } else {
3925 for _, k2 := range v2 {
3926 ee.EncodeString(cUTF8, k2)
3927 ee.EncodeBool(v[string(k2)])
3928 }
3929 }
3930 } else {
3931 if esep {
3932 for k2, v2 := range v {
3933 ee.WriteMapElemKey()
3934 ee.EncodeString(cUTF8, k2)
3935 ee.WriteMapElemValue()
3936 ee.EncodeBool(v2)
3937 }
3938 } else {
3939 for k2, v2 := range v {
3940 ee.EncodeString(cUTF8, k2)
3941 ee.EncodeBool(v2)
3942 }
3943 }
3944 }
3945 ee.WriteMapEnd()
3946}
3947
3948func (e *Encoder) fastpathEncMapFloat32IntfR(f *codecFnInfo, rv reflect.Value) {
3949 fastpathTV.EncMapFloat32IntfV(rv2i(rv).(map[float32]interface{}), e)
3950}
3951func (_ fastpathT) EncMapFloat32IntfV(v map[float32]interface{}, e *Encoder) {
3952 if v == nil {
3953 e.e.EncodeNil()
3954 return
3955 }
3956 ee, esep := e.e, e.hh.hasElemSeparators()
3957 ee.WriteMapStart(len(v))
3958 if e.h.Canonical {
3959 v2 := make([]float64, len(v))
3960 var i int
3961 for k, _ := range v {
3962 v2[i] = float64(k)
3963 i++
3964 }
3965 sort.Sort(floatSlice(v2))
3966 if esep {
3967 for _, k2 := range v2 {
3968 ee.WriteMapElemKey()
3969 ee.EncodeFloat32(float32(k2))
3970 ee.WriteMapElemValue()
3971 e.encode(v[float32(k2)])
3972 }
3973 } else {
3974 for _, k2 := range v2 {
3975 ee.EncodeFloat32(float32(k2))
3976 e.encode(v[float32(k2)])
3977 }
3978 }
3979 } else {
3980 if esep {
3981 for k2, v2 := range v {
3982 ee.WriteMapElemKey()
3983 ee.EncodeFloat32(k2)
3984 ee.WriteMapElemValue()
3985 e.encode(v2)
3986 }
3987 } else {
3988 for k2, v2 := range v {
3989 ee.EncodeFloat32(k2)
3990 e.encode(v2)
3991 }
3992 }
3993 }
3994 ee.WriteMapEnd()
3995}
3996
3997func (e *Encoder) fastpathEncMapFloat32StringR(f *codecFnInfo, rv reflect.Value) {
3998 fastpathTV.EncMapFloat32StringV(rv2i(rv).(map[float32]string), e)
3999}
4000func (_ fastpathT) EncMapFloat32StringV(v map[float32]string, e *Encoder) {
4001 if v == nil {
4002 e.e.EncodeNil()
4003 return
4004 }
4005 ee, esep := e.e, e.hh.hasElemSeparators()
4006 ee.WriteMapStart(len(v))
4007 if e.h.Canonical {
4008 v2 := make([]float64, len(v))
4009 var i int
4010 for k, _ := range v {
4011 v2[i] = float64(k)
4012 i++
4013 }
4014 sort.Sort(floatSlice(v2))
4015 if esep {
4016 for _, k2 := range v2 {
4017 ee.WriteMapElemKey()
4018 ee.EncodeFloat32(float32(k2))
4019 ee.WriteMapElemValue()
4020 ee.EncodeString(cUTF8, v[float32(k2)])
4021 }
4022 } else {
4023 for _, k2 := range v2 {
4024 ee.EncodeFloat32(float32(k2))
4025 ee.EncodeString(cUTF8, v[float32(k2)])
4026 }
4027 }
4028 } else {
4029 if esep {
4030 for k2, v2 := range v {
4031 ee.WriteMapElemKey()
4032 ee.EncodeFloat32(k2)
4033 ee.WriteMapElemValue()
4034 ee.EncodeString(cUTF8, v2)
4035 }
4036 } else {
4037 for k2, v2 := range v {
4038 ee.EncodeFloat32(k2)
4039 ee.EncodeString(cUTF8, v2)
4040 }
4041 }
4042 }
4043 ee.WriteMapEnd()
4044}
4045
4046func (e *Encoder) fastpathEncMapFloat32UintR(f *codecFnInfo, rv reflect.Value) {
4047 fastpathTV.EncMapFloat32UintV(rv2i(rv).(map[float32]uint), e)
4048}
4049func (_ fastpathT) EncMapFloat32UintV(v map[float32]uint, e *Encoder) {
4050 if v == nil {
4051 e.e.EncodeNil()
4052 return
4053 }
4054 ee, esep := e.e, e.hh.hasElemSeparators()
4055 ee.WriteMapStart(len(v))
4056 if e.h.Canonical {
4057 v2 := make([]float64, len(v))
4058 var i int
4059 for k, _ := range v {
4060 v2[i] = float64(k)
4061 i++
4062 }
4063 sort.Sort(floatSlice(v2))
4064 if esep {
4065 for _, k2 := range v2 {
4066 ee.WriteMapElemKey()
4067 ee.EncodeFloat32(float32(k2))
4068 ee.WriteMapElemValue()
4069 ee.EncodeUint(uint64(v[float32(k2)]))
4070 }
4071 } else {
4072 for _, k2 := range v2 {
4073 ee.EncodeFloat32(float32(k2))
4074 ee.EncodeUint(uint64(v[float32(k2)]))
4075 }
4076 }
4077 } else {
4078 if esep {
4079 for k2, v2 := range v {
4080 ee.WriteMapElemKey()
4081 ee.EncodeFloat32(k2)
4082 ee.WriteMapElemValue()
4083 ee.EncodeUint(uint64(v2))
4084 }
4085 } else {
4086 for k2, v2 := range v {
4087 ee.EncodeFloat32(k2)
4088 ee.EncodeUint(uint64(v2))
4089 }
4090 }
4091 }
4092 ee.WriteMapEnd()
4093}
4094
4095func (e *Encoder) fastpathEncMapFloat32Uint8R(f *codecFnInfo, rv reflect.Value) {
4096 fastpathTV.EncMapFloat32Uint8V(rv2i(rv).(map[float32]uint8), e)
4097}
4098func (_ fastpathT) EncMapFloat32Uint8V(v map[float32]uint8, e *Encoder) {
4099 if v == nil {
4100 e.e.EncodeNil()
4101 return
4102 }
4103 ee, esep := e.e, e.hh.hasElemSeparators()
4104 ee.WriteMapStart(len(v))
4105 if e.h.Canonical {
4106 v2 := make([]float64, len(v))
4107 var i int
4108 for k, _ := range v {
4109 v2[i] = float64(k)
4110 i++
4111 }
4112 sort.Sort(floatSlice(v2))
4113 if esep {
4114 for _, k2 := range v2 {
4115 ee.WriteMapElemKey()
4116 ee.EncodeFloat32(float32(k2))
4117 ee.WriteMapElemValue()
4118 ee.EncodeUint(uint64(v[float32(k2)]))
4119 }
4120 } else {
4121 for _, k2 := range v2 {
4122 ee.EncodeFloat32(float32(k2))
4123 ee.EncodeUint(uint64(v[float32(k2)]))
4124 }
4125 }
4126 } else {
4127 if esep {
4128 for k2, v2 := range v {
4129 ee.WriteMapElemKey()
4130 ee.EncodeFloat32(k2)
4131 ee.WriteMapElemValue()
4132 ee.EncodeUint(uint64(v2))
4133 }
4134 } else {
4135 for k2, v2 := range v {
4136 ee.EncodeFloat32(k2)
4137 ee.EncodeUint(uint64(v2))
4138 }
4139 }
4140 }
4141 ee.WriteMapEnd()
4142}
4143
4144func (e *Encoder) fastpathEncMapFloat32Uint16R(f *codecFnInfo, rv reflect.Value) {
4145 fastpathTV.EncMapFloat32Uint16V(rv2i(rv).(map[float32]uint16), e)
4146}
4147func (_ fastpathT) EncMapFloat32Uint16V(v map[float32]uint16, e *Encoder) {
4148 if v == nil {
4149 e.e.EncodeNil()
4150 return
4151 }
4152 ee, esep := e.e, e.hh.hasElemSeparators()
4153 ee.WriteMapStart(len(v))
4154 if e.h.Canonical {
4155 v2 := make([]float64, len(v))
4156 var i int
4157 for k, _ := range v {
4158 v2[i] = float64(k)
4159 i++
4160 }
4161 sort.Sort(floatSlice(v2))
4162 if esep {
4163 for _, k2 := range v2 {
4164 ee.WriteMapElemKey()
4165 ee.EncodeFloat32(float32(k2))
4166 ee.WriteMapElemValue()
4167 ee.EncodeUint(uint64(v[float32(k2)]))
4168 }
4169 } else {
4170 for _, k2 := range v2 {
4171 ee.EncodeFloat32(float32(k2))
4172 ee.EncodeUint(uint64(v[float32(k2)]))
4173 }
4174 }
4175 } else {
4176 if esep {
4177 for k2, v2 := range v {
4178 ee.WriteMapElemKey()
4179 ee.EncodeFloat32(k2)
4180 ee.WriteMapElemValue()
4181 ee.EncodeUint(uint64(v2))
4182 }
4183 } else {
4184 for k2, v2 := range v {
4185 ee.EncodeFloat32(k2)
4186 ee.EncodeUint(uint64(v2))
4187 }
4188 }
4189 }
4190 ee.WriteMapEnd()
4191}
4192
4193func (e *Encoder) fastpathEncMapFloat32Uint32R(f *codecFnInfo, rv reflect.Value) {
4194 fastpathTV.EncMapFloat32Uint32V(rv2i(rv).(map[float32]uint32), e)
4195}
4196func (_ fastpathT) EncMapFloat32Uint32V(v map[float32]uint32, e *Encoder) {
4197 if v == nil {
4198 e.e.EncodeNil()
4199 return
4200 }
4201 ee, esep := e.e, e.hh.hasElemSeparators()
4202 ee.WriteMapStart(len(v))
4203 if e.h.Canonical {
4204 v2 := make([]float64, len(v))
4205 var i int
4206 for k, _ := range v {
4207 v2[i] = float64(k)
4208 i++
4209 }
4210 sort.Sort(floatSlice(v2))
4211 if esep {
4212 for _, k2 := range v2 {
4213 ee.WriteMapElemKey()
4214 ee.EncodeFloat32(float32(k2))
4215 ee.WriteMapElemValue()
4216 ee.EncodeUint(uint64(v[float32(k2)]))
4217 }
4218 } else {
4219 for _, k2 := range v2 {
4220 ee.EncodeFloat32(float32(k2))
4221 ee.EncodeUint(uint64(v[float32(k2)]))
4222 }
4223 }
4224 } else {
4225 if esep {
4226 for k2, v2 := range v {
4227 ee.WriteMapElemKey()
4228 ee.EncodeFloat32(k2)
4229 ee.WriteMapElemValue()
4230 ee.EncodeUint(uint64(v2))
4231 }
4232 } else {
4233 for k2, v2 := range v {
4234 ee.EncodeFloat32(k2)
4235 ee.EncodeUint(uint64(v2))
4236 }
4237 }
4238 }
4239 ee.WriteMapEnd()
4240}
4241
4242func (e *Encoder) fastpathEncMapFloat32Uint64R(f *codecFnInfo, rv reflect.Value) {
4243 fastpathTV.EncMapFloat32Uint64V(rv2i(rv).(map[float32]uint64), e)
4244}
4245func (_ fastpathT) EncMapFloat32Uint64V(v map[float32]uint64, e *Encoder) {
4246 if v == nil {
4247 e.e.EncodeNil()
4248 return
4249 }
4250 ee, esep := e.e, e.hh.hasElemSeparators()
4251 ee.WriteMapStart(len(v))
4252 if e.h.Canonical {
4253 v2 := make([]float64, len(v))
4254 var i int
4255 for k, _ := range v {
4256 v2[i] = float64(k)
4257 i++
4258 }
4259 sort.Sort(floatSlice(v2))
4260 if esep {
4261 for _, k2 := range v2 {
4262 ee.WriteMapElemKey()
4263 ee.EncodeFloat32(float32(k2))
4264 ee.WriteMapElemValue()
4265 ee.EncodeUint(uint64(v[float32(k2)]))
4266 }
4267 } else {
4268 for _, k2 := range v2 {
4269 ee.EncodeFloat32(float32(k2))
4270 ee.EncodeUint(uint64(v[float32(k2)]))
4271 }
4272 }
4273 } else {
4274 if esep {
4275 for k2, v2 := range v {
4276 ee.WriteMapElemKey()
4277 ee.EncodeFloat32(k2)
4278 ee.WriteMapElemValue()
4279 ee.EncodeUint(uint64(v2))
4280 }
4281 } else {
4282 for k2, v2 := range v {
4283 ee.EncodeFloat32(k2)
4284 ee.EncodeUint(uint64(v2))
4285 }
4286 }
4287 }
4288 ee.WriteMapEnd()
4289}
4290
4291func (e *Encoder) fastpathEncMapFloat32UintptrR(f *codecFnInfo, rv reflect.Value) {
4292 fastpathTV.EncMapFloat32UintptrV(rv2i(rv).(map[float32]uintptr), e)
4293}
4294func (_ fastpathT) EncMapFloat32UintptrV(v map[float32]uintptr, e *Encoder) {
4295 if v == nil {
4296 e.e.EncodeNil()
4297 return
4298 }
4299 ee, esep := e.e, e.hh.hasElemSeparators()
4300 ee.WriteMapStart(len(v))
4301 if e.h.Canonical {
4302 v2 := make([]float64, len(v))
4303 var i int
4304 for k, _ := range v {
4305 v2[i] = float64(k)
4306 i++
4307 }
4308 sort.Sort(floatSlice(v2))
4309 if esep {
4310 for _, k2 := range v2 {
4311 ee.WriteMapElemKey()
4312 ee.EncodeFloat32(float32(k2))
4313 ee.WriteMapElemValue()
4314 e.encode(v[float32(k2)])
4315 }
4316 } else {
4317 for _, k2 := range v2 {
4318 ee.EncodeFloat32(float32(k2))
4319 e.encode(v[float32(k2)])
4320 }
4321 }
4322 } else {
4323 if esep {
4324 for k2, v2 := range v {
4325 ee.WriteMapElemKey()
4326 ee.EncodeFloat32(k2)
4327 ee.WriteMapElemValue()
4328 e.encode(v2)
4329 }
4330 } else {
4331 for k2, v2 := range v {
4332 ee.EncodeFloat32(k2)
4333 e.encode(v2)
4334 }
4335 }
4336 }
4337 ee.WriteMapEnd()
4338}
4339
4340func (e *Encoder) fastpathEncMapFloat32IntR(f *codecFnInfo, rv reflect.Value) {
4341 fastpathTV.EncMapFloat32IntV(rv2i(rv).(map[float32]int), e)
4342}
4343func (_ fastpathT) EncMapFloat32IntV(v map[float32]int, e *Encoder) {
4344 if v == nil {
4345 e.e.EncodeNil()
4346 return
4347 }
4348 ee, esep := e.e, e.hh.hasElemSeparators()
4349 ee.WriteMapStart(len(v))
4350 if e.h.Canonical {
4351 v2 := make([]float64, len(v))
4352 var i int
4353 for k, _ := range v {
4354 v2[i] = float64(k)
4355 i++
4356 }
4357 sort.Sort(floatSlice(v2))
4358 if esep {
4359 for _, k2 := range v2 {
4360 ee.WriteMapElemKey()
4361 ee.EncodeFloat32(float32(k2))
4362 ee.WriteMapElemValue()
4363 ee.EncodeInt(int64(v[float32(k2)]))
4364 }
4365 } else {
4366 for _, k2 := range v2 {
4367 ee.EncodeFloat32(float32(k2))
4368 ee.EncodeInt(int64(v[float32(k2)]))
4369 }
4370 }
4371 } else {
4372 if esep {
4373 for k2, v2 := range v {
4374 ee.WriteMapElemKey()
4375 ee.EncodeFloat32(k2)
4376 ee.WriteMapElemValue()
4377 ee.EncodeInt(int64(v2))
4378 }
4379 } else {
4380 for k2, v2 := range v {
4381 ee.EncodeFloat32(k2)
4382 ee.EncodeInt(int64(v2))
4383 }
4384 }
4385 }
4386 ee.WriteMapEnd()
4387}
4388
4389func (e *Encoder) fastpathEncMapFloat32Int8R(f *codecFnInfo, rv reflect.Value) {
4390 fastpathTV.EncMapFloat32Int8V(rv2i(rv).(map[float32]int8), e)
4391}
4392func (_ fastpathT) EncMapFloat32Int8V(v map[float32]int8, e *Encoder) {
4393 if v == nil {
4394 e.e.EncodeNil()
4395 return
4396 }
4397 ee, esep := e.e, e.hh.hasElemSeparators()
4398 ee.WriteMapStart(len(v))
4399 if e.h.Canonical {
4400 v2 := make([]float64, len(v))
4401 var i int
4402 for k, _ := range v {
4403 v2[i] = float64(k)
4404 i++
4405 }
4406 sort.Sort(floatSlice(v2))
4407 if esep {
4408 for _, k2 := range v2 {
4409 ee.WriteMapElemKey()
4410 ee.EncodeFloat32(float32(k2))
4411 ee.WriteMapElemValue()
4412 ee.EncodeInt(int64(v[float32(k2)]))
4413 }
4414 } else {
4415 for _, k2 := range v2 {
4416 ee.EncodeFloat32(float32(k2))
4417 ee.EncodeInt(int64(v[float32(k2)]))
4418 }
4419 }
4420 } else {
4421 if esep {
4422 for k2, v2 := range v {
4423 ee.WriteMapElemKey()
4424 ee.EncodeFloat32(k2)
4425 ee.WriteMapElemValue()
4426 ee.EncodeInt(int64(v2))
4427 }
4428 } else {
4429 for k2, v2 := range v {
4430 ee.EncodeFloat32(k2)
4431 ee.EncodeInt(int64(v2))
4432 }
4433 }
4434 }
4435 ee.WriteMapEnd()
4436}
4437
4438func (e *Encoder) fastpathEncMapFloat32Int16R(f *codecFnInfo, rv reflect.Value) {
4439 fastpathTV.EncMapFloat32Int16V(rv2i(rv).(map[float32]int16), e)
4440}
4441func (_ fastpathT) EncMapFloat32Int16V(v map[float32]int16, e *Encoder) {
4442 if v == nil {
4443 e.e.EncodeNil()
4444 return
4445 }
4446 ee, esep := e.e, e.hh.hasElemSeparators()
4447 ee.WriteMapStart(len(v))
4448 if e.h.Canonical {
4449 v2 := make([]float64, len(v))
4450 var i int
4451 for k, _ := range v {
4452 v2[i] = float64(k)
4453 i++
4454 }
4455 sort.Sort(floatSlice(v2))
4456 if esep {
4457 for _, k2 := range v2 {
4458 ee.WriteMapElemKey()
4459 ee.EncodeFloat32(float32(k2))
4460 ee.WriteMapElemValue()
4461 ee.EncodeInt(int64(v[float32(k2)]))
4462 }
4463 } else {
4464 for _, k2 := range v2 {
4465 ee.EncodeFloat32(float32(k2))
4466 ee.EncodeInt(int64(v[float32(k2)]))
4467 }
4468 }
4469 } else {
4470 if esep {
4471 for k2, v2 := range v {
4472 ee.WriteMapElemKey()
4473 ee.EncodeFloat32(k2)
4474 ee.WriteMapElemValue()
4475 ee.EncodeInt(int64(v2))
4476 }
4477 } else {
4478 for k2, v2 := range v {
4479 ee.EncodeFloat32(k2)
4480 ee.EncodeInt(int64(v2))
4481 }
4482 }
4483 }
4484 ee.WriteMapEnd()
4485}
4486
4487func (e *Encoder) fastpathEncMapFloat32Int32R(f *codecFnInfo, rv reflect.Value) {
4488 fastpathTV.EncMapFloat32Int32V(rv2i(rv).(map[float32]int32), e)
4489}
4490func (_ fastpathT) EncMapFloat32Int32V(v map[float32]int32, e *Encoder) {
4491 if v == nil {
4492 e.e.EncodeNil()
4493 return
4494 }
4495 ee, esep := e.e, e.hh.hasElemSeparators()
4496 ee.WriteMapStart(len(v))
4497 if e.h.Canonical {
4498 v2 := make([]float64, len(v))
4499 var i int
4500 for k, _ := range v {
4501 v2[i] = float64(k)
4502 i++
4503 }
4504 sort.Sort(floatSlice(v2))
4505 if esep {
4506 for _, k2 := range v2 {
4507 ee.WriteMapElemKey()
4508 ee.EncodeFloat32(float32(k2))
4509 ee.WriteMapElemValue()
4510 ee.EncodeInt(int64(v[float32(k2)]))
4511 }
4512 } else {
4513 for _, k2 := range v2 {
4514 ee.EncodeFloat32(float32(k2))
4515 ee.EncodeInt(int64(v[float32(k2)]))
4516 }
4517 }
4518 } else {
4519 if esep {
4520 for k2, v2 := range v {
4521 ee.WriteMapElemKey()
4522 ee.EncodeFloat32(k2)
4523 ee.WriteMapElemValue()
4524 ee.EncodeInt(int64(v2))
4525 }
4526 } else {
4527 for k2, v2 := range v {
4528 ee.EncodeFloat32(k2)
4529 ee.EncodeInt(int64(v2))
4530 }
4531 }
4532 }
4533 ee.WriteMapEnd()
4534}
4535
4536func (e *Encoder) fastpathEncMapFloat32Int64R(f *codecFnInfo, rv reflect.Value) {
4537 fastpathTV.EncMapFloat32Int64V(rv2i(rv).(map[float32]int64), e)
4538}
4539func (_ fastpathT) EncMapFloat32Int64V(v map[float32]int64, e *Encoder) {
4540 if v == nil {
4541 e.e.EncodeNil()
4542 return
4543 }
4544 ee, esep := e.e, e.hh.hasElemSeparators()
4545 ee.WriteMapStart(len(v))
4546 if e.h.Canonical {
4547 v2 := make([]float64, len(v))
4548 var i int
4549 for k, _ := range v {
4550 v2[i] = float64(k)
4551 i++
4552 }
4553 sort.Sort(floatSlice(v2))
4554 if esep {
4555 for _, k2 := range v2 {
4556 ee.WriteMapElemKey()
4557 ee.EncodeFloat32(float32(k2))
4558 ee.WriteMapElemValue()
4559 ee.EncodeInt(int64(v[float32(k2)]))
4560 }
4561 } else {
4562 for _, k2 := range v2 {
4563 ee.EncodeFloat32(float32(k2))
4564 ee.EncodeInt(int64(v[float32(k2)]))
4565 }
4566 }
4567 } else {
4568 if esep {
4569 for k2, v2 := range v {
4570 ee.WriteMapElemKey()
4571 ee.EncodeFloat32(k2)
4572 ee.WriteMapElemValue()
4573 ee.EncodeInt(int64(v2))
4574 }
4575 } else {
4576 for k2, v2 := range v {
4577 ee.EncodeFloat32(k2)
4578 ee.EncodeInt(int64(v2))
4579 }
4580 }
4581 }
4582 ee.WriteMapEnd()
4583}
4584
4585func (e *Encoder) fastpathEncMapFloat32Float32R(f *codecFnInfo, rv reflect.Value) {
4586 fastpathTV.EncMapFloat32Float32V(rv2i(rv).(map[float32]float32), e)
4587}
4588func (_ fastpathT) EncMapFloat32Float32V(v map[float32]float32, e *Encoder) {
4589 if v == nil {
4590 e.e.EncodeNil()
4591 return
4592 }
4593 ee, esep := e.e, e.hh.hasElemSeparators()
4594 ee.WriteMapStart(len(v))
4595 if e.h.Canonical {
4596 v2 := make([]float64, len(v))
4597 var i int
4598 for k, _ := range v {
4599 v2[i] = float64(k)
4600 i++
4601 }
4602 sort.Sort(floatSlice(v2))
4603 if esep {
4604 for _, k2 := range v2 {
4605 ee.WriteMapElemKey()
4606 ee.EncodeFloat32(float32(k2))
4607 ee.WriteMapElemValue()
4608 ee.EncodeFloat32(v[float32(k2)])
4609 }
4610 } else {
4611 for _, k2 := range v2 {
4612 ee.EncodeFloat32(float32(k2))
4613 ee.EncodeFloat32(v[float32(k2)])
4614 }
4615 }
4616 } else {
4617 if esep {
4618 for k2, v2 := range v {
4619 ee.WriteMapElemKey()
4620 ee.EncodeFloat32(k2)
4621 ee.WriteMapElemValue()
4622 ee.EncodeFloat32(v2)
4623 }
4624 } else {
4625 for k2, v2 := range v {
4626 ee.EncodeFloat32(k2)
4627 ee.EncodeFloat32(v2)
4628 }
4629 }
4630 }
4631 ee.WriteMapEnd()
4632}
4633
4634func (e *Encoder) fastpathEncMapFloat32Float64R(f *codecFnInfo, rv reflect.Value) {
4635 fastpathTV.EncMapFloat32Float64V(rv2i(rv).(map[float32]float64), e)
4636}
4637func (_ fastpathT) EncMapFloat32Float64V(v map[float32]float64, e *Encoder) {
4638 if v == nil {
4639 e.e.EncodeNil()
4640 return
4641 }
4642 ee, esep := e.e, e.hh.hasElemSeparators()
4643 ee.WriteMapStart(len(v))
4644 if e.h.Canonical {
4645 v2 := make([]float64, len(v))
4646 var i int
4647 for k, _ := range v {
4648 v2[i] = float64(k)
4649 i++
4650 }
4651 sort.Sort(floatSlice(v2))
4652 if esep {
4653 for _, k2 := range v2 {
4654 ee.WriteMapElemKey()
4655 ee.EncodeFloat32(float32(k2))
4656 ee.WriteMapElemValue()
4657 ee.EncodeFloat64(v[float32(k2)])
4658 }
4659 } else {
4660 for _, k2 := range v2 {
4661 ee.EncodeFloat32(float32(k2))
4662 ee.EncodeFloat64(v[float32(k2)])
4663 }
4664 }
4665 } else {
4666 if esep {
4667 for k2, v2 := range v {
4668 ee.WriteMapElemKey()
4669 ee.EncodeFloat32(k2)
4670 ee.WriteMapElemValue()
4671 ee.EncodeFloat64(v2)
4672 }
4673 } else {
4674 for k2, v2 := range v {
4675 ee.EncodeFloat32(k2)
4676 ee.EncodeFloat64(v2)
4677 }
4678 }
4679 }
4680 ee.WriteMapEnd()
4681}
4682
4683func (e *Encoder) fastpathEncMapFloat32BoolR(f *codecFnInfo, rv reflect.Value) {
4684 fastpathTV.EncMapFloat32BoolV(rv2i(rv).(map[float32]bool), e)
4685}
4686func (_ fastpathT) EncMapFloat32BoolV(v map[float32]bool, e *Encoder) {
4687 if v == nil {
4688 e.e.EncodeNil()
4689 return
4690 }
4691 ee, esep := e.e, e.hh.hasElemSeparators()
4692 ee.WriteMapStart(len(v))
4693 if e.h.Canonical {
4694 v2 := make([]float64, len(v))
4695 var i int
4696 for k, _ := range v {
4697 v2[i] = float64(k)
4698 i++
4699 }
4700 sort.Sort(floatSlice(v2))
4701 if esep {
4702 for _, k2 := range v2 {
4703 ee.WriteMapElemKey()
4704 ee.EncodeFloat32(float32(k2))
4705 ee.WriteMapElemValue()
4706 ee.EncodeBool(v[float32(k2)])
4707 }
4708 } else {
4709 for _, k2 := range v2 {
4710 ee.EncodeFloat32(float32(k2))
4711 ee.EncodeBool(v[float32(k2)])
4712 }
4713 }
4714 } else {
4715 if esep {
4716 for k2, v2 := range v {
4717 ee.WriteMapElemKey()
4718 ee.EncodeFloat32(k2)
4719 ee.WriteMapElemValue()
4720 ee.EncodeBool(v2)
4721 }
4722 } else {
4723 for k2, v2 := range v {
4724 ee.EncodeFloat32(k2)
4725 ee.EncodeBool(v2)
4726 }
4727 }
4728 }
4729 ee.WriteMapEnd()
4730}
4731
4732func (e *Encoder) fastpathEncMapFloat64IntfR(f *codecFnInfo, rv reflect.Value) {
4733 fastpathTV.EncMapFloat64IntfV(rv2i(rv).(map[float64]interface{}), e)
4734}
4735func (_ fastpathT) EncMapFloat64IntfV(v map[float64]interface{}, e *Encoder) {
4736 if v == nil {
4737 e.e.EncodeNil()
4738 return
4739 }
4740 ee, esep := e.e, e.hh.hasElemSeparators()
4741 ee.WriteMapStart(len(v))
4742 if e.h.Canonical {
4743 v2 := make([]float64, len(v))
4744 var i int
4745 for k, _ := range v {
4746 v2[i] = float64(k)
4747 i++
4748 }
4749 sort.Sort(floatSlice(v2))
4750 if esep {
4751 for _, k2 := range v2 {
4752 ee.WriteMapElemKey()
4753 ee.EncodeFloat64(float64(k2))
4754 ee.WriteMapElemValue()
4755 e.encode(v[float64(k2)])
4756 }
4757 } else {
4758 for _, k2 := range v2 {
4759 ee.EncodeFloat64(float64(k2))
4760 e.encode(v[float64(k2)])
4761 }
4762 }
4763 } else {
4764 if esep {
4765 for k2, v2 := range v {
4766 ee.WriteMapElemKey()
4767 ee.EncodeFloat64(k2)
4768 ee.WriteMapElemValue()
4769 e.encode(v2)
4770 }
4771 } else {
4772 for k2, v2 := range v {
4773 ee.EncodeFloat64(k2)
4774 e.encode(v2)
4775 }
4776 }
4777 }
4778 ee.WriteMapEnd()
4779}
4780
4781func (e *Encoder) fastpathEncMapFloat64StringR(f *codecFnInfo, rv reflect.Value) {
4782 fastpathTV.EncMapFloat64StringV(rv2i(rv).(map[float64]string), e)
4783}
4784func (_ fastpathT) EncMapFloat64StringV(v map[float64]string, e *Encoder) {
4785 if v == nil {
4786 e.e.EncodeNil()
4787 return
4788 }
4789 ee, esep := e.e, e.hh.hasElemSeparators()
4790 ee.WriteMapStart(len(v))
4791 if e.h.Canonical {
4792 v2 := make([]float64, len(v))
4793 var i int
4794 for k, _ := range v {
4795 v2[i] = float64(k)
4796 i++
4797 }
4798 sort.Sort(floatSlice(v2))
4799 if esep {
4800 for _, k2 := range v2 {
4801 ee.WriteMapElemKey()
4802 ee.EncodeFloat64(float64(k2))
4803 ee.WriteMapElemValue()
4804 ee.EncodeString(cUTF8, v[float64(k2)])
4805 }
4806 } else {
4807 for _, k2 := range v2 {
4808 ee.EncodeFloat64(float64(k2))
4809 ee.EncodeString(cUTF8, v[float64(k2)])
4810 }
4811 }
4812 } else {
4813 if esep {
4814 for k2, v2 := range v {
4815 ee.WriteMapElemKey()
4816 ee.EncodeFloat64(k2)
4817 ee.WriteMapElemValue()
4818 ee.EncodeString(cUTF8, v2)
4819 }
4820 } else {
4821 for k2, v2 := range v {
4822 ee.EncodeFloat64(k2)
4823 ee.EncodeString(cUTF8, v2)
4824 }
4825 }
4826 }
4827 ee.WriteMapEnd()
4828}
4829
4830func (e *Encoder) fastpathEncMapFloat64UintR(f *codecFnInfo, rv reflect.Value) {
4831 fastpathTV.EncMapFloat64UintV(rv2i(rv).(map[float64]uint), e)
4832}
4833func (_ fastpathT) EncMapFloat64UintV(v map[float64]uint, e *Encoder) {
4834 if v == nil {
4835 e.e.EncodeNil()
4836 return
4837 }
4838 ee, esep := e.e, e.hh.hasElemSeparators()
4839 ee.WriteMapStart(len(v))
4840 if e.h.Canonical {
4841 v2 := make([]float64, len(v))
4842 var i int
4843 for k, _ := range v {
4844 v2[i] = float64(k)
4845 i++
4846 }
4847 sort.Sort(floatSlice(v2))
4848 if esep {
4849 for _, k2 := range v2 {
4850 ee.WriteMapElemKey()
4851 ee.EncodeFloat64(float64(k2))
4852 ee.WriteMapElemValue()
4853 ee.EncodeUint(uint64(v[float64(k2)]))
4854 }
4855 } else {
4856 for _, k2 := range v2 {
4857 ee.EncodeFloat64(float64(k2))
4858 ee.EncodeUint(uint64(v[float64(k2)]))
4859 }
4860 }
4861 } else {
4862 if esep {
4863 for k2, v2 := range v {
4864 ee.WriteMapElemKey()
4865 ee.EncodeFloat64(k2)
4866 ee.WriteMapElemValue()
4867 ee.EncodeUint(uint64(v2))
4868 }
4869 } else {
4870 for k2, v2 := range v {
4871 ee.EncodeFloat64(k2)
4872 ee.EncodeUint(uint64(v2))
4873 }
4874 }
4875 }
4876 ee.WriteMapEnd()
4877}
4878
4879func (e *Encoder) fastpathEncMapFloat64Uint8R(f *codecFnInfo, rv reflect.Value) {
4880 fastpathTV.EncMapFloat64Uint8V(rv2i(rv).(map[float64]uint8), e)
4881}
4882func (_ fastpathT) EncMapFloat64Uint8V(v map[float64]uint8, e *Encoder) {
4883 if v == nil {
4884 e.e.EncodeNil()
4885 return
4886 }
4887 ee, esep := e.e, e.hh.hasElemSeparators()
4888 ee.WriteMapStart(len(v))
4889 if e.h.Canonical {
4890 v2 := make([]float64, len(v))
4891 var i int
4892 for k, _ := range v {
4893 v2[i] = float64(k)
4894 i++
4895 }
4896 sort.Sort(floatSlice(v2))
4897 if esep {
4898 for _, k2 := range v2 {
4899 ee.WriteMapElemKey()
4900 ee.EncodeFloat64(float64(k2))
4901 ee.WriteMapElemValue()
4902 ee.EncodeUint(uint64(v[float64(k2)]))
4903 }
4904 } else {
4905 for _, k2 := range v2 {
4906 ee.EncodeFloat64(float64(k2))
4907 ee.EncodeUint(uint64(v[float64(k2)]))
4908 }
4909 }
4910 } else {
4911 if esep {
4912 for k2, v2 := range v {
4913 ee.WriteMapElemKey()
4914 ee.EncodeFloat64(k2)
4915 ee.WriteMapElemValue()
4916 ee.EncodeUint(uint64(v2))
4917 }
4918 } else {
4919 for k2, v2 := range v {
4920 ee.EncodeFloat64(k2)
4921 ee.EncodeUint(uint64(v2))
4922 }
4923 }
4924 }
4925 ee.WriteMapEnd()
4926}
4927
4928func (e *Encoder) fastpathEncMapFloat64Uint16R(f *codecFnInfo, rv reflect.Value) {
4929 fastpathTV.EncMapFloat64Uint16V(rv2i(rv).(map[float64]uint16), e)
4930}
4931func (_ fastpathT) EncMapFloat64Uint16V(v map[float64]uint16, e *Encoder) {
4932 if v == nil {
4933 e.e.EncodeNil()
4934 return
4935 }
4936 ee, esep := e.e, e.hh.hasElemSeparators()
4937 ee.WriteMapStart(len(v))
4938 if e.h.Canonical {
4939 v2 := make([]float64, len(v))
4940 var i int
4941 for k, _ := range v {
4942 v2[i] = float64(k)
4943 i++
4944 }
4945 sort.Sort(floatSlice(v2))
4946 if esep {
4947 for _, k2 := range v2 {
4948 ee.WriteMapElemKey()
4949 ee.EncodeFloat64(float64(k2))
4950 ee.WriteMapElemValue()
4951 ee.EncodeUint(uint64(v[float64(k2)]))
4952 }
4953 } else {
4954 for _, k2 := range v2 {
4955 ee.EncodeFloat64(float64(k2))
4956 ee.EncodeUint(uint64(v[float64(k2)]))
4957 }
4958 }
4959 } else {
4960 if esep {
4961 for k2, v2 := range v {
4962 ee.WriteMapElemKey()
4963 ee.EncodeFloat64(k2)
4964 ee.WriteMapElemValue()
4965 ee.EncodeUint(uint64(v2))
4966 }
4967 } else {
4968 for k2, v2 := range v {
4969 ee.EncodeFloat64(k2)
4970 ee.EncodeUint(uint64(v2))
4971 }
4972 }
4973 }
4974 ee.WriteMapEnd()
4975}
4976
4977func (e *Encoder) fastpathEncMapFloat64Uint32R(f *codecFnInfo, rv reflect.Value) {
4978 fastpathTV.EncMapFloat64Uint32V(rv2i(rv).(map[float64]uint32), e)
4979}
4980func (_ fastpathT) EncMapFloat64Uint32V(v map[float64]uint32, e *Encoder) {
4981 if v == nil {
4982 e.e.EncodeNil()
4983 return
4984 }
4985 ee, esep := e.e, e.hh.hasElemSeparators()
4986 ee.WriteMapStart(len(v))
4987 if e.h.Canonical {
4988 v2 := make([]float64, len(v))
4989 var i int
4990 for k, _ := range v {
4991 v2[i] = float64(k)
4992 i++
4993 }
4994 sort.Sort(floatSlice(v2))
4995 if esep {
4996 for _, k2 := range v2 {
4997 ee.WriteMapElemKey()
4998 ee.EncodeFloat64(float64(k2))
4999 ee.WriteMapElemValue()
5000 ee.EncodeUint(uint64(v[float64(k2)]))
5001 }
5002 } else {
5003 for _, k2 := range v2 {
5004 ee.EncodeFloat64(float64(k2))
5005 ee.EncodeUint(uint64(v[float64(k2)]))
5006 }
5007 }
5008 } else {
5009 if esep {
5010 for k2, v2 := range v {
5011 ee.WriteMapElemKey()
5012 ee.EncodeFloat64(k2)
5013 ee.WriteMapElemValue()
5014 ee.EncodeUint(uint64(v2))
5015 }
5016 } else {
5017 for k2, v2 := range v {
5018 ee.EncodeFloat64(k2)
5019 ee.EncodeUint(uint64(v2))
5020 }
5021 }
5022 }
5023 ee.WriteMapEnd()
5024}
5025
5026func (e *Encoder) fastpathEncMapFloat64Uint64R(f *codecFnInfo, rv reflect.Value) {
5027 fastpathTV.EncMapFloat64Uint64V(rv2i(rv).(map[float64]uint64), e)
5028}
5029func (_ fastpathT) EncMapFloat64Uint64V(v map[float64]uint64, e *Encoder) {
5030 if v == nil {
5031 e.e.EncodeNil()
5032 return
5033 }
5034 ee, esep := e.e, e.hh.hasElemSeparators()
5035 ee.WriteMapStart(len(v))
5036 if e.h.Canonical {
5037 v2 := make([]float64, len(v))
5038 var i int
5039 for k, _ := range v {
5040 v2[i] = float64(k)
5041 i++
5042 }
5043 sort.Sort(floatSlice(v2))
5044 if esep {
5045 for _, k2 := range v2 {
5046 ee.WriteMapElemKey()
5047 ee.EncodeFloat64(float64(k2))
5048 ee.WriteMapElemValue()
5049 ee.EncodeUint(uint64(v[float64(k2)]))
5050 }
5051 } else {
5052 for _, k2 := range v2 {
5053 ee.EncodeFloat64(float64(k2))
5054 ee.EncodeUint(uint64(v[float64(k2)]))
5055 }
5056 }
5057 } else {
5058 if esep {
5059 for k2, v2 := range v {
5060 ee.WriteMapElemKey()
5061 ee.EncodeFloat64(k2)
5062 ee.WriteMapElemValue()
5063 ee.EncodeUint(uint64(v2))
5064 }
5065 } else {
5066 for k2, v2 := range v {
5067 ee.EncodeFloat64(k2)
5068 ee.EncodeUint(uint64(v2))
5069 }
5070 }
5071 }
5072 ee.WriteMapEnd()
5073}
5074
5075func (e *Encoder) fastpathEncMapFloat64UintptrR(f *codecFnInfo, rv reflect.Value) {
5076 fastpathTV.EncMapFloat64UintptrV(rv2i(rv).(map[float64]uintptr), e)
5077}
5078func (_ fastpathT) EncMapFloat64UintptrV(v map[float64]uintptr, e *Encoder) {
5079 if v == nil {
5080 e.e.EncodeNil()
5081 return
5082 }
5083 ee, esep := e.e, e.hh.hasElemSeparators()
5084 ee.WriteMapStart(len(v))
5085 if e.h.Canonical {
5086 v2 := make([]float64, len(v))
5087 var i int
5088 for k, _ := range v {
5089 v2[i] = float64(k)
5090 i++
5091 }
5092 sort.Sort(floatSlice(v2))
5093 if esep {
5094 for _, k2 := range v2 {
5095 ee.WriteMapElemKey()
5096 ee.EncodeFloat64(float64(k2))
5097 ee.WriteMapElemValue()
5098 e.encode(v[float64(k2)])
5099 }
5100 } else {
5101 for _, k2 := range v2 {
5102 ee.EncodeFloat64(float64(k2))
5103 e.encode(v[float64(k2)])
5104 }
5105 }
5106 } else {
5107 if esep {
5108 for k2, v2 := range v {
5109 ee.WriteMapElemKey()
5110 ee.EncodeFloat64(k2)
5111 ee.WriteMapElemValue()
5112 e.encode(v2)
5113 }
5114 } else {
5115 for k2, v2 := range v {
5116 ee.EncodeFloat64(k2)
5117 e.encode(v2)
5118 }
5119 }
5120 }
5121 ee.WriteMapEnd()
5122}
5123
5124func (e *Encoder) fastpathEncMapFloat64IntR(f *codecFnInfo, rv reflect.Value) {
5125 fastpathTV.EncMapFloat64IntV(rv2i(rv).(map[float64]int), e)
5126}
5127func (_ fastpathT) EncMapFloat64IntV(v map[float64]int, e *Encoder) {
5128 if v == nil {
5129 e.e.EncodeNil()
5130 return
5131 }
5132 ee, esep := e.e, e.hh.hasElemSeparators()
5133 ee.WriteMapStart(len(v))
5134 if e.h.Canonical {
5135 v2 := make([]float64, len(v))
5136 var i int
5137 for k, _ := range v {
5138 v2[i] = float64(k)
5139 i++
5140 }
5141 sort.Sort(floatSlice(v2))
5142 if esep {
5143 for _, k2 := range v2 {
5144 ee.WriteMapElemKey()
5145 ee.EncodeFloat64(float64(k2))
5146 ee.WriteMapElemValue()
5147 ee.EncodeInt(int64(v[float64(k2)]))
5148 }
5149 } else {
5150 for _, k2 := range v2 {
5151 ee.EncodeFloat64(float64(k2))
5152 ee.EncodeInt(int64(v[float64(k2)]))
5153 }
5154 }
5155 } else {
5156 if esep {
5157 for k2, v2 := range v {
5158 ee.WriteMapElemKey()
5159 ee.EncodeFloat64(k2)
5160 ee.WriteMapElemValue()
5161 ee.EncodeInt(int64(v2))
5162 }
5163 } else {
5164 for k2, v2 := range v {
5165 ee.EncodeFloat64(k2)
5166 ee.EncodeInt(int64(v2))
5167 }
5168 }
5169 }
5170 ee.WriteMapEnd()
5171}
5172
5173func (e *Encoder) fastpathEncMapFloat64Int8R(f *codecFnInfo, rv reflect.Value) {
5174 fastpathTV.EncMapFloat64Int8V(rv2i(rv).(map[float64]int8), e)
5175}
5176func (_ fastpathT) EncMapFloat64Int8V(v map[float64]int8, e *Encoder) {
5177 if v == nil {
5178 e.e.EncodeNil()
5179 return
5180 }
5181 ee, esep := e.e, e.hh.hasElemSeparators()
5182 ee.WriteMapStart(len(v))
5183 if e.h.Canonical {
5184 v2 := make([]float64, len(v))
5185 var i int
5186 for k, _ := range v {
5187 v2[i] = float64(k)
5188 i++
5189 }
5190 sort.Sort(floatSlice(v2))
5191 if esep {
5192 for _, k2 := range v2 {
5193 ee.WriteMapElemKey()
5194 ee.EncodeFloat64(float64(k2))
5195 ee.WriteMapElemValue()
5196 ee.EncodeInt(int64(v[float64(k2)]))
5197 }
5198 } else {
5199 for _, k2 := range v2 {
5200 ee.EncodeFloat64(float64(k2))
5201 ee.EncodeInt(int64(v[float64(k2)]))
5202 }
5203 }
5204 } else {
5205 if esep {
5206 for k2, v2 := range v {
5207 ee.WriteMapElemKey()
5208 ee.EncodeFloat64(k2)
5209 ee.WriteMapElemValue()
5210 ee.EncodeInt(int64(v2))
5211 }
5212 } else {
5213 for k2, v2 := range v {
5214 ee.EncodeFloat64(k2)
5215 ee.EncodeInt(int64(v2))
5216 }
5217 }
5218 }
5219 ee.WriteMapEnd()
5220}
5221
5222func (e *Encoder) fastpathEncMapFloat64Int16R(f *codecFnInfo, rv reflect.Value) {
5223 fastpathTV.EncMapFloat64Int16V(rv2i(rv).(map[float64]int16), e)
5224}
5225func (_ fastpathT) EncMapFloat64Int16V(v map[float64]int16, e *Encoder) {
5226 if v == nil {
5227 e.e.EncodeNil()
5228 return
5229 }
5230 ee, esep := e.e, e.hh.hasElemSeparators()
5231 ee.WriteMapStart(len(v))
5232 if e.h.Canonical {
5233 v2 := make([]float64, len(v))
5234 var i int
5235 for k, _ := range v {
5236 v2[i] = float64(k)
5237 i++
5238 }
5239 sort.Sort(floatSlice(v2))
5240 if esep {
5241 for _, k2 := range v2 {
5242 ee.WriteMapElemKey()
5243 ee.EncodeFloat64(float64(k2))
5244 ee.WriteMapElemValue()
5245 ee.EncodeInt(int64(v[float64(k2)]))
5246 }
5247 } else {
5248 for _, k2 := range v2 {
5249 ee.EncodeFloat64(float64(k2))
5250 ee.EncodeInt(int64(v[float64(k2)]))
5251 }
5252 }
5253 } else {
5254 if esep {
5255 for k2, v2 := range v {
5256 ee.WriteMapElemKey()
5257 ee.EncodeFloat64(k2)
5258 ee.WriteMapElemValue()
5259 ee.EncodeInt(int64(v2))
5260 }
5261 } else {
5262 for k2, v2 := range v {
5263 ee.EncodeFloat64(k2)
5264 ee.EncodeInt(int64(v2))
5265 }
5266 }
5267 }
5268 ee.WriteMapEnd()
5269}
5270
5271func (e *Encoder) fastpathEncMapFloat64Int32R(f *codecFnInfo, rv reflect.Value) {
5272 fastpathTV.EncMapFloat64Int32V(rv2i(rv).(map[float64]int32), e)
5273}
5274func (_ fastpathT) EncMapFloat64Int32V(v map[float64]int32, e *Encoder) {
5275 if v == nil {
5276 e.e.EncodeNil()
5277 return
5278 }
5279 ee, esep := e.e, e.hh.hasElemSeparators()
5280 ee.WriteMapStart(len(v))
5281 if e.h.Canonical {
5282 v2 := make([]float64, len(v))
5283 var i int
5284 for k, _ := range v {
5285 v2[i] = float64(k)
5286 i++
5287 }
5288 sort.Sort(floatSlice(v2))
5289 if esep {
5290 for _, k2 := range v2 {
5291 ee.WriteMapElemKey()
5292 ee.EncodeFloat64(float64(k2))
5293 ee.WriteMapElemValue()
5294 ee.EncodeInt(int64(v[float64(k2)]))
5295 }
5296 } else {
5297 for _, k2 := range v2 {
5298 ee.EncodeFloat64(float64(k2))
5299 ee.EncodeInt(int64(v[float64(k2)]))
5300 }
5301 }
5302 } else {
5303 if esep {
5304 for k2, v2 := range v {
5305 ee.WriteMapElemKey()
5306 ee.EncodeFloat64(k2)
5307 ee.WriteMapElemValue()
5308 ee.EncodeInt(int64(v2))
5309 }
5310 } else {
5311 for k2, v2 := range v {
5312 ee.EncodeFloat64(k2)
5313 ee.EncodeInt(int64(v2))
5314 }
5315 }
5316 }
5317 ee.WriteMapEnd()
5318}
5319
5320func (e *Encoder) fastpathEncMapFloat64Int64R(f *codecFnInfo, rv reflect.Value) {
5321 fastpathTV.EncMapFloat64Int64V(rv2i(rv).(map[float64]int64), e)
5322}
5323func (_ fastpathT) EncMapFloat64Int64V(v map[float64]int64, e *Encoder) {
5324 if v == nil {
5325 e.e.EncodeNil()
5326 return
5327 }
5328 ee, esep := e.e, e.hh.hasElemSeparators()
5329 ee.WriteMapStart(len(v))
5330 if e.h.Canonical {
5331 v2 := make([]float64, len(v))
5332 var i int
5333 for k, _ := range v {
5334 v2[i] = float64(k)
5335 i++
5336 }
5337 sort.Sort(floatSlice(v2))
5338 if esep {
5339 for _, k2 := range v2 {
5340 ee.WriteMapElemKey()
5341 ee.EncodeFloat64(float64(k2))
5342 ee.WriteMapElemValue()
5343 ee.EncodeInt(int64(v[float64(k2)]))
5344 }
5345 } else {
5346 for _, k2 := range v2 {
5347 ee.EncodeFloat64(float64(k2))
5348 ee.EncodeInt(int64(v[float64(k2)]))
5349 }
5350 }
5351 } else {
5352 if esep {
5353 for k2, v2 := range v {
5354 ee.WriteMapElemKey()
5355 ee.EncodeFloat64(k2)
5356 ee.WriteMapElemValue()
5357 ee.EncodeInt(int64(v2))
5358 }
5359 } else {
5360 for k2, v2 := range v {
5361 ee.EncodeFloat64(k2)
5362 ee.EncodeInt(int64(v2))
5363 }
5364 }
5365 }
5366 ee.WriteMapEnd()
5367}
5368
5369func (e *Encoder) fastpathEncMapFloat64Float32R(f *codecFnInfo, rv reflect.Value) {
5370 fastpathTV.EncMapFloat64Float32V(rv2i(rv).(map[float64]float32), e)
5371}
5372func (_ fastpathT) EncMapFloat64Float32V(v map[float64]float32, e *Encoder) {
5373 if v == nil {
5374 e.e.EncodeNil()
5375 return
5376 }
5377 ee, esep := e.e, e.hh.hasElemSeparators()
5378 ee.WriteMapStart(len(v))
5379 if e.h.Canonical {
5380 v2 := make([]float64, len(v))
5381 var i int
5382 for k, _ := range v {
5383 v2[i] = float64(k)
5384 i++
5385 }
5386 sort.Sort(floatSlice(v2))
5387 if esep {
5388 for _, k2 := range v2 {
5389 ee.WriteMapElemKey()
5390 ee.EncodeFloat64(float64(k2))
5391 ee.WriteMapElemValue()
5392 ee.EncodeFloat32(v[float64(k2)])
5393 }
5394 } else {
5395 for _, k2 := range v2 {
5396 ee.EncodeFloat64(float64(k2))
5397 ee.EncodeFloat32(v[float64(k2)])
5398 }
5399 }
5400 } else {
5401 if esep {
5402 for k2, v2 := range v {
5403 ee.WriteMapElemKey()
5404 ee.EncodeFloat64(k2)
5405 ee.WriteMapElemValue()
5406 ee.EncodeFloat32(v2)
5407 }
5408 } else {
5409 for k2, v2 := range v {
5410 ee.EncodeFloat64(k2)
5411 ee.EncodeFloat32(v2)
5412 }
5413 }
5414 }
5415 ee.WriteMapEnd()
5416}
5417
5418func (e *Encoder) fastpathEncMapFloat64Float64R(f *codecFnInfo, rv reflect.Value) {
5419 fastpathTV.EncMapFloat64Float64V(rv2i(rv).(map[float64]float64), e)
5420}
5421func (_ fastpathT) EncMapFloat64Float64V(v map[float64]float64, e *Encoder) {
5422 if v == nil {
5423 e.e.EncodeNil()
5424 return
5425 }
5426 ee, esep := e.e, e.hh.hasElemSeparators()
5427 ee.WriteMapStart(len(v))
5428 if e.h.Canonical {
5429 v2 := make([]float64, len(v))
5430 var i int
5431 for k, _ := range v {
5432 v2[i] = float64(k)
5433 i++
5434 }
5435 sort.Sort(floatSlice(v2))
5436 if esep {
5437 for _, k2 := range v2 {
5438 ee.WriteMapElemKey()
5439 ee.EncodeFloat64(float64(k2))
5440 ee.WriteMapElemValue()
5441 ee.EncodeFloat64(v[float64(k2)])
5442 }
5443 } else {
5444 for _, k2 := range v2 {
5445 ee.EncodeFloat64(float64(k2))
5446 ee.EncodeFloat64(v[float64(k2)])
5447 }
5448 }
5449 } else {
5450 if esep {
5451 for k2, v2 := range v {
5452 ee.WriteMapElemKey()
5453 ee.EncodeFloat64(k2)
5454 ee.WriteMapElemValue()
5455 ee.EncodeFloat64(v2)
5456 }
5457 } else {
5458 for k2, v2 := range v {
5459 ee.EncodeFloat64(k2)
5460 ee.EncodeFloat64(v2)
5461 }
5462 }
5463 }
5464 ee.WriteMapEnd()
5465}
5466
5467func (e *Encoder) fastpathEncMapFloat64BoolR(f *codecFnInfo, rv reflect.Value) {
5468 fastpathTV.EncMapFloat64BoolV(rv2i(rv).(map[float64]bool), e)
5469}
5470func (_ fastpathT) EncMapFloat64BoolV(v map[float64]bool, e *Encoder) {
5471 if v == nil {
5472 e.e.EncodeNil()
5473 return
5474 }
5475 ee, esep := e.e, e.hh.hasElemSeparators()
5476 ee.WriteMapStart(len(v))
5477 if e.h.Canonical {
5478 v2 := make([]float64, len(v))
5479 var i int
5480 for k, _ := range v {
5481 v2[i] = float64(k)
5482 i++
5483 }
5484 sort.Sort(floatSlice(v2))
5485 if esep {
5486 for _, k2 := range v2 {
5487 ee.WriteMapElemKey()
5488 ee.EncodeFloat64(float64(k2))
5489 ee.WriteMapElemValue()
5490 ee.EncodeBool(v[float64(k2)])
5491 }
5492 } else {
5493 for _, k2 := range v2 {
5494 ee.EncodeFloat64(float64(k2))
5495 ee.EncodeBool(v[float64(k2)])
5496 }
5497 }
5498 } else {
5499 if esep {
5500 for k2, v2 := range v {
5501 ee.WriteMapElemKey()
5502 ee.EncodeFloat64(k2)
5503 ee.WriteMapElemValue()
5504 ee.EncodeBool(v2)
5505 }
5506 } else {
5507 for k2, v2 := range v {
5508 ee.EncodeFloat64(k2)
5509 ee.EncodeBool(v2)
5510 }
5511 }
5512 }
5513 ee.WriteMapEnd()
5514}
5515
5516func (e *Encoder) fastpathEncMapUintIntfR(f *codecFnInfo, rv reflect.Value) {
5517 fastpathTV.EncMapUintIntfV(rv2i(rv).(map[uint]interface{}), e)
5518}
5519func (_ fastpathT) EncMapUintIntfV(v map[uint]interface{}, e *Encoder) {
5520 if v == nil {
5521 e.e.EncodeNil()
5522 return
5523 }
5524 ee, esep := e.e, e.hh.hasElemSeparators()
5525 ee.WriteMapStart(len(v))
5526 if e.h.Canonical {
5527 v2 := make([]uint64, len(v))
5528 var i int
5529 for k, _ := range v {
5530 v2[i] = uint64(k)
5531 i++
5532 }
5533 sort.Sort(uintSlice(v2))
5534 if esep {
5535 for _, k2 := range v2 {
5536 ee.WriteMapElemKey()
5537 ee.EncodeUint(uint64(uint(k2)))
5538 ee.WriteMapElemValue()
5539 e.encode(v[uint(k2)])
5540 }
5541 } else {
5542 for _, k2 := range v2 {
5543 ee.EncodeUint(uint64(uint(k2)))
5544 e.encode(v[uint(k2)])
5545 }
5546 }
5547 } else {
5548 if esep {
5549 for k2, v2 := range v {
5550 ee.WriteMapElemKey()
5551 ee.EncodeUint(uint64(k2))
5552 ee.WriteMapElemValue()
5553 e.encode(v2)
5554 }
5555 } else {
5556 for k2, v2 := range v {
5557 ee.EncodeUint(uint64(k2))
5558 e.encode(v2)
5559 }
5560 }
5561 }
5562 ee.WriteMapEnd()
5563}
5564
5565func (e *Encoder) fastpathEncMapUintStringR(f *codecFnInfo, rv reflect.Value) {
5566 fastpathTV.EncMapUintStringV(rv2i(rv).(map[uint]string), e)
5567}
5568func (_ fastpathT) EncMapUintStringV(v map[uint]string, e *Encoder) {
5569 if v == nil {
5570 e.e.EncodeNil()
5571 return
5572 }
5573 ee, esep := e.e, e.hh.hasElemSeparators()
5574 ee.WriteMapStart(len(v))
5575 if e.h.Canonical {
5576 v2 := make([]uint64, len(v))
5577 var i int
5578 for k, _ := range v {
5579 v2[i] = uint64(k)
5580 i++
5581 }
5582 sort.Sort(uintSlice(v2))
5583 if esep {
5584 for _, k2 := range v2 {
5585 ee.WriteMapElemKey()
5586 ee.EncodeUint(uint64(uint(k2)))
5587 ee.WriteMapElemValue()
5588 ee.EncodeString(cUTF8, v[uint(k2)])
5589 }
5590 } else {
5591 for _, k2 := range v2 {
5592 ee.EncodeUint(uint64(uint(k2)))
5593 ee.EncodeString(cUTF8, v[uint(k2)])
5594 }
5595 }
5596 } else {
5597 if esep {
5598 for k2, v2 := range v {
5599 ee.WriteMapElemKey()
5600 ee.EncodeUint(uint64(k2))
5601 ee.WriteMapElemValue()
5602 ee.EncodeString(cUTF8, v2)
5603 }
5604 } else {
5605 for k2, v2 := range v {
5606 ee.EncodeUint(uint64(k2))
5607 ee.EncodeString(cUTF8, v2)
5608 }
5609 }
5610 }
5611 ee.WriteMapEnd()
5612}
5613
5614func (e *Encoder) fastpathEncMapUintUintR(f *codecFnInfo, rv reflect.Value) {
5615 fastpathTV.EncMapUintUintV(rv2i(rv).(map[uint]uint), e)
5616}
5617func (_ fastpathT) EncMapUintUintV(v map[uint]uint, e *Encoder) {
5618 if v == nil {
5619 e.e.EncodeNil()
5620 return
5621 }
5622 ee, esep := e.e, e.hh.hasElemSeparators()
5623 ee.WriteMapStart(len(v))
5624 if e.h.Canonical {
5625 v2 := make([]uint64, len(v))
5626 var i int
5627 for k, _ := range v {
5628 v2[i] = uint64(k)
5629 i++
5630 }
5631 sort.Sort(uintSlice(v2))
5632 if esep {
5633 for _, k2 := range v2 {
5634 ee.WriteMapElemKey()
5635 ee.EncodeUint(uint64(uint(k2)))
5636 ee.WriteMapElemValue()
5637 ee.EncodeUint(uint64(v[uint(k2)]))
5638 }
5639 } else {
5640 for _, k2 := range v2 {
5641 ee.EncodeUint(uint64(uint(k2)))
5642 ee.EncodeUint(uint64(v[uint(k2)]))
5643 }
5644 }
5645 } else {
5646 if esep {
5647 for k2, v2 := range v {
5648 ee.WriteMapElemKey()
5649 ee.EncodeUint(uint64(k2))
5650 ee.WriteMapElemValue()
5651 ee.EncodeUint(uint64(v2))
5652 }
5653 } else {
5654 for k2, v2 := range v {
5655 ee.EncodeUint(uint64(k2))
5656 ee.EncodeUint(uint64(v2))
5657 }
5658 }
5659 }
5660 ee.WriteMapEnd()
5661}
5662
5663func (e *Encoder) fastpathEncMapUintUint8R(f *codecFnInfo, rv reflect.Value) {
5664 fastpathTV.EncMapUintUint8V(rv2i(rv).(map[uint]uint8), e)
5665}
5666func (_ fastpathT) EncMapUintUint8V(v map[uint]uint8, e *Encoder) {
5667 if v == nil {
5668 e.e.EncodeNil()
5669 return
5670 }
5671 ee, esep := e.e, e.hh.hasElemSeparators()
5672 ee.WriteMapStart(len(v))
5673 if e.h.Canonical {
5674 v2 := make([]uint64, len(v))
5675 var i int
5676 for k, _ := range v {
5677 v2[i] = uint64(k)
5678 i++
5679 }
5680 sort.Sort(uintSlice(v2))
5681 if esep {
5682 for _, k2 := range v2 {
5683 ee.WriteMapElemKey()
5684 ee.EncodeUint(uint64(uint(k2)))
5685 ee.WriteMapElemValue()
5686 ee.EncodeUint(uint64(v[uint(k2)]))
5687 }
5688 } else {
5689 for _, k2 := range v2 {
5690 ee.EncodeUint(uint64(uint(k2)))
5691 ee.EncodeUint(uint64(v[uint(k2)]))
5692 }
5693 }
5694 } else {
5695 if esep {
5696 for k2, v2 := range v {
5697 ee.WriteMapElemKey()
5698 ee.EncodeUint(uint64(k2))
5699 ee.WriteMapElemValue()
5700 ee.EncodeUint(uint64(v2))
5701 }
5702 } else {
5703 for k2, v2 := range v {
5704 ee.EncodeUint(uint64(k2))
5705 ee.EncodeUint(uint64(v2))
5706 }
5707 }
5708 }
5709 ee.WriteMapEnd()
5710}
5711
5712func (e *Encoder) fastpathEncMapUintUint16R(f *codecFnInfo, rv reflect.Value) {
5713 fastpathTV.EncMapUintUint16V(rv2i(rv).(map[uint]uint16), e)
5714}
5715func (_ fastpathT) EncMapUintUint16V(v map[uint]uint16, e *Encoder) {
5716 if v == nil {
5717 e.e.EncodeNil()
5718 return
5719 }
5720 ee, esep := e.e, e.hh.hasElemSeparators()
5721 ee.WriteMapStart(len(v))
5722 if e.h.Canonical {
5723 v2 := make([]uint64, len(v))
5724 var i int
5725 for k, _ := range v {
5726 v2[i] = uint64(k)
5727 i++
5728 }
5729 sort.Sort(uintSlice(v2))
5730 if esep {
5731 for _, k2 := range v2 {
5732 ee.WriteMapElemKey()
5733 ee.EncodeUint(uint64(uint(k2)))
5734 ee.WriteMapElemValue()
5735 ee.EncodeUint(uint64(v[uint(k2)]))
5736 }
5737 } else {
5738 for _, k2 := range v2 {
5739 ee.EncodeUint(uint64(uint(k2)))
5740 ee.EncodeUint(uint64(v[uint(k2)]))
5741 }
5742 }
5743 } else {
5744 if esep {
5745 for k2, v2 := range v {
5746 ee.WriteMapElemKey()
5747 ee.EncodeUint(uint64(k2))
5748 ee.WriteMapElemValue()
5749 ee.EncodeUint(uint64(v2))
5750 }
5751 } else {
5752 for k2, v2 := range v {
5753 ee.EncodeUint(uint64(k2))
5754 ee.EncodeUint(uint64(v2))
5755 }
5756 }
5757 }
5758 ee.WriteMapEnd()
5759}
5760
5761func (e *Encoder) fastpathEncMapUintUint32R(f *codecFnInfo, rv reflect.Value) {
5762 fastpathTV.EncMapUintUint32V(rv2i(rv).(map[uint]uint32), e)
5763}
5764func (_ fastpathT) EncMapUintUint32V(v map[uint]uint32, e *Encoder) {
5765 if v == nil {
5766 e.e.EncodeNil()
5767 return
5768 }
5769 ee, esep := e.e, e.hh.hasElemSeparators()
5770 ee.WriteMapStart(len(v))
5771 if e.h.Canonical {
5772 v2 := make([]uint64, len(v))
5773 var i int
5774 for k, _ := range v {
5775 v2[i] = uint64(k)
5776 i++
5777 }
5778 sort.Sort(uintSlice(v2))
5779 if esep {
5780 for _, k2 := range v2 {
5781 ee.WriteMapElemKey()
5782 ee.EncodeUint(uint64(uint(k2)))
5783 ee.WriteMapElemValue()
5784 ee.EncodeUint(uint64(v[uint(k2)]))
5785 }
5786 } else {
5787 for _, k2 := range v2 {
5788 ee.EncodeUint(uint64(uint(k2)))
5789 ee.EncodeUint(uint64(v[uint(k2)]))
5790 }
5791 }
5792 } else {
5793 if esep {
5794 for k2, v2 := range v {
5795 ee.WriteMapElemKey()
5796 ee.EncodeUint(uint64(k2))
5797 ee.WriteMapElemValue()
5798 ee.EncodeUint(uint64(v2))
5799 }
5800 } else {
5801 for k2, v2 := range v {
5802 ee.EncodeUint(uint64(k2))
5803 ee.EncodeUint(uint64(v2))
5804 }
5805 }
5806 }
5807 ee.WriteMapEnd()
5808}
5809
5810func (e *Encoder) fastpathEncMapUintUint64R(f *codecFnInfo, rv reflect.Value) {
5811 fastpathTV.EncMapUintUint64V(rv2i(rv).(map[uint]uint64), e)
5812}
5813func (_ fastpathT) EncMapUintUint64V(v map[uint]uint64, e *Encoder) {
5814 if v == nil {
5815 e.e.EncodeNil()
5816 return
5817 }
5818 ee, esep := e.e, e.hh.hasElemSeparators()
5819 ee.WriteMapStart(len(v))
5820 if e.h.Canonical {
5821 v2 := make([]uint64, len(v))
5822 var i int
5823 for k, _ := range v {
5824 v2[i] = uint64(k)
5825 i++
5826 }
5827 sort.Sort(uintSlice(v2))
5828 if esep {
5829 for _, k2 := range v2 {
5830 ee.WriteMapElemKey()
5831 ee.EncodeUint(uint64(uint(k2)))
5832 ee.WriteMapElemValue()
5833 ee.EncodeUint(uint64(v[uint(k2)]))
5834 }
5835 } else {
5836 for _, k2 := range v2 {
5837 ee.EncodeUint(uint64(uint(k2)))
5838 ee.EncodeUint(uint64(v[uint(k2)]))
5839 }
5840 }
5841 } else {
5842 if esep {
5843 for k2, v2 := range v {
5844 ee.WriteMapElemKey()
5845 ee.EncodeUint(uint64(k2))
5846 ee.WriteMapElemValue()
5847 ee.EncodeUint(uint64(v2))
5848 }
5849 } else {
5850 for k2, v2 := range v {
5851 ee.EncodeUint(uint64(k2))
5852 ee.EncodeUint(uint64(v2))
5853 }
5854 }
5855 }
5856 ee.WriteMapEnd()
5857}
5858
5859func (e *Encoder) fastpathEncMapUintUintptrR(f *codecFnInfo, rv reflect.Value) {
5860 fastpathTV.EncMapUintUintptrV(rv2i(rv).(map[uint]uintptr), e)
5861}
5862func (_ fastpathT) EncMapUintUintptrV(v map[uint]uintptr, e *Encoder) {
5863 if v == nil {
5864 e.e.EncodeNil()
5865 return
5866 }
5867 ee, esep := e.e, e.hh.hasElemSeparators()
5868 ee.WriteMapStart(len(v))
5869 if e.h.Canonical {
5870 v2 := make([]uint64, len(v))
5871 var i int
5872 for k, _ := range v {
5873 v2[i] = uint64(k)
5874 i++
5875 }
5876 sort.Sort(uintSlice(v2))
5877 if esep {
5878 for _, k2 := range v2 {
5879 ee.WriteMapElemKey()
5880 ee.EncodeUint(uint64(uint(k2)))
5881 ee.WriteMapElemValue()
5882 e.encode(v[uint(k2)])
5883 }
5884 } else {
5885 for _, k2 := range v2 {
5886 ee.EncodeUint(uint64(uint(k2)))
5887 e.encode(v[uint(k2)])
5888 }
5889 }
5890 } else {
5891 if esep {
5892 for k2, v2 := range v {
5893 ee.WriteMapElemKey()
5894 ee.EncodeUint(uint64(k2))
5895 ee.WriteMapElemValue()
5896 e.encode(v2)
5897 }
5898 } else {
5899 for k2, v2 := range v {
5900 ee.EncodeUint(uint64(k2))
5901 e.encode(v2)
5902 }
5903 }
5904 }
5905 ee.WriteMapEnd()
5906}
5907
5908func (e *Encoder) fastpathEncMapUintIntR(f *codecFnInfo, rv reflect.Value) {
5909 fastpathTV.EncMapUintIntV(rv2i(rv).(map[uint]int), e)
5910}
5911func (_ fastpathT) EncMapUintIntV(v map[uint]int, e *Encoder) {
5912 if v == nil {
5913 e.e.EncodeNil()
5914 return
5915 }
5916 ee, esep := e.e, e.hh.hasElemSeparators()
5917 ee.WriteMapStart(len(v))
5918 if e.h.Canonical {
5919 v2 := make([]uint64, len(v))
5920 var i int
5921 for k, _ := range v {
5922 v2[i] = uint64(k)
5923 i++
5924 }
5925 sort.Sort(uintSlice(v2))
5926 if esep {
5927 for _, k2 := range v2 {
5928 ee.WriteMapElemKey()
5929 ee.EncodeUint(uint64(uint(k2)))
5930 ee.WriteMapElemValue()
5931 ee.EncodeInt(int64(v[uint(k2)]))
5932 }
5933 } else {
5934 for _, k2 := range v2 {
5935 ee.EncodeUint(uint64(uint(k2)))
5936 ee.EncodeInt(int64(v[uint(k2)]))
5937 }
5938 }
5939 } else {
5940 if esep {
5941 for k2, v2 := range v {
5942 ee.WriteMapElemKey()
5943 ee.EncodeUint(uint64(k2))
5944 ee.WriteMapElemValue()
5945 ee.EncodeInt(int64(v2))
5946 }
5947 } else {
5948 for k2, v2 := range v {
5949 ee.EncodeUint(uint64(k2))
5950 ee.EncodeInt(int64(v2))
5951 }
5952 }
5953 }
5954 ee.WriteMapEnd()
5955}
5956
5957func (e *Encoder) fastpathEncMapUintInt8R(f *codecFnInfo, rv reflect.Value) {
5958 fastpathTV.EncMapUintInt8V(rv2i(rv).(map[uint]int8), e)
5959}
5960func (_ fastpathT) EncMapUintInt8V(v map[uint]int8, e *Encoder) {
5961 if v == nil {
5962 e.e.EncodeNil()
5963 return
5964 }
5965 ee, esep := e.e, e.hh.hasElemSeparators()
5966 ee.WriteMapStart(len(v))
5967 if e.h.Canonical {
5968 v2 := make([]uint64, len(v))
5969 var i int
5970 for k, _ := range v {
5971 v2[i] = uint64(k)
5972 i++
5973 }
5974 sort.Sort(uintSlice(v2))
5975 if esep {
5976 for _, k2 := range v2 {
5977 ee.WriteMapElemKey()
5978 ee.EncodeUint(uint64(uint(k2)))
5979 ee.WriteMapElemValue()
5980 ee.EncodeInt(int64(v[uint(k2)]))
5981 }
5982 } else {
5983 for _, k2 := range v2 {
5984 ee.EncodeUint(uint64(uint(k2)))
5985 ee.EncodeInt(int64(v[uint(k2)]))
5986 }
5987 }
5988 } else {
5989 if esep {
5990 for k2, v2 := range v {
5991 ee.WriteMapElemKey()
5992 ee.EncodeUint(uint64(k2))
5993 ee.WriteMapElemValue()
5994 ee.EncodeInt(int64(v2))
5995 }
5996 } else {
5997 for k2, v2 := range v {
5998 ee.EncodeUint(uint64(k2))
5999 ee.EncodeInt(int64(v2))
6000 }
6001 }
6002 }
6003 ee.WriteMapEnd()
6004}
6005
6006func (e *Encoder) fastpathEncMapUintInt16R(f *codecFnInfo, rv reflect.Value) {
6007 fastpathTV.EncMapUintInt16V(rv2i(rv).(map[uint]int16), e)
6008}
6009func (_ fastpathT) EncMapUintInt16V(v map[uint]int16, e *Encoder) {
6010 if v == nil {
6011 e.e.EncodeNil()
6012 return
6013 }
6014 ee, esep := e.e, e.hh.hasElemSeparators()
6015 ee.WriteMapStart(len(v))
6016 if e.h.Canonical {
6017 v2 := make([]uint64, len(v))
6018 var i int
6019 for k, _ := range v {
6020 v2[i] = uint64(k)
6021 i++
6022 }
6023 sort.Sort(uintSlice(v2))
6024 if esep {
6025 for _, k2 := range v2 {
6026 ee.WriteMapElemKey()
6027 ee.EncodeUint(uint64(uint(k2)))
6028 ee.WriteMapElemValue()
6029 ee.EncodeInt(int64(v[uint(k2)]))
6030 }
6031 } else {
6032 for _, k2 := range v2 {
6033 ee.EncodeUint(uint64(uint(k2)))
6034 ee.EncodeInt(int64(v[uint(k2)]))
6035 }
6036 }
6037 } else {
6038 if esep {
6039 for k2, v2 := range v {
6040 ee.WriteMapElemKey()
6041 ee.EncodeUint(uint64(k2))
6042 ee.WriteMapElemValue()
6043 ee.EncodeInt(int64(v2))
6044 }
6045 } else {
6046 for k2, v2 := range v {
6047 ee.EncodeUint(uint64(k2))
6048 ee.EncodeInt(int64(v2))
6049 }
6050 }
6051 }
6052 ee.WriteMapEnd()
6053}
6054
6055func (e *Encoder) fastpathEncMapUintInt32R(f *codecFnInfo, rv reflect.Value) {
6056 fastpathTV.EncMapUintInt32V(rv2i(rv).(map[uint]int32), e)
6057}
6058func (_ fastpathT) EncMapUintInt32V(v map[uint]int32, e *Encoder) {
6059 if v == nil {
6060 e.e.EncodeNil()
6061 return
6062 }
6063 ee, esep := e.e, e.hh.hasElemSeparators()
6064 ee.WriteMapStart(len(v))
6065 if e.h.Canonical {
6066 v2 := make([]uint64, len(v))
6067 var i int
6068 for k, _ := range v {
6069 v2[i] = uint64(k)
6070 i++
6071 }
6072 sort.Sort(uintSlice(v2))
6073 if esep {
6074 for _, k2 := range v2 {
6075 ee.WriteMapElemKey()
6076 ee.EncodeUint(uint64(uint(k2)))
6077 ee.WriteMapElemValue()
6078 ee.EncodeInt(int64(v[uint(k2)]))
6079 }
6080 } else {
6081 for _, k2 := range v2 {
6082 ee.EncodeUint(uint64(uint(k2)))
6083 ee.EncodeInt(int64(v[uint(k2)]))
6084 }
6085 }
6086 } else {
6087 if esep {
6088 for k2, v2 := range v {
6089 ee.WriteMapElemKey()
6090 ee.EncodeUint(uint64(k2))
6091 ee.WriteMapElemValue()
6092 ee.EncodeInt(int64(v2))
6093 }
6094 } else {
6095 for k2, v2 := range v {
6096 ee.EncodeUint(uint64(k2))
6097 ee.EncodeInt(int64(v2))
6098 }
6099 }
6100 }
6101 ee.WriteMapEnd()
6102}
6103
6104func (e *Encoder) fastpathEncMapUintInt64R(f *codecFnInfo, rv reflect.Value) {
6105 fastpathTV.EncMapUintInt64V(rv2i(rv).(map[uint]int64), e)
6106}
6107func (_ fastpathT) EncMapUintInt64V(v map[uint]int64, e *Encoder) {
6108 if v == nil {
6109 e.e.EncodeNil()
6110 return
6111 }
6112 ee, esep := e.e, e.hh.hasElemSeparators()
6113 ee.WriteMapStart(len(v))
6114 if e.h.Canonical {
6115 v2 := make([]uint64, len(v))
6116 var i int
6117 for k, _ := range v {
6118 v2[i] = uint64(k)
6119 i++
6120 }
6121 sort.Sort(uintSlice(v2))
6122 if esep {
6123 for _, k2 := range v2 {
6124 ee.WriteMapElemKey()
6125 ee.EncodeUint(uint64(uint(k2)))
6126 ee.WriteMapElemValue()
6127 ee.EncodeInt(int64(v[uint(k2)]))
6128 }
6129 } else {
6130 for _, k2 := range v2 {
6131 ee.EncodeUint(uint64(uint(k2)))
6132 ee.EncodeInt(int64(v[uint(k2)]))
6133 }
6134 }
6135 } else {
6136 if esep {
6137 for k2, v2 := range v {
6138 ee.WriteMapElemKey()
6139 ee.EncodeUint(uint64(k2))
6140 ee.WriteMapElemValue()
6141 ee.EncodeInt(int64(v2))
6142 }
6143 } else {
6144 for k2, v2 := range v {
6145 ee.EncodeUint(uint64(k2))
6146 ee.EncodeInt(int64(v2))
6147 }
6148 }
6149 }
6150 ee.WriteMapEnd()
6151}
6152
6153func (e *Encoder) fastpathEncMapUintFloat32R(f *codecFnInfo, rv reflect.Value) {
6154 fastpathTV.EncMapUintFloat32V(rv2i(rv).(map[uint]float32), e)
6155}
6156func (_ fastpathT) EncMapUintFloat32V(v map[uint]float32, e *Encoder) {
6157 if v == nil {
6158 e.e.EncodeNil()
6159 return
6160 }
6161 ee, esep := e.e, e.hh.hasElemSeparators()
6162 ee.WriteMapStart(len(v))
6163 if e.h.Canonical {
6164 v2 := make([]uint64, len(v))
6165 var i int
6166 for k, _ := range v {
6167 v2[i] = uint64(k)
6168 i++
6169 }
6170 sort.Sort(uintSlice(v2))
6171 if esep {
6172 for _, k2 := range v2 {
6173 ee.WriteMapElemKey()
6174 ee.EncodeUint(uint64(uint(k2)))
6175 ee.WriteMapElemValue()
6176 ee.EncodeFloat32(v[uint(k2)])
6177 }
6178 } else {
6179 for _, k2 := range v2 {
6180 ee.EncodeUint(uint64(uint(k2)))
6181 ee.EncodeFloat32(v[uint(k2)])
6182 }
6183 }
6184 } else {
6185 if esep {
6186 for k2, v2 := range v {
6187 ee.WriteMapElemKey()
6188 ee.EncodeUint(uint64(k2))
6189 ee.WriteMapElemValue()
6190 ee.EncodeFloat32(v2)
6191 }
6192 } else {
6193 for k2, v2 := range v {
6194 ee.EncodeUint(uint64(k2))
6195 ee.EncodeFloat32(v2)
6196 }
6197 }
6198 }
6199 ee.WriteMapEnd()
6200}
6201
6202func (e *Encoder) fastpathEncMapUintFloat64R(f *codecFnInfo, rv reflect.Value) {
6203 fastpathTV.EncMapUintFloat64V(rv2i(rv).(map[uint]float64), e)
6204}
6205func (_ fastpathT) EncMapUintFloat64V(v map[uint]float64, e *Encoder) {
6206 if v == nil {
6207 e.e.EncodeNil()
6208 return
6209 }
6210 ee, esep := e.e, e.hh.hasElemSeparators()
6211 ee.WriteMapStart(len(v))
6212 if e.h.Canonical {
6213 v2 := make([]uint64, len(v))
6214 var i int
6215 for k, _ := range v {
6216 v2[i] = uint64(k)
6217 i++
6218 }
6219 sort.Sort(uintSlice(v2))
6220 if esep {
6221 for _, k2 := range v2 {
6222 ee.WriteMapElemKey()
6223 ee.EncodeUint(uint64(uint(k2)))
6224 ee.WriteMapElemValue()
6225 ee.EncodeFloat64(v[uint(k2)])
6226 }
6227 } else {
6228 for _, k2 := range v2 {
6229 ee.EncodeUint(uint64(uint(k2)))
6230 ee.EncodeFloat64(v[uint(k2)])
6231 }
6232 }
6233 } else {
6234 if esep {
6235 for k2, v2 := range v {
6236 ee.WriteMapElemKey()
6237 ee.EncodeUint(uint64(k2))
6238 ee.WriteMapElemValue()
6239 ee.EncodeFloat64(v2)
6240 }
6241 } else {
6242 for k2, v2 := range v {
6243 ee.EncodeUint(uint64(k2))
6244 ee.EncodeFloat64(v2)
6245 }
6246 }
6247 }
6248 ee.WriteMapEnd()
6249}
6250
6251func (e *Encoder) fastpathEncMapUintBoolR(f *codecFnInfo, rv reflect.Value) {
6252 fastpathTV.EncMapUintBoolV(rv2i(rv).(map[uint]bool), e)
6253}
6254func (_ fastpathT) EncMapUintBoolV(v map[uint]bool, e *Encoder) {
6255 if v == nil {
6256 e.e.EncodeNil()
6257 return
6258 }
6259 ee, esep := e.e, e.hh.hasElemSeparators()
6260 ee.WriteMapStart(len(v))
6261 if e.h.Canonical {
6262 v2 := make([]uint64, len(v))
6263 var i int
6264 for k, _ := range v {
6265 v2[i] = uint64(k)
6266 i++
6267 }
6268 sort.Sort(uintSlice(v2))
6269 if esep {
6270 for _, k2 := range v2 {
6271 ee.WriteMapElemKey()
6272 ee.EncodeUint(uint64(uint(k2)))
6273 ee.WriteMapElemValue()
6274 ee.EncodeBool(v[uint(k2)])
6275 }
6276 } else {
6277 for _, k2 := range v2 {
6278 ee.EncodeUint(uint64(uint(k2)))
6279 ee.EncodeBool(v[uint(k2)])
6280 }
6281 }
6282 } else {
6283 if esep {
6284 for k2, v2 := range v {
6285 ee.WriteMapElemKey()
6286 ee.EncodeUint(uint64(k2))
6287 ee.WriteMapElemValue()
6288 ee.EncodeBool(v2)
6289 }
6290 } else {
6291 for k2, v2 := range v {
6292 ee.EncodeUint(uint64(k2))
6293 ee.EncodeBool(v2)
6294 }
6295 }
6296 }
6297 ee.WriteMapEnd()
6298}
6299
6300func (e *Encoder) fastpathEncMapUint8IntfR(f *codecFnInfo, rv reflect.Value) {
6301 fastpathTV.EncMapUint8IntfV(rv2i(rv).(map[uint8]interface{}), e)
6302}
6303func (_ fastpathT) EncMapUint8IntfV(v map[uint8]interface{}, e *Encoder) {
6304 if v == nil {
6305 e.e.EncodeNil()
6306 return
6307 }
6308 ee, esep := e.e, e.hh.hasElemSeparators()
6309 ee.WriteMapStart(len(v))
6310 if e.h.Canonical {
6311 v2 := make([]uint64, len(v))
6312 var i int
6313 for k, _ := range v {
6314 v2[i] = uint64(k)
6315 i++
6316 }
6317 sort.Sort(uintSlice(v2))
6318 if esep {
6319 for _, k2 := range v2 {
6320 ee.WriteMapElemKey()
6321 ee.EncodeUint(uint64(uint8(k2)))
6322 ee.WriteMapElemValue()
6323 e.encode(v[uint8(k2)])
6324 }
6325 } else {
6326 for _, k2 := range v2 {
6327 ee.EncodeUint(uint64(uint8(k2)))
6328 e.encode(v[uint8(k2)])
6329 }
6330 }
6331 } else {
6332 if esep {
6333 for k2, v2 := range v {
6334 ee.WriteMapElemKey()
6335 ee.EncodeUint(uint64(k2))
6336 ee.WriteMapElemValue()
6337 e.encode(v2)
6338 }
6339 } else {
6340 for k2, v2 := range v {
6341 ee.EncodeUint(uint64(k2))
6342 e.encode(v2)
6343 }
6344 }
6345 }
6346 ee.WriteMapEnd()
6347}
6348
6349func (e *Encoder) fastpathEncMapUint8StringR(f *codecFnInfo, rv reflect.Value) {
6350 fastpathTV.EncMapUint8StringV(rv2i(rv).(map[uint8]string), e)
6351}
6352func (_ fastpathT) EncMapUint8StringV(v map[uint8]string, e *Encoder) {
6353 if v == nil {
6354 e.e.EncodeNil()
6355 return
6356 }
6357 ee, esep := e.e, e.hh.hasElemSeparators()
6358 ee.WriteMapStart(len(v))
6359 if e.h.Canonical {
6360 v2 := make([]uint64, len(v))
6361 var i int
6362 for k, _ := range v {
6363 v2[i] = uint64(k)
6364 i++
6365 }
6366 sort.Sort(uintSlice(v2))
6367 if esep {
6368 for _, k2 := range v2 {
6369 ee.WriteMapElemKey()
6370 ee.EncodeUint(uint64(uint8(k2)))
6371 ee.WriteMapElemValue()
6372 ee.EncodeString(cUTF8, v[uint8(k2)])
6373 }
6374 } else {
6375 for _, k2 := range v2 {
6376 ee.EncodeUint(uint64(uint8(k2)))
6377 ee.EncodeString(cUTF8, v[uint8(k2)])
6378 }
6379 }
6380 } else {
6381 if esep {
6382 for k2, v2 := range v {
6383 ee.WriteMapElemKey()
6384 ee.EncodeUint(uint64(k2))
6385 ee.WriteMapElemValue()
6386 ee.EncodeString(cUTF8, v2)
6387 }
6388 } else {
6389 for k2, v2 := range v {
6390 ee.EncodeUint(uint64(k2))
6391 ee.EncodeString(cUTF8, v2)
6392 }
6393 }
6394 }
6395 ee.WriteMapEnd()
6396}
6397
6398func (e *Encoder) fastpathEncMapUint8UintR(f *codecFnInfo, rv reflect.Value) {
6399 fastpathTV.EncMapUint8UintV(rv2i(rv).(map[uint8]uint), e)
6400}
6401func (_ fastpathT) EncMapUint8UintV(v map[uint8]uint, e *Encoder) {
6402 if v == nil {
6403 e.e.EncodeNil()
6404 return
6405 }
6406 ee, esep := e.e, e.hh.hasElemSeparators()
6407 ee.WriteMapStart(len(v))
6408 if e.h.Canonical {
6409 v2 := make([]uint64, len(v))
6410 var i int
6411 for k, _ := range v {
6412 v2[i] = uint64(k)
6413 i++
6414 }
6415 sort.Sort(uintSlice(v2))
6416 if esep {
6417 for _, k2 := range v2 {
6418 ee.WriteMapElemKey()
6419 ee.EncodeUint(uint64(uint8(k2)))
6420 ee.WriteMapElemValue()
6421 ee.EncodeUint(uint64(v[uint8(k2)]))
6422 }
6423 } else {
6424 for _, k2 := range v2 {
6425 ee.EncodeUint(uint64(uint8(k2)))
6426 ee.EncodeUint(uint64(v[uint8(k2)]))
6427 }
6428 }
6429 } else {
6430 if esep {
6431 for k2, v2 := range v {
6432 ee.WriteMapElemKey()
6433 ee.EncodeUint(uint64(k2))
6434 ee.WriteMapElemValue()
6435 ee.EncodeUint(uint64(v2))
6436 }
6437 } else {
6438 for k2, v2 := range v {
6439 ee.EncodeUint(uint64(k2))
6440 ee.EncodeUint(uint64(v2))
6441 }
6442 }
6443 }
6444 ee.WriteMapEnd()
6445}
6446
6447func (e *Encoder) fastpathEncMapUint8Uint8R(f *codecFnInfo, rv reflect.Value) {
6448 fastpathTV.EncMapUint8Uint8V(rv2i(rv).(map[uint8]uint8), e)
6449}
6450func (_ fastpathT) EncMapUint8Uint8V(v map[uint8]uint8, e *Encoder) {
6451 if v == nil {
6452 e.e.EncodeNil()
6453 return
6454 }
6455 ee, esep := e.e, e.hh.hasElemSeparators()
6456 ee.WriteMapStart(len(v))
6457 if e.h.Canonical {
6458 v2 := make([]uint64, len(v))
6459 var i int
6460 for k, _ := range v {
6461 v2[i] = uint64(k)
6462 i++
6463 }
6464 sort.Sort(uintSlice(v2))
6465 if esep {
6466 for _, k2 := range v2 {
6467 ee.WriteMapElemKey()
6468 ee.EncodeUint(uint64(uint8(k2)))
6469 ee.WriteMapElemValue()
6470 ee.EncodeUint(uint64(v[uint8(k2)]))
6471 }
6472 } else {
6473 for _, k2 := range v2 {
6474 ee.EncodeUint(uint64(uint8(k2)))
6475 ee.EncodeUint(uint64(v[uint8(k2)]))
6476 }
6477 }
6478 } else {
6479 if esep {
6480 for k2, v2 := range v {
6481 ee.WriteMapElemKey()
6482 ee.EncodeUint(uint64(k2))
6483 ee.WriteMapElemValue()
6484 ee.EncodeUint(uint64(v2))
6485 }
6486 } else {
6487 for k2, v2 := range v {
6488 ee.EncodeUint(uint64(k2))
6489 ee.EncodeUint(uint64(v2))
6490 }
6491 }
6492 }
6493 ee.WriteMapEnd()
6494}
6495
6496func (e *Encoder) fastpathEncMapUint8Uint16R(f *codecFnInfo, rv reflect.Value) {
6497 fastpathTV.EncMapUint8Uint16V(rv2i(rv).(map[uint8]uint16), e)
6498}
6499func (_ fastpathT) EncMapUint8Uint16V(v map[uint8]uint16, e *Encoder) {
6500 if v == nil {
6501 e.e.EncodeNil()
6502 return
6503 }
6504 ee, esep := e.e, e.hh.hasElemSeparators()
6505 ee.WriteMapStart(len(v))
6506 if e.h.Canonical {
6507 v2 := make([]uint64, len(v))
6508 var i int
6509 for k, _ := range v {
6510 v2[i] = uint64(k)
6511 i++
6512 }
6513 sort.Sort(uintSlice(v2))
6514 if esep {
6515 for _, k2 := range v2 {
6516 ee.WriteMapElemKey()
6517 ee.EncodeUint(uint64(uint8(k2)))
6518 ee.WriteMapElemValue()
6519 ee.EncodeUint(uint64(v[uint8(k2)]))
6520 }
6521 } else {
6522 for _, k2 := range v2 {
6523 ee.EncodeUint(uint64(uint8(k2)))
6524 ee.EncodeUint(uint64(v[uint8(k2)]))
6525 }
6526 }
6527 } else {
6528 if esep {
6529 for k2, v2 := range v {
6530 ee.WriteMapElemKey()
6531 ee.EncodeUint(uint64(k2))
6532 ee.WriteMapElemValue()
6533 ee.EncodeUint(uint64(v2))
6534 }
6535 } else {
6536 for k2, v2 := range v {
6537 ee.EncodeUint(uint64(k2))
6538 ee.EncodeUint(uint64(v2))
6539 }
6540 }
6541 }
6542 ee.WriteMapEnd()
6543}
6544
6545func (e *Encoder) fastpathEncMapUint8Uint32R(f *codecFnInfo, rv reflect.Value) {
6546 fastpathTV.EncMapUint8Uint32V(rv2i(rv).(map[uint8]uint32), e)
6547}
6548func (_ fastpathT) EncMapUint8Uint32V(v map[uint8]uint32, e *Encoder) {
6549 if v == nil {
6550 e.e.EncodeNil()
6551 return
6552 }
6553 ee, esep := e.e, e.hh.hasElemSeparators()
6554 ee.WriteMapStart(len(v))
6555 if e.h.Canonical {
6556 v2 := make([]uint64, len(v))
6557 var i int
6558 for k, _ := range v {
6559 v2[i] = uint64(k)
6560 i++
6561 }
6562 sort.Sort(uintSlice(v2))
6563 if esep {
6564 for _, k2 := range v2 {
6565 ee.WriteMapElemKey()
6566 ee.EncodeUint(uint64(uint8(k2)))
6567 ee.WriteMapElemValue()
6568 ee.EncodeUint(uint64(v[uint8(k2)]))
6569 }
6570 } else {
6571 for _, k2 := range v2 {
6572 ee.EncodeUint(uint64(uint8(k2)))
6573 ee.EncodeUint(uint64(v[uint8(k2)]))
6574 }
6575 }
6576 } else {
6577 if esep {
6578 for k2, v2 := range v {
6579 ee.WriteMapElemKey()
6580 ee.EncodeUint(uint64(k2))
6581 ee.WriteMapElemValue()
6582 ee.EncodeUint(uint64(v2))
6583 }
6584 } else {
6585 for k2, v2 := range v {
6586 ee.EncodeUint(uint64(k2))
6587 ee.EncodeUint(uint64(v2))
6588 }
6589 }
6590 }
6591 ee.WriteMapEnd()
6592}
6593
6594func (e *Encoder) fastpathEncMapUint8Uint64R(f *codecFnInfo, rv reflect.Value) {
6595 fastpathTV.EncMapUint8Uint64V(rv2i(rv).(map[uint8]uint64), e)
6596}
6597func (_ fastpathT) EncMapUint8Uint64V(v map[uint8]uint64, e *Encoder) {
6598 if v == nil {
6599 e.e.EncodeNil()
6600 return
6601 }
6602 ee, esep := e.e, e.hh.hasElemSeparators()
6603 ee.WriteMapStart(len(v))
6604 if e.h.Canonical {
6605 v2 := make([]uint64, len(v))
6606 var i int
6607 for k, _ := range v {
6608 v2[i] = uint64(k)
6609 i++
6610 }
6611 sort.Sort(uintSlice(v2))
6612 if esep {
6613 for _, k2 := range v2 {
6614 ee.WriteMapElemKey()
6615 ee.EncodeUint(uint64(uint8(k2)))
6616 ee.WriteMapElemValue()
6617 ee.EncodeUint(uint64(v[uint8(k2)]))
6618 }
6619 } else {
6620 for _, k2 := range v2 {
6621 ee.EncodeUint(uint64(uint8(k2)))
6622 ee.EncodeUint(uint64(v[uint8(k2)]))
6623 }
6624 }
6625 } else {
6626 if esep {
6627 for k2, v2 := range v {
6628 ee.WriteMapElemKey()
6629 ee.EncodeUint(uint64(k2))
6630 ee.WriteMapElemValue()
6631 ee.EncodeUint(uint64(v2))
6632 }
6633 } else {
6634 for k2, v2 := range v {
6635 ee.EncodeUint(uint64(k2))
6636 ee.EncodeUint(uint64(v2))
6637 }
6638 }
6639 }
6640 ee.WriteMapEnd()
6641}
6642
6643func (e *Encoder) fastpathEncMapUint8UintptrR(f *codecFnInfo, rv reflect.Value) {
6644 fastpathTV.EncMapUint8UintptrV(rv2i(rv).(map[uint8]uintptr), e)
6645}
6646func (_ fastpathT) EncMapUint8UintptrV(v map[uint8]uintptr, e *Encoder) {
6647 if v == nil {
6648 e.e.EncodeNil()
6649 return
6650 }
6651 ee, esep := e.e, e.hh.hasElemSeparators()
6652 ee.WriteMapStart(len(v))
6653 if e.h.Canonical {
6654 v2 := make([]uint64, len(v))
6655 var i int
6656 for k, _ := range v {
6657 v2[i] = uint64(k)
6658 i++
6659 }
6660 sort.Sort(uintSlice(v2))
6661 if esep {
6662 for _, k2 := range v2 {
6663 ee.WriteMapElemKey()
6664 ee.EncodeUint(uint64(uint8(k2)))
6665 ee.WriteMapElemValue()
6666 e.encode(v[uint8(k2)])
6667 }
6668 } else {
6669 for _, k2 := range v2 {
6670 ee.EncodeUint(uint64(uint8(k2)))
6671 e.encode(v[uint8(k2)])
6672 }
6673 }
6674 } else {
6675 if esep {
6676 for k2, v2 := range v {
6677 ee.WriteMapElemKey()
6678 ee.EncodeUint(uint64(k2))
6679 ee.WriteMapElemValue()
6680 e.encode(v2)
6681 }
6682 } else {
6683 for k2, v2 := range v {
6684 ee.EncodeUint(uint64(k2))
6685 e.encode(v2)
6686 }
6687 }
6688 }
6689 ee.WriteMapEnd()
6690}
6691
6692func (e *Encoder) fastpathEncMapUint8IntR(f *codecFnInfo, rv reflect.Value) {
6693 fastpathTV.EncMapUint8IntV(rv2i(rv).(map[uint8]int), e)
6694}
6695func (_ fastpathT) EncMapUint8IntV(v map[uint8]int, e *Encoder) {
6696 if v == nil {
6697 e.e.EncodeNil()
6698 return
6699 }
6700 ee, esep := e.e, e.hh.hasElemSeparators()
6701 ee.WriteMapStart(len(v))
6702 if e.h.Canonical {
6703 v2 := make([]uint64, len(v))
6704 var i int
6705 for k, _ := range v {
6706 v2[i] = uint64(k)
6707 i++
6708 }
6709 sort.Sort(uintSlice(v2))
6710 if esep {
6711 for _, k2 := range v2 {
6712 ee.WriteMapElemKey()
6713 ee.EncodeUint(uint64(uint8(k2)))
6714 ee.WriteMapElemValue()
6715 ee.EncodeInt(int64(v[uint8(k2)]))
6716 }
6717 } else {
6718 for _, k2 := range v2 {
6719 ee.EncodeUint(uint64(uint8(k2)))
6720 ee.EncodeInt(int64(v[uint8(k2)]))
6721 }
6722 }
6723 } else {
6724 if esep {
6725 for k2, v2 := range v {
6726 ee.WriteMapElemKey()
6727 ee.EncodeUint(uint64(k2))
6728 ee.WriteMapElemValue()
6729 ee.EncodeInt(int64(v2))
6730 }
6731 } else {
6732 for k2, v2 := range v {
6733 ee.EncodeUint(uint64(k2))
6734 ee.EncodeInt(int64(v2))
6735 }
6736 }
6737 }
6738 ee.WriteMapEnd()
6739}
6740
6741func (e *Encoder) fastpathEncMapUint8Int8R(f *codecFnInfo, rv reflect.Value) {
6742 fastpathTV.EncMapUint8Int8V(rv2i(rv).(map[uint8]int8), e)
6743}
6744func (_ fastpathT) EncMapUint8Int8V(v map[uint8]int8, e *Encoder) {
6745 if v == nil {
6746 e.e.EncodeNil()
6747 return
6748 }
6749 ee, esep := e.e, e.hh.hasElemSeparators()
6750 ee.WriteMapStart(len(v))
6751 if e.h.Canonical {
6752 v2 := make([]uint64, len(v))
6753 var i int
6754 for k, _ := range v {
6755 v2[i] = uint64(k)
6756 i++
6757 }
6758 sort.Sort(uintSlice(v2))
6759 if esep {
6760 for _, k2 := range v2 {
6761 ee.WriteMapElemKey()
6762 ee.EncodeUint(uint64(uint8(k2)))
6763 ee.WriteMapElemValue()
6764 ee.EncodeInt(int64(v[uint8(k2)]))
6765 }
6766 } else {
6767 for _, k2 := range v2 {
6768 ee.EncodeUint(uint64(uint8(k2)))
6769 ee.EncodeInt(int64(v[uint8(k2)]))
6770 }
6771 }
6772 } else {
6773 if esep {
6774 for k2, v2 := range v {
6775 ee.WriteMapElemKey()
6776 ee.EncodeUint(uint64(k2))
6777 ee.WriteMapElemValue()
6778 ee.EncodeInt(int64(v2))
6779 }
6780 } else {
6781 for k2, v2 := range v {
6782 ee.EncodeUint(uint64(k2))
6783 ee.EncodeInt(int64(v2))
6784 }
6785 }
6786 }
6787 ee.WriteMapEnd()
6788}
6789
6790func (e *Encoder) fastpathEncMapUint8Int16R(f *codecFnInfo, rv reflect.Value) {
6791 fastpathTV.EncMapUint8Int16V(rv2i(rv).(map[uint8]int16), e)
6792}
6793func (_ fastpathT) EncMapUint8Int16V(v map[uint8]int16, e *Encoder) {
6794 if v == nil {
6795 e.e.EncodeNil()
6796 return
6797 }
6798 ee, esep := e.e, e.hh.hasElemSeparators()
6799 ee.WriteMapStart(len(v))
6800 if e.h.Canonical {
6801 v2 := make([]uint64, len(v))
6802 var i int
6803 for k, _ := range v {
6804 v2[i] = uint64(k)
6805 i++
6806 }
6807 sort.Sort(uintSlice(v2))
6808 if esep {
6809 for _, k2 := range v2 {
6810 ee.WriteMapElemKey()
6811 ee.EncodeUint(uint64(uint8(k2)))
6812 ee.WriteMapElemValue()
6813 ee.EncodeInt(int64(v[uint8(k2)]))
6814 }
6815 } else {
6816 for _, k2 := range v2 {
6817 ee.EncodeUint(uint64(uint8(k2)))
6818 ee.EncodeInt(int64(v[uint8(k2)]))
6819 }
6820 }
6821 } else {
6822 if esep {
6823 for k2, v2 := range v {
6824 ee.WriteMapElemKey()
6825 ee.EncodeUint(uint64(k2))
6826 ee.WriteMapElemValue()
6827 ee.EncodeInt(int64(v2))
6828 }
6829 } else {
6830 for k2, v2 := range v {
6831 ee.EncodeUint(uint64(k2))
6832 ee.EncodeInt(int64(v2))
6833 }
6834 }
6835 }
6836 ee.WriteMapEnd()
6837}
6838
6839func (e *Encoder) fastpathEncMapUint8Int32R(f *codecFnInfo, rv reflect.Value) {
6840 fastpathTV.EncMapUint8Int32V(rv2i(rv).(map[uint8]int32), e)
6841}
6842func (_ fastpathT) EncMapUint8Int32V(v map[uint8]int32, e *Encoder) {
6843 if v == nil {
6844 e.e.EncodeNil()
6845 return
6846 }
6847 ee, esep := e.e, e.hh.hasElemSeparators()
6848 ee.WriteMapStart(len(v))
6849 if e.h.Canonical {
6850 v2 := make([]uint64, len(v))
6851 var i int
6852 for k, _ := range v {
6853 v2[i] = uint64(k)
6854 i++
6855 }
6856 sort.Sort(uintSlice(v2))
6857 if esep {
6858 for _, k2 := range v2 {
6859 ee.WriteMapElemKey()
6860 ee.EncodeUint(uint64(uint8(k2)))
6861 ee.WriteMapElemValue()
6862 ee.EncodeInt(int64(v[uint8(k2)]))
6863 }
6864 } else {
6865 for _, k2 := range v2 {
6866 ee.EncodeUint(uint64(uint8(k2)))
6867 ee.EncodeInt(int64(v[uint8(k2)]))
6868 }
6869 }
6870 } else {
6871 if esep {
6872 for k2, v2 := range v {
6873 ee.WriteMapElemKey()
6874 ee.EncodeUint(uint64(k2))
6875 ee.WriteMapElemValue()
6876 ee.EncodeInt(int64(v2))
6877 }
6878 } else {
6879 for k2, v2 := range v {
6880 ee.EncodeUint(uint64(k2))
6881 ee.EncodeInt(int64(v2))
6882 }
6883 }
6884 }
6885 ee.WriteMapEnd()
6886}
6887
6888func (e *Encoder) fastpathEncMapUint8Int64R(f *codecFnInfo, rv reflect.Value) {
6889 fastpathTV.EncMapUint8Int64V(rv2i(rv).(map[uint8]int64), e)
6890}
6891func (_ fastpathT) EncMapUint8Int64V(v map[uint8]int64, e *Encoder) {
6892 if v == nil {
6893 e.e.EncodeNil()
6894 return
6895 }
6896 ee, esep := e.e, e.hh.hasElemSeparators()
6897 ee.WriteMapStart(len(v))
6898 if e.h.Canonical {
6899 v2 := make([]uint64, len(v))
6900 var i int
6901 for k, _ := range v {
6902 v2[i] = uint64(k)
6903 i++
6904 }
6905 sort.Sort(uintSlice(v2))
6906 if esep {
6907 for _, k2 := range v2 {
6908 ee.WriteMapElemKey()
6909 ee.EncodeUint(uint64(uint8(k2)))
6910 ee.WriteMapElemValue()
6911 ee.EncodeInt(int64(v[uint8(k2)]))
6912 }
6913 } else {
6914 for _, k2 := range v2 {
6915 ee.EncodeUint(uint64(uint8(k2)))
6916 ee.EncodeInt(int64(v[uint8(k2)]))
6917 }
6918 }
6919 } else {
6920 if esep {
6921 for k2, v2 := range v {
6922 ee.WriteMapElemKey()
6923 ee.EncodeUint(uint64(k2))
6924 ee.WriteMapElemValue()
6925 ee.EncodeInt(int64(v2))
6926 }
6927 } else {
6928 for k2, v2 := range v {
6929 ee.EncodeUint(uint64(k2))
6930 ee.EncodeInt(int64(v2))
6931 }
6932 }
6933 }
6934 ee.WriteMapEnd()
6935}
6936
6937func (e *Encoder) fastpathEncMapUint8Float32R(f *codecFnInfo, rv reflect.Value) {
6938 fastpathTV.EncMapUint8Float32V(rv2i(rv).(map[uint8]float32), e)
6939}
6940func (_ fastpathT) EncMapUint8Float32V(v map[uint8]float32, e *Encoder) {
6941 if v == nil {
6942 e.e.EncodeNil()
6943 return
6944 }
6945 ee, esep := e.e, e.hh.hasElemSeparators()
6946 ee.WriteMapStart(len(v))
6947 if e.h.Canonical {
6948 v2 := make([]uint64, len(v))
6949 var i int
6950 for k, _ := range v {
6951 v2[i] = uint64(k)
6952 i++
6953 }
6954 sort.Sort(uintSlice(v2))
6955 if esep {
6956 for _, k2 := range v2 {
6957 ee.WriteMapElemKey()
6958 ee.EncodeUint(uint64(uint8(k2)))
6959 ee.WriteMapElemValue()
6960 ee.EncodeFloat32(v[uint8(k2)])
6961 }
6962 } else {
6963 for _, k2 := range v2 {
6964 ee.EncodeUint(uint64(uint8(k2)))
6965 ee.EncodeFloat32(v[uint8(k2)])
6966 }
6967 }
6968 } else {
6969 if esep {
6970 for k2, v2 := range v {
6971 ee.WriteMapElemKey()
6972 ee.EncodeUint(uint64(k2))
6973 ee.WriteMapElemValue()
6974 ee.EncodeFloat32(v2)
6975 }
6976 } else {
6977 for k2, v2 := range v {
6978 ee.EncodeUint(uint64(k2))
6979 ee.EncodeFloat32(v2)
6980 }
6981 }
6982 }
6983 ee.WriteMapEnd()
6984}
6985
6986func (e *Encoder) fastpathEncMapUint8Float64R(f *codecFnInfo, rv reflect.Value) {
6987 fastpathTV.EncMapUint8Float64V(rv2i(rv).(map[uint8]float64), e)
6988}
6989func (_ fastpathT) EncMapUint8Float64V(v map[uint8]float64, e *Encoder) {
6990 if v == nil {
6991 e.e.EncodeNil()
6992 return
6993 }
6994 ee, esep := e.e, e.hh.hasElemSeparators()
6995 ee.WriteMapStart(len(v))
6996 if e.h.Canonical {
6997 v2 := make([]uint64, len(v))
6998 var i int
6999 for k, _ := range v {
7000 v2[i] = uint64(k)
7001 i++
7002 }
7003 sort.Sort(uintSlice(v2))
7004 if esep {
7005 for _, k2 := range v2 {
7006 ee.WriteMapElemKey()
7007 ee.EncodeUint(uint64(uint8(k2)))
7008 ee.WriteMapElemValue()
7009 ee.EncodeFloat64(v[uint8(k2)])
7010 }
7011 } else {
7012 for _, k2 := range v2 {
7013 ee.EncodeUint(uint64(uint8(k2)))
7014 ee.EncodeFloat64(v[uint8(k2)])
7015 }
7016 }
7017 } else {
7018 if esep {
7019 for k2, v2 := range v {
7020 ee.WriteMapElemKey()
7021 ee.EncodeUint(uint64(k2))
7022 ee.WriteMapElemValue()
7023 ee.EncodeFloat64(v2)
7024 }
7025 } else {
7026 for k2, v2 := range v {
7027 ee.EncodeUint(uint64(k2))
7028 ee.EncodeFloat64(v2)
7029 }
7030 }
7031 }
7032 ee.WriteMapEnd()
7033}
7034
7035func (e *Encoder) fastpathEncMapUint8BoolR(f *codecFnInfo, rv reflect.Value) {
7036 fastpathTV.EncMapUint8BoolV(rv2i(rv).(map[uint8]bool), e)
7037}
7038func (_ fastpathT) EncMapUint8BoolV(v map[uint8]bool, e *Encoder) {
7039 if v == nil {
7040 e.e.EncodeNil()
7041 return
7042 }
7043 ee, esep := e.e, e.hh.hasElemSeparators()
7044 ee.WriteMapStart(len(v))
7045 if e.h.Canonical {
7046 v2 := make([]uint64, len(v))
7047 var i int
7048 for k, _ := range v {
7049 v2[i] = uint64(k)
7050 i++
7051 }
7052 sort.Sort(uintSlice(v2))
7053 if esep {
7054 for _, k2 := range v2 {
7055 ee.WriteMapElemKey()
7056 ee.EncodeUint(uint64(uint8(k2)))
7057 ee.WriteMapElemValue()
7058 ee.EncodeBool(v[uint8(k2)])
7059 }
7060 } else {
7061 for _, k2 := range v2 {
7062 ee.EncodeUint(uint64(uint8(k2)))
7063 ee.EncodeBool(v[uint8(k2)])
7064 }
7065 }
7066 } else {
7067 if esep {
7068 for k2, v2 := range v {
7069 ee.WriteMapElemKey()
7070 ee.EncodeUint(uint64(k2))
7071 ee.WriteMapElemValue()
7072 ee.EncodeBool(v2)
7073 }
7074 } else {
7075 for k2, v2 := range v {
7076 ee.EncodeUint(uint64(k2))
7077 ee.EncodeBool(v2)
7078 }
7079 }
7080 }
7081 ee.WriteMapEnd()
7082}
7083
7084func (e *Encoder) fastpathEncMapUint16IntfR(f *codecFnInfo, rv reflect.Value) {
7085 fastpathTV.EncMapUint16IntfV(rv2i(rv).(map[uint16]interface{}), e)
7086}
7087func (_ fastpathT) EncMapUint16IntfV(v map[uint16]interface{}, e *Encoder) {
7088 if v == nil {
7089 e.e.EncodeNil()
7090 return
7091 }
7092 ee, esep := e.e, e.hh.hasElemSeparators()
7093 ee.WriteMapStart(len(v))
7094 if e.h.Canonical {
7095 v2 := make([]uint64, len(v))
7096 var i int
7097 for k, _ := range v {
7098 v2[i] = uint64(k)
7099 i++
7100 }
7101 sort.Sort(uintSlice(v2))
7102 if esep {
7103 for _, k2 := range v2 {
7104 ee.WriteMapElemKey()
7105 ee.EncodeUint(uint64(uint16(k2)))
7106 ee.WriteMapElemValue()
7107 e.encode(v[uint16(k2)])
7108 }
7109 } else {
7110 for _, k2 := range v2 {
7111 ee.EncodeUint(uint64(uint16(k2)))
7112 e.encode(v[uint16(k2)])
7113 }
7114 }
7115 } else {
7116 if esep {
7117 for k2, v2 := range v {
7118 ee.WriteMapElemKey()
7119 ee.EncodeUint(uint64(k2))
7120 ee.WriteMapElemValue()
7121 e.encode(v2)
7122 }
7123 } else {
7124 for k2, v2 := range v {
7125 ee.EncodeUint(uint64(k2))
7126 e.encode(v2)
7127 }
7128 }
7129 }
7130 ee.WriteMapEnd()
7131}
7132
7133func (e *Encoder) fastpathEncMapUint16StringR(f *codecFnInfo, rv reflect.Value) {
7134 fastpathTV.EncMapUint16StringV(rv2i(rv).(map[uint16]string), e)
7135}
7136func (_ fastpathT) EncMapUint16StringV(v map[uint16]string, e *Encoder) {
7137 if v == nil {
7138 e.e.EncodeNil()
7139 return
7140 }
7141 ee, esep := e.e, e.hh.hasElemSeparators()
7142 ee.WriteMapStart(len(v))
7143 if e.h.Canonical {
7144 v2 := make([]uint64, len(v))
7145 var i int
7146 for k, _ := range v {
7147 v2[i] = uint64(k)
7148 i++
7149 }
7150 sort.Sort(uintSlice(v2))
7151 if esep {
7152 for _, k2 := range v2 {
7153 ee.WriteMapElemKey()
7154 ee.EncodeUint(uint64(uint16(k2)))
7155 ee.WriteMapElemValue()
7156 ee.EncodeString(cUTF8, v[uint16(k2)])
7157 }
7158 } else {
7159 for _, k2 := range v2 {
7160 ee.EncodeUint(uint64(uint16(k2)))
7161 ee.EncodeString(cUTF8, v[uint16(k2)])
7162 }
7163 }
7164 } else {
7165 if esep {
7166 for k2, v2 := range v {
7167 ee.WriteMapElemKey()
7168 ee.EncodeUint(uint64(k2))
7169 ee.WriteMapElemValue()
7170 ee.EncodeString(cUTF8, v2)
7171 }
7172 } else {
7173 for k2, v2 := range v {
7174 ee.EncodeUint(uint64(k2))
7175 ee.EncodeString(cUTF8, v2)
7176 }
7177 }
7178 }
7179 ee.WriteMapEnd()
7180}
7181
7182func (e *Encoder) fastpathEncMapUint16UintR(f *codecFnInfo, rv reflect.Value) {
7183 fastpathTV.EncMapUint16UintV(rv2i(rv).(map[uint16]uint), e)
7184}
7185func (_ fastpathT) EncMapUint16UintV(v map[uint16]uint, e *Encoder) {
7186 if v == nil {
7187 e.e.EncodeNil()
7188 return
7189 }
7190 ee, esep := e.e, e.hh.hasElemSeparators()
7191 ee.WriteMapStart(len(v))
7192 if e.h.Canonical {
7193 v2 := make([]uint64, len(v))
7194 var i int
7195 for k, _ := range v {
7196 v2[i] = uint64(k)
7197 i++
7198 }
7199 sort.Sort(uintSlice(v2))
7200 if esep {
7201 for _, k2 := range v2 {
7202 ee.WriteMapElemKey()
7203 ee.EncodeUint(uint64(uint16(k2)))
7204 ee.WriteMapElemValue()
7205 ee.EncodeUint(uint64(v[uint16(k2)]))
7206 }
7207 } else {
7208 for _, k2 := range v2 {
7209 ee.EncodeUint(uint64(uint16(k2)))
7210 ee.EncodeUint(uint64(v[uint16(k2)]))
7211 }
7212 }
7213 } else {
7214 if esep {
7215 for k2, v2 := range v {
7216 ee.WriteMapElemKey()
7217 ee.EncodeUint(uint64(k2))
7218 ee.WriteMapElemValue()
7219 ee.EncodeUint(uint64(v2))
7220 }
7221 } else {
7222 for k2, v2 := range v {
7223 ee.EncodeUint(uint64(k2))
7224 ee.EncodeUint(uint64(v2))
7225 }
7226 }
7227 }
7228 ee.WriteMapEnd()
7229}
7230
7231func (e *Encoder) fastpathEncMapUint16Uint8R(f *codecFnInfo, rv reflect.Value) {
7232 fastpathTV.EncMapUint16Uint8V(rv2i(rv).(map[uint16]uint8), e)
7233}
7234func (_ fastpathT) EncMapUint16Uint8V(v map[uint16]uint8, e *Encoder) {
7235 if v == nil {
7236 e.e.EncodeNil()
7237 return
7238 }
7239 ee, esep := e.e, e.hh.hasElemSeparators()
7240 ee.WriteMapStart(len(v))
7241 if e.h.Canonical {
7242 v2 := make([]uint64, len(v))
7243 var i int
7244 for k, _ := range v {
7245 v2[i] = uint64(k)
7246 i++
7247 }
7248 sort.Sort(uintSlice(v2))
7249 if esep {
7250 for _, k2 := range v2 {
7251 ee.WriteMapElemKey()
7252 ee.EncodeUint(uint64(uint16(k2)))
7253 ee.WriteMapElemValue()
7254 ee.EncodeUint(uint64(v[uint16(k2)]))
7255 }
7256 } else {
7257 for _, k2 := range v2 {
7258 ee.EncodeUint(uint64(uint16(k2)))
7259 ee.EncodeUint(uint64(v[uint16(k2)]))
7260 }
7261 }
7262 } else {
7263 if esep {
7264 for k2, v2 := range v {
7265 ee.WriteMapElemKey()
7266 ee.EncodeUint(uint64(k2))
7267 ee.WriteMapElemValue()
7268 ee.EncodeUint(uint64(v2))
7269 }
7270 } else {
7271 for k2, v2 := range v {
7272 ee.EncodeUint(uint64(k2))
7273 ee.EncodeUint(uint64(v2))
7274 }
7275 }
7276 }
7277 ee.WriteMapEnd()
7278}
7279
7280func (e *Encoder) fastpathEncMapUint16Uint16R(f *codecFnInfo, rv reflect.Value) {
7281 fastpathTV.EncMapUint16Uint16V(rv2i(rv).(map[uint16]uint16), e)
7282}
7283func (_ fastpathT) EncMapUint16Uint16V(v map[uint16]uint16, e *Encoder) {
7284 if v == nil {
7285 e.e.EncodeNil()
7286 return
7287 }
7288 ee, esep := e.e, e.hh.hasElemSeparators()
7289 ee.WriteMapStart(len(v))
7290 if e.h.Canonical {
7291 v2 := make([]uint64, len(v))
7292 var i int
7293 for k, _ := range v {
7294 v2[i] = uint64(k)
7295 i++
7296 }
7297 sort.Sort(uintSlice(v2))
7298 if esep {
7299 for _, k2 := range v2 {
7300 ee.WriteMapElemKey()
7301 ee.EncodeUint(uint64(uint16(k2)))
7302 ee.WriteMapElemValue()
7303 ee.EncodeUint(uint64(v[uint16(k2)]))
7304 }
7305 } else {
7306 for _, k2 := range v2 {
7307 ee.EncodeUint(uint64(uint16(k2)))
7308 ee.EncodeUint(uint64(v[uint16(k2)]))
7309 }
7310 }
7311 } else {
7312 if esep {
7313 for k2, v2 := range v {
7314 ee.WriteMapElemKey()
7315 ee.EncodeUint(uint64(k2))
7316 ee.WriteMapElemValue()
7317 ee.EncodeUint(uint64(v2))
7318 }
7319 } else {
7320 for k2, v2 := range v {
7321 ee.EncodeUint(uint64(k2))
7322 ee.EncodeUint(uint64(v2))
7323 }
7324 }
7325 }
7326 ee.WriteMapEnd()
7327}
7328
7329func (e *Encoder) fastpathEncMapUint16Uint32R(f *codecFnInfo, rv reflect.Value) {
7330 fastpathTV.EncMapUint16Uint32V(rv2i(rv).(map[uint16]uint32), e)
7331}
7332func (_ fastpathT) EncMapUint16Uint32V(v map[uint16]uint32, e *Encoder) {
7333 if v == nil {
7334 e.e.EncodeNil()
7335 return
7336 }
7337 ee, esep := e.e, e.hh.hasElemSeparators()
7338 ee.WriteMapStart(len(v))
7339 if e.h.Canonical {
7340 v2 := make([]uint64, len(v))
7341 var i int
7342 for k, _ := range v {
7343 v2[i] = uint64(k)
7344 i++
7345 }
7346 sort.Sort(uintSlice(v2))
7347 if esep {
7348 for _, k2 := range v2 {
7349 ee.WriteMapElemKey()
7350 ee.EncodeUint(uint64(uint16(k2)))
7351 ee.WriteMapElemValue()
7352 ee.EncodeUint(uint64(v[uint16(k2)]))
7353 }
7354 } else {
7355 for _, k2 := range v2 {
7356 ee.EncodeUint(uint64(uint16(k2)))
7357 ee.EncodeUint(uint64(v[uint16(k2)]))
7358 }
7359 }
7360 } else {
7361 if esep {
7362 for k2, v2 := range v {
7363 ee.WriteMapElemKey()
7364 ee.EncodeUint(uint64(k2))
7365 ee.WriteMapElemValue()
7366 ee.EncodeUint(uint64(v2))
7367 }
7368 } else {
7369 for k2, v2 := range v {
7370 ee.EncodeUint(uint64(k2))
7371 ee.EncodeUint(uint64(v2))
7372 }
7373 }
7374 }
7375 ee.WriteMapEnd()
7376}
7377
7378func (e *Encoder) fastpathEncMapUint16Uint64R(f *codecFnInfo, rv reflect.Value) {
7379 fastpathTV.EncMapUint16Uint64V(rv2i(rv).(map[uint16]uint64), e)
7380}
7381func (_ fastpathT) EncMapUint16Uint64V(v map[uint16]uint64, e *Encoder) {
7382 if v == nil {
7383 e.e.EncodeNil()
7384 return
7385 }
7386 ee, esep := e.e, e.hh.hasElemSeparators()
7387 ee.WriteMapStart(len(v))
7388 if e.h.Canonical {
7389 v2 := make([]uint64, len(v))
7390 var i int
7391 for k, _ := range v {
7392 v2[i] = uint64(k)
7393 i++
7394 }
7395 sort.Sort(uintSlice(v2))
7396 if esep {
7397 for _, k2 := range v2 {
7398 ee.WriteMapElemKey()
7399 ee.EncodeUint(uint64(uint16(k2)))
7400 ee.WriteMapElemValue()
7401 ee.EncodeUint(uint64(v[uint16(k2)]))
7402 }
7403 } else {
7404 for _, k2 := range v2 {
7405 ee.EncodeUint(uint64(uint16(k2)))
7406 ee.EncodeUint(uint64(v[uint16(k2)]))
7407 }
7408 }
7409 } else {
7410 if esep {
7411 for k2, v2 := range v {
7412 ee.WriteMapElemKey()
7413 ee.EncodeUint(uint64(k2))
7414 ee.WriteMapElemValue()
7415 ee.EncodeUint(uint64(v2))
7416 }
7417 } else {
7418 for k2, v2 := range v {
7419 ee.EncodeUint(uint64(k2))
7420 ee.EncodeUint(uint64(v2))
7421 }
7422 }
7423 }
7424 ee.WriteMapEnd()
7425}
7426
7427func (e *Encoder) fastpathEncMapUint16UintptrR(f *codecFnInfo, rv reflect.Value) {
7428 fastpathTV.EncMapUint16UintptrV(rv2i(rv).(map[uint16]uintptr), e)
7429}
7430func (_ fastpathT) EncMapUint16UintptrV(v map[uint16]uintptr, e *Encoder) {
7431 if v == nil {
7432 e.e.EncodeNil()
7433 return
7434 }
7435 ee, esep := e.e, e.hh.hasElemSeparators()
7436 ee.WriteMapStart(len(v))
7437 if e.h.Canonical {
7438 v2 := make([]uint64, len(v))
7439 var i int
7440 for k, _ := range v {
7441 v2[i] = uint64(k)
7442 i++
7443 }
7444 sort.Sort(uintSlice(v2))
7445 if esep {
7446 for _, k2 := range v2 {
7447 ee.WriteMapElemKey()
7448 ee.EncodeUint(uint64(uint16(k2)))
7449 ee.WriteMapElemValue()
7450 e.encode(v[uint16(k2)])
7451 }
7452 } else {
7453 for _, k2 := range v2 {
7454 ee.EncodeUint(uint64(uint16(k2)))
7455 e.encode(v[uint16(k2)])
7456 }
7457 }
7458 } else {
7459 if esep {
7460 for k2, v2 := range v {
7461 ee.WriteMapElemKey()
7462 ee.EncodeUint(uint64(k2))
7463 ee.WriteMapElemValue()
7464 e.encode(v2)
7465 }
7466 } else {
7467 for k2, v2 := range v {
7468 ee.EncodeUint(uint64(k2))
7469 e.encode(v2)
7470 }
7471 }
7472 }
7473 ee.WriteMapEnd()
7474}
7475
7476func (e *Encoder) fastpathEncMapUint16IntR(f *codecFnInfo, rv reflect.Value) {
7477 fastpathTV.EncMapUint16IntV(rv2i(rv).(map[uint16]int), e)
7478}
7479func (_ fastpathT) EncMapUint16IntV(v map[uint16]int, e *Encoder) {
7480 if v == nil {
7481 e.e.EncodeNil()
7482 return
7483 }
7484 ee, esep := e.e, e.hh.hasElemSeparators()
7485 ee.WriteMapStart(len(v))
7486 if e.h.Canonical {
7487 v2 := make([]uint64, len(v))
7488 var i int
7489 for k, _ := range v {
7490 v2[i] = uint64(k)
7491 i++
7492 }
7493 sort.Sort(uintSlice(v2))
7494 if esep {
7495 for _, k2 := range v2 {
7496 ee.WriteMapElemKey()
7497 ee.EncodeUint(uint64(uint16(k2)))
7498 ee.WriteMapElemValue()
7499 ee.EncodeInt(int64(v[uint16(k2)]))
7500 }
7501 } else {
7502 for _, k2 := range v2 {
7503 ee.EncodeUint(uint64(uint16(k2)))
7504 ee.EncodeInt(int64(v[uint16(k2)]))
7505 }
7506 }
7507 } else {
7508 if esep {
7509 for k2, v2 := range v {
7510 ee.WriteMapElemKey()
7511 ee.EncodeUint(uint64(k2))
7512 ee.WriteMapElemValue()
7513 ee.EncodeInt(int64(v2))
7514 }
7515 } else {
7516 for k2, v2 := range v {
7517 ee.EncodeUint(uint64(k2))
7518 ee.EncodeInt(int64(v2))
7519 }
7520 }
7521 }
7522 ee.WriteMapEnd()
7523}
7524
7525func (e *Encoder) fastpathEncMapUint16Int8R(f *codecFnInfo, rv reflect.Value) {
7526 fastpathTV.EncMapUint16Int8V(rv2i(rv).(map[uint16]int8), e)
7527}
7528func (_ fastpathT) EncMapUint16Int8V(v map[uint16]int8, e *Encoder) {
7529 if v == nil {
7530 e.e.EncodeNil()
7531 return
7532 }
7533 ee, esep := e.e, e.hh.hasElemSeparators()
7534 ee.WriteMapStart(len(v))
7535 if e.h.Canonical {
7536 v2 := make([]uint64, len(v))
7537 var i int
7538 for k, _ := range v {
7539 v2[i] = uint64(k)
7540 i++
7541 }
7542 sort.Sort(uintSlice(v2))
7543 if esep {
7544 for _, k2 := range v2 {
7545 ee.WriteMapElemKey()
7546 ee.EncodeUint(uint64(uint16(k2)))
7547 ee.WriteMapElemValue()
7548 ee.EncodeInt(int64(v[uint16(k2)]))
7549 }
7550 } else {
7551 for _, k2 := range v2 {
7552 ee.EncodeUint(uint64(uint16(k2)))
7553 ee.EncodeInt(int64(v[uint16(k2)]))
7554 }
7555 }
7556 } else {
7557 if esep {
7558 for k2, v2 := range v {
7559 ee.WriteMapElemKey()
7560 ee.EncodeUint(uint64(k2))
7561 ee.WriteMapElemValue()
7562 ee.EncodeInt(int64(v2))
7563 }
7564 } else {
7565 for k2, v2 := range v {
7566 ee.EncodeUint(uint64(k2))
7567 ee.EncodeInt(int64(v2))
7568 }
7569 }
7570 }
7571 ee.WriteMapEnd()
7572}
7573
7574func (e *Encoder) fastpathEncMapUint16Int16R(f *codecFnInfo, rv reflect.Value) {
7575 fastpathTV.EncMapUint16Int16V(rv2i(rv).(map[uint16]int16), e)
7576}
7577func (_ fastpathT) EncMapUint16Int16V(v map[uint16]int16, e *Encoder) {
7578 if v == nil {
7579 e.e.EncodeNil()
7580 return
7581 }
7582 ee, esep := e.e, e.hh.hasElemSeparators()
7583 ee.WriteMapStart(len(v))
7584 if e.h.Canonical {
7585 v2 := make([]uint64, len(v))
7586 var i int
7587 for k, _ := range v {
7588 v2[i] = uint64(k)
7589 i++
7590 }
7591 sort.Sort(uintSlice(v2))
7592 if esep {
7593 for _, k2 := range v2 {
7594 ee.WriteMapElemKey()
7595 ee.EncodeUint(uint64(uint16(k2)))
7596 ee.WriteMapElemValue()
7597 ee.EncodeInt(int64(v[uint16(k2)]))
7598 }
7599 } else {
7600 for _, k2 := range v2 {
7601 ee.EncodeUint(uint64(uint16(k2)))
7602 ee.EncodeInt(int64(v[uint16(k2)]))
7603 }
7604 }
7605 } else {
7606 if esep {
7607 for k2, v2 := range v {
7608 ee.WriteMapElemKey()
7609 ee.EncodeUint(uint64(k2))
7610 ee.WriteMapElemValue()
7611 ee.EncodeInt(int64(v2))
7612 }
7613 } else {
7614 for k2, v2 := range v {
7615 ee.EncodeUint(uint64(k2))
7616 ee.EncodeInt(int64(v2))
7617 }
7618 }
7619 }
7620 ee.WriteMapEnd()
7621}
7622
7623func (e *Encoder) fastpathEncMapUint16Int32R(f *codecFnInfo, rv reflect.Value) {
7624 fastpathTV.EncMapUint16Int32V(rv2i(rv).(map[uint16]int32), e)
7625}
7626func (_ fastpathT) EncMapUint16Int32V(v map[uint16]int32, e *Encoder) {
7627 if v == nil {
7628 e.e.EncodeNil()
7629 return
7630 }
7631 ee, esep := e.e, e.hh.hasElemSeparators()
7632 ee.WriteMapStart(len(v))
7633 if e.h.Canonical {
7634 v2 := make([]uint64, len(v))
7635 var i int
7636 for k, _ := range v {
7637 v2[i] = uint64(k)
7638 i++
7639 }
7640 sort.Sort(uintSlice(v2))
7641 if esep {
7642 for _, k2 := range v2 {
7643 ee.WriteMapElemKey()
7644 ee.EncodeUint(uint64(uint16(k2)))
7645 ee.WriteMapElemValue()
7646 ee.EncodeInt(int64(v[uint16(k2)]))
7647 }
7648 } else {
7649 for _, k2 := range v2 {
7650 ee.EncodeUint(uint64(uint16(k2)))
7651 ee.EncodeInt(int64(v[uint16(k2)]))
7652 }
7653 }
7654 } else {
7655 if esep {
7656 for k2, v2 := range v {
7657 ee.WriteMapElemKey()
7658 ee.EncodeUint(uint64(k2))
7659 ee.WriteMapElemValue()
7660 ee.EncodeInt(int64(v2))
7661 }
7662 } else {
7663 for k2, v2 := range v {
7664 ee.EncodeUint(uint64(k2))
7665 ee.EncodeInt(int64(v2))
7666 }
7667 }
7668 }
7669 ee.WriteMapEnd()
7670}
7671
7672func (e *Encoder) fastpathEncMapUint16Int64R(f *codecFnInfo, rv reflect.Value) {
7673 fastpathTV.EncMapUint16Int64V(rv2i(rv).(map[uint16]int64), e)
7674}
7675func (_ fastpathT) EncMapUint16Int64V(v map[uint16]int64, e *Encoder) {
7676 if v == nil {
7677 e.e.EncodeNil()
7678 return
7679 }
7680 ee, esep := e.e, e.hh.hasElemSeparators()
7681 ee.WriteMapStart(len(v))
7682 if e.h.Canonical {
7683 v2 := make([]uint64, len(v))
7684 var i int
7685 for k, _ := range v {
7686 v2[i] = uint64(k)
7687 i++
7688 }
7689 sort.Sort(uintSlice(v2))
7690 if esep {
7691 for _, k2 := range v2 {
7692 ee.WriteMapElemKey()
7693 ee.EncodeUint(uint64(uint16(k2)))
7694 ee.WriteMapElemValue()
7695 ee.EncodeInt(int64(v[uint16(k2)]))
7696 }
7697 } else {
7698 for _, k2 := range v2 {
7699 ee.EncodeUint(uint64(uint16(k2)))
7700 ee.EncodeInt(int64(v[uint16(k2)]))
7701 }
7702 }
7703 } else {
7704 if esep {
7705 for k2, v2 := range v {
7706 ee.WriteMapElemKey()
7707 ee.EncodeUint(uint64(k2))
7708 ee.WriteMapElemValue()
7709 ee.EncodeInt(int64(v2))
7710 }
7711 } else {
7712 for k2, v2 := range v {
7713 ee.EncodeUint(uint64(k2))
7714 ee.EncodeInt(int64(v2))
7715 }
7716 }
7717 }
7718 ee.WriteMapEnd()
7719}
7720
7721func (e *Encoder) fastpathEncMapUint16Float32R(f *codecFnInfo, rv reflect.Value) {
7722 fastpathTV.EncMapUint16Float32V(rv2i(rv).(map[uint16]float32), e)
7723}
7724func (_ fastpathT) EncMapUint16Float32V(v map[uint16]float32, e *Encoder) {
7725 if v == nil {
7726 e.e.EncodeNil()
7727 return
7728 }
7729 ee, esep := e.e, e.hh.hasElemSeparators()
7730 ee.WriteMapStart(len(v))
7731 if e.h.Canonical {
7732 v2 := make([]uint64, len(v))
7733 var i int
7734 for k, _ := range v {
7735 v2[i] = uint64(k)
7736 i++
7737 }
7738 sort.Sort(uintSlice(v2))
7739 if esep {
7740 for _, k2 := range v2 {
7741 ee.WriteMapElemKey()
7742 ee.EncodeUint(uint64(uint16(k2)))
7743 ee.WriteMapElemValue()
7744 ee.EncodeFloat32(v[uint16(k2)])
7745 }
7746 } else {
7747 for _, k2 := range v2 {
7748 ee.EncodeUint(uint64(uint16(k2)))
7749 ee.EncodeFloat32(v[uint16(k2)])
7750 }
7751 }
7752 } else {
7753 if esep {
7754 for k2, v2 := range v {
7755 ee.WriteMapElemKey()
7756 ee.EncodeUint(uint64(k2))
7757 ee.WriteMapElemValue()
7758 ee.EncodeFloat32(v2)
7759 }
7760 } else {
7761 for k2, v2 := range v {
7762 ee.EncodeUint(uint64(k2))
7763 ee.EncodeFloat32(v2)
7764 }
7765 }
7766 }
7767 ee.WriteMapEnd()
7768}
7769
7770func (e *Encoder) fastpathEncMapUint16Float64R(f *codecFnInfo, rv reflect.Value) {
7771 fastpathTV.EncMapUint16Float64V(rv2i(rv).(map[uint16]float64), e)
7772}
7773func (_ fastpathT) EncMapUint16Float64V(v map[uint16]float64, e *Encoder) {
7774 if v == nil {
7775 e.e.EncodeNil()
7776 return
7777 }
7778 ee, esep := e.e, e.hh.hasElemSeparators()
7779 ee.WriteMapStart(len(v))
7780 if e.h.Canonical {
7781 v2 := make([]uint64, len(v))
7782 var i int
7783 for k, _ := range v {
7784 v2[i] = uint64(k)
7785 i++
7786 }
7787 sort.Sort(uintSlice(v2))
7788 if esep {
7789 for _, k2 := range v2 {
7790 ee.WriteMapElemKey()
7791 ee.EncodeUint(uint64(uint16(k2)))
7792 ee.WriteMapElemValue()
7793 ee.EncodeFloat64(v[uint16(k2)])
7794 }
7795 } else {
7796 for _, k2 := range v2 {
7797 ee.EncodeUint(uint64(uint16(k2)))
7798 ee.EncodeFloat64(v[uint16(k2)])
7799 }
7800 }
7801 } else {
7802 if esep {
7803 for k2, v2 := range v {
7804 ee.WriteMapElemKey()
7805 ee.EncodeUint(uint64(k2))
7806 ee.WriteMapElemValue()
7807 ee.EncodeFloat64(v2)
7808 }
7809 } else {
7810 for k2, v2 := range v {
7811 ee.EncodeUint(uint64(k2))
7812 ee.EncodeFloat64(v2)
7813 }
7814 }
7815 }
7816 ee.WriteMapEnd()
7817}
7818
7819func (e *Encoder) fastpathEncMapUint16BoolR(f *codecFnInfo, rv reflect.Value) {
7820 fastpathTV.EncMapUint16BoolV(rv2i(rv).(map[uint16]bool), e)
7821}
7822func (_ fastpathT) EncMapUint16BoolV(v map[uint16]bool, e *Encoder) {
7823 if v == nil {
7824 e.e.EncodeNil()
7825 return
7826 }
7827 ee, esep := e.e, e.hh.hasElemSeparators()
7828 ee.WriteMapStart(len(v))
7829 if e.h.Canonical {
7830 v2 := make([]uint64, len(v))
7831 var i int
7832 for k, _ := range v {
7833 v2[i] = uint64(k)
7834 i++
7835 }
7836 sort.Sort(uintSlice(v2))
7837 if esep {
7838 for _, k2 := range v2 {
7839 ee.WriteMapElemKey()
7840 ee.EncodeUint(uint64(uint16(k2)))
7841 ee.WriteMapElemValue()
7842 ee.EncodeBool(v[uint16(k2)])
7843 }
7844 } else {
7845 for _, k2 := range v2 {
7846 ee.EncodeUint(uint64(uint16(k2)))
7847 ee.EncodeBool(v[uint16(k2)])
7848 }
7849 }
7850 } else {
7851 if esep {
7852 for k2, v2 := range v {
7853 ee.WriteMapElemKey()
7854 ee.EncodeUint(uint64(k2))
7855 ee.WriteMapElemValue()
7856 ee.EncodeBool(v2)
7857 }
7858 } else {
7859 for k2, v2 := range v {
7860 ee.EncodeUint(uint64(k2))
7861 ee.EncodeBool(v2)
7862 }
7863 }
7864 }
7865 ee.WriteMapEnd()
7866}
7867
7868func (e *Encoder) fastpathEncMapUint32IntfR(f *codecFnInfo, rv reflect.Value) {
7869 fastpathTV.EncMapUint32IntfV(rv2i(rv).(map[uint32]interface{}), e)
7870}
7871func (_ fastpathT) EncMapUint32IntfV(v map[uint32]interface{}, e *Encoder) {
7872 if v == nil {
7873 e.e.EncodeNil()
7874 return
7875 }
7876 ee, esep := e.e, e.hh.hasElemSeparators()
7877 ee.WriteMapStart(len(v))
7878 if e.h.Canonical {
7879 v2 := make([]uint64, len(v))
7880 var i int
7881 for k, _ := range v {
7882 v2[i] = uint64(k)
7883 i++
7884 }
7885 sort.Sort(uintSlice(v2))
7886 if esep {
7887 for _, k2 := range v2 {
7888 ee.WriteMapElemKey()
7889 ee.EncodeUint(uint64(uint32(k2)))
7890 ee.WriteMapElemValue()
7891 e.encode(v[uint32(k2)])
7892 }
7893 } else {
7894 for _, k2 := range v2 {
7895 ee.EncodeUint(uint64(uint32(k2)))
7896 e.encode(v[uint32(k2)])
7897 }
7898 }
7899 } else {
7900 if esep {
7901 for k2, v2 := range v {
7902 ee.WriteMapElemKey()
7903 ee.EncodeUint(uint64(k2))
7904 ee.WriteMapElemValue()
7905 e.encode(v2)
7906 }
7907 } else {
7908 for k2, v2 := range v {
7909 ee.EncodeUint(uint64(k2))
7910 e.encode(v2)
7911 }
7912 }
7913 }
7914 ee.WriteMapEnd()
7915}
7916
7917func (e *Encoder) fastpathEncMapUint32StringR(f *codecFnInfo, rv reflect.Value) {
7918 fastpathTV.EncMapUint32StringV(rv2i(rv).(map[uint32]string), e)
7919}
7920func (_ fastpathT) EncMapUint32StringV(v map[uint32]string, e *Encoder) {
7921 if v == nil {
7922 e.e.EncodeNil()
7923 return
7924 }
7925 ee, esep := e.e, e.hh.hasElemSeparators()
7926 ee.WriteMapStart(len(v))
7927 if e.h.Canonical {
7928 v2 := make([]uint64, len(v))
7929 var i int
7930 for k, _ := range v {
7931 v2[i] = uint64(k)
7932 i++
7933 }
7934 sort.Sort(uintSlice(v2))
7935 if esep {
7936 for _, k2 := range v2 {
7937 ee.WriteMapElemKey()
7938 ee.EncodeUint(uint64(uint32(k2)))
7939 ee.WriteMapElemValue()
7940 ee.EncodeString(cUTF8, v[uint32(k2)])
7941 }
7942 } else {
7943 for _, k2 := range v2 {
7944 ee.EncodeUint(uint64(uint32(k2)))
7945 ee.EncodeString(cUTF8, v[uint32(k2)])
7946 }
7947 }
7948 } else {
7949 if esep {
7950 for k2, v2 := range v {
7951 ee.WriteMapElemKey()
7952 ee.EncodeUint(uint64(k2))
7953 ee.WriteMapElemValue()
7954 ee.EncodeString(cUTF8, v2)
7955 }
7956 } else {
7957 for k2, v2 := range v {
7958 ee.EncodeUint(uint64(k2))
7959 ee.EncodeString(cUTF8, v2)
7960 }
7961 }
7962 }
7963 ee.WriteMapEnd()
7964}
7965
7966func (e *Encoder) fastpathEncMapUint32UintR(f *codecFnInfo, rv reflect.Value) {
7967 fastpathTV.EncMapUint32UintV(rv2i(rv).(map[uint32]uint), e)
7968}
7969func (_ fastpathT) EncMapUint32UintV(v map[uint32]uint, e *Encoder) {
7970 if v == nil {
7971 e.e.EncodeNil()
7972 return
7973 }
7974 ee, esep := e.e, e.hh.hasElemSeparators()
7975 ee.WriteMapStart(len(v))
7976 if e.h.Canonical {
7977 v2 := make([]uint64, len(v))
7978 var i int
7979 for k, _ := range v {
7980 v2[i] = uint64(k)
7981 i++
7982 }
7983 sort.Sort(uintSlice(v2))
7984 if esep {
7985 for _, k2 := range v2 {
7986 ee.WriteMapElemKey()
7987 ee.EncodeUint(uint64(uint32(k2)))
7988 ee.WriteMapElemValue()
7989 ee.EncodeUint(uint64(v[uint32(k2)]))
7990 }
7991 } else {
7992 for _, k2 := range v2 {
7993 ee.EncodeUint(uint64(uint32(k2)))
7994 ee.EncodeUint(uint64(v[uint32(k2)]))
7995 }
7996 }
7997 } else {
7998 if esep {
7999 for k2, v2 := range v {
8000 ee.WriteMapElemKey()
8001 ee.EncodeUint(uint64(k2))
8002 ee.WriteMapElemValue()
8003 ee.EncodeUint(uint64(v2))
8004 }
8005 } else {
8006 for k2, v2 := range v {
8007 ee.EncodeUint(uint64(k2))
8008 ee.EncodeUint(uint64(v2))
8009 }
8010 }
8011 }
8012 ee.WriteMapEnd()
8013}
8014
8015func (e *Encoder) fastpathEncMapUint32Uint8R(f *codecFnInfo, rv reflect.Value) {
8016 fastpathTV.EncMapUint32Uint8V(rv2i(rv).(map[uint32]uint8), e)
8017}
8018func (_ fastpathT) EncMapUint32Uint8V(v map[uint32]uint8, e *Encoder) {
8019 if v == nil {
8020 e.e.EncodeNil()
8021 return
8022 }
8023 ee, esep := e.e, e.hh.hasElemSeparators()
8024 ee.WriteMapStart(len(v))
8025 if e.h.Canonical {
8026 v2 := make([]uint64, len(v))
8027 var i int
8028 for k, _ := range v {
8029 v2[i] = uint64(k)
8030 i++
8031 }
8032 sort.Sort(uintSlice(v2))
8033 if esep {
8034 for _, k2 := range v2 {
8035 ee.WriteMapElemKey()
8036 ee.EncodeUint(uint64(uint32(k2)))
8037 ee.WriteMapElemValue()
8038 ee.EncodeUint(uint64(v[uint32(k2)]))
8039 }
8040 } else {
8041 for _, k2 := range v2 {
8042 ee.EncodeUint(uint64(uint32(k2)))
8043 ee.EncodeUint(uint64(v[uint32(k2)]))
8044 }
8045 }
8046 } else {
8047 if esep {
8048 for k2, v2 := range v {
8049 ee.WriteMapElemKey()
8050 ee.EncodeUint(uint64(k2))
8051 ee.WriteMapElemValue()
8052 ee.EncodeUint(uint64(v2))
8053 }
8054 } else {
8055 for k2, v2 := range v {
8056 ee.EncodeUint(uint64(k2))
8057 ee.EncodeUint(uint64(v2))
8058 }
8059 }
8060 }
8061 ee.WriteMapEnd()
8062}
8063
8064func (e *Encoder) fastpathEncMapUint32Uint16R(f *codecFnInfo, rv reflect.Value) {
8065 fastpathTV.EncMapUint32Uint16V(rv2i(rv).(map[uint32]uint16), e)
8066}
8067func (_ fastpathT) EncMapUint32Uint16V(v map[uint32]uint16, e *Encoder) {
8068 if v == nil {
8069 e.e.EncodeNil()
8070 return
8071 }
8072 ee, esep := e.e, e.hh.hasElemSeparators()
8073 ee.WriteMapStart(len(v))
8074 if e.h.Canonical {
8075 v2 := make([]uint64, len(v))
8076 var i int
8077 for k, _ := range v {
8078 v2[i] = uint64(k)
8079 i++
8080 }
8081 sort.Sort(uintSlice(v2))
8082 if esep {
8083 for _, k2 := range v2 {
8084 ee.WriteMapElemKey()
8085 ee.EncodeUint(uint64(uint32(k2)))
8086 ee.WriteMapElemValue()
8087 ee.EncodeUint(uint64(v[uint32(k2)]))
8088 }
8089 } else {
8090 for _, k2 := range v2 {
8091 ee.EncodeUint(uint64(uint32(k2)))
8092 ee.EncodeUint(uint64(v[uint32(k2)]))
8093 }
8094 }
8095 } else {
8096 if esep {
8097 for k2, v2 := range v {
8098 ee.WriteMapElemKey()
8099 ee.EncodeUint(uint64(k2))
8100 ee.WriteMapElemValue()
8101 ee.EncodeUint(uint64(v2))
8102 }
8103 } else {
8104 for k2, v2 := range v {
8105 ee.EncodeUint(uint64(k2))
8106 ee.EncodeUint(uint64(v2))
8107 }
8108 }
8109 }
8110 ee.WriteMapEnd()
8111}
8112
8113func (e *Encoder) fastpathEncMapUint32Uint32R(f *codecFnInfo, rv reflect.Value) {
8114 fastpathTV.EncMapUint32Uint32V(rv2i(rv).(map[uint32]uint32), e)
8115}
8116func (_ fastpathT) EncMapUint32Uint32V(v map[uint32]uint32, e *Encoder) {
8117 if v == nil {
8118 e.e.EncodeNil()
8119 return
8120 }
8121 ee, esep := e.e, e.hh.hasElemSeparators()
8122 ee.WriteMapStart(len(v))
8123 if e.h.Canonical {
8124 v2 := make([]uint64, len(v))
8125 var i int
8126 for k, _ := range v {
8127 v2[i] = uint64(k)
8128 i++
8129 }
8130 sort.Sort(uintSlice(v2))
8131 if esep {
8132 for _, k2 := range v2 {
8133 ee.WriteMapElemKey()
8134 ee.EncodeUint(uint64(uint32(k2)))
8135 ee.WriteMapElemValue()
8136 ee.EncodeUint(uint64(v[uint32(k2)]))
8137 }
8138 } else {
8139 for _, k2 := range v2 {
8140 ee.EncodeUint(uint64(uint32(k2)))
8141 ee.EncodeUint(uint64(v[uint32(k2)]))
8142 }
8143 }
8144 } else {
8145 if esep {
8146 for k2, v2 := range v {
8147 ee.WriteMapElemKey()
8148 ee.EncodeUint(uint64(k2))
8149 ee.WriteMapElemValue()
8150 ee.EncodeUint(uint64(v2))
8151 }
8152 } else {
8153 for k2, v2 := range v {
8154 ee.EncodeUint(uint64(k2))
8155 ee.EncodeUint(uint64(v2))
8156 }
8157 }
8158 }
8159 ee.WriteMapEnd()
8160}
8161
8162func (e *Encoder) fastpathEncMapUint32Uint64R(f *codecFnInfo, rv reflect.Value) {
8163 fastpathTV.EncMapUint32Uint64V(rv2i(rv).(map[uint32]uint64), e)
8164}
8165func (_ fastpathT) EncMapUint32Uint64V(v map[uint32]uint64, e *Encoder) {
8166 if v == nil {
8167 e.e.EncodeNil()
8168 return
8169 }
8170 ee, esep := e.e, e.hh.hasElemSeparators()
8171 ee.WriteMapStart(len(v))
8172 if e.h.Canonical {
8173 v2 := make([]uint64, len(v))
8174 var i int
8175 for k, _ := range v {
8176 v2[i] = uint64(k)
8177 i++
8178 }
8179 sort.Sort(uintSlice(v2))
8180 if esep {
8181 for _, k2 := range v2 {
8182 ee.WriteMapElemKey()
8183 ee.EncodeUint(uint64(uint32(k2)))
8184 ee.WriteMapElemValue()
8185 ee.EncodeUint(uint64(v[uint32(k2)]))
8186 }
8187 } else {
8188 for _, k2 := range v2 {
8189 ee.EncodeUint(uint64(uint32(k2)))
8190 ee.EncodeUint(uint64(v[uint32(k2)]))
8191 }
8192 }
8193 } else {
8194 if esep {
8195 for k2, v2 := range v {
8196 ee.WriteMapElemKey()
8197 ee.EncodeUint(uint64(k2))
8198 ee.WriteMapElemValue()
8199 ee.EncodeUint(uint64(v2))
8200 }
8201 } else {
8202 for k2, v2 := range v {
8203 ee.EncodeUint(uint64(k2))
8204 ee.EncodeUint(uint64(v2))
8205 }
8206 }
8207 }
8208 ee.WriteMapEnd()
8209}
8210
8211func (e *Encoder) fastpathEncMapUint32UintptrR(f *codecFnInfo, rv reflect.Value) {
8212 fastpathTV.EncMapUint32UintptrV(rv2i(rv).(map[uint32]uintptr), e)
8213}
8214func (_ fastpathT) EncMapUint32UintptrV(v map[uint32]uintptr, e *Encoder) {
8215 if v == nil {
8216 e.e.EncodeNil()
8217 return
8218 }
8219 ee, esep := e.e, e.hh.hasElemSeparators()
8220 ee.WriteMapStart(len(v))
8221 if e.h.Canonical {
8222 v2 := make([]uint64, len(v))
8223 var i int
8224 for k, _ := range v {
8225 v2[i] = uint64(k)
8226 i++
8227 }
8228 sort.Sort(uintSlice(v2))
8229 if esep {
8230 for _, k2 := range v2 {
8231 ee.WriteMapElemKey()
8232 ee.EncodeUint(uint64(uint32(k2)))
8233 ee.WriteMapElemValue()
8234 e.encode(v[uint32(k2)])
8235 }
8236 } else {
8237 for _, k2 := range v2 {
8238 ee.EncodeUint(uint64(uint32(k2)))
8239 e.encode(v[uint32(k2)])
8240 }
8241 }
8242 } else {
8243 if esep {
8244 for k2, v2 := range v {
8245 ee.WriteMapElemKey()
8246 ee.EncodeUint(uint64(k2))
8247 ee.WriteMapElemValue()
8248 e.encode(v2)
8249 }
8250 } else {
8251 for k2, v2 := range v {
8252 ee.EncodeUint(uint64(k2))
8253 e.encode(v2)
8254 }
8255 }
8256 }
8257 ee.WriteMapEnd()
8258}
8259
8260func (e *Encoder) fastpathEncMapUint32IntR(f *codecFnInfo, rv reflect.Value) {
8261 fastpathTV.EncMapUint32IntV(rv2i(rv).(map[uint32]int), e)
8262}
8263func (_ fastpathT) EncMapUint32IntV(v map[uint32]int, e *Encoder) {
8264 if v == nil {
8265 e.e.EncodeNil()
8266 return
8267 }
8268 ee, esep := e.e, e.hh.hasElemSeparators()
8269 ee.WriteMapStart(len(v))
8270 if e.h.Canonical {
8271 v2 := make([]uint64, len(v))
8272 var i int
8273 for k, _ := range v {
8274 v2[i] = uint64(k)
8275 i++
8276 }
8277 sort.Sort(uintSlice(v2))
8278 if esep {
8279 for _, k2 := range v2 {
8280 ee.WriteMapElemKey()
8281 ee.EncodeUint(uint64(uint32(k2)))
8282 ee.WriteMapElemValue()
8283 ee.EncodeInt(int64(v[uint32(k2)]))
8284 }
8285 } else {
8286 for _, k2 := range v2 {
8287 ee.EncodeUint(uint64(uint32(k2)))
8288 ee.EncodeInt(int64(v[uint32(k2)]))
8289 }
8290 }
8291 } else {
8292 if esep {
8293 for k2, v2 := range v {
8294 ee.WriteMapElemKey()
8295 ee.EncodeUint(uint64(k2))
8296 ee.WriteMapElemValue()
8297 ee.EncodeInt(int64(v2))
8298 }
8299 } else {
8300 for k2, v2 := range v {
8301 ee.EncodeUint(uint64(k2))
8302 ee.EncodeInt(int64(v2))
8303 }
8304 }
8305 }
8306 ee.WriteMapEnd()
8307}
8308
8309func (e *Encoder) fastpathEncMapUint32Int8R(f *codecFnInfo, rv reflect.Value) {
8310 fastpathTV.EncMapUint32Int8V(rv2i(rv).(map[uint32]int8), e)
8311}
8312func (_ fastpathT) EncMapUint32Int8V(v map[uint32]int8, e *Encoder) {
8313 if v == nil {
8314 e.e.EncodeNil()
8315 return
8316 }
8317 ee, esep := e.e, e.hh.hasElemSeparators()
8318 ee.WriteMapStart(len(v))
8319 if e.h.Canonical {
8320 v2 := make([]uint64, len(v))
8321 var i int
8322 for k, _ := range v {
8323 v2[i] = uint64(k)
8324 i++
8325 }
8326 sort.Sort(uintSlice(v2))
8327 if esep {
8328 for _, k2 := range v2 {
8329 ee.WriteMapElemKey()
8330 ee.EncodeUint(uint64(uint32(k2)))
8331 ee.WriteMapElemValue()
8332 ee.EncodeInt(int64(v[uint32(k2)]))
8333 }
8334 } else {
8335 for _, k2 := range v2 {
8336 ee.EncodeUint(uint64(uint32(k2)))
8337 ee.EncodeInt(int64(v[uint32(k2)]))
8338 }
8339 }
8340 } else {
8341 if esep {
8342 for k2, v2 := range v {
8343 ee.WriteMapElemKey()
8344 ee.EncodeUint(uint64(k2))
8345 ee.WriteMapElemValue()
8346 ee.EncodeInt(int64(v2))
8347 }
8348 } else {
8349 for k2, v2 := range v {
8350 ee.EncodeUint(uint64(k2))
8351 ee.EncodeInt(int64(v2))
8352 }
8353 }
8354 }
8355 ee.WriteMapEnd()
8356}
8357
8358func (e *Encoder) fastpathEncMapUint32Int16R(f *codecFnInfo, rv reflect.Value) {
8359 fastpathTV.EncMapUint32Int16V(rv2i(rv).(map[uint32]int16), e)
8360}
8361func (_ fastpathT) EncMapUint32Int16V(v map[uint32]int16, e *Encoder) {
8362 if v == nil {
8363 e.e.EncodeNil()
8364 return
8365 }
8366 ee, esep := e.e, e.hh.hasElemSeparators()
8367 ee.WriteMapStart(len(v))
8368 if e.h.Canonical {
8369 v2 := make([]uint64, len(v))
8370 var i int
8371 for k, _ := range v {
8372 v2[i] = uint64(k)
8373 i++
8374 }
8375 sort.Sort(uintSlice(v2))
8376 if esep {
8377 for _, k2 := range v2 {
8378 ee.WriteMapElemKey()
8379 ee.EncodeUint(uint64(uint32(k2)))
8380 ee.WriteMapElemValue()
8381 ee.EncodeInt(int64(v[uint32(k2)]))
8382 }
8383 } else {
8384 for _, k2 := range v2 {
8385 ee.EncodeUint(uint64(uint32(k2)))
8386 ee.EncodeInt(int64(v[uint32(k2)]))
8387 }
8388 }
8389 } else {
8390 if esep {
8391 for k2, v2 := range v {
8392 ee.WriteMapElemKey()
8393 ee.EncodeUint(uint64(k2))
8394 ee.WriteMapElemValue()
8395 ee.EncodeInt(int64(v2))
8396 }
8397 } else {
8398 for k2, v2 := range v {
8399 ee.EncodeUint(uint64(k2))
8400 ee.EncodeInt(int64(v2))
8401 }
8402 }
8403 }
8404 ee.WriteMapEnd()
8405}
8406
8407func (e *Encoder) fastpathEncMapUint32Int32R(f *codecFnInfo, rv reflect.Value) {
8408 fastpathTV.EncMapUint32Int32V(rv2i(rv).(map[uint32]int32), e)
8409}
8410func (_ fastpathT) EncMapUint32Int32V(v map[uint32]int32, e *Encoder) {
8411 if v == nil {
8412 e.e.EncodeNil()
8413 return
8414 }
8415 ee, esep := e.e, e.hh.hasElemSeparators()
8416 ee.WriteMapStart(len(v))
8417 if e.h.Canonical {
8418 v2 := make([]uint64, len(v))
8419 var i int
8420 for k, _ := range v {
8421 v2[i] = uint64(k)
8422 i++
8423 }
8424 sort.Sort(uintSlice(v2))
8425 if esep {
8426 for _, k2 := range v2 {
8427 ee.WriteMapElemKey()
8428 ee.EncodeUint(uint64(uint32(k2)))
8429 ee.WriteMapElemValue()
8430 ee.EncodeInt(int64(v[uint32(k2)]))
8431 }
8432 } else {
8433 for _, k2 := range v2 {
8434 ee.EncodeUint(uint64(uint32(k2)))
8435 ee.EncodeInt(int64(v[uint32(k2)]))
8436 }
8437 }
8438 } else {
8439 if esep {
8440 for k2, v2 := range v {
8441 ee.WriteMapElemKey()
8442 ee.EncodeUint(uint64(k2))
8443 ee.WriteMapElemValue()
8444 ee.EncodeInt(int64(v2))
8445 }
8446 } else {
8447 for k2, v2 := range v {
8448 ee.EncodeUint(uint64(k2))
8449 ee.EncodeInt(int64(v2))
8450 }
8451 }
8452 }
8453 ee.WriteMapEnd()
8454}
8455
8456func (e *Encoder) fastpathEncMapUint32Int64R(f *codecFnInfo, rv reflect.Value) {
8457 fastpathTV.EncMapUint32Int64V(rv2i(rv).(map[uint32]int64), e)
8458}
8459func (_ fastpathT) EncMapUint32Int64V(v map[uint32]int64, e *Encoder) {
8460 if v == nil {
8461 e.e.EncodeNil()
8462 return
8463 }
8464 ee, esep := e.e, e.hh.hasElemSeparators()
8465 ee.WriteMapStart(len(v))
8466 if e.h.Canonical {
8467 v2 := make([]uint64, len(v))
8468 var i int
8469 for k, _ := range v {
8470 v2[i] = uint64(k)
8471 i++
8472 }
8473 sort.Sort(uintSlice(v2))
8474 if esep {
8475 for _, k2 := range v2 {
8476 ee.WriteMapElemKey()
8477 ee.EncodeUint(uint64(uint32(k2)))
8478 ee.WriteMapElemValue()
8479 ee.EncodeInt(int64(v[uint32(k2)]))
8480 }
8481 } else {
8482 for _, k2 := range v2 {
8483 ee.EncodeUint(uint64(uint32(k2)))
8484 ee.EncodeInt(int64(v[uint32(k2)]))
8485 }
8486 }
8487 } else {
8488 if esep {
8489 for k2, v2 := range v {
8490 ee.WriteMapElemKey()
8491 ee.EncodeUint(uint64(k2))
8492 ee.WriteMapElemValue()
8493 ee.EncodeInt(int64(v2))
8494 }
8495 } else {
8496 for k2, v2 := range v {
8497 ee.EncodeUint(uint64(k2))
8498 ee.EncodeInt(int64(v2))
8499 }
8500 }
8501 }
8502 ee.WriteMapEnd()
8503}
8504
8505func (e *Encoder) fastpathEncMapUint32Float32R(f *codecFnInfo, rv reflect.Value) {
8506 fastpathTV.EncMapUint32Float32V(rv2i(rv).(map[uint32]float32), e)
8507}
8508func (_ fastpathT) EncMapUint32Float32V(v map[uint32]float32, e *Encoder) {
8509 if v == nil {
8510 e.e.EncodeNil()
8511 return
8512 }
8513 ee, esep := e.e, e.hh.hasElemSeparators()
8514 ee.WriteMapStart(len(v))
8515 if e.h.Canonical {
8516 v2 := make([]uint64, len(v))
8517 var i int
8518 for k, _ := range v {
8519 v2[i] = uint64(k)
8520 i++
8521 }
8522 sort.Sort(uintSlice(v2))
8523 if esep {
8524 for _, k2 := range v2 {
8525 ee.WriteMapElemKey()
8526 ee.EncodeUint(uint64(uint32(k2)))
8527 ee.WriteMapElemValue()
8528 ee.EncodeFloat32(v[uint32(k2)])
8529 }
8530 } else {
8531 for _, k2 := range v2 {
8532 ee.EncodeUint(uint64(uint32(k2)))
8533 ee.EncodeFloat32(v[uint32(k2)])
8534 }
8535 }
8536 } else {
8537 if esep {
8538 for k2, v2 := range v {
8539 ee.WriteMapElemKey()
8540 ee.EncodeUint(uint64(k2))
8541 ee.WriteMapElemValue()
8542 ee.EncodeFloat32(v2)
8543 }
8544 } else {
8545 for k2, v2 := range v {
8546 ee.EncodeUint(uint64(k2))
8547 ee.EncodeFloat32(v2)
8548 }
8549 }
8550 }
8551 ee.WriteMapEnd()
8552}
8553
8554func (e *Encoder) fastpathEncMapUint32Float64R(f *codecFnInfo, rv reflect.Value) {
8555 fastpathTV.EncMapUint32Float64V(rv2i(rv).(map[uint32]float64), e)
8556}
8557func (_ fastpathT) EncMapUint32Float64V(v map[uint32]float64, e *Encoder) {
8558 if v == nil {
8559 e.e.EncodeNil()
8560 return
8561 }
8562 ee, esep := e.e, e.hh.hasElemSeparators()
8563 ee.WriteMapStart(len(v))
8564 if e.h.Canonical {
8565 v2 := make([]uint64, len(v))
8566 var i int
8567 for k, _ := range v {
8568 v2[i] = uint64(k)
8569 i++
8570 }
8571 sort.Sort(uintSlice(v2))
8572 if esep {
8573 for _, k2 := range v2 {
8574 ee.WriteMapElemKey()
8575 ee.EncodeUint(uint64(uint32(k2)))
8576 ee.WriteMapElemValue()
8577 ee.EncodeFloat64(v[uint32(k2)])
8578 }
8579 } else {
8580 for _, k2 := range v2 {
8581 ee.EncodeUint(uint64(uint32(k2)))
8582 ee.EncodeFloat64(v[uint32(k2)])
8583 }
8584 }
8585 } else {
8586 if esep {
8587 for k2, v2 := range v {
8588 ee.WriteMapElemKey()
8589 ee.EncodeUint(uint64(k2))
8590 ee.WriteMapElemValue()
8591 ee.EncodeFloat64(v2)
8592 }
8593 } else {
8594 for k2, v2 := range v {
8595 ee.EncodeUint(uint64(k2))
8596 ee.EncodeFloat64(v2)
8597 }
8598 }
8599 }
8600 ee.WriteMapEnd()
8601}
8602
8603func (e *Encoder) fastpathEncMapUint32BoolR(f *codecFnInfo, rv reflect.Value) {
8604 fastpathTV.EncMapUint32BoolV(rv2i(rv).(map[uint32]bool), e)
8605}
8606func (_ fastpathT) EncMapUint32BoolV(v map[uint32]bool, e *Encoder) {
8607 if v == nil {
8608 e.e.EncodeNil()
8609 return
8610 }
8611 ee, esep := e.e, e.hh.hasElemSeparators()
8612 ee.WriteMapStart(len(v))
8613 if e.h.Canonical {
8614 v2 := make([]uint64, len(v))
8615 var i int
8616 for k, _ := range v {
8617 v2[i] = uint64(k)
8618 i++
8619 }
8620 sort.Sort(uintSlice(v2))
8621 if esep {
8622 for _, k2 := range v2 {
8623 ee.WriteMapElemKey()
8624 ee.EncodeUint(uint64(uint32(k2)))
8625 ee.WriteMapElemValue()
8626 ee.EncodeBool(v[uint32(k2)])
8627 }
8628 } else {
8629 for _, k2 := range v2 {
8630 ee.EncodeUint(uint64(uint32(k2)))
8631 ee.EncodeBool(v[uint32(k2)])
8632 }
8633 }
8634 } else {
8635 if esep {
8636 for k2, v2 := range v {
8637 ee.WriteMapElemKey()
8638 ee.EncodeUint(uint64(k2))
8639 ee.WriteMapElemValue()
8640 ee.EncodeBool(v2)
8641 }
8642 } else {
8643 for k2, v2 := range v {
8644 ee.EncodeUint(uint64(k2))
8645 ee.EncodeBool(v2)
8646 }
8647 }
8648 }
8649 ee.WriteMapEnd()
8650}
8651
8652func (e *Encoder) fastpathEncMapUint64IntfR(f *codecFnInfo, rv reflect.Value) {
8653 fastpathTV.EncMapUint64IntfV(rv2i(rv).(map[uint64]interface{}), e)
8654}
8655func (_ fastpathT) EncMapUint64IntfV(v map[uint64]interface{}, e *Encoder) {
8656 if v == nil {
8657 e.e.EncodeNil()
8658 return
8659 }
8660 ee, esep := e.e, e.hh.hasElemSeparators()
8661 ee.WriteMapStart(len(v))
8662 if e.h.Canonical {
8663 v2 := make([]uint64, len(v))
8664 var i int
8665 for k, _ := range v {
8666 v2[i] = uint64(k)
8667 i++
8668 }
8669 sort.Sort(uintSlice(v2))
8670 if esep {
8671 for _, k2 := range v2 {
8672 ee.WriteMapElemKey()
8673 ee.EncodeUint(uint64(uint64(k2)))
8674 ee.WriteMapElemValue()
8675 e.encode(v[uint64(k2)])
8676 }
8677 } else {
8678 for _, k2 := range v2 {
8679 ee.EncodeUint(uint64(uint64(k2)))
8680 e.encode(v[uint64(k2)])
8681 }
8682 }
8683 } else {
8684 if esep {
8685 for k2, v2 := range v {
8686 ee.WriteMapElemKey()
8687 ee.EncodeUint(uint64(k2))
8688 ee.WriteMapElemValue()
8689 e.encode(v2)
8690 }
8691 } else {
8692 for k2, v2 := range v {
8693 ee.EncodeUint(uint64(k2))
8694 e.encode(v2)
8695 }
8696 }
8697 }
8698 ee.WriteMapEnd()
8699}
8700
8701func (e *Encoder) fastpathEncMapUint64StringR(f *codecFnInfo, rv reflect.Value) {
8702 fastpathTV.EncMapUint64StringV(rv2i(rv).(map[uint64]string), e)
8703}
8704func (_ fastpathT) EncMapUint64StringV(v map[uint64]string, e *Encoder) {
8705 if v == nil {
8706 e.e.EncodeNil()
8707 return
8708 }
8709 ee, esep := e.e, e.hh.hasElemSeparators()
8710 ee.WriteMapStart(len(v))
8711 if e.h.Canonical {
8712 v2 := make([]uint64, len(v))
8713 var i int
8714 for k, _ := range v {
8715 v2[i] = uint64(k)
8716 i++
8717 }
8718 sort.Sort(uintSlice(v2))
8719 if esep {
8720 for _, k2 := range v2 {
8721 ee.WriteMapElemKey()
8722 ee.EncodeUint(uint64(uint64(k2)))
8723 ee.WriteMapElemValue()
8724 ee.EncodeString(cUTF8, v[uint64(k2)])
8725 }
8726 } else {
8727 for _, k2 := range v2 {
8728 ee.EncodeUint(uint64(uint64(k2)))
8729 ee.EncodeString(cUTF8, v[uint64(k2)])
8730 }
8731 }
8732 } else {
8733 if esep {
8734 for k2, v2 := range v {
8735 ee.WriteMapElemKey()
8736 ee.EncodeUint(uint64(k2))
8737 ee.WriteMapElemValue()
8738 ee.EncodeString(cUTF8, v2)
8739 }
8740 } else {
8741 for k2, v2 := range v {
8742 ee.EncodeUint(uint64(k2))
8743 ee.EncodeString(cUTF8, v2)
8744 }
8745 }
8746 }
8747 ee.WriteMapEnd()
8748}
8749
8750func (e *Encoder) fastpathEncMapUint64UintR(f *codecFnInfo, rv reflect.Value) {
8751 fastpathTV.EncMapUint64UintV(rv2i(rv).(map[uint64]uint), e)
8752}
8753func (_ fastpathT) EncMapUint64UintV(v map[uint64]uint, e *Encoder) {
8754 if v == nil {
8755 e.e.EncodeNil()
8756 return
8757 }
8758 ee, esep := e.e, e.hh.hasElemSeparators()
8759 ee.WriteMapStart(len(v))
8760 if e.h.Canonical {
8761 v2 := make([]uint64, len(v))
8762 var i int
8763 for k, _ := range v {
8764 v2[i] = uint64(k)
8765 i++
8766 }
8767 sort.Sort(uintSlice(v2))
8768 if esep {
8769 for _, k2 := range v2 {
8770 ee.WriteMapElemKey()
8771 ee.EncodeUint(uint64(uint64(k2)))
8772 ee.WriteMapElemValue()
8773 ee.EncodeUint(uint64(v[uint64(k2)]))
8774 }
8775 } else {
8776 for _, k2 := range v2 {
8777 ee.EncodeUint(uint64(uint64(k2)))
8778 ee.EncodeUint(uint64(v[uint64(k2)]))
8779 }
8780 }
8781 } else {
8782 if esep {
8783 for k2, v2 := range v {
8784 ee.WriteMapElemKey()
8785 ee.EncodeUint(uint64(k2))
8786 ee.WriteMapElemValue()
8787 ee.EncodeUint(uint64(v2))
8788 }
8789 } else {
8790 for k2, v2 := range v {
8791 ee.EncodeUint(uint64(k2))
8792 ee.EncodeUint(uint64(v2))
8793 }
8794 }
8795 }
8796 ee.WriteMapEnd()
8797}
8798
8799func (e *Encoder) fastpathEncMapUint64Uint8R(f *codecFnInfo, rv reflect.Value) {
8800 fastpathTV.EncMapUint64Uint8V(rv2i(rv).(map[uint64]uint8), e)
8801}
8802func (_ fastpathT) EncMapUint64Uint8V(v map[uint64]uint8, e *Encoder) {
8803 if v == nil {
8804 e.e.EncodeNil()
8805 return
8806 }
8807 ee, esep := e.e, e.hh.hasElemSeparators()
8808 ee.WriteMapStart(len(v))
8809 if e.h.Canonical {
8810 v2 := make([]uint64, len(v))
8811 var i int
8812 for k, _ := range v {
8813 v2[i] = uint64(k)
8814 i++
8815 }
8816 sort.Sort(uintSlice(v2))
8817 if esep {
8818 for _, k2 := range v2 {
8819 ee.WriteMapElemKey()
8820 ee.EncodeUint(uint64(uint64(k2)))
8821 ee.WriteMapElemValue()
8822 ee.EncodeUint(uint64(v[uint64(k2)]))
8823 }
8824 } else {
8825 for _, k2 := range v2 {
8826 ee.EncodeUint(uint64(uint64(k2)))
8827 ee.EncodeUint(uint64(v[uint64(k2)]))
8828 }
8829 }
8830 } else {
8831 if esep {
8832 for k2, v2 := range v {
8833 ee.WriteMapElemKey()
8834 ee.EncodeUint(uint64(k2))
8835 ee.WriteMapElemValue()
8836 ee.EncodeUint(uint64(v2))
8837 }
8838 } else {
8839 for k2, v2 := range v {
8840 ee.EncodeUint(uint64(k2))
8841 ee.EncodeUint(uint64(v2))
8842 }
8843 }
8844 }
8845 ee.WriteMapEnd()
8846}
8847
8848func (e *Encoder) fastpathEncMapUint64Uint16R(f *codecFnInfo, rv reflect.Value) {
8849 fastpathTV.EncMapUint64Uint16V(rv2i(rv).(map[uint64]uint16), e)
8850}
8851func (_ fastpathT) EncMapUint64Uint16V(v map[uint64]uint16, e *Encoder) {
8852 if v == nil {
8853 e.e.EncodeNil()
8854 return
8855 }
8856 ee, esep := e.e, e.hh.hasElemSeparators()
8857 ee.WriteMapStart(len(v))
8858 if e.h.Canonical {
8859 v2 := make([]uint64, len(v))
8860 var i int
8861 for k, _ := range v {
8862 v2[i] = uint64(k)
8863 i++
8864 }
8865 sort.Sort(uintSlice(v2))
8866 if esep {
8867 for _, k2 := range v2 {
8868 ee.WriteMapElemKey()
8869 ee.EncodeUint(uint64(uint64(k2)))
8870 ee.WriteMapElemValue()
8871 ee.EncodeUint(uint64(v[uint64(k2)]))
8872 }
8873 } else {
8874 for _, k2 := range v2 {
8875 ee.EncodeUint(uint64(uint64(k2)))
8876 ee.EncodeUint(uint64(v[uint64(k2)]))
8877 }
8878 }
8879 } else {
8880 if esep {
8881 for k2, v2 := range v {
8882 ee.WriteMapElemKey()
8883 ee.EncodeUint(uint64(k2))
8884 ee.WriteMapElemValue()
8885 ee.EncodeUint(uint64(v2))
8886 }
8887 } else {
8888 for k2, v2 := range v {
8889 ee.EncodeUint(uint64(k2))
8890 ee.EncodeUint(uint64(v2))
8891 }
8892 }
8893 }
8894 ee.WriteMapEnd()
8895}
8896
8897func (e *Encoder) fastpathEncMapUint64Uint32R(f *codecFnInfo, rv reflect.Value) {
8898 fastpathTV.EncMapUint64Uint32V(rv2i(rv).(map[uint64]uint32), e)
8899}
8900func (_ fastpathT) EncMapUint64Uint32V(v map[uint64]uint32, e *Encoder) {
8901 if v == nil {
8902 e.e.EncodeNil()
8903 return
8904 }
8905 ee, esep := e.e, e.hh.hasElemSeparators()
8906 ee.WriteMapStart(len(v))
8907 if e.h.Canonical {
8908 v2 := make([]uint64, len(v))
8909 var i int
8910 for k, _ := range v {
8911 v2[i] = uint64(k)
8912 i++
8913 }
8914 sort.Sort(uintSlice(v2))
8915 if esep {
8916 for _, k2 := range v2 {
8917 ee.WriteMapElemKey()
8918 ee.EncodeUint(uint64(uint64(k2)))
8919 ee.WriteMapElemValue()
8920 ee.EncodeUint(uint64(v[uint64(k2)]))
8921 }
8922 } else {
8923 for _, k2 := range v2 {
8924 ee.EncodeUint(uint64(uint64(k2)))
8925 ee.EncodeUint(uint64(v[uint64(k2)]))
8926 }
8927 }
8928 } else {
8929 if esep {
8930 for k2, v2 := range v {
8931 ee.WriteMapElemKey()
8932 ee.EncodeUint(uint64(k2))
8933 ee.WriteMapElemValue()
8934 ee.EncodeUint(uint64(v2))
8935 }
8936 } else {
8937 for k2, v2 := range v {
8938 ee.EncodeUint(uint64(k2))
8939 ee.EncodeUint(uint64(v2))
8940 }
8941 }
8942 }
8943 ee.WriteMapEnd()
8944}
8945
8946func (e *Encoder) fastpathEncMapUint64Uint64R(f *codecFnInfo, rv reflect.Value) {
8947 fastpathTV.EncMapUint64Uint64V(rv2i(rv).(map[uint64]uint64), e)
8948}
8949func (_ fastpathT) EncMapUint64Uint64V(v map[uint64]uint64, e *Encoder) {
8950 if v == nil {
8951 e.e.EncodeNil()
8952 return
8953 }
8954 ee, esep := e.e, e.hh.hasElemSeparators()
8955 ee.WriteMapStart(len(v))
8956 if e.h.Canonical {
8957 v2 := make([]uint64, len(v))
8958 var i int
8959 for k, _ := range v {
8960 v2[i] = uint64(k)
8961 i++
8962 }
8963 sort.Sort(uintSlice(v2))
8964 if esep {
8965 for _, k2 := range v2 {
8966 ee.WriteMapElemKey()
8967 ee.EncodeUint(uint64(uint64(k2)))
8968 ee.WriteMapElemValue()
8969 ee.EncodeUint(uint64(v[uint64(k2)]))
8970 }
8971 } else {
8972 for _, k2 := range v2 {
8973 ee.EncodeUint(uint64(uint64(k2)))
8974 ee.EncodeUint(uint64(v[uint64(k2)]))
8975 }
8976 }
8977 } else {
8978 if esep {
8979 for k2, v2 := range v {
8980 ee.WriteMapElemKey()
8981 ee.EncodeUint(uint64(k2))
8982 ee.WriteMapElemValue()
8983 ee.EncodeUint(uint64(v2))
8984 }
8985 } else {
8986 for k2, v2 := range v {
8987 ee.EncodeUint(uint64(k2))
8988 ee.EncodeUint(uint64(v2))
8989 }
8990 }
8991 }
8992 ee.WriteMapEnd()
8993}
8994
8995func (e *Encoder) fastpathEncMapUint64UintptrR(f *codecFnInfo, rv reflect.Value) {
8996 fastpathTV.EncMapUint64UintptrV(rv2i(rv).(map[uint64]uintptr), e)
8997}
8998func (_ fastpathT) EncMapUint64UintptrV(v map[uint64]uintptr, e *Encoder) {
8999 if v == nil {
9000 e.e.EncodeNil()
9001 return
9002 }
9003 ee, esep := e.e, e.hh.hasElemSeparators()
9004 ee.WriteMapStart(len(v))
9005 if e.h.Canonical {
9006 v2 := make([]uint64, len(v))
9007 var i int
9008 for k, _ := range v {
9009 v2[i] = uint64(k)
9010 i++
9011 }
9012 sort.Sort(uintSlice(v2))
9013 if esep {
9014 for _, k2 := range v2 {
9015 ee.WriteMapElemKey()
9016 ee.EncodeUint(uint64(uint64(k2)))
9017 ee.WriteMapElemValue()
9018 e.encode(v[uint64(k2)])
9019 }
9020 } else {
9021 for _, k2 := range v2 {
9022 ee.EncodeUint(uint64(uint64(k2)))
9023 e.encode(v[uint64(k2)])
9024 }
9025 }
9026 } else {
9027 if esep {
9028 for k2, v2 := range v {
9029 ee.WriteMapElemKey()
9030 ee.EncodeUint(uint64(k2))
9031 ee.WriteMapElemValue()
9032 e.encode(v2)
9033 }
9034 } else {
9035 for k2, v2 := range v {
9036 ee.EncodeUint(uint64(k2))
9037 e.encode(v2)
9038 }
9039 }
9040 }
9041 ee.WriteMapEnd()
9042}
9043
9044func (e *Encoder) fastpathEncMapUint64IntR(f *codecFnInfo, rv reflect.Value) {
9045 fastpathTV.EncMapUint64IntV(rv2i(rv).(map[uint64]int), e)
9046}
9047func (_ fastpathT) EncMapUint64IntV(v map[uint64]int, e *Encoder) {
9048 if v == nil {
9049 e.e.EncodeNil()
9050 return
9051 }
9052 ee, esep := e.e, e.hh.hasElemSeparators()
9053 ee.WriteMapStart(len(v))
9054 if e.h.Canonical {
9055 v2 := make([]uint64, len(v))
9056 var i int
9057 for k, _ := range v {
9058 v2[i] = uint64(k)
9059 i++
9060 }
9061 sort.Sort(uintSlice(v2))
9062 if esep {
9063 for _, k2 := range v2 {
9064 ee.WriteMapElemKey()
9065 ee.EncodeUint(uint64(uint64(k2)))
9066 ee.WriteMapElemValue()
9067 ee.EncodeInt(int64(v[uint64(k2)]))
9068 }
9069 } else {
9070 for _, k2 := range v2 {
9071 ee.EncodeUint(uint64(uint64(k2)))
9072 ee.EncodeInt(int64(v[uint64(k2)]))
9073 }
9074 }
9075 } else {
9076 if esep {
9077 for k2, v2 := range v {
9078 ee.WriteMapElemKey()
9079 ee.EncodeUint(uint64(k2))
9080 ee.WriteMapElemValue()
9081 ee.EncodeInt(int64(v2))
9082 }
9083 } else {
9084 for k2, v2 := range v {
9085 ee.EncodeUint(uint64(k2))
9086 ee.EncodeInt(int64(v2))
9087 }
9088 }
9089 }
9090 ee.WriteMapEnd()
9091}
9092
9093func (e *Encoder) fastpathEncMapUint64Int8R(f *codecFnInfo, rv reflect.Value) {
9094 fastpathTV.EncMapUint64Int8V(rv2i(rv).(map[uint64]int8), e)
9095}
9096func (_ fastpathT) EncMapUint64Int8V(v map[uint64]int8, e *Encoder) {
9097 if v == nil {
9098 e.e.EncodeNil()
9099 return
9100 }
9101 ee, esep := e.e, e.hh.hasElemSeparators()
9102 ee.WriteMapStart(len(v))
9103 if e.h.Canonical {
9104 v2 := make([]uint64, len(v))
9105 var i int
9106 for k, _ := range v {
9107 v2[i] = uint64(k)
9108 i++
9109 }
9110 sort.Sort(uintSlice(v2))
9111 if esep {
9112 for _, k2 := range v2 {
9113 ee.WriteMapElemKey()
9114 ee.EncodeUint(uint64(uint64(k2)))
9115 ee.WriteMapElemValue()
9116 ee.EncodeInt(int64(v[uint64(k2)]))
9117 }
9118 } else {
9119 for _, k2 := range v2 {
9120 ee.EncodeUint(uint64(uint64(k2)))
9121 ee.EncodeInt(int64(v[uint64(k2)]))
9122 }
9123 }
9124 } else {
9125 if esep {
9126 for k2, v2 := range v {
9127 ee.WriteMapElemKey()
9128 ee.EncodeUint(uint64(k2))
9129 ee.WriteMapElemValue()
9130 ee.EncodeInt(int64(v2))
9131 }
9132 } else {
9133 for k2, v2 := range v {
9134 ee.EncodeUint(uint64(k2))
9135 ee.EncodeInt(int64(v2))
9136 }
9137 }
9138 }
9139 ee.WriteMapEnd()
9140}
9141
9142func (e *Encoder) fastpathEncMapUint64Int16R(f *codecFnInfo, rv reflect.Value) {
9143 fastpathTV.EncMapUint64Int16V(rv2i(rv).(map[uint64]int16), e)
9144}
9145func (_ fastpathT) EncMapUint64Int16V(v map[uint64]int16, e *Encoder) {
9146 if v == nil {
9147 e.e.EncodeNil()
9148 return
9149 }
9150 ee, esep := e.e, e.hh.hasElemSeparators()
9151 ee.WriteMapStart(len(v))
9152 if e.h.Canonical {
9153 v2 := make([]uint64, len(v))
9154 var i int
9155 for k, _ := range v {
9156 v2[i] = uint64(k)
9157 i++
9158 }
9159 sort.Sort(uintSlice(v2))
9160 if esep {
9161 for _, k2 := range v2 {
9162 ee.WriteMapElemKey()
9163 ee.EncodeUint(uint64(uint64(k2)))
9164 ee.WriteMapElemValue()
9165 ee.EncodeInt(int64(v[uint64(k2)]))
9166 }
9167 } else {
9168 for _, k2 := range v2 {
9169 ee.EncodeUint(uint64(uint64(k2)))
9170 ee.EncodeInt(int64(v[uint64(k2)]))
9171 }
9172 }
9173 } else {
9174 if esep {
9175 for k2, v2 := range v {
9176 ee.WriteMapElemKey()
9177 ee.EncodeUint(uint64(k2))
9178 ee.WriteMapElemValue()
9179 ee.EncodeInt(int64(v2))
9180 }
9181 } else {
9182 for k2, v2 := range v {
9183 ee.EncodeUint(uint64(k2))
9184 ee.EncodeInt(int64(v2))
9185 }
9186 }
9187 }
9188 ee.WriteMapEnd()
9189}
9190
9191func (e *Encoder) fastpathEncMapUint64Int32R(f *codecFnInfo, rv reflect.Value) {
9192 fastpathTV.EncMapUint64Int32V(rv2i(rv).(map[uint64]int32), e)
9193}
9194func (_ fastpathT) EncMapUint64Int32V(v map[uint64]int32, e *Encoder) {
9195 if v == nil {
9196 e.e.EncodeNil()
9197 return
9198 }
9199 ee, esep := e.e, e.hh.hasElemSeparators()
9200 ee.WriteMapStart(len(v))
9201 if e.h.Canonical {
9202 v2 := make([]uint64, len(v))
9203 var i int
9204 for k, _ := range v {
9205 v2[i] = uint64(k)
9206 i++
9207 }
9208 sort.Sort(uintSlice(v2))
9209 if esep {
9210 for _, k2 := range v2 {
9211 ee.WriteMapElemKey()
9212 ee.EncodeUint(uint64(uint64(k2)))
9213 ee.WriteMapElemValue()
9214 ee.EncodeInt(int64(v[uint64(k2)]))
9215 }
9216 } else {
9217 for _, k2 := range v2 {
9218 ee.EncodeUint(uint64(uint64(k2)))
9219 ee.EncodeInt(int64(v[uint64(k2)]))
9220 }
9221 }
9222 } else {
9223 if esep {
9224 for k2, v2 := range v {
9225 ee.WriteMapElemKey()
9226 ee.EncodeUint(uint64(k2))
9227 ee.WriteMapElemValue()
9228 ee.EncodeInt(int64(v2))
9229 }
9230 } else {
9231 for k2, v2 := range v {
9232 ee.EncodeUint(uint64(k2))
9233 ee.EncodeInt(int64(v2))
9234 }
9235 }
9236 }
9237 ee.WriteMapEnd()
9238}
9239
9240func (e *Encoder) fastpathEncMapUint64Int64R(f *codecFnInfo, rv reflect.Value) {
9241 fastpathTV.EncMapUint64Int64V(rv2i(rv).(map[uint64]int64), e)
9242}
9243func (_ fastpathT) EncMapUint64Int64V(v map[uint64]int64, e *Encoder) {
9244 if v == nil {
9245 e.e.EncodeNil()
9246 return
9247 }
9248 ee, esep := e.e, e.hh.hasElemSeparators()
9249 ee.WriteMapStart(len(v))
9250 if e.h.Canonical {
9251 v2 := make([]uint64, len(v))
9252 var i int
9253 for k, _ := range v {
9254 v2[i] = uint64(k)
9255 i++
9256 }
9257 sort.Sort(uintSlice(v2))
9258 if esep {
9259 for _, k2 := range v2 {
9260 ee.WriteMapElemKey()
9261 ee.EncodeUint(uint64(uint64(k2)))
9262 ee.WriteMapElemValue()
9263 ee.EncodeInt(int64(v[uint64(k2)]))
9264 }
9265 } else {
9266 for _, k2 := range v2 {
9267 ee.EncodeUint(uint64(uint64(k2)))
9268 ee.EncodeInt(int64(v[uint64(k2)]))
9269 }
9270 }
9271 } else {
9272 if esep {
9273 for k2, v2 := range v {
9274 ee.WriteMapElemKey()
9275 ee.EncodeUint(uint64(k2))
9276 ee.WriteMapElemValue()
9277 ee.EncodeInt(int64(v2))
9278 }
9279 } else {
9280 for k2, v2 := range v {
9281 ee.EncodeUint(uint64(k2))
9282 ee.EncodeInt(int64(v2))
9283 }
9284 }
9285 }
9286 ee.WriteMapEnd()
9287}
9288
9289func (e *Encoder) fastpathEncMapUint64Float32R(f *codecFnInfo, rv reflect.Value) {
9290 fastpathTV.EncMapUint64Float32V(rv2i(rv).(map[uint64]float32), e)
9291}
9292func (_ fastpathT) EncMapUint64Float32V(v map[uint64]float32, e *Encoder) {
9293 if v == nil {
9294 e.e.EncodeNil()
9295 return
9296 }
9297 ee, esep := e.e, e.hh.hasElemSeparators()
9298 ee.WriteMapStart(len(v))
9299 if e.h.Canonical {
9300 v2 := make([]uint64, len(v))
9301 var i int
9302 for k, _ := range v {
9303 v2[i] = uint64(k)
9304 i++
9305 }
9306 sort.Sort(uintSlice(v2))
9307 if esep {
9308 for _, k2 := range v2 {
9309 ee.WriteMapElemKey()
9310 ee.EncodeUint(uint64(uint64(k2)))
9311 ee.WriteMapElemValue()
9312 ee.EncodeFloat32(v[uint64(k2)])
9313 }
9314 } else {
9315 for _, k2 := range v2 {
9316 ee.EncodeUint(uint64(uint64(k2)))
9317 ee.EncodeFloat32(v[uint64(k2)])
9318 }
9319 }
9320 } else {
9321 if esep {
9322 for k2, v2 := range v {
9323 ee.WriteMapElemKey()
9324 ee.EncodeUint(uint64(k2))
9325 ee.WriteMapElemValue()
9326 ee.EncodeFloat32(v2)
9327 }
9328 } else {
9329 for k2, v2 := range v {
9330 ee.EncodeUint(uint64(k2))
9331 ee.EncodeFloat32(v2)
9332 }
9333 }
9334 }
9335 ee.WriteMapEnd()
9336}
9337
9338func (e *Encoder) fastpathEncMapUint64Float64R(f *codecFnInfo, rv reflect.Value) {
9339 fastpathTV.EncMapUint64Float64V(rv2i(rv).(map[uint64]float64), e)
9340}
9341func (_ fastpathT) EncMapUint64Float64V(v map[uint64]float64, e *Encoder) {
9342 if v == nil {
9343 e.e.EncodeNil()
9344 return
9345 }
9346 ee, esep := e.e, e.hh.hasElemSeparators()
9347 ee.WriteMapStart(len(v))
9348 if e.h.Canonical {
9349 v2 := make([]uint64, len(v))
9350 var i int
9351 for k, _ := range v {
9352 v2[i] = uint64(k)
9353 i++
9354 }
9355 sort.Sort(uintSlice(v2))
9356 if esep {
9357 for _, k2 := range v2 {
9358 ee.WriteMapElemKey()
9359 ee.EncodeUint(uint64(uint64(k2)))
9360 ee.WriteMapElemValue()
9361 ee.EncodeFloat64(v[uint64(k2)])
9362 }
9363 } else {
9364 for _, k2 := range v2 {
9365 ee.EncodeUint(uint64(uint64(k2)))
9366 ee.EncodeFloat64(v[uint64(k2)])
9367 }
9368 }
9369 } else {
9370 if esep {
9371 for k2, v2 := range v {
9372 ee.WriteMapElemKey()
9373 ee.EncodeUint(uint64(k2))
9374 ee.WriteMapElemValue()
9375 ee.EncodeFloat64(v2)
9376 }
9377 } else {
9378 for k2, v2 := range v {
9379 ee.EncodeUint(uint64(k2))
9380 ee.EncodeFloat64(v2)
9381 }
9382 }
9383 }
9384 ee.WriteMapEnd()
9385}
9386
9387func (e *Encoder) fastpathEncMapUint64BoolR(f *codecFnInfo, rv reflect.Value) {
9388 fastpathTV.EncMapUint64BoolV(rv2i(rv).(map[uint64]bool), e)
9389}
9390func (_ fastpathT) EncMapUint64BoolV(v map[uint64]bool, e *Encoder) {
9391 if v == nil {
9392 e.e.EncodeNil()
9393 return
9394 }
9395 ee, esep := e.e, e.hh.hasElemSeparators()
9396 ee.WriteMapStart(len(v))
9397 if e.h.Canonical {
9398 v2 := make([]uint64, len(v))
9399 var i int
9400 for k, _ := range v {
9401 v2[i] = uint64(k)
9402 i++
9403 }
9404 sort.Sort(uintSlice(v2))
9405 if esep {
9406 for _, k2 := range v2 {
9407 ee.WriteMapElemKey()
9408 ee.EncodeUint(uint64(uint64(k2)))
9409 ee.WriteMapElemValue()
9410 ee.EncodeBool(v[uint64(k2)])
9411 }
9412 } else {
9413 for _, k2 := range v2 {
9414 ee.EncodeUint(uint64(uint64(k2)))
9415 ee.EncodeBool(v[uint64(k2)])
9416 }
9417 }
9418 } else {
9419 if esep {
9420 for k2, v2 := range v {
9421 ee.WriteMapElemKey()
9422 ee.EncodeUint(uint64(k2))
9423 ee.WriteMapElemValue()
9424 ee.EncodeBool(v2)
9425 }
9426 } else {
9427 for k2, v2 := range v {
9428 ee.EncodeUint(uint64(k2))
9429 ee.EncodeBool(v2)
9430 }
9431 }
9432 }
9433 ee.WriteMapEnd()
9434}
9435
9436func (e *Encoder) fastpathEncMapUintptrIntfR(f *codecFnInfo, rv reflect.Value) {
9437 fastpathTV.EncMapUintptrIntfV(rv2i(rv).(map[uintptr]interface{}), e)
9438}
9439func (_ fastpathT) EncMapUintptrIntfV(v map[uintptr]interface{}, e *Encoder) {
9440 if v == nil {
9441 e.e.EncodeNil()
9442 return
9443 }
9444 ee, esep := e.e, e.hh.hasElemSeparators()
9445 ee.WriteMapStart(len(v))
9446 if e.h.Canonical {
9447 v2 := make([]uint64, len(v))
9448 var i int
9449 for k, _ := range v {
9450 v2[i] = uint64(k)
9451 i++
9452 }
9453 sort.Sort(uintSlice(v2))
9454 if esep {
9455 for _, k2 := range v2 {
9456 ee.WriteMapElemKey()
9457 e.encode(uintptr(k2))
9458 ee.WriteMapElemValue()
9459 e.encode(v[uintptr(k2)])
9460 }
9461 } else {
9462 for _, k2 := range v2 {
9463 e.encode(uintptr(k2))
9464 e.encode(v[uintptr(k2)])
9465 }
9466 }
9467 } else {
9468 if esep {
9469 for k2, v2 := range v {
9470 ee.WriteMapElemKey()
9471 e.encode(k2)
9472 ee.WriteMapElemValue()
9473 e.encode(v2)
9474 }
9475 } else {
9476 for k2, v2 := range v {
9477 e.encode(k2)
9478 e.encode(v2)
9479 }
9480 }
9481 }
9482 ee.WriteMapEnd()
9483}
9484
9485func (e *Encoder) fastpathEncMapUintptrStringR(f *codecFnInfo, rv reflect.Value) {
9486 fastpathTV.EncMapUintptrStringV(rv2i(rv).(map[uintptr]string), e)
9487}
9488func (_ fastpathT) EncMapUintptrStringV(v map[uintptr]string, e *Encoder) {
9489 if v == nil {
9490 e.e.EncodeNil()
9491 return
9492 }
9493 ee, esep := e.e, e.hh.hasElemSeparators()
9494 ee.WriteMapStart(len(v))
9495 if e.h.Canonical {
9496 v2 := make([]uint64, len(v))
9497 var i int
9498 for k, _ := range v {
9499 v2[i] = uint64(k)
9500 i++
9501 }
9502 sort.Sort(uintSlice(v2))
9503 if esep {
9504 for _, k2 := range v2 {
9505 ee.WriteMapElemKey()
9506 e.encode(uintptr(k2))
9507 ee.WriteMapElemValue()
9508 ee.EncodeString(cUTF8, v[uintptr(k2)])
9509 }
9510 } else {
9511 for _, k2 := range v2 {
9512 e.encode(uintptr(k2))
9513 ee.EncodeString(cUTF8, v[uintptr(k2)])
9514 }
9515 }
9516 } else {
9517 if esep {
9518 for k2, v2 := range v {
9519 ee.WriteMapElemKey()
9520 e.encode(k2)
9521 ee.WriteMapElemValue()
9522 ee.EncodeString(cUTF8, v2)
9523 }
9524 } else {
9525 for k2, v2 := range v {
9526 e.encode(k2)
9527 ee.EncodeString(cUTF8, v2)
9528 }
9529 }
9530 }
9531 ee.WriteMapEnd()
9532}
9533
9534func (e *Encoder) fastpathEncMapUintptrUintR(f *codecFnInfo, rv reflect.Value) {
9535 fastpathTV.EncMapUintptrUintV(rv2i(rv).(map[uintptr]uint), e)
9536}
9537func (_ fastpathT) EncMapUintptrUintV(v map[uintptr]uint, e *Encoder) {
9538 if v == nil {
9539 e.e.EncodeNil()
9540 return
9541 }
9542 ee, esep := e.e, e.hh.hasElemSeparators()
9543 ee.WriteMapStart(len(v))
9544 if e.h.Canonical {
9545 v2 := make([]uint64, len(v))
9546 var i int
9547 for k, _ := range v {
9548 v2[i] = uint64(k)
9549 i++
9550 }
9551 sort.Sort(uintSlice(v2))
9552 if esep {
9553 for _, k2 := range v2 {
9554 ee.WriteMapElemKey()
9555 e.encode(uintptr(k2))
9556 ee.WriteMapElemValue()
9557 ee.EncodeUint(uint64(v[uintptr(k2)]))
9558 }
9559 } else {
9560 for _, k2 := range v2 {
9561 e.encode(uintptr(k2))
9562 ee.EncodeUint(uint64(v[uintptr(k2)]))
9563 }
9564 }
9565 } else {
9566 if esep {
9567 for k2, v2 := range v {
9568 ee.WriteMapElemKey()
9569 e.encode(k2)
9570 ee.WriteMapElemValue()
9571 ee.EncodeUint(uint64(v2))
9572 }
9573 } else {
9574 for k2, v2 := range v {
9575 e.encode(k2)
9576 ee.EncodeUint(uint64(v2))
9577 }
9578 }
9579 }
9580 ee.WriteMapEnd()
9581}
9582
9583func (e *Encoder) fastpathEncMapUintptrUint8R(f *codecFnInfo, rv reflect.Value) {
9584 fastpathTV.EncMapUintptrUint8V(rv2i(rv).(map[uintptr]uint8), e)
9585}
9586func (_ fastpathT) EncMapUintptrUint8V(v map[uintptr]uint8, e *Encoder) {
9587 if v == nil {
9588 e.e.EncodeNil()
9589 return
9590 }
9591 ee, esep := e.e, e.hh.hasElemSeparators()
9592 ee.WriteMapStart(len(v))
9593 if e.h.Canonical {
9594 v2 := make([]uint64, len(v))
9595 var i int
9596 for k, _ := range v {
9597 v2[i] = uint64(k)
9598 i++
9599 }
9600 sort.Sort(uintSlice(v2))
9601 if esep {
9602 for _, k2 := range v2 {
9603 ee.WriteMapElemKey()
9604 e.encode(uintptr(k2))
9605 ee.WriteMapElemValue()
9606 ee.EncodeUint(uint64(v[uintptr(k2)]))
9607 }
9608 } else {
9609 for _, k2 := range v2 {
9610 e.encode(uintptr(k2))
9611 ee.EncodeUint(uint64(v[uintptr(k2)]))
9612 }
9613 }
9614 } else {
9615 if esep {
9616 for k2, v2 := range v {
9617 ee.WriteMapElemKey()
9618 e.encode(k2)
9619 ee.WriteMapElemValue()
9620 ee.EncodeUint(uint64(v2))
9621 }
9622 } else {
9623 for k2, v2 := range v {
9624 e.encode(k2)
9625 ee.EncodeUint(uint64(v2))
9626 }
9627 }
9628 }
9629 ee.WriteMapEnd()
9630}
9631
9632func (e *Encoder) fastpathEncMapUintptrUint16R(f *codecFnInfo, rv reflect.Value) {
9633 fastpathTV.EncMapUintptrUint16V(rv2i(rv).(map[uintptr]uint16), e)
9634}
9635func (_ fastpathT) EncMapUintptrUint16V(v map[uintptr]uint16, e *Encoder) {
9636 if v == nil {
9637 e.e.EncodeNil()
9638 return
9639 }
9640 ee, esep := e.e, e.hh.hasElemSeparators()
9641 ee.WriteMapStart(len(v))
9642 if e.h.Canonical {
9643 v2 := make([]uint64, len(v))
9644 var i int
9645 for k, _ := range v {
9646 v2[i] = uint64(k)
9647 i++
9648 }
9649 sort.Sort(uintSlice(v2))
9650 if esep {
9651 for _, k2 := range v2 {
9652 ee.WriteMapElemKey()
9653 e.encode(uintptr(k2))
9654 ee.WriteMapElemValue()
9655 ee.EncodeUint(uint64(v[uintptr(k2)]))
9656 }
9657 } else {
9658 for _, k2 := range v2 {
9659 e.encode(uintptr(k2))
9660 ee.EncodeUint(uint64(v[uintptr(k2)]))
9661 }
9662 }
9663 } else {
9664 if esep {
9665 for k2, v2 := range v {
9666 ee.WriteMapElemKey()
9667 e.encode(k2)
9668 ee.WriteMapElemValue()
9669 ee.EncodeUint(uint64(v2))
9670 }
9671 } else {
9672 for k2, v2 := range v {
9673 e.encode(k2)
9674 ee.EncodeUint(uint64(v2))
9675 }
9676 }
9677 }
9678 ee.WriteMapEnd()
9679}
9680
9681func (e *Encoder) fastpathEncMapUintptrUint32R(f *codecFnInfo, rv reflect.Value) {
9682 fastpathTV.EncMapUintptrUint32V(rv2i(rv).(map[uintptr]uint32), e)
9683}
9684func (_ fastpathT) EncMapUintptrUint32V(v map[uintptr]uint32, e *Encoder) {
9685 if v == nil {
9686 e.e.EncodeNil()
9687 return
9688 }
9689 ee, esep := e.e, e.hh.hasElemSeparators()
9690 ee.WriteMapStart(len(v))
9691 if e.h.Canonical {
9692 v2 := make([]uint64, len(v))
9693 var i int
9694 for k, _ := range v {
9695 v2[i] = uint64(k)
9696 i++
9697 }
9698 sort.Sort(uintSlice(v2))
9699 if esep {
9700 for _, k2 := range v2 {
9701 ee.WriteMapElemKey()
9702 e.encode(uintptr(k2))
9703 ee.WriteMapElemValue()
9704 ee.EncodeUint(uint64(v[uintptr(k2)]))
9705 }
9706 } else {
9707 for _, k2 := range v2 {
9708 e.encode(uintptr(k2))
9709 ee.EncodeUint(uint64(v[uintptr(k2)]))
9710 }
9711 }
9712 } else {
9713 if esep {
9714 for k2, v2 := range v {
9715 ee.WriteMapElemKey()
9716 e.encode(k2)
9717 ee.WriteMapElemValue()
9718 ee.EncodeUint(uint64(v2))
9719 }
9720 } else {
9721 for k2, v2 := range v {
9722 e.encode(k2)
9723 ee.EncodeUint(uint64(v2))
9724 }
9725 }
9726 }
9727 ee.WriteMapEnd()
9728}
9729
9730func (e *Encoder) fastpathEncMapUintptrUint64R(f *codecFnInfo, rv reflect.Value) {
9731 fastpathTV.EncMapUintptrUint64V(rv2i(rv).(map[uintptr]uint64), e)
9732}
9733func (_ fastpathT) EncMapUintptrUint64V(v map[uintptr]uint64, e *Encoder) {
9734 if v == nil {
9735 e.e.EncodeNil()
9736 return
9737 }
9738 ee, esep := e.e, e.hh.hasElemSeparators()
9739 ee.WriteMapStart(len(v))
9740 if e.h.Canonical {
9741 v2 := make([]uint64, len(v))
9742 var i int
9743 for k, _ := range v {
9744 v2[i] = uint64(k)
9745 i++
9746 }
9747 sort.Sort(uintSlice(v2))
9748 if esep {
9749 for _, k2 := range v2 {
9750 ee.WriteMapElemKey()
9751 e.encode(uintptr(k2))
9752 ee.WriteMapElemValue()
9753 ee.EncodeUint(uint64(v[uintptr(k2)]))
9754 }
9755 } else {
9756 for _, k2 := range v2 {
9757 e.encode(uintptr(k2))
9758 ee.EncodeUint(uint64(v[uintptr(k2)]))
9759 }
9760 }
9761 } else {
9762 if esep {
9763 for k2, v2 := range v {
9764 ee.WriteMapElemKey()
9765 e.encode(k2)
9766 ee.WriteMapElemValue()
9767 ee.EncodeUint(uint64(v2))
9768 }
9769 } else {
9770 for k2, v2 := range v {
9771 e.encode(k2)
9772 ee.EncodeUint(uint64(v2))
9773 }
9774 }
9775 }
9776 ee.WriteMapEnd()
9777}
9778
9779func (e *Encoder) fastpathEncMapUintptrUintptrR(f *codecFnInfo, rv reflect.Value) {
9780 fastpathTV.EncMapUintptrUintptrV(rv2i(rv).(map[uintptr]uintptr), e)
9781}
9782func (_ fastpathT) EncMapUintptrUintptrV(v map[uintptr]uintptr, e *Encoder) {
9783 if v == nil {
9784 e.e.EncodeNil()
9785 return
9786 }
9787 ee, esep := e.e, e.hh.hasElemSeparators()
9788 ee.WriteMapStart(len(v))
9789 if e.h.Canonical {
9790 v2 := make([]uint64, len(v))
9791 var i int
9792 for k, _ := range v {
9793 v2[i] = uint64(k)
9794 i++
9795 }
9796 sort.Sort(uintSlice(v2))
9797 if esep {
9798 for _, k2 := range v2 {
9799 ee.WriteMapElemKey()
9800 e.encode(uintptr(k2))
9801 ee.WriteMapElemValue()
9802 e.encode(v[uintptr(k2)])
9803 }
9804 } else {
9805 for _, k2 := range v2 {
9806 e.encode(uintptr(k2))
9807 e.encode(v[uintptr(k2)])
9808 }
9809 }
9810 } else {
9811 if esep {
9812 for k2, v2 := range v {
9813 ee.WriteMapElemKey()
9814 e.encode(k2)
9815 ee.WriteMapElemValue()
9816 e.encode(v2)
9817 }
9818 } else {
9819 for k2, v2 := range v {
9820 e.encode(k2)
9821 e.encode(v2)
9822 }
9823 }
9824 }
9825 ee.WriteMapEnd()
9826}
9827
9828func (e *Encoder) fastpathEncMapUintptrIntR(f *codecFnInfo, rv reflect.Value) {
9829 fastpathTV.EncMapUintptrIntV(rv2i(rv).(map[uintptr]int), e)
9830}
9831func (_ fastpathT) EncMapUintptrIntV(v map[uintptr]int, e *Encoder) {
9832 if v == nil {
9833 e.e.EncodeNil()
9834 return
9835 }
9836 ee, esep := e.e, e.hh.hasElemSeparators()
9837 ee.WriteMapStart(len(v))
9838 if e.h.Canonical {
9839 v2 := make([]uint64, len(v))
9840 var i int
9841 for k, _ := range v {
9842 v2[i] = uint64(k)
9843 i++
9844 }
9845 sort.Sort(uintSlice(v2))
9846 if esep {
9847 for _, k2 := range v2 {
9848 ee.WriteMapElemKey()
9849 e.encode(uintptr(k2))
9850 ee.WriteMapElemValue()
9851 ee.EncodeInt(int64(v[uintptr(k2)]))
9852 }
9853 } else {
9854 for _, k2 := range v2 {
9855 e.encode(uintptr(k2))
9856 ee.EncodeInt(int64(v[uintptr(k2)]))
9857 }
9858 }
9859 } else {
9860 if esep {
9861 for k2, v2 := range v {
9862 ee.WriteMapElemKey()
9863 e.encode(k2)
9864 ee.WriteMapElemValue()
9865 ee.EncodeInt(int64(v2))
9866 }
9867 } else {
9868 for k2, v2 := range v {
9869 e.encode(k2)
9870 ee.EncodeInt(int64(v2))
9871 }
9872 }
9873 }
9874 ee.WriteMapEnd()
9875}
9876
9877func (e *Encoder) fastpathEncMapUintptrInt8R(f *codecFnInfo, rv reflect.Value) {
9878 fastpathTV.EncMapUintptrInt8V(rv2i(rv).(map[uintptr]int8), e)
9879}
9880func (_ fastpathT) EncMapUintptrInt8V(v map[uintptr]int8, e *Encoder) {
9881 if v == nil {
9882 e.e.EncodeNil()
9883 return
9884 }
9885 ee, esep := e.e, e.hh.hasElemSeparators()
9886 ee.WriteMapStart(len(v))
9887 if e.h.Canonical {
9888 v2 := make([]uint64, len(v))
9889 var i int
9890 for k, _ := range v {
9891 v2[i] = uint64(k)
9892 i++
9893 }
9894 sort.Sort(uintSlice(v2))
9895 if esep {
9896 for _, k2 := range v2 {
9897 ee.WriteMapElemKey()
9898 e.encode(uintptr(k2))
9899 ee.WriteMapElemValue()
9900 ee.EncodeInt(int64(v[uintptr(k2)]))
9901 }
9902 } else {
9903 for _, k2 := range v2 {
9904 e.encode(uintptr(k2))
9905 ee.EncodeInt(int64(v[uintptr(k2)]))
9906 }
9907 }
9908 } else {
9909 if esep {
9910 for k2, v2 := range v {
9911 ee.WriteMapElemKey()
9912 e.encode(k2)
9913 ee.WriteMapElemValue()
9914 ee.EncodeInt(int64(v2))
9915 }
9916 } else {
9917 for k2, v2 := range v {
9918 e.encode(k2)
9919 ee.EncodeInt(int64(v2))
9920 }
9921 }
9922 }
9923 ee.WriteMapEnd()
9924}
9925
9926func (e *Encoder) fastpathEncMapUintptrInt16R(f *codecFnInfo, rv reflect.Value) {
9927 fastpathTV.EncMapUintptrInt16V(rv2i(rv).(map[uintptr]int16), e)
9928}
9929func (_ fastpathT) EncMapUintptrInt16V(v map[uintptr]int16, e *Encoder) {
9930 if v == nil {
9931 e.e.EncodeNil()
9932 return
9933 }
9934 ee, esep := e.e, e.hh.hasElemSeparators()
9935 ee.WriteMapStart(len(v))
9936 if e.h.Canonical {
9937 v2 := make([]uint64, len(v))
9938 var i int
9939 for k, _ := range v {
9940 v2[i] = uint64(k)
9941 i++
9942 }
9943 sort.Sort(uintSlice(v2))
9944 if esep {
9945 for _, k2 := range v2 {
9946 ee.WriteMapElemKey()
9947 e.encode(uintptr(k2))
9948 ee.WriteMapElemValue()
9949 ee.EncodeInt(int64(v[uintptr(k2)]))
9950 }
9951 } else {
9952 for _, k2 := range v2 {
9953 e.encode(uintptr(k2))
9954 ee.EncodeInt(int64(v[uintptr(k2)]))
9955 }
9956 }
9957 } else {
9958 if esep {
9959 for k2, v2 := range v {
9960 ee.WriteMapElemKey()
9961 e.encode(k2)
9962 ee.WriteMapElemValue()
9963 ee.EncodeInt(int64(v2))
9964 }
9965 } else {
9966 for k2, v2 := range v {
9967 e.encode(k2)
9968 ee.EncodeInt(int64(v2))
9969 }
9970 }
9971 }
9972 ee.WriteMapEnd()
9973}
9974
9975func (e *Encoder) fastpathEncMapUintptrInt32R(f *codecFnInfo, rv reflect.Value) {
9976 fastpathTV.EncMapUintptrInt32V(rv2i(rv).(map[uintptr]int32), e)
9977}
9978func (_ fastpathT) EncMapUintptrInt32V(v map[uintptr]int32, e *Encoder) {
9979 if v == nil {
9980 e.e.EncodeNil()
9981 return
9982 }
9983 ee, esep := e.e, e.hh.hasElemSeparators()
9984 ee.WriteMapStart(len(v))
9985 if e.h.Canonical {
9986 v2 := make([]uint64, len(v))
9987 var i int
9988 for k, _ := range v {
9989 v2[i] = uint64(k)
9990 i++
9991 }
9992 sort.Sort(uintSlice(v2))
9993 if esep {
9994 for _, k2 := range v2 {
9995 ee.WriteMapElemKey()
9996 e.encode(uintptr(k2))
9997 ee.WriteMapElemValue()
9998 ee.EncodeInt(int64(v[uintptr(k2)]))
9999 }
10000 } else {
10001 for _, k2 := range v2 {
10002 e.encode(uintptr(k2))
10003 ee.EncodeInt(int64(v[uintptr(k2)]))
10004 }
10005 }
10006 } else {
10007 if esep {
10008 for k2, v2 := range v {
10009 ee.WriteMapElemKey()
10010 e.encode(k2)
10011 ee.WriteMapElemValue()
10012 ee.EncodeInt(int64(v2))
10013 }
10014 } else {
10015 for k2, v2 := range v {
10016 e.encode(k2)
10017 ee.EncodeInt(int64(v2))
10018 }
10019 }
10020 }
10021 ee.WriteMapEnd()
10022}
10023
10024func (e *Encoder) fastpathEncMapUintptrInt64R(f *codecFnInfo, rv reflect.Value) {
10025 fastpathTV.EncMapUintptrInt64V(rv2i(rv).(map[uintptr]int64), e)
10026}
10027func (_ fastpathT) EncMapUintptrInt64V(v map[uintptr]int64, e *Encoder) {
10028 if v == nil {
10029 e.e.EncodeNil()
10030 return
10031 }
10032 ee, esep := e.e, e.hh.hasElemSeparators()
10033 ee.WriteMapStart(len(v))
10034 if e.h.Canonical {
10035 v2 := make([]uint64, len(v))
10036 var i int
10037 for k, _ := range v {
10038 v2[i] = uint64(k)
10039 i++
10040 }
10041 sort.Sort(uintSlice(v2))
10042 if esep {
10043 for _, k2 := range v2 {
10044 ee.WriteMapElemKey()
10045 e.encode(uintptr(k2))
10046 ee.WriteMapElemValue()
10047 ee.EncodeInt(int64(v[uintptr(k2)]))
10048 }
10049 } else {
10050 for _, k2 := range v2 {
10051 e.encode(uintptr(k2))
10052 ee.EncodeInt(int64(v[uintptr(k2)]))
10053 }
10054 }
10055 } else {
10056 if esep {
10057 for k2, v2 := range v {
10058 ee.WriteMapElemKey()
10059 e.encode(k2)
10060 ee.WriteMapElemValue()
10061 ee.EncodeInt(int64(v2))
10062 }
10063 } else {
10064 for k2, v2 := range v {
10065 e.encode(k2)
10066 ee.EncodeInt(int64(v2))
10067 }
10068 }
10069 }
10070 ee.WriteMapEnd()
10071}
10072
10073func (e *Encoder) fastpathEncMapUintptrFloat32R(f *codecFnInfo, rv reflect.Value) {
10074 fastpathTV.EncMapUintptrFloat32V(rv2i(rv).(map[uintptr]float32), e)
10075}
10076func (_ fastpathT) EncMapUintptrFloat32V(v map[uintptr]float32, e *Encoder) {
10077 if v == nil {
10078 e.e.EncodeNil()
10079 return
10080 }
10081 ee, esep := e.e, e.hh.hasElemSeparators()
10082 ee.WriteMapStart(len(v))
10083 if e.h.Canonical {
10084 v2 := make([]uint64, len(v))
10085 var i int
10086 for k, _ := range v {
10087 v2[i] = uint64(k)
10088 i++
10089 }
10090 sort.Sort(uintSlice(v2))
10091 if esep {
10092 for _, k2 := range v2 {
10093 ee.WriteMapElemKey()
10094 e.encode(uintptr(k2))
10095 ee.WriteMapElemValue()
10096 ee.EncodeFloat32(v[uintptr(k2)])
10097 }
10098 } else {
10099 for _, k2 := range v2 {
10100 e.encode(uintptr(k2))
10101 ee.EncodeFloat32(v[uintptr(k2)])
10102 }
10103 }
10104 } else {
10105 if esep {
10106 for k2, v2 := range v {
10107 ee.WriteMapElemKey()
10108 e.encode(k2)
10109 ee.WriteMapElemValue()
10110 ee.EncodeFloat32(v2)
10111 }
10112 } else {
10113 for k2, v2 := range v {
10114 e.encode(k2)
10115 ee.EncodeFloat32(v2)
10116 }
10117 }
10118 }
10119 ee.WriteMapEnd()
10120}
10121
10122func (e *Encoder) fastpathEncMapUintptrFloat64R(f *codecFnInfo, rv reflect.Value) {
10123 fastpathTV.EncMapUintptrFloat64V(rv2i(rv).(map[uintptr]float64), e)
10124}
10125func (_ fastpathT) EncMapUintptrFloat64V(v map[uintptr]float64, e *Encoder) {
10126 if v == nil {
10127 e.e.EncodeNil()
10128 return
10129 }
10130 ee, esep := e.e, e.hh.hasElemSeparators()
10131 ee.WriteMapStart(len(v))
10132 if e.h.Canonical {
10133 v2 := make([]uint64, len(v))
10134 var i int
10135 for k, _ := range v {
10136 v2[i] = uint64(k)
10137 i++
10138 }
10139 sort.Sort(uintSlice(v2))
10140 if esep {
10141 for _, k2 := range v2 {
10142 ee.WriteMapElemKey()
10143 e.encode(uintptr(k2))
10144 ee.WriteMapElemValue()
10145 ee.EncodeFloat64(v[uintptr(k2)])
10146 }
10147 } else {
10148 for _, k2 := range v2 {
10149 e.encode(uintptr(k2))
10150 ee.EncodeFloat64(v[uintptr(k2)])
10151 }
10152 }
10153 } else {
10154 if esep {
10155 for k2, v2 := range v {
10156 ee.WriteMapElemKey()
10157 e.encode(k2)
10158 ee.WriteMapElemValue()
10159 ee.EncodeFloat64(v2)
10160 }
10161 } else {
10162 for k2, v2 := range v {
10163 e.encode(k2)
10164 ee.EncodeFloat64(v2)
10165 }
10166 }
10167 }
10168 ee.WriteMapEnd()
10169}
10170
10171func (e *Encoder) fastpathEncMapUintptrBoolR(f *codecFnInfo, rv reflect.Value) {
10172 fastpathTV.EncMapUintptrBoolV(rv2i(rv).(map[uintptr]bool), e)
10173}
10174func (_ fastpathT) EncMapUintptrBoolV(v map[uintptr]bool, e *Encoder) {
10175 if v == nil {
10176 e.e.EncodeNil()
10177 return
10178 }
10179 ee, esep := e.e, e.hh.hasElemSeparators()
10180 ee.WriteMapStart(len(v))
10181 if e.h.Canonical {
10182 v2 := make([]uint64, len(v))
10183 var i int
10184 for k, _ := range v {
10185 v2[i] = uint64(k)
10186 i++
10187 }
10188 sort.Sort(uintSlice(v2))
10189 if esep {
10190 for _, k2 := range v2 {
10191 ee.WriteMapElemKey()
10192 e.encode(uintptr(k2))
10193 ee.WriteMapElemValue()
10194 ee.EncodeBool(v[uintptr(k2)])
10195 }
10196 } else {
10197 for _, k2 := range v2 {
10198 e.encode(uintptr(k2))
10199 ee.EncodeBool(v[uintptr(k2)])
10200 }
10201 }
10202 } else {
10203 if esep {
10204 for k2, v2 := range v {
10205 ee.WriteMapElemKey()
10206 e.encode(k2)
10207 ee.WriteMapElemValue()
10208 ee.EncodeBool(v2)
10209 }
10210 } else {
10211 for k2, v2 := range v {
10212 e.encode(k2)
10213 ee.EncodeBool(v2)
10214 }
10215 }
10216 }
10217 ee.WriteMapEnd()
10218}
10219
10220func (e *Encoder) fastpathEncMapIntIntfR(f *codecFnInfo, rv reflect.Value) {
10221 fastpathTV.EncMapIntIntfV(rv2i(rv).(map[int]interface{}), e)
10222}
10223func (_ fastpathT) EncMapIntIntfV(v map[int]interface{}, e *Encoder) {
10224 if v == nil {
10225 e.e.EncodeNil()
10226 return
10227 }
10228 ee, esep := e.e, e.hh.hasElemSeparators()
10229 ee.WriteMapStart(len(v))
10230 if e.h.Canonical {
10231 v2 := make([]int64, len(v))
10232 var i int
10233 for k, _ := range v {
10234 v2[i] = int64(k)
10235 i++
10236 }
10237 sort.Sort(intSlice(v2))
10238 if esep {
10239 for _, k2 := range v2 {
10240 ee.WriteMapElemKey()
10241 ee.EncodeInt(int64(int(k2)))
10242 ee.WriteMapElemValue()
10243 e.encode(v[int(k2)])
10244 }
10245 } else {
10246 for _, k2 := range v2 {
10247 ee.EncodeInt(int64(int(k2)))
10248 e.encode(v[int(k2)])
10249 }
10250 }
10251 } else {
10252 if esep {
10253 for k2, v2 := range v {
10254 ee.WriteMapElemKey()
10255 ee.EncodeInt(int64(k2))
10256 ee.WriteMapElemValue()
10257 e.encode(v2)
10258 }
10259 } else {
10260 for k2, v2 := range v {
10261 ee.EncodeInt(int64(k2))
10262 e.encode(v2)
10263 }
10264 }
10265 }
10266 ee.WriteMapEnd()
10267}
10268
10269func (e *Encoder) fastpathEncMapIntStringR(f *codecFnInfo, rv reflect.Value) {
10270 fastpathTV.EncMapIntStringV(rv2i(rv).(map[int]string), e)
10271}
10272func (_ fastpathT) EncMapIntStringV(v map[int]string, e *Encoder) {
10273 if v == nil {
10274 e.e.EncodeNil()
10275 return
10276 }
10277 ee, esep := e.e, e.hh.hasElemSeparators()
10278 ee.WriteMapStart(len(v))
10279 if e.h.Canonical {
10280 v2 := make([]int64, len(v))
10281 var i int
10282 for k, _ := range v {
10283 v2[i] = int64(k)
10284 i++
10285 }
10286 sort.Sort(intSlice(v2))
10287 if esep {
10288 for _, k2 := range v2 {
10289 ee.WriteMapElemKey()
10290 ee.EncodeInt(int64(int(k2)))
10291 ee.WriteMapElemValue()
10292 ee.EncodeString(cUTF8, v[int(k2)])
10293 }
10294 } else {
10295 for _, k2 := range v2 {
10296 ee.EncodeInt(int64(int(k2)))
10297 ee.EncodeString(cUTF8, v[int(k2)])
10298 }
10299 }
10300 } else {
10301 if esep {
10302 for k2, v2 := range v {
10303 ee.WriteMapElemKey()
10304 ee.EncodeInt(int64(k2))
10305 ee.WriteMapElemValue()
10306 ee.EncodeString(cUTF8, v2)
10307 }
10308 } else {
10309 for k2, v2 := range v {
10310 ee.EncodeInt(int64(k2))
10311 ee.EncodeString(cUTF8, v2)
10312 }
10313 }
10314 }
10315 ee.WriteMapEnd()
10316}
10317
10318func (e *Encoder) fastpathEncMapIntUintR(f *codecFnInfo, rv reflect.Value) {
10319 fastpathTV.EncMapIntUintV(rv2i(rv).(map[int]uint), e)
10320}
10321func (_ fastpathT) EncMapIntUintV(v map[int]uint, e *Encoder) {
10322 if v == nil {
10323 e.e.EncodeNil()
10324 return
10325 }
10326 ee, esep := e.e, e.hh.hasElemSeparators()
10327 ee.WriteMapStart(len(v))
10328 if e.h.Canonical {
10329 v2 := make([]int64, len(v))
10330 var i int
10331 for k, _ := range v {
10332 v2[i] = int64(k)
10333 i++
10334 }
10335 sort.Sort(intSlice(v2))
10336 if esep {
10337 for _, k2 := range v2 {
10338 ee.WriteMapElemKey()
10339 ee.EncodeInt(int64(int(k2)))
10340 ee.WriteMapElemValue()
10341 ee.EncodeUint(uint64(v[int(k2)]))
10342 }
10343 } else {
10344 for _, k2 := range v2 {
10345 ee.EncodeInt(int64(int(k2)))
10346 ee.EncodeUint(uint64(v[int(k2)]))
10347 }
10348 }
10349 } else {
10350 if esep {
10351 for k2, v2 := range v {
10352 ee.WriteMapElemKey()
10353 ee.EncodeInt(int64(k2))
10354 ee.WriteMapElemValue()
10355 ee.EncodeUint(uint64(v2))
10356 }
10357 } else {
10358 for k2, v2 := range v {
10359 ee.EncodeInt(int64(k2))
10360 ee.EncodeUint(uint64(v2))
10361 }
10362 }
10363 }
10364 ee.WriteMapEnd()
10365}
10366
10367func (e *Encoder) fastpathEncMapIntUint8R(f *codecFnInfo, rv reflect.Value) {
10368 fastpathTV.EncMapIntUint8V(rv2i(rv).(map[int]uint8), e)
10369}
10370func (_ fastpathT) EncMapIntUint8V(v map[int]uint8, e *Encoder) {
10371 if v == nil {
10372 e.e.EncodeNil()
10373 return
10374 }
10375 ee, esep := e.e, e.hh.hasElemSeparators()
10376 ee.WriteMapStart(len(v))
10377 if e.h.Canonical {
10378 v2 := make([]int64, len(v))
10379 var i int
10380 for k, _ := range v {
10381 v2[i] = int64(k)
10382 i++
10383 }
10384 sort.Sort(intSlice(v2))
10385 if esep {
10386 for _, k2 := range v2 {
10387 ee.WriteMapElemKey()
10388 ee.EncodeInt(int64(int(k2)))
10389 ee.WriteMapElemValue()
10390 ee.EncodeUint(uint64(v[int(k2)]))
10391 }
10392 } else {
10393 for _, k2 := range v2 {
10394 ee.EncodeInt(int64(int(k2)))
10395 ee.EncodeUint(uint64(v[int(k2)]))
10396 }
10397 }
10398 } else {
10399 if esep {
10400 for k2, v2 := range v {
10401 ee.WriteMapElemKey()
10402 ee.EncodeInt(int64(k2))
10403 ee.WriteMapElemValue()
10404 ee.EncodeUint(uint64(v2))
10405 }
10406 } else {
10407 for k2, v2 := range v {
10408 ee.EncodeInt(int64(k2))
10409 ee.EncodeUint(uint64(v2))
10410 }
10411 }
10412 }
10413 ee.WriteMapEnd()
10414}
10415
10416func (e *Encoder) fastpathEncMapIntUint16R(f *codecFnInfo, rv reflect.Value) {
10417 fastpathTV.EncMapIntUint16V(rv2i(rv).(map[int]uint16), e)
10418}
10419func (_ fastpathT) EncMapIntUint16V(v map[int]uint16, e *Encoder) {
10420 if v == nil {
10421 e.e.EncodeNil()
10422 return
10423 }
10424 ee, esep := e.e, e.hh.hasElemSeparators()
10425 ee.WriteMapStart(len(v))
10426 if e.h.Canonical {
10427 v2 := make([]int64, len(v))
10428 var i int
10429 for k, _ := range v {
10430 v2[i] = int64(k)
10431 i++
10432 }
10433 sort.Sort(intSlice(v2))
10434 if esep {
10435 for _, k2 := range v2 {
10436 ee.WriteMapElemKey()
10437 ee.EncodeInt(int64(int(k2)))
10438 ee.WriteMapElemValue()
10439 ee.EncodeUint(uint64(v[int(k2)]))
10440 }
10441 } else {
10442 for _, k2 := range v2 {
10443 ee.EncodeInt(int64(int(k2)))
10444 ee.EncodeUint(uint64(v[int(k2)]))
10445 }
10446 }
10447 } else {
10448 if esep {
10449 for k2, v2 := range v {
10450 ee.WriteMapElemKey()
10451 ee.EncodeInt(int64(k2))
10452 ee.WriteMapElemValue()
10453 ee.EncodeUint(uint64(v2))
10454 }
10455 } else {
10456 for k2, v2 := range v {
10457 ee.EncodeInt(int64(k2))
10458 ee.EncodeUint(uint64(v2))
10459 }
10460 }
10461 }
10462 ee.WriteMapEnd()
10463}
10464
10465func (e *Encoder) fastpathEncMapIntUint32R(f *codecFnInfo, rv reflect.Value) {
10466 fastpathTV.EncMapIntUint32V(rv2i(rv).(map[int]uint32), e)
10467}
10468func (_ fastpathT) EncMapIntUint32V(v map[int]uint32, e *Encoder) {
10469 if v == nil {
10470 e.e.EncodeNil()
10471 return
10472 }
10473 ee, esep := e.e, e.hh.hasElemSeparators()
10474 ee.WriteMapStart(len(v))
10475 if e.h.Canonical {
10476 v2 := make([]int64, len(v))
10477 var i int
10478 for k, _ := range v {
10479 v2[i] = int64(k)
10480 i++
10481 }
10482 sort.Sort(intSlice(v2))
10483 if esep {
10484 for _, k2 := range v2 {
10485 ee.WriteMapElemKey()
10486 ee.EncodeInt(int64(int(k2)))
10487 ee.WriteMapElemValue()
10488 ee.EncodeUint(uint64(v[int(k2)]))
10489 }
10490 } else {
10491 for _, k2 := range v2 {
10492 ee.EncodeInt(int64(int(k2)))
10493 ee.EncodeUint(uint64(v[int(k2)]))
10494 }
10495 }
10496 } else {
10497 if esep {
10498 for k2, v2 := range v {
10499 ee.WriteMapElemKey()
10500 ee.EncodeInt(int64(k2))
10501 ee.WriteMapElemValue()
10502 ee.EncodeUint(uint64(v2))
10503 }
10504 } else {
10505 for k2, v2 := range v {
10506 ee.EncodeInt(int64(k2))
10507 ee.EncodeUint(uint64(v2))
10508 }
10509 }
10510 }
10511 ee.WriteMapEnd()
10512}
10513
10514func (e *Encoder) fastpathEncMapIntUint64R(f *codecFnInfo, rv reflect.Value) {
10515 fastpathTV.EncMapIntUint64V(rv2i(rv).(map[int]uint64), e)
10516}
10517func (_ fastpathT) EncMapIntUint64V(v map[int]uint64, e *Encoder) {
10518 if v == nil {
10519 e.e.EncodeNil()
10520 return
10521 }
10522 ee, esep := e.e, e.hh.hasElemSeparators()
10523 ee.WriteMapStart(len(v))
10524 if e.h.Canonical {
10525 v2 := make([]int64, len(v))
10526 var i int
10527 for k, _ := range v {
10528 v2[i] = int64(k)
10529 i++
10530 }
10531 sort.Sort(intSlice(v2))
10532 if esep {
10533 for _, k2 := range v2 {
10534 ee.WriteMapElemKey()
10535 ee.EncodeInt(int64(int(k2)))
10536 ee.WriteMapElemValue()
10537 ee.EncodeUint(uint64(v[int(k2)]))
10538 }
10539 } else {
10540 for _, k2 := range v2 {
10541 ee.EncodeInt(int64(int(k2)))
10542 ee.EncodeUint(uint64(v[int(k2)]))
10543 }
10544 }
10545 } else {
10546 if esep {
10547 for k2, v2 := range v {
10548 ee.WriteMapElemKey()
10549 ee.EncodeInt(int64(k2))
10550 ee.WriteMapElemValue()
10551 ee.EncodeUint(uint64(v2))
10552 }
10553 } else {
10554 for k2, v2 := range v {
10555 ee.EncodeInt(int64(k2))
10556 ee.EncodeUint(uint64(v2))
10557 }
10558 }
10559 }
10560 ee.WriteMapEnd()
10561}
10562
10563func (e *Encoder) fastpathEncMapIntUintptrR(f *codecFnInfo, rv reflect.Value) {
10564 fastpathTV.EncMapIntUintptrV(rv2i(rv).(map[int]uintptr), e)
10565}
10566func (_ fastpathT) EncMapIntUintptrV(v map[int]uintptr, e *Encoder) {
10567 if v == nil {
10568 e.e.EncodeNil()
10569 return
10570 }
10571 ee, esep := e.e, e.hh.hasElemSeparators()
10572 ee.WriteMapStart(len(v))
10573 if e.h.Canonical {
10574 v2 := make([]int64, len(v))
10575 var i int
10576 for k, _ := range v {
10577 v2[i] = int64(k)
10578 i++
10579 }
10580 sort.Sort(intSlice(v2))
10581 if esep {
10582 for _, k2 := range v2 {
10583 ee.WriteMapElemKey()
10584 ee.EncodeInt(int64(int(k2)))
10585 ee.WriteMapElemValue()
10586 e.encode(v[int(k2)])
10587 }
10588 } else {
10589 for _, k2 := range v2 {
10590 ee.EncodeInt(int64(int(k2)))
10591 e.encode(v[int(k2)])
10592 }
10593 }
10594 } else {
10595 if esep {
10596 for k2, v2 := range v {
10597 ee.WriteMapElemKey()
10598 ee.EncodeInt(int64(k2))
10599 ee.WriteMapElemValue()
10600 e.encode(v2)
10601 }
10602 } else {
10603 for k2, v2 := range v {
10604 ee.EncodeInt(int64(k2))
10605 e.encode(v2)
10606 }
10607 }
10608 }
10609 ee.WriteMapEnd()
10610}
10611
10612func (e *Encoder) fastpathEncMapIntIntR(f *codecFnInfo, rv reflect.Value) {
10613 fastpathTV.EncMapIntIntV(rv2i(rv).(map[int]int), e)
10614}
10615func (_ fastpathT) EncMapIntIntV(v map[int]int, e *Encoder) {
10616 if v == nil {
10617 e.e.EncodeNil()
10618 return
10619 }
10620 ee, esep := e.e, e.hh.hasElemSeparators()
10621 ee.WriteMapStart(len(v))
10622 if e.h.Canonical {
10623 v2 := make([]int64, len(v))
10624 var i int
10625 for k, _ := range v {
10626 v2[i] = int64(k)
10627 i++
10628 }
10629 sort.Sort(intSlice(v2))
10630 if esep {
10631 for _, k2 := range v2 {
10632 ee.WriteMapElemKey()
10633 ee.EncodeInt(int64(int(k2)))
10634 ee.WriteMapElemValue()
10635 ee.EncodeInt(int64(v[int(k2)]))
10636 }
10637 } else {
10638 for _, k2 := range v2 {
10639 ee.EncodeInt(int64(int(k2)))
10640 ee.EncodeInt(int64(v[int(k2)]))
10641 }
10642 }
10643 } else {
10644 if esep {
10645 for k2, v2 := range v {
10646 ee.WriteMapElemKey()
10647 ee.EncodeInt(int64(k2))
10648 ee.WriteMapElemValue()
10649 ee.EncodeInt(int64(v2))
10650 }
10651 } else {
10652 for k2, v2 := range v {
10653 ee.EncodeInt(int64(k2))
10654 ee.EncodeInt(int64(v2))
10655 }
10656 }
10657 }
10658 ee.WriteMapEnd()
10659}
10660
10661func (e *Encoder) fastpathEncMapIntInt8R(f *codecFnInfo, rv reflect.Value) {
10662 fastpathTV.EncMapIntInt8V(rv2i(rv).(map[int]int8), e)
10663}
10664func (_ fastpathT) EncMapIntInt8V(v map[int]int8, e *Encoder) {
10665 if v == nil {
10666 e.e.EncodeNil()
10667 return
10668 }
10669 ee, esep := e.e, e.hh.hasElemSeparators()
10670 ee.WriteMapStart(len(v))
10671 if e.h.Canonical {
10672 v2 := make([]int64, len(v))
10673 var i int
10674 for k, _ := range v {
10675 v2[i] = int64(k)
10676 i++
10677 }
10678 sort.Sort(intSlice(v2))
10679 if esep {
10680 for _, k2 := range v2 {
10681 ee.WriteMapElemKey()
10682 ee.EncodeInt(int64(int(k2)))
10683 ee.WriteMapElemValue()
10684 ee.EncodeInt(int64(v[int(k2)]))
10685 }
10686 } else {
10687 for _, k2 := range v2 {
10688 ee.EncodeInt(int64(int(k2)))
10689 ee.EncodeInt(int64(v[int(k2)]))
10690 }
10691 }
10692 } else {
10693 if esep {
10694 for k2, v2 := range v {
10695 ee.WriteMapElemKey()
10696 ee.EncodeInt(int64(k2))
10697 ee.WriteMapElemValue()
10698 ee.EncodeInt(int64(v2))
10699 }
10700 } else {
10701 for k2, v2 := range v {
10702 ee.EncodeInt(int64(k2))
10703 ee.EncodeInt(int64(v2))
10704 }
10705 }
10706 }
10707 ee.WriteMapEnd()
10708}
10709
10710func (e *Encoder) fastpathEncMapIntInt16R(f *codecFnInfo, rv reflect.Value) {
10711 fastpathTV.EncMapIntInt16V(rv2i(rv).(map[int]int16), e)
10712}
10713func (_ fastpathT) EncMapIntInt16V(v map[int]int16, e *Encoder) {
10714 if v == nil {
10715 e.e.EncodeNil()
10716 return
10717 }
10718 ee, esep := e.e, e.hh.hasElemSeparators()
10719 ee.WriteMapStart(len(v))
10720 if e.h.Canonical {
10721 v2 := make([]int64, len(v))
10722 var i int
10723 for k, _ := range v {
10724 v2[i] = int64(k)
10725 i++
10726 }
10727 sort.Sort(intSlice(v2))
10728 if esep {
10729 for _, k2 := range v2 {
10730 ee.WriteMapElemKey()
10731 ee.EncodeInt(int64(int(k2)))
10732 ee.WriteMapElemValue()
10733 ee.EncodeInt(int64(v[int(k2)]))
10734 }
10735 } else {
10736 for _, k2 := range v2 {
10737 ee.EncodeInt(int64(int(k2)))
10738 ee.EncodeInt(int64(v[int(k2)]))
10739 }
10740 }
10741 } else {
10742 if esep {
10743 for k2, v2 := range v {
10744 ee.WriteMapElemKey()
10745 ee.EncodeInt(int64(k2))
10746 ee.WriteMapElemValue()
10747 ee.EncodeInt(int64(v2))
10748 }
10749 } else {
10750 for k2, v2 := range v {
10751 ee.EncodeInt(int64(k2))
10752 ee.EncodeInt(int64(v2))
10753 }
10754 }
10755 }
10756 ee.WriteMapEnd()
10757}
10758
10759func (e *Encoder) fastpathEncMapIntInt32R(f *codecFnInfo, rv reflect.Value) {
10760 fastpathTV.EncMapIntInt32V(rv2i(rv).(map[int]int32), e)
10761}
10762func (_ fastpathT) EncMapIntInt32V(v map[int]int32, e *Encoder) {
10763 if v == nil {
10764 e.e.EncodeNil()
10765 return
10766 }
10767 ee, esep := e.e, e.hh.hasElemSeparators()
10768 ee.WriteMapStart(len(v))
10769 if e.h.Canonical {
10770 v2 := make([]int64, len(v))
10771 var i int
10772 for k, _ := range v {
10773 v2[i] = int64(k)
10774 i++
10775 }
10776 sort.Sort(intSlice(v2))
10777 if esep {
10778 for _, k2 := range v2 {
10779 ee.WriteMapElemKey()
10780 ee.EncodeInt(int64(int(k2)))
10781 ee.WriteMapElemValue()
10782 ee.EncodeInt(int64(v[int(k2)]))
10783 }
10784 } else {
10785 for _, k2 := range v2 {
10786 ee.EncodeInt(int64(int(k2)))
10787 ee.EncodeInt(int64(v[int(k2)]))
10788 }
10789 }
10790 } else {
10791 if esep {
10792 for k2, v2 := range v {
10793 ee.WriteMapElemKey()
10794 ee.EncodeInt(int64(k2))
10795 ee.WriteMapElemValue()
10796 ee.EncodeInt(int64(v2))
10797 }
10798 } else {
10799 for k2, v2 := range v {
10800 ee.EncodeInt(int64(k2))
10801 ee.EncodeInt(int64(v2))
10802 }
10803 }
10804 }
10805 ee.WriteMapEnd()
10806}
10807
10808func (e *Encoder) fastpathEncMapIntInt64R(f *codecFnInfo, rv reflect.Value) {
10809 fastpathTV.EncMapIntInt64V(rv2i(rv).(map[int]int64), e)
10810}
10811func (_ fastpathT) EncMapIntInt64V(v map[int]int64, e *Encoder) {
10812 if v == nil {
10813 e.e.EncodeNil()
10814 return
10815 }
10816 ee, esep := e.e, e.hh.hasElemSeparators()
10817 ee.WriteMapStart(len(v))
10818 if e.h.Canonical {
10819 v2 := make([]int64, len(v))
10820 var i int
10821 for k, _ := range v {
10822 v2[i] = int64(k)
10823 i++
10824 }
10825 sort.Sort(intSlice(v2))
10826 if esep {
10827 for _, k2 := range v2 {
10828 ee.WriteMapElemKey()
10829 ee.EncodeInt(int64(int(k2)))
10830 ee.WriteMapElemValue()
10831 ee.EncodeInt(int64(v[int(k2)]))
10832 }
10833 } else {
10834 for _, k2 := range v2 {
10835 ee.EncodeInt(int64(int(k2)))
10836 ee.EncodeInt(int64(v[int(k2)]))
10837 }
10838 }
10839 } else {
10840 if esep {
10841 for k2, v2 := range v {
10842 ee.WriteMapElemKey()
10843 ee.EncodeInt(int64(k2))
10844 ee.WriteMapElemValue()
10845 ee.EncodeInt(int64(v2))
10846 }
10847 } else {
10848 for k2, v2 := range v {
10849 ee.EncodeInt(int64(k2))
10850 ee.EncodeInt(int64(v2))
10851 }
10852 }
10853 }
10854 ee.WriteMapEnd()
10855}
10856
10857func (e *Encoder) fastpathEncMapIntFloat32R(f *codecFnInfo, rv reflect.Value) {
10858 fastpathTV.EncMapIntFloat32V(rv2i(rv).(map[int]float32), e)
10859}
10860func (_ fastpathT) EncMapIntFloat32V(v map[int]float32, e *Encoder) {
10861 if v == nil {
10862 e.e.EncodeNil()
10863 return
10864 }
10865 ee, esep := e.e, e.hh.hasElemSeparators()
10866 ee.WriteMapStart(len(v))
10867 if e.h.Canonical {
10868 v2 := make([]int64, len(v))
10869 var i int
10870 for k, _ := range v {
10871 v2[i] = int64(k)
10872 i++
10873 }
10874 sort.Sort(intSlice(v2))
10875 if esep {
10876 for _, k2 := range v2 {
10877 ee.WriteMapElemKey()
10878 ee.EncodeInt(int64(int(k2)))
10879 ee.WriteMapElemValue()
10880 ee.EncodeFloat32(v[int(k2)])
10881 }
10882 } else {
10883 for _, k2 := range v2 {
10884 ee.EncodeInt(int64(int(k2)))
10885 ee.EncodeFloat32(v[int(k2)])
10886 }
10887 }
10888 } else {
10889 if esep {
10890 for k2, v2 := range v {
10891 ee.WriteMapElemKey()
10892 ee.EncodeInt(int64(k2))
10893 ee.WriteMapElemValue()
10894 ee.EncodeFloat32(v2)
10895 }
10896 } else {
10897 for k2, v2 := range v {
10898 ee.EncodeInt(int64(k2))
10899 ee.EncodeFloat32(v2)
10900 }
10901 }
10902 }
10903 ee.WriteMapEnd()
10904}
10905
10906func (e *Encoder) fastpathEncMapIntFloat64R(f *codecFnInfo, rv reflect.Value) {
10907 fastpathTV.EncMapIntFloat64V(rv2i(rv).(map[int]float64), e)
10908}
10909func (_ fastpathT) EncMapIntFloat64V(v map[int]float64, e *Encoder) {
10910 if v == nil {
10911 e.e.EncodeNil()
10912 return
10913 }
10914 ee, esep := e.e, e.hh.hasElemSeparators()
10915 ee.WriteMapStart(len(v))
10916 if e.h.Canonical {
10917 v2 := make([]int64, len(v))
10918 var i int
10919 for k, _ := range v {
10920 v2[i] = int64(k)
10921 i++
10922 }
10923 sort.Sort(intSlice(v2))
10924 if esep {
10925 for _, k2 := range v2 {
10926 ee.WriteMapElemKey()
10927 ee.EncodeInt(int64(int(k2)))
10928 ee.WriteMapElemValue()
10929 ee.EncodeFloat64(v[int(k2)])
10930 }
10931 } else {
10932 for _, k2 := range v2 {
10933 ee.EncodeInt(int64(int(k2)))
10934 ee.EncodeFloat64(v[int(k2)])
10935 }
10936 }
10937 } else {
10938 if esep {
10939 for k2, v2 := range v {
10940 ee.WriteMapElemKey()
10941 ee.EncodeInt(int64(k2))
10942 ee.WriteMapElemValue()
10943 ee.EncodeFloat64(v2)
10944 }
10945 } else {
10946 for k2, v2 := range v {
10947 ee.EncodeInt(int64(k2))
10948 ee.EncodeFloat64(v2)
10949 }
10950 }
10951 }
10952 ee.WriteMapEnd()
10953}
10954
10955func (e *Encoder) fastpathEncMapIntBoolR(f *codecFnInfo, rv reflect.Value) {
10956 fastpathTV.EncMapIntBoolV(rv2i(rv).(map[int]bool), e)
10957}
10958func (_ fastpathT) EncMapIntBoolV(v map[int]bool, e *Encoder) {
10959 if v == nil {
10960 e.e.EncodeNil()
10961 return
10962 }
10963 ee, esep := e.e, e.hh.hasElemSeparators()
10964 ee.WriteMapStart(len(v))
10965 if e.h.Canonical {
10966 v2 := make([]int64, len(v))
10967 var i int
10968 for k, _ := range v {
10969 v2[i] = int64(k)
10970 i++
10971 }
10972 sort.Sort(intSlice(v2))
10973 if esep {
10974 for _, k2 := range v2 {
10975 ee.WriteMapElemKey()
10976 ee.EncodeInt(int64(int(k2)))
10977 ee.WriteMapElemValue()
10978 ee.EncodeBool(v[int(k2)])
10979 }
10980 } else {
10981 for _, k2 := range v2 {
10982 ee.EncodeInt(int64(int(k2)))
10983 ee.EncodeBool(v[int(k2)])
10984 }
10985 }
10986 } else {
10987 if esep {
10988 for k2, v2 := range v {
10989 ee.WriteMapElemKey()
10990 ee.EncodeInt(int64(k2))
10991 ee.WriteMapElemValue()
10992 ee.EncodeBool(v2)
10993 }
10994 } else {
10995 for k2, v2 := range v {
10996 ee.EncodeInt(int64(k2))
10997 ee.EncodeBool(v2)
10998 }
10999 }
11000 }
11001 ee.WriteMapEnd()
11002}
11003
11004func (e *Encoder) fastpathEncMapInt8IntfR(f *codecFnInfo, rv reflect.Value) {
11005 fastpathTV.EncMapInt8IntfV(rv2i(rv).(map[int8]interface{}), e)
11006}
11007func (_ fastpathT) EncMapInt8IntfV(v map[int8]interface{}, e *Encoder) {
11008 if v == nil {
11009 e.e.EncodeNil()
11010 return
11011 }
11012 ee, esep := e.e, e.hh.hasElemSeparators()
11013 ee.WriteMapStart(len(v))
11014 if e.h.Canonical {
11015 v2 := make([]int64, len(v))
11016 var i int
11017 for k, _ := range v {
11018 v2[i] = int64(k)
11019 i++
11020 }
11021 sort.Sort(intSlice(v2))
11022 if esep {
11023 for _, k2 := range v2 {
11024 ee.WriteMapElemKey()
11025 ee.EncodeInt(int64(int8(k2)))
11026 ee.WriteMapElemValue()
11027 e.encode(v[int8(k2)])
11028 }
11029 } else {
11030 for _, k2 := range v2 {
11031 ee.EncodeInt(int64(int8(k2)))
11032 e.encode(v[int8(k2)])
11033 }
11034 }
11035 } else {
11036 if esep {
11037 for k2, v2 := range v {
11038 ee.WriteMapElemKey()
11039 ee.EncodeInt(int64(k2))
11040 ee.WriteMapElemValue()
11041 e.encode(v2)
11042 }
11043 } else {
11044 for k2, v2 := range v {
11045 ee.EncodeInt(int64(k2))
11046 e.encode(v2)
11047 }
11048 }
11049 }
11050 ee.WriteMapEnd()
11051}
11052
11053func (e *Encoder) fastpathEncMapInt8StringR(f *codecFnInfo, rv reflect.Value) {
11054 fastpathTV.EncMapInt8StringV(rv2i(rv).(map[int8]string), e)
11055}
11056func (_ fastpathT) EncMapInt8StringV(v map[int8]string, e *Encoder) {
11057 if v == nil {
11058 e.e.EncodeNil()
11059 return
11060 }
11061 ee, esep := e.e, e.hh.hasElemSeparators()
11062 ee.WriteMapStart(len(v))
11063 if e.h.Canonical {
11064 v2 := make([]int64, len(v))
11065 var i int
11066 for k, _ := range v {
11067 v2[i] = int64(k)
11068 i++
11069 }
11070 sort.Sort(intSlice(v2))
11071 if esep {
11072 for _, k2 := range v2 {
11073 ee.WriteMapElemKey()
11074 ee.EncodeInt(int64(int8(k2)))
11075 ee.WriteMapElemValue()
11076 ee.EncodeString(cUTF8, v[int8(k2)])
11077 }
11078 } else {
11079 for _, k2 := range v2 {
11080 ee.EncodeInt(int64(int8(k2)))
11081 ee.EncodeString(cUTF8, v[int8(k2)])
11082 }
11083 }
11084 } else {
11085 if esep {
11086 for k2, v2 := range v {
11087 ee.WriteMapElemKey()
11088 ee.EncodeInt(int64(k2))
11089 ee.WriteMapElemValue()
11090 ee.EncodeString(cUTF8, v2)
11091 }
11092 } else {
11093 for k2, v2 := range v {
11094 ee.EncodeInt(int64(k2))
11095 ee.EncodeString(cUTF8, v2)
11096 }
11097 }
11098 }
11099 ee.WriteMapEnd()
11100}
11101
11102func (e *Encoder) fastpathEncMapInt8UintR(f *codecFnInfo, rv reflect.Value) {
11103 fastpathTV.EncMapInt8UintV(rv2i(rv).(map[int8]uint), e)
11104}
11105func (_ fastpathT) EncMapInt8UintV(v map[int8]uint, e *Encoder) {
11106 if v == nil {
11107 e.e.EncodeNil()
11108 return
11109 }
11110 ee, esep := e.e, e.hh.hasElemSeparators()
11111 ee.WriteMapStart(len(v))
11112 if e.h.Canonical {
11113 v2 := make([]int64, len(v))
11114 var i int
11115 for k, _ := range v {
11116 v2[i] = int64(k)
11117 i++
11118 }
11119 sort.Sort(intSlice(v2))
11120 if esep {
11121 for _, k2 := range v2 {
11122 ee.WriteMapElemKey()
11123 ee.EncodeInt(int64(int8(k2)))
11124 ee.WriteMapElemValue()
11125 ee.EncodeUint(uint64(v[int8(k2)]))
11126 }
11127 } else {
11128 for _, k2 := range v2 {
11129 ee.EncodeInt(int64(int8(k2)))
11130 ee.EncodeUint(uint64(v[int8(k2)]))
11131 }
11132 }
11133 } else {
11134 if esep {
11135 for k2, v2 := range v {
11136 ee.WriteMapElemKey()
11137 ee.EncodeInt(int64(k2))
11138 ee.WriteMapElemValue()
11139 ee.EncodeUint(uint64(v2))
11140 }
11141 } else {
11142 for k2, v2 := range v {
11143 ee.EncodeInt(int64(k2))
11144 ee.EncodeUint(uint64(v2))
11145 }
11146 }
11147 }
11148 ee.WriteMapEnd()
11149}
11150
11151func (e *Encoder) fastpathEncMapInt8Uint8R(f *codecFnInfo, rv reflect.Value) {
11152 fastpathTV.EncMapInt8Uint8V(rv2i(rv).(map[int8]uint8), e)
11153}
11154func (_ fastpathT) EncMapInt8Uint8V(v map[int8]uint8, e *Encoder) {
11155 if v == nil {
11156 e.e.EncodeNil()
11157 return
11158 }
11159 ee, esep := e.e, e.hh.hasElemSeparators()
11160 ee.WriteMapStart(len(v))
11161 if e.h.Canonical {
11162 v2 := make([]int64, len(v))
11163 var i int
11164 for k, _ := range v {
11165 v2[i] = int64(k)
11166 i++
11167 }
11168 sort.Sort(intSlice(v2))
11169 if esep {
11170 for _, k2 := range v2 {
11171 ee.WriteMapElemKey()
11172 ee.EncodeInt(int64(int8(k2)))
11173 ee.WriteMapElemValue()
11174 ee.EncodeUint(uint64(v[int8(k2)]))
11175 }
11176 } else {
11177 for _, k2 := range v2 {
11178 ee.EncodeInt(int64(int8(k2)))
11179 ee.EncodeUint(uint64(v[int8(k2)]))
11180 }
11181 }
11182 } else {
11183 if esep {
11184 for k2, v2 := range v {
11185 ee.WriteMapElemKey()
11186 ee.EncodeInt(int64(k2))
11187 ee.WriteMapElemValue()
11188 ee.EncodeUint(uint64(v2))
11189 }
11190 } else {
11191 for k2, v2 := range v {
11192 ee.EncodeInt(int64(k2))
11193 ee.EncodeUint(uint64(v2))
11194 }
11195 }
11196 }
11197 ee.WriteMapEnd()
11198}
11199
11200func (e *Encoder) fastpathEncMapInt8Uint16R(f *codecFnInfo, rv reflect.Value) {
11201 fastpathTV.EncMapInt8Uint16V(rv2i(rv).(map[int8]uint16), e)
11202}
11203func (_ fastpathT) EncMapInt8Uint16V(v map[int8]uint16, e *Encoder) {
11204 if v == nil {
11205 e.e.EncodeNil()
11206 return
11207 }
11208 ee, esep := e.e, e.hh.hasElemSeparators()
11209 ee.WriteMapStart(len(v))
11210 if e.h.Canonical {
11211 v2 := make([]int64, len(v))
11212 var i int
11213 for k, _ := range v {
11214 v2[i] = int64(k)
11215 i++
11216 }
11217 sort.Sort(intSlice(v2))
11218 if esep {
11219 for _, k2 := range v2 {
11220 ee.WriteMapElemKey()
11221 ee.EncodeInt(int64(int8(k2)))
11222 ee.WriteMapElemValue()
11223 ee.EncodeUint(uint64(v[int8(k2)]))
11224 }
11225 } else {
11226 for _, k2 := range v2 {
11227 ee.EncodeInt(int64(int8(k2)))
11228 ee.EncodeUint(uint64(v[int8(k2)]))
11229 }
11230 }
11231 } else {
11232 if esep {
11233 for k2, v2 := range v {
11234 ee.WriteMapElemKey()
11235 ee.EncodeInt(int64(k2))
11236 ee.WriteMapElemValue()
11237 ee.EncodeUint(uint64(v2))
11238 }
11239 } else {
11240 for k2, v2 := range v {
11241 ee.EncodeInt(int64(k2))
11242 ee.EncodeUint(uint64(v2))
11243 }
11244 }
11245 }
11246 ee.WriteMapEnd()
11247}
11248
11249func (e *Encoder) fastpathEncMapInt8Uint32R(f *codecFnInfo, rv reflect.Value) {
11250 fastpathTV.EncMapInt8Uint32V(rv2i(rv).(map[int8]uint32), e)
11251}
11252func (_ fastpathT) EncMapInt8Uint32V(v map[int8]uint32, e *Encoder) {
11253 if v == nil {
11254 e.e.EncodeNil()
11255 return
11256 }
11257 ee, esep := e.e, e.hh.hasElemSeparators()
11258 ee.WriteMapStart(len(v))
11259 if e.h.Canonical {
11260 v2 := make([]int64, len(v))
11261 var i int
11262 for k, _ := range v {
11263 v2[i] = int64(k)
11264 i++
11265 }
11266 sort.Sort(intSlice(v2))
11267 if esep {
11268 for _, k2 := range v2 {
11269 ee.WriteMapElemKey()
11270 ee.EncodeInt(int64(int8(k2)))
11271 ee.WriteMapElemValue()
11272 ee.EncodeUint(uint64(v[int8(k2)]))
11273 }
11274 } else {
11275 for _, k2 := range v2 {
11276 ee.EncodeInt(int64(int8(k2)))
11277 ee.EncodeUint(uint64(v[int8(k2)]))
11278 }
11279 }
11280 } else {
11281 if esep {
11282 for k2, v2 := range v {
11283 ee.WriteMapElemKey()
11284 ee.EncodeInt(int64(k2))
11285 ee.WriteMapElemValue()
11286 ee.EncodeUint(uint64(v2))
11287 }
11288 } else {
11289 for k2, v2 := range v {
11290 ee.EncodeInt(int64(k2))
11291 ee.EncodeUint(uint64(v2))
11292 }
11293 }
11294 }
11295 ee.WriteMapEnd()
11296}
11297
11298func (e *Encoder) fastpathEncMapInt8Uint64R(f *codecFnInfo, rv reflect.Value) {
11299 fastpathTV.EncMapInt8Uint64V(rv2i(rv).(map[int8]uint64), e)
11300}
11301func (_ fastpathT) EncMapInt8Uint64V(v map[int8]uint64, e *Encoder) {
11302 if v == nil {
11303 e.e.EncodeNil()
11304 return
11305 }
11306 ee, esep := e.e, e.hh.hasElemSeparators()
11307 ee.WriteMapStart(len(v))
11308 if e.h.Canonical {
11309 v2 := make([]int64, len(v))
11310 var i int
11311 for k, _ := range v {
11312 v2[i] = int64(k)
11313 i++
11314 }
11315 sort.Sort(intSlice(v2))
11316 if esep {
11317 for _, k2 := range v2 {
11318 ee.WriteMapElemKey()
11319 ee.EncodeInt(int64(int8(k2)))
11320 ee.WriteMapElemValue()
11321 ee.EncodeUint(uint64(v[int8(k2)]))
11322 }
11323 } else {
11324 for _, k2 := range v2 {
11325 ee.EncodeInt(int64(int8(k2)))
11326 ee.EncodeUint(uint64(v[int8(k2)]))
11327 }
11328 }
11329 } else {
11330 if esep {
11331 for k2, v2 := range v {
11332 ee.WriteMapElemKey()
11333 ee.EncodeInt(int64(k2))
11334 ee.WriteMapElemValue()
11335 ee.EncodeUint(uint64(v2))
11336 }
11337 } else {
11338 for k2, v2 := range v {
11339 ee.EncodeInt(int64(k2))
11340 ee.EncodeUint(uint64(v2))
11341 }
11342 }
11343 }
11344 ee.WriteMapEnd()
11345}
11346
11347func (e *Encoder) fastpathEncMapInt8UintptrR(f *codecFnInfo, rv reflect.Value) {
11348 fastpathTV.EncMapInt8UintptrV(rv2i(rv).(map[int8]uintptr), e)
11349}
11350func (_ fastpathT) EncMapInt8UintptrV(v map[int8]uintptr, e *Encoder) {
11351 if v == nil {
11352 e.e.EncodeNil()
11353 return
11354 }
11355 ee, esep := e.e, e.hh.hasElemSeparators()
11356 ee.WriteMapStart(len(v))
11357 if e.h.Canonical {
11358 v2 := make([]int64, len(v))
11359 var i int
11360 for k, _ := range v {
11361 v2[i] = int64(k)
11362 i++
11363 }
11364 sort.Sort(intSlice(v2))
11365 if esep {
11366 for _, k2 := range v2 {
11367 ee.WriteMapElemKey()
11368 ee.EncodeInt(int64(int8(k2)))
11369 ee.WriteMapElemValue()
11370 e.encode(v[int8(k2)])
11371 }
11372 } else {
11373 for _, k2 := range v2 {
11374 ee.EncodeInt(int64(int8(k2)))
11375 e.encode(v[int8(k2)])
11376 }
11377 }
11378 } else {
11379 if esep {
11380 for k2, v2 := range v {
11381 ee.WriteMapElemKey()
11382 ee.EncodeInt(int64(k2))
11383 ee.WriteMapElemValue()
11384 e.encode(v2)
11385 }
11386 } else {
11387 for k2, v2 := range v {
11388 ee.EncodeInt(int64(k2))
11389 e.encode(v2)
11390 }
11391 }
11392 }
11393 ee.WriteMapEnd()
11394}
11395
11396func (e *Encoder) fastpathEncMapInt8IntR(f *codecFnInfo, rv reflect.Value) {
11397 fastpathTV.EncMapInt8IntV(rv2i(rv).(map[int8]int), e)
11398}
11399func (_ fastpathT) EncMapInt8IntV(v map[int8]int, e *Encoder) {
11400 if v == nil {
11401 e.e.EncodeNil()
11402 return
11403 }
11404 ee, esep := e.e, e.hh.hasElemSeparators()
11405 ee.WriteMapStart(len(v))
11406 if e.h.Canonical {
11407 v2 := make([]int64, len(v))
11408 var i int
11409 for k, _ := range v {
11410 v2[i] = int64(k)
11411 i++
11412 }
11413 sort.Sort(intSlice(v2))
11414 if esep {
11415 for _, k2 := range v2 {
11416 ee.WriteMapElemKey()
11417 ee.EncodeInt(int64(int8(k2)))
11418 ee.WriteMapElemValue()
11419 ee.EncodeInt(int64(v[int8(k2)]))
11420 }
11421 } else {
11422 for _, k2 := range v2 {
11423 ee.EncodeInt(int64(int8(k2)))
11424 ee.EncodeInt(int64(v[int8(k2)]))
11425 }
11426 }
11427 } else {
11428 if esep {
11429 for k2, v2 := range v {
11430 ee.WriteMapElemKey()
11431 ee.EncodeInt(int64(k2))
11432 ee.WriteMapElemValue()
11433 ee.EncodeInt(int64(v2))
11434 }
11435 } else {
11436 for k2, v2 := range v {
11437 ee.EncodeInt(int64(k2))
11438 ee.EncodeInt(int64(v2))
11439 }
11440 }
11441 }
11442 ee.WriteMapEnd()
11443}
11444
11445func (e *Encoder) fastpathEncMapInt8Int8R(f *codecFnInfo, rv reflect.Value) {
11446 fastpathTV.EncMapInt8Int8V(rv2i(rv).(map[int8]int8), e)
11447}
11448func (_ fastpathT) EncMapInt8Int8V(v map[int8]int8, e *Encoder) {
11449 if v == nil {
11450 e.e.EncodeNil()
11451 return
11452 }
11453 ee, esep := e.e, e.hh.hasElemSeparators()
11454 ee.WriteMapStart(len(v))
11455 if e.h.Canonical {
11456 v2 := make([]int64, len(v))
11457 var i int
11458 for k, _ := range v {
11459 v2[i] = int64(k)
11460 i++
11461 }
11462 sort.Sort(intSlice(v2))
11463 if esep {
11464 for _, k2 := range v2 {
11465 ee.WriteMapElemKey()
11466 ee.EncodeInt(int64(int8(k2)))
11467 ee.WriteMapElemValue()
11468 ee.EncodeInt(int64(v[int8(k2)]))
11469 }
11470 } else {
11471 for _, k2 := range v2 {
11472 ee.EncodeInt(int64(int8(k2)))
11473 ee.EncodeInt(int64(v[int8(k2)]))
11474 }
11475 }
11476 } else {
11477 if esep {
11478 for k2, v2 := range v {
11479 ee.WriteMapElemKey()
11480 ee.EncodeInt(int64(k2))
11481 ee.WriteMapElemValue()
11482 ee.EncodeInt(int64(v2))
11483 }
11484 } else {
11485 for k2, v2 := range v {
11486 ee.EncodeInt(int64(k2))
11487 ee.EncodeInt(int64(v2))
11488 }
11489 }
11490 }
11491 ee.WriteMapEnd()
11492}
11493
11494func (e *Encoder) fastpathEncMapInt8Int16R(f *codecFnInfo, rv reflect.Value) {
11495 fastpathTV.EncMapInt8Int16V(rv2i(rv).(map[int8]int16), e)
11496}
11497func (_ fastpathT) EncMapInt8Int16V(v map[int8]int16, e *Encoder) {
11498 if v == nil {
11499 e.e.EncodeNil()
11500 return
11501 }
11502 ee, esep := e.e, e.hh.hasElemSeparators()
11503 ee.WriteMapStart(len(v))
11504 if e.h.Canonical {
11505 v2 := make([]int64, len(v))
11506 var i int
11507 for k, _ := range v {
11508 v2[i] = int64(k)
11509 i++
11510 }
11511 sort.Sort(intSlice(v2))
11512 if esep {
11513 for _, k2 := range v2 {
11514 ee.WriteMapElemKey()
11515 ee.EncodeInt(int64(int8(k2)))
11516 ee.WriteMapElemValue()
11517 ee.EncodeInt(int64(v[int8(k2)]))
11518 }
11519 } else {
11520 for _, k2 := range v2 {
11521 ee.EncodeInt(int64(int8(k2)))
11522 ee.EncodeInt(int64(v[int8(k2)]))
11523 }
11524 }
11525 } else {
11526 if esep {
11527 for k2, v2 := range v {
11528 ee.WriteMapElemKey()
11529 ee.EncodeInt(int64(k2))
11530 ee.WriteMapElemValue()
11531 ee.EncodeInt(int64(v2))
11532 }
11533 } else {
11534 for k2, v2 := range v {
11535 ee.EncodeInt(int64(k2))
11536 ee.EncodeInt(int64(v2))
11537 }
11538 }
11539 }
11540 ee.WriteMapEnd()
11541}
11542
11543func (e *Encoder) fastpathEncMapInt8Int32R(f *codecFnInfo, rv reflect.Value) {
11544 fastpathTV.EncMapInt8Int32V(rv2i(rv).(map[int8]int32), e)
11545}
11546func (_ fastpathT) EncMapInt8Int32V(v map[int8]int32, e *Encoder) {
11547 if v == nil {
11548 e.e.EncodeNil()
11549 return
11550 }
11551 ee, esep := e.e, e.hh.hasElemSeparators()
11552 ee.WriteMapStart(len(v))
11553 if e.h.Canonical {
11554 v2 := make([]int64, len(v))
11555 var i int
11556 for k, _ := range v {
11557 v2[i] = int64(k)
11558 i++
11559 }
11560 sort.Sort(intSlice(v2))
11561 if esep {
11562 for _, k2 := range v2 {
11563 ee.WriteMapElemKey()
11564 ee.EncodeInt(int64(int8(k2)))
11565 ee.WriteMapElemValue()
11566 ee.EncodeInt(int64(v[int8(k2)]))
11567 }
11568 } else {
11569 for _, k2 := range v2 {
11570 ee.EncodeInt(int64(int8(k2)))
11571 ee.EncodeInt(int64(v[int8(k2)]))
11572 }
11573 }
11574 } else {
11575 if esep {
11576 for k2, v2 := range v {
11577 ee.WriteMapElemKey()
11578 ee.EncodeInt(int64(k2))
11579 ee.WriteMapElemValue()
11580 ee.EncodeInt(int64(v2))
11581 }
11582 } else {
11583 for k2, v2 := range v {
11584 ee.EncodeInt(int64(k2))
11585 ee.EncodeInt(int64(v2))
11586 }
11587 }
11588 }
11589 ee.WriteMapEnd()
11590}
11591
11592func (e *Encoder) fastpathEncMapInt8Int64R(f *codecFnInfo, rv reflect.Value) {
11593 fastpathTV.EncMapInt8Int64V(rv2i(rv).(map[int8]int64), e)
11594}
11595func (_ fastpathT) EncMapInt8Int64V(v map[int8]int64, e *Encoder) {
11596 if v == nil {
11597 e.e.EncodeNil()
11598 return
11599 }
11600 ee, esep := e.e, e.hh.hasElemSeparators()
11601 ee.WriteMapStart(len(v))
11602 if e.h.Canonical {
11603 v2 := make([]int64, len(v))
11604 var i int
11605 for k, _ := range v {
11606 v2[i] = int64(k)
11607 i++
11608 }
11609 sort.Sort(intSlice(v2))
11610 if esep {
11611 for _, k2 := range v2 {
11612 ee.WriteMapElemKey()
11613 ee.EncodeInt(int64(int8(k2)))
11614 ee.WriteMapElemValue()
11615 ee.EncodeInt(int64(v[int8(k2)]))
11616 }
11617 } else {
11618 for _, k2 := range v2 {
11619 ee.EncodeInt(int64(int8(k2)))
11620 ee.EncodeInt(int64(v[int8(k2)]))
11621 }
11622 }
11623 } else {
11624 if esep {
11625 for k2, v2 := range v {
11626 ee.WriteMapElemKey()
11627 ee.EncodeInt(int64(k2))
11628 ee.WriteMapElemValue()
11629 ee.EncodeInt(int64(v2))
11630 }
11631 } else {
11632 for k2, v2 := range v {
11633 ee.EncodeInt(int64(k2))
11634 ee.EncodeInt(int64(v2))
11635 }
11636 }
11637 }
11638 ee.WriteMapEnd()
11639}
11640
11641func (e *Encoder) fastpathEncMapInt8Float32R(f *codecFnInfo, rv reflect.Value) {
11642 fastpathTV.EncMapInt8Float32V(rv2i(rv).(map[int8]float32), e)
11643}
11644func (_ fastpathT) EncMapInt8Float32V(v map[int8]float32, e *Encoder) {
11645 if v == nil {
11646 e.e.EncodeNil()
11647 return
11648 }
11649 ee, esep := e.e, e.hh.hasElemSeparators()
11650 ee.WriteMapStart(len(v))
11651 if e.h.Canonical {
11652 v2 := make([]int64, len(v))
11653 var i int
11654 for k, _ := range v {
11655 v2[i] = int64(k)
11656 i++
11657 }
11658 sort.Sort(intSlice(v2))
11659 if esep {
11660 for _, k2 := range v2 {
11661 ee.WriteMapElemKey()
11662 ee.EncodeInt(int64(int8(k2)))
11663 ee.WriteMapElemValue()
11664 ee.EncodeFloat32(v[int8(k2)])
11665 }
11666 } else {
11667 for _, k2 := range v2 {
11668 ee.EncodeInt(int64(int8(k2)))
11669 ee.EncodeFloat32(v[int8(k2)])
11670 }
11671 }
11672 } else {
11673 if esep {
11674 for k2, v2 := range v {
11675 ee.WriteMapElemKey()
11676 ee.EncodeInt(int64(k2))
11677 ee.WriteMapElemValue()
11678 ee.EncodeFloat32(v2)
11679 }
11680 } else {
11681 for k2, v2 := range v {
11682 ee.EncodeInt(int64(k2))
11683 ee.EncodeFloat32(v2)
11684 }
11685 }
11686 }
11687 ee.WriteMapEnd()
11688}
11689
11690func (e *Encoder) fastpathEncMapInt8Float64R(f *codecFnInfo, rv reflect.Value) {
11691 fastpathTV.EncMapInt8Float64V(rv2i(rv).(map[int8]float64), e)
11692}
11693func (_ fastpathT) EncMapInt8Float64V(v map[int8]float64, e *Encoder) {
11694 if v == nil {
11695 e.e.EncodeNil()
11696 return
11697 }
11698 ee, esep := e.e, e.hh.hasElemSeparators()
11699 ee.WriteMapStart(len(v))
11700 if e.h.Canonical {
11701 v2 := make([]int64, len(v))
11702 var i int
11703 for k, _ := range v {
11704 v2[i] = int64(k)
11705 i++
11706 }
11707 sort.Sort(intSlice(v2))
11708 if esep {
11709 for _, k2 := range v2 {
11710 ee.WriteMapElemKey()
11711 ee.EncodeInt(int64(int8(k2)))
11712 ee.WriteMapElemValue()
11713 ee.EncodeFloat64(v[int8(k2)])
11714 }
11715 } else {
11716 for _, k2 := range v2 {
11717 ee.EncodeInt(int64(int8(k2)))
11718 ee.EncodeFloat64(v[int8(k2)])
11719 }
11720 }
11721 } else {
11722 if esep {
11723 for k2, v2 := range v {
11724 ee.WriteMapElemKey()
11725 ee.EncodeInt(int64(k2))
11726 ee.WriteMapElemValue()
11727 ee.EncodeFloat64(v2)
11728 }
11729 } else {
11730 for k2, v2 := range v {
11731 ee.EncodeInt(int64(k2))
11732 ee.EncodeFloat64(v2)
11733 }
11734 }
11735 }
11736 ee.WriteMapEnd()
11737}
11738
11739func (e *Encoder) fastpathEncMapInt8BoolR(f *codecFnInfo, rv reflect.Value) {
11740 fastpathTV.EncMapInt8BoolV(rv2i(rv).(map[int8]bool), e)
11741}
11742func (_ fastpathT) EncMapInt8BoolV(v map[int8]bool, e *Encoder) {
11743 if v == nil {
11744 e.e.EncodeNil()
11745 return
11746 }
11747 ee, esep := e.e, e.hh.hasElemSeparators()
11748 ee.WriteMapStart(len(v))
11749 if e.h.Canonical {
11750 v2 := make([]int64, len(v))
11751 var i int
11752 for k, _ := range v {
11753 v2[i] = int64(k)
11754 i++
11755 }
11756 sort.Sort(intSlice(v2))
11757 if esep {
11758 for _, k2 := range v2 {
11759 ee.WriteMapElemKey()
11760 ee.EncodeInt(int64(int8(k2)))
11761 ee.WriteMapElemValue()
11762 ee.EncodeBool(v[int8(k2)])
11763 }
11764 } else {
11765 for _, k2 := range v2 {
11766 ee.EncodeInt(int64(int8(k2)))
11767 ee.EncodeBool(v[int8(k2)])
11768 }
11769 }
11770 } else {
11771 if esep {
11772 for k2, v2 := range v {
11773 ee.WriteMapElemKey()
11774 ee.EncodeInt(int64(k2))
11775 ee.WriteMapElemValue()
11776 ee.EncodeBool(v2)
11777 }
11778 } else {
11779 for k2, v2 := range v {
11780 ee.EncodeInt(int64(k2))
11781 ee.EncodeBool(v2)
11782 }
11783 }
11784 }
11785 ee.WriteMapEnd()
11786}
11787
11788func (e *Encoder) fastpathEncMapInt16IntfR(f *codecFnInfo, rv reflect.Value) {
11789 fastpathTV.EncMapInt16IntfV(rv2i(rv).(map[int16]interface{}), e)
11790}
11791func (_ fastpathT) EncMapInt16IntfV(v map[int16]interface{}, e *Encoder) {
11792 if v == nil {
11793 e.e.EncodeNil()
11794 return
11795 }
11796 ee, esep := e.e, e.hh.hasElemSeparators()
11797 ee.WriteMapStart(len(v))
11798 if e.h.Canonical {
11799 v2 := make([]int64, len(v))
11800 var i int
11801 for k, _ := range v {
11802 v2[i] = int64(k)
11803 i++
11804 }
11805 sort.Sort(intSlice(v2))
11806 if esep {
11807 for _, k2 := range v2 {
11808 ee.WriteMapElemKey()
11809 ee.EncodeInt(int64(int16(k2)))
11810 ee.WriteMapElemValue()
11811 e.encode(v[int16(k2)])
11812 }
11813 } else {
11814 for _, k2 := range v2 {
11815 ee.EncodeInt(int64(int16(k2)))
11816 e.encode(v[int16(k2)])
11817 }
11818 }
11819 } else {
11820 if esep {
11821 for k2, v2 := range v {
11822 ee.WriteMapElemKey()
11823 ee.EncodeInt(int64(k2))
11824 ee.WriteMapElemValue()
11825 e.encode(v2)
11826 }
11827 } else {
11828 for k2, v2 := range v {
11829 ee.EncodeInt(int64(k2))
11830 e.encode(v2)
11831 }
11832 }
11833 }
11834 ee.WriteMapEnd()
11835}
11836
11837func (e *Encoder) fastpathEncMapInt16StringR(f *codecFnInfo, rv reflect.Value) {
11838 fastpathTV.EncMapInt16StringV(rv2i(rv).(map[int16]string), e)
11839}
11840func (_ fastpathT) EncMapInt16StringV(v map[int16]string, e *Encoder) {
11841 if v == nil {
11842 e.e.EncodeNil()
11843 return
11844 }
11845 ee, esep := e.e, e.hh.hasElemSeparators()
11846 ee.WriteMapStart(len(v))
11847 if e.h.Canonical {
11848 v2 := make([]int64, len(v))
11849 var i int
11850 for k, _ := range v {
11851 v2[i] = int64(k)
11852 i++
11853 }
11854 sort.Sort(intSlice(v2))
11855 if esep {
11856 for _, k2 := range v2 {
11857 ee.WriteMapElemKey()
11858 ee.EncodeInt(int64(int16(k2)))
11859 ee.WriteMapElemValue()
11860 ee.EncodeString(cUTF8, v[int16(k2)])
11861 }
11862 } else {
11863 for _, k2 := range v2 {
11864 ee.EncodeInt(int64(int16(k2)))
11865 ee.EncodeString(cUTF8, v[int16(k2)])
11866 }
11867 }
11868 } else {
11869 if esep {
11870 for k2, v2 := range v {
11871 ee.WriteMapElemKey()
11872 ee.EncodeInt(int64(k2))
11873 ee.WriteMapElemValue()
11874 ee.EncodeString(cUTF8, v2)
11875 }
11876 } else {
11877 for k2, v2 := range v {
11878 ee.EncodeInt(int64(k2))
11879 ee.EncodeString(cUTF8, v2)
11880 }
11881 }
11882 }
11883 ee.WriteMapEnd()
11884}
11885
11886func (e *Encoder) fastpathEncMapInt16UintR(f *codecFnInfo, rv reflect.Value) {
11887 fastpathTV.EncMapInt16UintV(rv2i(rv).(map[int16]uint), e)
11888}
11889func (_ fastpathT) EncMapInt16UintV(v map[int16]uint, e *Encoder) {
11890 if v == nil {
11891 e.e.EncodeNil()
11892 return
11893 }
11894 ee, esep := e.e, e.hh.hasElemSeparators()
11895 ee.WriteMapStart(len(v))
11896 if e.h.Canonical {
11897 v2 := make([]int64, len(v))
11898 var i int
11899 for k, _ := range v {
11900 v2[i] = int64(k)
11901 i++
11902 }
11903 sort.Sort(intSlice(v2))
11904 if esep {
11905 for _, k2 := range v2 {
11906 ee.WriteMapElemKey()
11907 ee.EncodeInt(int64(int16(k2)))
11908 ee.WriteMapElemValue()
11909 ee.EncodeUint(uint64(v[int16(k2)]))
11910 }
11911 } else {
11912 for _, k2 := range v2 {
11913 ee.EncodeInt(int64(int16(k2)))
11914 ee.EncodeUint(uint64(v[int16(k2)]))
11915 }
11916 }
11917 } else {
11918 if esep {
11919 for k2, v2 := range v {
11920 ee.WriteMapElemKey()
11921 ee.EncodeInt(int64(k2))
11922 ee.WriteMapElemValue()
11923 ee.EncodeUint(uint64(v2))
11924 }
11925 } else {
11926 for k2, v2 := range v {
11927 ee.EncodeInt(int64(k2))
11928 ee.EncodeUint(uint64(v2))
11929 }
11930 }
11931 }
11932 ee.WriteMapEnd()
11933}
11934
11935func (e *Encoder) fastpathEncMapInt16Uint8R(f *codecFnInfo, rv reflect.Value) {
11936 fastpathTV.EncMapInt16Uint8V(rv2i(rv).(map[int16]uint8), e)
11937}
11938func (_ fastpathT) EncMapInt16Uint8V(v map[int16]uint8, e *Encoder) {
11939 if v == nil {
11940 e.e.EncodeNil()
11941 return
11942 }
11943 ee, esep := e.e, e.hh.hasElemSeparators()
11944 ee.WriteMapStart(len(v))
11945 if e.h.Canonical {
11946 v2 := make([]int64, len(v))
11947 var i int
11948 for k, _ := range v {
11949 v2[i] = int64(k)
11950 i++
11951 }
11952 sort.Sort(intSlice(v2))
11953 if esep {
11954 for _, k2 := range v2 {
11955 ee.WriteMapElemKey()
11956 ee.EncodeInt(int64(int16(k2)))
11957 ee.WriteMapElemValue()
11958 ee.EncodeUint(uint64(v[int16(k2)]))
11959 }
11960 } else {
11961 for _, k2 := range v2 {
11962 ee.EncodeInt(int64(int16(k2)))
11963 ee.EncodeUint(uint64(v[int16(k2)]))
11964 }
11965 }
11966 } else {
11967 if esep {
11968 for k2, v2 := range v {
11969 ee.WriteMapElemKey()
11970 ee.EncodeInt(int64(k2))
11971 ee.WriteMapElemValue()
11972 ee.EncodeUint(uint64(v2))
11973 }
11974 } else {
11975 for k2, v2 := range v {
11976 ee.EncodeInt(int64(k2))
11977 ee.EncodeUint(uint64(v2))
11978 }
11979 }
11980 }
11981 ee.WriteMapEnd()
11982}
11983
11984func (e *Encoder) fastpathEncMapInt16Uint16R(f *codecFnInfo, rv reflect.Value) {
11985 fastpathTV.EncMapInt16Uint16V(rv2i(rv).(map[int16]uint16), e)
11986}
11987func (_ fastpathT) EncMapInt16Uint16V(v map[int16]uint16, e *Encoder) {
11988 if v == nil {
11989 e.e.EncodeNil()
11990 return
11991 }
11992 ee, esep := e.e, e.hh.hasElemSeparators()
11993 ee.WriteMapStart(len(v))
11994 if e.h.Canonical {
11995 v2 := make([]int64, len(v))
11996 var i int
11997 for k, _ := range v {
11998 v2[i] = int64(k)
11999 i++
12000 }
12001 sort.Sort(intSlice(v2))
12002 if esep {
12003 for _, k2 := range v2 {
12004 ee.WriteMapElemKey()
12005 ee.EncodeInt(int64(int16(k2)))
12006 ee.WriteMapElemValue()
12007 ee.EncodeUint(uint64(v[int16(k2)]))
12008 }
12009 } else {
12010 for _, k2 := range v2 {
12011 ee.EncodeInt(int64(int16(k2)))
12012 ee.EncodeUint(uint64(v[int16(k2)]))
12013 }
12014 }
12015 } else {
12016 if esep {
12017 for k2, v2 := range v {
12018 ee.WriteMapElemKey()
12019 ee.EncodeInt(int64(k2))
12020 ee.WriteMapElemValue()
12021 ee.EncodeUint(uint64(v2))
12022 }
12023 } else {
12024 for k2, v2 := range v {
12025 ee.EncodeInt(int64(k2))
12026 ee.EncodeUint(uint64(v2))
12027 }
12028 }
12029 }
12030 ee.WriteMapEnd()
12031}
12032
12033func (e *Encoder) fastpathEncMapInt16Uint32R(f *codecFnInfo, rv reflect.Value) {
12034 fastpathTV.EncMapInt16Uint32V(rv2i(rv).(map[int16]uint32), e)
12035}
12036func (_ fastpathT) EncMapInt16Uint32V(v map[int16]uint32, e *Encoder) {
12037 if v == nil {
12038 e.e.EncodeNil()
12039 return
12040 }
12041 ee, esep := e.e, e.hh.hasElemSeparators()
12042 ee.WriteMapStart(len(v))
12043 if e.h.Canonical {
12044 v2 := make([]int64, len(v))
12045 var i int
12046 for k, _ := range v {
12047 v2[i] = int64(k)
12048 i++
12049 }
12050 sort.Sort(intSlice(v2))
12051 if esep {
12052 for _, k2 := range v2 {
12053 ee.WriteMapElemKey()
12054 ee.EncodeInt(int64(int16(k2)))
12055 ee.WriteMapElemValue()
12056 ee.EncodeUint(uint64(v[int16(k2)]))
12057 }
12058 } else {
12059 for _, k2 := range v2 {
12060 ee.EncodeInt(int64(int16(k2)))
12061 ee.EncodeUint(uint64(v[int16(k2)]))
12062 }
12063 }
12064 } else {
12065 if esep {
12066 for k2, v2 := range v {
12067 ee.WriteMapElemKey()
12068 ee.EncodeInt(int64(k2))
12069 ee.WriteMapElemValue()
12070 ee.EncodeUint(uint64(v2))
12071 }
12072 } else {
12073 for k2, v2 := range v {
12074 ee.EncodeInt(int64(k2))
12075 ee.EncodeUint(uint64(v2))
12076 }
12077 }
12078 }
12079 ee.WriteMapEnd()
12080}
12081
12082func (e *Encoder) fastpathEncMapInt16Uint64R(f *codecFnInfo, rv reflect.Value) {
12083 fastpathTV.EncMapInt16Uint64V(rv2i(rv).(map[int16]uint64), e)
12084}
12085func (_ fastpathT) EncMapInt16Uint64V(v map[int16]uint64, e *Encoder) {
12086 if v == nil {
12087 e.e.EncodeNil()
12088 return
12089 }
12090 ee, esep := e.e, e.hh.hasElemSeparators()
12091 ee.WriteMapStart(len(v))
12092 if e.h.Canonical {
12093 v2 := make([]int64, len(v))
12094 var i int
12095 for k, _ := range v {
12096 v2[i] = int64(k)
12097 i++
12098 }
12099 sort.Sort(intSlice(v2))
12100 if esep {
12101 for _, k2 := range v2 {
12102 ee.WriteMapElemKey()
12103 ee.EncodeInt(int64(int16(k2)))
12104 ee.WriteMapElemValue()
12105 ee.EncodeUint(uint64(v[int16(k2)]))
12106 }
12107 } else {
12108 for _, k2 := range v2 {
12109 ee.EncodeInt(int64(int16(k2)))
12110 ee.EncodeUint(uint64(v[int16(k2)]))
12111 }
12112 }
12113 } else {
12114 if esep {
12115 for k2, v2 := range v {
12116 ee.WriteMapElemKey()
12117 ee.EncodeInt(int64(k2))
12118 ee.WriteMapElemValue()
12119 ee.EncodeUint(uint64(v2))
12120 }
12121 } else {
12122 for k2, v2 := range v {
12123 ee.EncodeInt(int64(k2))
12124 ee.EncodeUint(uint64(v2))
12125 }
12126 }
12127 }
12128 ee.WriteMapEnd()
12129}
12130
12131func (e *Encoder) fastpathEncMapInt16UintptrR(f *codecFnInfo, rv reflect.Value) {
12132 fastpathTV.EncMapInt16UintptrV(rv2i(rv).(map[int16]uintptr), e)
12133}
12134func (_ fastpathT) EncMapInt16UintptrV(v map[int16]uintptr, e *Encoder) {
12135 if v == nil {
12136 e.e.EncodeNil()
12137 return
12138 }
12139 ee, esep := e.e, e.hh.hasElemSeparators()
12140 ee.WriteMapStart(len(v))
12141 if e.h.Canonical {
12142 v2 := make([]int64, len(v))
12143 var i int
12144 for k, _ := range v {
12145 v2[i] = int64(k)
12146 i++
12147 }
12148 sort.Sort(intSlice(v2))
12149 if esep {
12150 for _, k2 := range v2 {
12151 ee.WriteMapElemKey()
12152 ee.EncodeInt(int64(int16(k2)))
12153 ee.WriteMapElemValue()
12154 e.encode(v[int16(k2)])
12155 }
12156 } else {
12157 for _, k2 := range v2 {
12158 ee.EncodeInt(int64(int16(k2)))
12159 e.encode(v[int16(k2)])
12160 }
12161 }
12162 } else {
12163 if esep {
12164 for k2, v2 := range v {
12165 ee.WriteMapElemKey()
12166 ee.EncodeInt(int64(k2))
12167 ee.WriteMapElemValue()
12168 e.encode(v2)
12169 }
12170 } else {
12171 for k2, v2 := range v {
12172 ee.EncodeInt(int64(k2))
12173 e.encode(v2)
12174 }
12175 }
12176 }
12177 ee.WriteMapEnd()
12178}
12179
12180func (e *Encoder) fastpathEncMapInt16IntR(f *codecFnInfo, rv reflect.Value) {
12181 fastpathTV.EncMapInt16IntV(rv2i(rv).(map[int16]int), e)
12182}
12183func (_ fastpathT) EncMapInt16IntV(v map[int16]int, e *Encoder) {
12184 if v == nil {
12185 e.e.EncodeNil()
12186 return
12187 }
12188 ee, esep := e.e, e.hh.hasElemSeparators()
12189 ee.WriteMapStart(len(v))
12190 if e.h.Canonical {
12191 v2 := make([]int64, len(v))
12192 var i int
12193 for k, _ := range v {
12194 v2[i] = int64(k)
12195 i++
12196 }
12197 sort.Sort(intSlice(v2))
12198 if esep {
12199 for _, k2 := range v2 {
12200 ee.WriteMapElemKey()
12201 ee.EncodeInt(int64(int16(k2)))
12202 ee.WriteMapElemValue()
12203 ee.EncodeInt(int64(v[int16(k2)]))
12204 }
12205 } else {
12206 for _, k2 := range v2 {
12207 ee.EncodeInt(int64(int16(k2)))
12208 ee.EncodeInt(int64(v[int16(k2)]))
12209 }
12210 }
12211 } else {
12212 if esep {
12213 for k2, v2 := range v {
12214 ee.WriteMapElemKey()
12215 ee.EncodeInt(int64(k2))
12216 ee.WriteMapElemValue()
12217 ee.EncodeInt(int64(v2))
12218 }
12219 } else {
12220 for k2, v2 := range v {
12221 ee.EncodeInt(int64(k2))
12222 ee.EncodeInt(int64(v2))
12223 }
12224 }
12225 }
12226 ee.WriteMapEnd()
12227}
12228
12229func (e *Encoder) fastpathEncMapInt16Int8R(f *codecFnInfo, rv reflect.Value) {
12230 fastpathTV.EncMapInt16Int8V(rv2i(rv).(map[int16]int8), e)
12231}
12232func (_ fastpathT) EncMapInt16Int8V(v map[int16]int8, e *Encoder) {
12233 if v == nil {
12234 e.e.EncodeNil()
12235 return
12236 }
12237 ee, esep := e.e, e.hh.hasElemSeparators()
12238 ee.WriteMapStart(len(v))
12239 if e.h.Canonical {
12240 v2 := make([]int64, len(v))
12241 var i int
12242 for k, _ := range v {
12243 v2[i] = int64(k)
12244 i++
12245 }
12246 sort.Sort(intSlice(v2))
12247 if esep {
12248 for _, k2 := range v2 {
12249 ee.WriteMapElemKey()
12250 ee.EncodeInt(int64(int16(k2)))
12251 ee.WriteMapElemValue()
12252 ee.EncodeInt(int64(v[int16(k2)]))
12253 }
12254 } else {
12255 for _, k2 := range v2 {
12256 ee.EncodeInt(int64(int16(k2)))
12257 ee.EncodeInt(int64(v[int16(k2)]))
12258 }
12259 }
12260 } else {
12261 if esep {
12262 for k2, v2 := range v {
12263 ee.WriteMapElemKey()
12264 ee.EncodeInt(int64(k2))
12265 ee.WriteMapElemValue()
12266 ee.EncodeInt(int64(v2))
12267 }
12268 } else {
12269 for k2, v2 := range v {
12270 ee.EncodeInt(int64(k2))
12271 ee.EncodeInt(int64(v2))
12272 }
12273 }
12274 }
12275 ee.WriteMapEnd()
12276}
12277
12278func (e *Encoder) fastpathEncMapInt16Int16R(f *codecFnInfo, rv reflect.Value) {
12279 fastpathTV.EncMapInt16Int16V(rv2i(rv).(map[int16]int16), e)
12280}
12281func (_ fastpathT) EncMapInt16Int16V(v map[int16]int16, e *Encoder) {
12282 if v == nil {
12283 e.e.EncodeNil()
12284 return
12285 }
12286 ee, esep := e.e, e.hh.hasElemSeparators()
12287 ee.WriteMapStart(len(v))
12288 if e.h.Canonical {
12289 v2 := make([]int64, len(v))
12290 var i int
12291 for k, _ := range v {
12292 v2[i] = int64(k)
12293 i++
12294 }
12295 sort.Sort(intSlice(v2))
12296 if esep {
12297 for _, k2 := range v2 {
12298 ee.WriteMapElemKey()
12299 ee.EncodeInt(int64(int16(k2)))
12300 ee.WriteMapElemValue()
12301 ee.EncodeInt(int64(v[int16(k2)]))
12302 }
12303 } else {
12304 for _, k2 := range v2 {
12305 ee.EncodeInt(int64(int16(k2)))
12306 ee.EncodeInt(int64(v[int16(k2)]))
12307 }
12308 }
12309 } else {
12310 if esep {
12311 for k2, v2 := range v {
12312 ee.WriteMapElemKey()
12313 ee.EncodeInt(int64(k2))
12314 ee.WriteMapElemValue()
12315 ee.EncodeInt(int64(v2))
12316 }
12317 } else {
12318 for k2, v2 := range v {
12319 ee.EncodeInt(int64(k2))
12320 ee.EncodeInt(int64(v2))
12321 }
12322 }
12323 }
12324 ee.WriteMapEnd()
12325}
12326
12327func (e *Encoder) fastpathEncMapInt16Int32R(f *codecFnInfo, rv reflect.Value) {
12328 fastpathTV.EncMapInt16Int32V(rv2i(rv).(map[int16]int32), e)
12329}
12330func (_ fastpathT) EncMapInt16Int32V(v map[int16]int32, e *Encoder) {
12331 if v == nil {
12332 e.e.EncodeNil()
12333 return
12334 }
12335 ee, esep := e.e, e.hh.hasElemSeparators()
12336 ee.WriteMapStart(len(v))
12337 if e.h.Canonical {
12338 v2 := make([]int64, len(v))
12339 var i int
12340 for k, _ := range v {
12341 v2[i] = int64(k)
12342 i++
12343 }
12344 sort.Sort(intSlice(v2))
12345 if esep {
12346 for _, k2 := range v2 {
12347 ee.WriteMapElemKey()
12348 ee.EncodeInt(int64(int16(k2)))
12349 ee.WriteMapElemValue()
12350 ee.EncodeInt(int64(v[int16(k2)]))
12351 }
12352 } else {
12353 for _, k2 := range v2 {
12354 ee.EncodeInt(int64(int16(k2)))
12355 ee.EncodeInt(int64(v[int16(k2)]))
12356 }
12357 }
12358 } else {
12359 if esep {
12360 for k2, v2 := range v {
12361 ee.WriteMapElemKey()
12362 ee.EncodeInt(int64(k2))
12363 ee.WriteMapElemValue()
12364 ee.EncodeInt(int64(v2))
12365 }
12366 } else {
12367 for k2, v2 := range v {
12368 ee.EncodeInt(int64(k2))
12369 ee.EncodeInt(int64(v2))
12370 }
12371 }
12372 }
12373 ee.WriteMapEnd()
12374}
12375
12376func (e *Encoder) fastpathEncMapInt16Int64R(f *codecFnInfo, rv reflect.Value) {
12377 fastpathTV.EncMapInt16Int64V(rv2i(rv).(map[int16]int64), e)
12378}
12379func (_ fastpathT) EncMapInt16Int64V(v map[int16]int64, e *Encoder) {
12380 if v == nil {
12381 e.e.EncodeNil()
12382 return
12383 }
12384 ee, esep := e.e, e.hh.hasElemSeparators()
12385 ee.WriteMapStart(len(v))
12386 if e.h.Canonical {
12387 v2 := make([]int64, len(v))
12388 var i int
12389 for k, _ := range v {
12390 v2[i] = int64(k)
12391 i++
12392 }
12393 sort.Sort(intSlice(v2))
12394 if esep {
12395 for _, k2 := range v2 {
12396 ee.WriteMapElemKey()
12397 ee.EncodeInt(int64(int16(k2)))
12398 ee.WriteMapElemValue()
12399 ee.EncodeInt(int64(v[int16(k2)]))
12400 }
12401 } else {
12402 for _, k2 := range v2 {
12403 ee.EncodeInt(int64(int16(k2)))
12404 ee.EncodeInt(int64(v[int16(k2)]))
12405 }
12406 }
12407 } else {
12408 if esep {
12409 for k2, v2 := range v {
12410 ee.WriteMapElemKey()
12411 ee.EncodeInt(int64(k2))
12412 ee.WriteMapElemValue()
12413 ee.EncodeInt(int64(v2))
12414 }
12415 } else {
12416 for k2, v2 := range v {
12417 ee.EncodeInt(int64(k2))
12418 ee.EncodeInt(int64(v2))
12419 }
12420 }
12421 }
12422 ee.WriteMapEnd()
12423}
12424
12425func (e *Encoder) fastpathEncMapInt16Float32R(f *codecFnInfo, rv reflect.Value) {
12426 fastpathTV.EncMapInt16Float32V(rv2i(rv).(map[int16]float32), e)
12427}
12428func (_ fastpathT) EncMapInt16Float32V(v map[int16]float32, e *Encoder) {
12429 if v == nil {
12430 e.e.EncodeNil()
12431 return
12432 }
12433 ee, esep := e.e, e.hh.hasElemSeparators()
12434 ee.WriteMapStart(len(v))
12435 if e.h.Canonical {
12436 v2 := make([]int64, len(v))
12437 var i int
12438 for k, _ := range v {
12439 v2[i] = int64(k)
12440 i++
12441 }
12442 sort.Sort(intSlice(v2))
12443 if esep {
12444 for _, k2 := range v2 {
12445 ee.WriteMapElemKey()
12446 ee.EncodeInt(int64(int16(k2)))
12447 ee.WriteMapElemValue()
12448 ee.EncodeFloat32(v[int16(k2)])
12449 }
12450 } else {
12451 for _, k2 := range v2 {
12452 ee.EncodeInt(int64(int16(k2)))
12453 ee.EncodeFloat32(v[int16(k2)])
12454 }
12455 }
12456 } else {
12457 if esep {
12458 for k2, v2 := range v {
12459 ee.WriteMapElemKey()
12460 ee.EncodeInt(int64(k2))
12461 ee.WriteMapElemValue()
12462 ee.EncodeFloat32(v2)
12463 }
12464 } else {
12465 for k2, v2 := range v {
12466 ee.EncodeInt(int64(k2))
12467 ee.EncodeFloat32(v2)
12468 }
12469 }
12470 }
12471 ee.WriteMapEnd()
12472}
12473
12474func (e *Encoder) fastpathEncMapInt16Float64R(f *codecFnInfo, rv reflect.Value) {
12475 fastpathTV.EncMapInt16Float64V(rv2i(rv).(map[int16]float64), e)
12476}
12477func (_ fastpathT) EncMapInt16Float64V(v map[int16]float64, e *Encoder) {
12478 if v == nil {
12479 e.e.EncodeNil()
12480 return
12481 }
12482 ee, esep := e.e, e.hh.hasElemSeparators()
12483 ee.WriteMapStart(len(v))
12484 if e.h.Canonical {
12485 v2 := make([]int64, len(v))
12486 var i int
12487 for k, _ := range v {
12488 v2[i] = int64(k)
12489 i++
12490 }
12491 sort.Sort(intSlice(v2))
12492 if esep {
12493 for _, k2 := range v2 {
12494 ee.WriteMapElemKey()
12495 ee.EncodeInt(int64(int16(k2)))
12496 ee.WriteMapElemValue()
12497 ee.EncodeFloat64(v[int16(k2)])
12498 }
12499 } else {
12500 for _, k2 := range v2 {
12501 ee.EncodeInt(int64(int16(k2)))
12502 ee.EncodeFloat64(v[int16(k2)])
12503 }
12504 }
12505 } else {
12506 if esep {
12507 for k2, v2 := range v {
12508 ee.WriteMapElemKey()
12509 ee.EncodeInt(int64(k2))
12510 ee.WriteMapElemValue()
12511 ee.EncodeFloat64(v2)
12512 }
12513 } else {
12514 for k2, v2 := range v {
12515 ee.EncodeInt(int64(k2))
12516 ee.EncodeFloat64(v2)
12517 }
12518 }
12519 }
12520 ee.WriteMapEnd()
12521}
12522
12523func (e *Encoder) fastpathEncMapInt16BoolR(f *codecFnInfo, rv reflect.Value) {
12524 fastpathTV.EncMapInt16BoolV(rv2i(rv).(map[int16]bool), e)
12525}
12526func (_ fastpathT) EncMapInt16BoolV(v map[int16]bool, e *Encoder) {
12527 if v == nil {
12528 e.e.EncodeNil()
12529 return
12530 }
12531 ee, esep := e.e, e.hh.hasElemSeparators()
12532 ee.WriteMapStart(len(v))
12533 if e.h.Canonical {
12534 v2 := make([]int64, len(v))
12535 var i int
12536 for k, _ := range v {
12537 v2[i] = int64(k)
12538 i++
12539 }
12540 sort.Sort(intSlice(v2))
12541 if esep {
12542 for _, k2 := range v2 {
12543 ee.WriteMapElemKey()
12544 ee.EncodeInt(int64(int16(k2)))
12545 ee.WriteMapElemValue()
12546 ee.EncodeBool(v[int16(k2)])
12547 }
12548 } else {
12549 for _, k2 := range v2 {
12550 ee.EncodeInt(int64(int16(k2)))
12551 ee.EncodeBool(v[int16(k2)])
12552 }
12553 }
12554 } else {
12555 if esep {
12556 for k2, v2 := range v {
12557 ee.WriteMapElemKey()
12558 ee.EncodeInt(int64(k2))
12559 ee.WriteMapElemValue()
12560 ee.EncodeBool(v2)
12561 }
12562 } else {
12563 for k2, v2 := range v {
12564 ee.EncodeInt(int64(k2))
12565 ee.EncodeBool(v2)
12566 }
12567 }
12568 }
12569 ee.WriteMapEnd()
12570}
12571
12572func (e *Encoder) fastpathEncMapInt32IntfR(f *codecFnInfo, rv reflect.Value) {
12573 fastpathTV.EncMapInt32IntfV(rv2i(rv).(map[int32]interface{}), e)
12574}
12575func (_ fastpathT) EncMapInt32IntfV(v map[int32]interface{}, e *Encoder) {
12576 if v == nil {
12577 e.e.EncodeNil()
12578 return
12579 }
12580 ee, esep := e.e, e.hh.hasElemSeparators()
12581 ee.WriteMapStart(len(v))
12582 if e.h.Canonical {
12583 v2 := make([]int64, len(v))
12584 var i int
12585 for k, _ := range v {
12586 v2[i] = int64(k)
12587 i++
12588 }
12589 sort.Sort(intSlice(v2))
12590 if esep {
12591 for _, k2 := range v2 {
12592 ee.WriteMapElemKey()
12593 ee.EncodeInt(int64(int32(k2)))
12594 ee.WriteMapElemValue()
12595 e.encode(v[int32(k2)])
12596 }
12597 } else {
12598 for _, k2 := range v2 {
12599 ee.EncodeInt(int64(int32(k2)))
12600 e.encode(v[int32(k2)])
12601 }
12602 }
12603 } else {
12604 if esep {
12605 for k2, v2 := range v {
12606 ee.WriteMapElemKey()
12607 ee.EncodeInt(int64(k2))
12608 ee.WriteMapElemValue()
12609 e.encode(v2)
12610 }
12611 } else {
12612 for k2, v2 := range v {
12613 ee.EncodeInt(int64(k2))
12614 e.encode(v2)
12615 }
12616 }
12617 }
12618 ee.WriteMapEnd()
12619}
12620
12621func (e *Encoder) fastpathEncMapInt32StringR(f *codecFnInfo, rv reflect.Value) {
12622 fastpathTV.EncMapInt32StringV(rv2i(rv).(map[int32]string), e)
12623}
12624func (_ fastpathT) EncMapInt32StringV(v map[int32]string, e *Encoder) {
12625 if v == nil {
12626 e.e.EncodeNil()
12627 return
12628 }
12629 ee, esep := e.e, e.hh.hasElemSeparators()
12630 ee.WriteMapStart(len(v))
12631 if e.h.Canonical {
12632 v2 := make([]int64, len(v))
12633 var i int
12634 for k, _ := range v {
12635 v2[i] = int64(k)
12636 i++
12637 }
12638 sort.Sort(intSlice(v2))
12639 if esep {
12640 for _, k2 := range v2 {
12641 ee.WriteMapElemKey()
12642 ee.EncodeInt(int64(int32(k2)))
12643 ee.WriteMapElemValue()
12644 ee.EncodeString(cUTF8, v[int32(k2)])
12645 }
12646 } else {
12647 for _, k2 := range v2 {
12648 ee.EncodeInt(int64(int32(k2)))
12649 ee.EncodeString(cUTF8, v[int32(k2)])
12650 }
12651 }
12652 } else {
12653 if esep {
12654 for k2, v2 := range v {
12655 ee.WriteMapElemKey()
12656 ee.EncodeInt(int64(k2))
12657 ee.WriteMapElemValue()
12658 ee.EncodeString(cUTF8, v2)
12659 }
12660 } else {
12661 for k2, v2 := range v {
12662 ee.EncodeInt(int64(k2))
12663 ee.EncodeString(cUTF8, v2)
12664 }
12665 }
12666 }
12667 ee.WriteMapEnd()
12668}
12669
12670func (e *Encoder) fastpathEncMapInt32UintR(f *codecFnInfo, rv reflect.Value) {
12671 fastpathTV.EncMapInt32UintV(rv2i(rv).(map[int32]uint), e)
12672}
12673func (_ fastpathT) EncMapInt32UintV(v map[int32]uint, e *Encoder) {
12674 if v == nil {
12675 e.e.EncodeNil()
12676 return
12677 }
12678 ee, esep := e.e, e.hh.hasElemSeparators()
12679 ee.WriteMapStart(len(v))
12680 if e.h.Canonical {
12681 v2 := make([]int64, len(v))
12682 var i int
12683 for k, _ := range v {
12684 v2[i] = int64(k)
12685 i++
12686 }
12687 sort.Sort(intSlice(v2))
12688 if esep {
12689 for _, k2 := range v2 {
12690 ee.WriteMapElemKey()
12691 ee.EncodeInt(int64(int32(k2)))
12692 ee.WriteMapElemValue()
12693 ee.EncodeUint(uint64(v[int32(k2)]))
12694 }
12695 } else {
12696 for _, k2 := range v2 {
12697 ee.EncodeInt(int64(int32(k2)))
12698 ee.EncodeUint(uint64(v[int32(k2)]))
12699 }
12700 }
12701 } else {
12702 if esep {
12703 for k2, v2 := range v {
12704 ee.WriteMapElemKey()
12705 ee.EncodeInt(int64(k2))
12706 ee.WriteMapElemValue()
12707 ee.EncodeUint(uint64(v2))
12708 }
12709 } else {
12710 for k2, v2 := range v {
12711 ee.EncodeInt(int64(k2))
12712 ee.EncodeUint(uint64(v2))
12713 }
12714 }
12715 }
12716 ee.WriteMapEnd()
12717}
12718
12719func (e *Encoder) fastpathEncMapInt32Uint8R(f *codecFnInfo, rv reflect.Value) {
12720 fastpathTV.EncMapInt32Uint8V(rv2i(rv).(map[int32]uint8), e)
12721}
12722func (_ fastpathT) EncMapInt32Uint8V(v map[int32]uint8, e *Encoder) {
12723 if v == nil {
12724 e.e.EncodeNil()
12725 return
12726 }
12727 ee, esep := e.e, e.hh.hasElemSeparators()
12728 ee.WriteMapStart(len(v))
12729 if e.h.Canonical {
12730 v2 := make([]int64, len(v))
12731 var i int
12732 for k, _ := range v {
12733 v2[i] = int64(k)
12734 i++
12735 }
12736 sort.Sort(intSlice(v2))
12737 if esep {
12738 for _, k2 := range v2 {
12739 ee.WriteMapElemKey()
12740 ee.EncodeInt(int64(int32(k2)))
12741 ee.WriteMapElemValue()
12742 ee.EncodeUint(uint64(v[int32(k2)]))
12743 }
12744 } else {
12745 for _, k2 := range v2 {
12746 ee.EncodeInt(int64(int32(k2)))
12747 ee.EncodeUint(uint64(v[int32(k2)]))
12748 }
12749 }
12750 } else {
12751 if esep {
12752 for k2, v2 := range v {
12753 ee.WriteMapElemKey()
12754 ee.EncodeInt(int64(k2))
12755 ee.WriteMapElemValue()
12756 ee.EncodeUint(uint64(v2))
12757 }
12758 } else {
12759 for k2, v2 := range v {
12760 ee.EncodeInt(int64(k2))
12761 ee.EncodeUint(uint64(v2))
12762 }
12763 }
12764 }
12765 ee.WriteMapEnd()
12766}
12767
12768func (e *Encoder) fastpathEncMapInt32Uint16R(f *codecFnInfo, rv reflect.Value) {
12769 fastpathTV.EncMapInt32Uint16V(rv2i(rv).(map[int32]uint16), e)
12770}
12771func (_ fastpathT) EncMapInt32Uint16V(v map[int32]uint16, e *Encoder) {
12772 if v == nil {
12773 e.e.EncodeNil()
12774 return
12775 }
12776 ee, esep := e.e, e.hh.hasElemSeparators()
12777 ee.WriteMapStart(len(v))
12778 if e.h.Canonical {
12779 v2 := make([]int64, len(v))
12780 var i int
12781 for k, _ := range v {
12782 v2[i] = int64(k)
12783 i++
12784 }
12785 sort.Sort(intSlice(v2))
12786 if esep {
12787 for _, k2 := range v2 {
12788 ee.WriteMapElemKey()
12789 ee.EncodeInt(int64(int32(k2)))
12790 ee.WriteMapElemValue()
12791 ee.EncodeUint(uint64(v[int32(k2)]))
12792 }
12793 } else {
12794 for _, k2 := range v2 {
12795 ee.EncodeInt(int64(int32(k2)))
12796 ee.EncodeUint(uint64(v[int32(k2)]))
12797 }
12798 }
12799 } else {
12800 if esep {
12801 for k2, v2 := range v {
12802 ee.WriteMapElemKey()
12803 ee.EncodeInt(int64(k2))
12804 ee.WriteMapElemValue()
12805 ee.EncodeUint(uint64(v2))
12806 }
12807 } else {
12808 for k2, v2 := range v {
12809 ee.EncodeInt(int64(k2))
12810 ee.EncodeUint(uint64(v2))
12811 }
12812 }
12813 }
12814 ee.WriteMapEnd()
12815}
12816
12817func (e *Encoder) fastpathEncMapInt32Uint32R(f *codecFnInfo, rv reflect.Value) {
12818 fastpathTV.EncMapInt32Uint32V(rv2i(rv).(map[int32]uint32), e)
12819}
12820func (_ fastpathT) EncMapInt32Uint32V(v map[int32]uint32, e *Encoder) {
12821 if v == nil {
12822 e.e.EncodeNil()
12823 return
12824 }
12825 ee, esep := e.e, e.hh.hasElemSeparators()
12826 ee.WriteMapStart(len(v))
12827 if e.h.Canonical {
12828 v2 := make([]int64, len(v))
12829 var i int
12830 for k, _ := range v {
12831 v2[i] = int64(k)
12832 i++
12833 }
12834 sort.Sort(intSlice(v2))
12835 if esep {
12836 for _, k2 := range v2 {
12837 ee.WriteMapElemKey()
12838 ee.EncodeInt(int64(int32(k2)))
12839 ee.WriteMapElemValue()
12840 ee.EncodeUint(uint64(v[int32(k2)]))
12841 }
12842 } else {
12843 for _, k2 := range v2 {
12844 ee.EncodeInt(int64(int32(k2)))
12845 ee.EncodeUint(uint64(v[int32(k2)]))
12846 }
12847 }
12848 } else {
12849 if esep {
12850 for k2, v2 := range v {
12851 ee.WriteMapElemKey()
12852 ee.EncodeInt(int64(k2))
12853 ee.WriteMapElemValue()
12854 ee.EncodeUint(uint64(v2))
12855 }
12856 } else {
12857 for k2, v2 := range v {
12858 ee.EncodeInt(int64(k2))
12859 ee.EncodeUint(uint64(v2))
12860 }
12861 }
12862 }
12863 ee.WriteMapEnd()
12864}
12865
12866func (e *Encoder) fastpathEncMapInt32Uint64R(f *codecFnInfo, rv reflect.Value) {
12867 fastpathTV.EncMapInt32Uint64V(rv2i(rv).(map[int32]uint64), e)
12868}
12869func (_ fastpathT) EncMapInt32Uint64V(v map[int32]uint64, e *Encoder) {
12870 if v == nil {
12871 e.e.EncodeNil()
12872 return
12873 }
12874 ee, esep := e.e, e.hh.hasElemSeparators()
12875 ee.WriteMapStart(len(v))
12876 if e.h.Canonical {
12877 v2 := make([]int64, len(v))
12878 var i int
12879 for k, _ := range v {
12880 v2[i] = int64(k)
12881 i++
12882 }
12883 sort.Sort(intSlice(v2))
12884 if esep {
12885 for _, k2 := range v2 {
12886 ee.WriteMapElemKey()
12887 ee.EncodeInt(int64(int32(k2)))
12888 ee.WriteMapElemValue()
12889 ee.EncodeUint(uint64(v[int32(k2)]))
12890 }
12891 } else {
12892 for _, k2 := range v2 {
12893 ee.EncodeInt(int64(int32(k2)))
12894 ee.EncodeUint(uint64(v[int32(k2)]))
12895 }
12896 }
12897 } else {
12898 if esep {
12899 for k2, v2 := range v {
12900 ee.WriteMapElemKey()
12901 ee.EncodeInt(int64(k2))
12902 ee.WriteMapElemValue()
12903 ee.EncodeUint(uint64(v2))
12904 }
12905 } else {
12906 for k2, v2 := range v {
12907 ee.EncodeInt(int64(k2))
12908 ee.EncodeUint(uint64(v2))
12909 }
12910 }
12911 }
12912 ee.WriteMapEnd()
12913}
12914
12915func (e *Encoder) fastpathEncMapInt32UintptrR(f *codecFnInfo, rv reflect.Value) {
12916 fastpathTV.EncMapInt32UintptrV(rv2i(rv).(map[int32]uintptr), e)
12917}
12918func (_ fastpathT) EncMapInt32UintptrV(v map[int32]uintptr, e *Encoder) {
12919 if v == nil {
12920 e.e.EncodeNil()
12921 return
12922 }
12923 ee, esep := e.e, e.hh.hasElemSeparators()
12924 ee.WriteMapStart(len(v))
12925 if e.h.Canonical {
12926 v2 := make([]int64, len(v))
12927 var i int
12928 for k, _ := range v {
12929 v2[i] = int64(k)
12930 i++
12931 }
12932 sort.Sort(intSlice(v2))
12933 if esep {
12934 for _, k2 := range v2 {
12935 ee.WriteMapElemKey()
12936 ee.EncodeInt(int64(int32(k2)))
12937 ee.WriteMapElemValue()
12938 e.encode(v[int32(k2)])
12939 }
12940 } else {
12941 for _, k2 := range v2 {
12942 ee.EncodeInt(int64(int32(k2)))
12943 e.encode(v[int32(k2)])
12944 }
12945 }
12946 } else {
12947 if esep {
12948 for k2, v2 := range v {
12949 ee.WriteMapElemKey()
12950 ee.EncodeInt(int64(k2))
12951 ee.WriteMapElemValue()
12952 e.encode(v2)
12953 }
12954 } else {
12955 for k2, v2 := range v {
12956 ee.EncodeInt(int64(k2))
12957 e.encode(v2)
12958 }
12959 }
12960 }
12961 ee.WriteMapEnd()
12962}
12963
12964func (e *Encoder) fastpathEncMapInt32IntR(f *codecFnInfo, rv reflect.Value) {
12965 fastpathTV.EncMapInt32IntV(rv2i(rv).(map[int32]int), e)
12966}
12967func (_ fastpathT) EncMapInt32IntV(v map[int32]int, e *Encoder) {
12968 if v == nil {
12969 e.e.EncodeNil()
12970 return
12971 }
12972 ee, esep := e.e, e.hh.hasElemSeparators()
12973 ee.WriteMapStart(len(v))
12974 if e.h.Canonical {
12975 v2 := make([]int64, len(v))
12976 var i int
12977 for k, _ := range v {
12978 v2[i] = int64(k)
12979 i++
12980 }
12981 sort.Sort(intSlice(v2))
12982 if esep {
12983 for _, k2 := range v2 {
12984 ee.WriteMapElemKey()
12985 ee.EncodeInt(int64(int32(k2)))
12986 ee.WriteMapElemValue()
12987 ee.EncodeInt(int64(v[int32(k2)]))
12988 }
12989 } else {
12990 for _, k2 := range v2 {
12991 ee.EncodeInt(int64(int32(k2)))
12992 ee.EncodeInt(int64(v[int32(k2)]))
12993 }
12994 }
12995 } else {
12996 if esep {
12997 for k2, v2 := range v {
12998 ee.WriteMapElemKey()
12999 ee.EncodeInt(int64(k2))
13000 ee.WriteMapElemValue()
13001 ee.EncodeInt(int64(v2))
13002 }
13003 } else {
13004 for k2, v2 := range v {
13005 ee.EncodeInt(int64(k2))
13006 ee.EncodeInt(int64(v2))
13007 }
13008 }
13009 }
13010 ee.WriteMapEnd()
13011}
13012
13013func (e *Encoder) fastpathEncMapInt32Int8R(f *codecFnInfo, rv reflect.Value) {
13014 fastpathTV.EncMapInt32Int8V(rv2i(rv).(map[int32]int8), e)
13015}
13016func (_ fastpathT) EncMapInt32Int8V(v map[int32]int8, e *Encoder) {
13017 if v == nil {
13018 e.e.EncodeNil()
13019 return
13020 }
13021 ee, esep := e.e, e.hh.hasElemSeparators()
13022 ee.WriteMapStart(len(v))
13023 if e.h.Canonical {
13024 v2 := make([]int64, len(v))
13025 var i int
13026 for k, _ := range v {
13027 v2[i] = int64(k)
13028 i++
13029 }
13030 sort.Sort(intSlice(v2))
13031 if esep {
13032 for _, k2 := range v2 {
13033 ee.WriteMapElemKey()
13034 ee.EncodeInt(int64(int32(k2)))
13035 ee.WriteMapElemValue()
13036 ee.EncodeInt(int64(v[int32(k2)]))
13037 }
13038 } else {
13039 for _, k2 := range v2 {
13040 ee.EncodeInt(int64(int32(k2)))
13041 ee.EncodeInt(int64(v[int32(k2)]))
13042 }
13043 }
13044 } else {
13045 if esep {
13046 for k2, v2 := range v {
13047 ee.WriteMapElemKey()
13048 ee.EncodeInt(int64(k2))
13049 ee.WriteMapElemValue()
13050 ee.EncodeInt(int64(v2))
13051 }
13052 } else {
13053 for k2, v2 := range v {
13054 ee.EncodeInt(int64(k2))
13055 ee.EncodeInt(int64(v2))
13056 }
13057 }
13058 }
13059 ee.WriteMapEnd()
13060}
13061
13062func (e *Encoder) fastpathEncMapInt32Int16R(f *codecFnInfo, rv reflect.Value) {
13063 fastpathTV.EncMapInt32Int16V(rv2i(rv).(map[int32]int16), e)
13064}
13065func (_ fastpathT) EncMapInt32Int16V(v map[int32]int16, e *Encoder) {
13066 if v == nil {
13067 e.e.EncodeNil()
13068 return
13069 }
13070 ee, esep := e.e, e.hh.hasElemSeparators()
13071 ee.WriteMapStart(len(v))
13072 if e.h.Canonical {
13073 v2 := make([]int64, len(v))
13074 var i int
13075 for k, _ := range v {
13076 v2[i] = int64(k)
13077 i++
13078 }
13079 sort.Sort(intSlice(v2))
13080 if esep {
13081 for _, k2 := range v2 {
13082 ee.WriteMapElemKey()
13083 ee.EncodeInt(int64(int32(k2)))
13084 ee.WriteMapElemValue()
13085 ee.EncodeInt(int64(v[int32(k2)]))
13086 }
13087 } else {
13088 for _, k2 := range v2 {
13089 ee.EncodeInt(int64(int32(k2)))
13090 ee.EncodeInt(int64(v[int32(k2)]))
13091 }
13092 }
13093 } else {
13094 if esep {
13095 for k2, v2 := range v {
13096 ee.WriteMapElemKey()
13097 ee.EncodeInt(int64(k2))
13098 ee.WriteMapElemValue()
13099 ee.EncodeInt(int64(v2))
13100 }
13101 } else {
13102 for k2, v2 := range v {
13103 ee.EncodeInt(int64(k2))
13104 ee.EncodeInt(int64(v2))
13105 }
13106 }
13107 }
13108 ee.WriteMapEnd()
13109}
13110
13111func (e *Encoder) fastpathEncMapInt32Int32R(f *codecFnInfo, rv reflect.Value) {
13112 fastpathTV.EncMapInt32Int32V(rv2i(rv).(map[int32]int32), e)
13113}
13114func (_ fastpathT) EncMapInt32Int32V(v map[int32]int32, e *Encoder) {
13115 if v == nil {
13116 e.e.EncodeNil()
13117 return
13118 }
13119 ee, esep := e.e, e.hh.hasElemSeparators()
13120 ee.WriteMapStart(len(v))
13121 if e.h.Canonical {
13122 v2 := make([]int64, len(v))
13123 var i int
13124 for k, _ := range v {
13125 v2[i] = int64(k)
13126 i++
13127 }
13128 sort.Sort(intSlice(v2))
13129 if esep {
13130 for _, k2 := range v2 {
13131 ee.WriteMapElemKey()
13132 ee.EncodeInt(int64(int32(k2)))
13133 ee.WriteMapElemValue()
13134 ee.EncodeInt(int64(v[int32(k2)]))
13135 }
13136 } else {
13137 for _, k2 := range v2 {
13138 ee.EncodeInt(int64(int32(k2)))
13139 ee.EncodeInt(int64(v[int32(k2)]))
13140 }
13141 }
13142 } else {
13143 if esep {
13144 for k2, v2 := range v {
13145 ee.WriteMapElemKey()
13146 ee.EncodeInt(int64(k2))
13147 ee.WriteMapElemValue()
13148 ee.EncodeInt(int64(v2))
13149 }
13150 } else {
13151 for k2, v2 := range v {
13152 ee.EncodeInt(int64(k2))
13153 ee.EncodeInt(int64(v2))
13154 }
13155 }
13156 }
13157 ee.WriteMapEnd()
13158}
13159
13160func (e *Encoder) fastpathEncMapInt32Int64R(f *codecFnInfo, rv reflect.Value) {
13161 fastpathTV.EncMapInt32Int64V(rv2i(rv).(map[int32]int64), e)
13162}
13163func (_ fastpathT) EncMapInt32Int64V(v map[int32]int64, e *Encoder) {
13164 if v == nil {
13165 e.e.EncodeNil()
13166 return
13167 }
13168 ee, esep := e.e, e.hh.hasElemSeparators()
13169 ee.WriteMapStart(len(v))
13170 if e.h.Canonical {
13171 v2 := make([]int64, len(v))
13172 var i int
13173 for k, _ := range v {
13174 v2[i] = int64(k)
13175 i++
13176 }
13177 sort.Sort(intSlice(v2))
13178 if esep {
13179 for _, k2 := range v2 {
13180 ee.WriteMapElemKey()
13181 ee.EncodeInt(int64(int32(k2)))
13182 ee.WriteMapElemValue()
13183 ee.EncodeInt(int64(v[int32(k2)]))
13184 }
13185 } else {
13186 for _, k2 := range v2 {
13187 ee.EncodeInt(int64(int32(k2)))
13188 ee.EncodeInt(int64(v[int32(k2)]))
13189 }
13190 }
13191 } else {
13192 if esep {
13193 for k2, v2 := range v {
13194 ee.WriteMapElemKey()
13195 ee.EncodeInt(int64(k2))
13196 ee.WriteMapElemValue()
13197 ee.EncodeInt(int64(v2))
13198 }
13199 } else {
13200 for k2, v2 := range v {
13201 ee.EncodeInt(int64(k2))
13202 ee.EncodeInt(int64(v2))
13203 }
13204 }
13205 }
13206 ee.WriteMapEnd()
13207}
13208
13209func (e *Encoder) fastpathEncMapInt32Float32R(f *codecFnInfo, rv reflect.Value) {
13210 fastpathTV.EncMapInt32Float32V(rv2i(rv).(map[int32]float32), e)
13211}
13212func (_ fastpathT) EncMapInt32Float32V(v map[int32]float32, e *Encoder) {
13213 if v == nil {
13214 e.e.EncodeNil()
13215 return
13216 }
13217 ee, esep := e.e, e.hh.hasElemSeparators()
13218 ee.WriteMapStart(len(v))
13219 if e.h.Canonical {
13220 v2 := make([]int64, len(v))
13221 var i int
13222 for k, _ := range v {
13223 v2[i] = int64(k)
13224 i++
13225 }
13226 sort.Sort(intSlice(v2))
13227 if esep {
13228 for _, k2 := range v2 {
13229 ee.WriteMapElemKey()
13230 ee.EncodeInt(int64(int32(k2)))
13231 ee.WriteMapElemValue()
13232 ee.EncodeFloat32(v[int32(k2)])
13233 }
13234 } else {
13235 for _, k2 := range v2 {
13236 ee.EncodeInt(int64(int32(k2)))
13237 ee.EncodeFloat32(v[int32(k2)])
13238 }
13239 }
13240 } else {
13241 if esep {
13242 for k2, v2 := range v {
13243 ee.WriteMapElemKey()
13244 ee.EncodeInt(int64(k2))
13245 ee.WriteMapElemValue()
13246 ee.EncodeFloat32(v2)
13247 }
13248 } else {
13249 for k2, v2 := range v {
13250 ee.EncodeInt(int64(k2))
13251 ee.EncodeFloat32(v2)
13252 }
13253 }
13254 }
13255 ee.WriteMapEnd()
13256}
13257
13258func (e *Encoder) fastpathEncMapInt32Float64R(f *codecFnInfo, rv reflect.Value) {
13259 fastpathTV.EncMapInt32Float64V(rv2i(rv).(map[int32]float64), e)
13260}
13261func (_ fastpathT) EncMapInt32Float64V(v map[int32]float64, e *Encoder) {
13262 if v == nil {
13263 e.e.EncodeNil()
13264 return
13265 }
13266 ee, esep := e.e, e.hh.hasElemSeparators()
13267 ee.WriteMapStart(len(v))
13268 if e.h.Canonical {
13269 v2 := make([]int64, len(v))
13270 var i int
13271 for k, _ := range v {
13272 v2[i] = int64(k)
13273 i++
13274 }
13275 sort.Sort(intSlice(v2))
13276 if esep {
13277 for _, k2 := range v2 {
13278 ee.WriteMapElemKey()
13279 ee.EncodeInt(int64(int32(k2)))
13280 ee.WriteMapElemValue()
13281 ee.EncodeFloat64(v[int32(k2)])
13282 }
13283 } else {
13284 for _, k2 := range v2 {
13285 ee.EncodeInt(int64(int32(k2)))
13286 ee.EncodeFloat64(v[int32(k2)])
13287 }
13288 }
13289 } else {
13290 if esep {
13291 for k2, v2 := range v {
13292 ee.WriteMapElemKey()
13293 ee.EncodeInt(int64(k2))
13294 ee.WriteMapElemValue()
13295 ee.EncodeFloat64(v2)
13296 }
13297 } else {
13298 for k2, v2 := range v {
13299 ee.EncodeInt(int64(k2))
13300 ee.EncodeFloat64(v2)
13301 }
13302 }
13303 }
13304 ee.WriteMapEnd()
13305}
13306
13307func (e *Encoder) fastpathEncMapInt32BoolR(f *codecFnInfo, rv reflect.Value) {
13308 fastpathTV.EncMapInt32BoolV(rv2i(rv).(map[int32]bool), e)
13309}
13310func (_ fastpathT) EncMapInt32BoolV(v map[int32]bool, e *Encoder) {
13311 if v == nil {
13312 e.e.EncodeNil()
13313 return
13314 }
13315 ee, esep := e.e, e.hh.hasElemSeparators()
13316 ee.WriteMapStart(len(v))
13317 if e.h.Canonical {
13318 v2 := make([]int64, len(v))
13319 var i int
13320 for k, _ := range v {
13321 v2[i] = int64(k)
13322 i++
13323 }
13324 sort.Sort(intSlice(v2))
13325 if esep {
13326 for _, k2 := range v2 {
13327 ee.WriteMapElemKey()
13328 ee.EncodeInt(int64(int32(k2)))
13329 ee.WriteMapElemValue()
13330 ee.EncodeBool(v[int32(k2)])
13331 }
13332 } else {
13333 for _, k2 := range v2 {
13334 ee.EncodeInt(int64(int32(k2)))
13335 ee.EncodeBool(v[int32(k2)])
13336 }
13337 }
13338 } else {
13339 if esep {
13340 for k2, v2 := range v {
13341 ee.WriteMapElemKey()
13342 ee.EncodeInt(int64(k2))
13343 ee.WriteMapElemValue()
13344 ee.EncodeBool(v2)
13345 }
13346 } else {
13347 for k2, v2 := range v {
13348 ee.EncodeInt(int64(k2))
13349 ee.EncodeBool(v2)
13350 }
13351 }
13352 }
13353 ee.WriteMapEnd()
13354}
13355
13356func (e *Encoder) fastpathEncMapInt64IntfR(f *codecFnInfo, rv reflect.Value) {
13357 fastpathTV.EncMapInt64IntfV(rv2i(rv).(map[int64]interface{}), e)
13358}
13359func (_ fastpathT) EncMapInt64IntfV(v map[int64]interface{}, e *Encoder) {
13360 if v == nil {
13361 e.e.EncodeNil()
13362 return
13363 }
13364 ee, esep := e.e, e.hh.hasElemSeparators()
13365 ee.WriteMapStart(len(v))
13366 if e.h.Canonical {
13367 v2 := make([]int64, len(v))
13368 var i int
13369 for k, _ := range v {
13370 v2[i] = int64(k)
13371 i++
13372 }
13373 sort.Sort(intSlice(v2))
13374 if esep {
13375 for _, k2 := range v2 {
13376 ee.WriteMapElemKey()
13377 ee.EncodeInt(int64(int64(k2)))
13378 ee.WriteMapElemValue()
13379 e.encode(v[int64(k2)])
13380 }
13381 } else {
13382 for _, k2 := range v2 {
13383 ee.EncodeInt(int64(int64(k2)))
13384 e.encode(v[int64(k2)])
13385 }
13386 }
13387 } else {
13388 if esep {
13389 for k2, v2 := range v {
13390 ee.WriteMapElemKey()
13391 ee.EncodeInt(int64(k2))
13392 ee.WriteMapElemValue()
13393 e.encode(v2)
13394 }
13395 } else {
13396 for k2, v2 := range v {
13397 ee.EncodeInt(int64(k2))
13398 e.encode(v2)
13399 }
13400 }
13401 }
13402 ee.WriteMapEnd()
13403}
13404
13405func (e *Encoder) fastpathEncMapInt64StringR(f *codecFnInfo, rv reflect.Value) {
13406 fastpathTV.EncMapInt64StringV(rv2i(rv).(map[int64]string), e)
13407}
13408func (_ fastpathT) EncMapInt64StringV(v map[int64]string, e *Encoder) {
13409 if v == nil {
13410 e.e.EncodeNil()
13411 return
13412 }
13413 ee, esep := e.e, e.hh.hasElemSeparators()
13414 ee.WriteMapStart(len(v))
13415 if e.h.Canonical {
13416 v2 := make([]int64, len(v))
13417 var i int
13418 for k, _ := range v {
13419 v2[i] = int64(k)
13420 i++
13421 }
13422 sort.Sort(intSlice(v2))
13423 if esep {
13424 for _, k2 := range v2 {
13425 ee.WriteMapElemKey()
13426 ee.EncodeInt(int64(int64(k2)))
13427 ee.WriteMapElemValue()
13428 ee.EncodeString(cUTF8, v[int64(k2)])
13429 }
13430 } else {
13431 for _, k2 := range v2 {
13432 ee.EncodeInt(int64(int64(k2)))
13433 ee.EncodeString(cUTF8, v[int64(k2)])
13434 }
13435 }
13436 } else {
13437 if esep {
13438 for k2, v2 := range v {
13439 ee.WriteMapElemKey()
13440 ee.EncodeInt(int64(k2))
13441 ee.WriteMapElemValue()
13442 ee.EncodeString(cUTF8, v2)
13443 }
13444 } else {
13445 for k2, v2 := range v {
13446 ee.EncodeInt(int64(k2))
13447 ee.EncodeString(cUTF8, v2)
13448 }
13449 }
13450 }
13451 ee.WriteMapEnd()
13452}
13453
13454func (e *Encoder) fastpathEncMapInt64UintR(f *codecFnInfo, rv reflect.Value) {
13455 fastpathTV.EncMapInt64UintV(rv2i(rv).(map[int64]uint), e)
13456}
13457func (_ fastpathT) EncMapInt64UintV(v map[int64]uint, e *Encoder) {
13458 if v == nil {
13459 e.e.EncodeNil()
13460 return
13461 }
13462 ee, esep := e.e, e.hh.hasElemSeparators()
13463 ee.WriteMapStart(len(v))
13464 if e.h.Canonical {
13465 v2 := make([]int64, len(v))
13466 var i int
13467 for k, _ := range v {
13468 v2[i] = int64(k)
13469 i++
13470 }
13471 sort.Sort(intSlice(v2))
13472 if esep {
13473 for _, k2 := range v2 {
13474 ee.WriteMapElemKey()
13475 ee.EncodeInt(int64(int64(k2)))
13476 ee.WriteMapElemValue()
13477 ee.EncodeUint(uint64(v[int64(k2)]))
13478 }
13479 } else {
13480 for _, k2 := range v2 {
13481 ee.EncodeInt(int64(int64(k2)))
13482 ee.EncodeUint(uint64(v[int64(k2)]))
13483 }
13484 }
13485 } else {
13486 if esep {
13487 for k2, v2 := range v {
13488 ee.WriteMapElemKey()
13489 ee.EncodeInt(int64(k2))
13490 ee.WriteMapElemValue()
13491 ee.EncodeUint(uint64(v2))
13492 }
13493 } else {
13494 for k2, v2 := range v {
13495 ee.EncodeInt(int64(k2))
13496 ee.EncodeUint(uint64(v2))
13497 }
13498 }
13499 }
13500 ee.WriteMapEnd()
13501}
13502
13503func (e *Encoder) fastpathEncMapInt64Uint8R(f *codecFnInfo, rv reflect.Value) {
13504 fastpathTV.EncMapInt64Uint8V(rv2i(rv).(map[int64]uint8), e)
13505}
13506func (_ fastpathT) EncMapInt64Uint8V(v map[int64]uint8, e *Encoder) {
13507 if v == nil {
13508 e.e.EncodeNil()
13509 return
13510 }
13511 ee, esep := e.e, e.hh.hasElemSeparators()
13512 ee.WriteMapStart(len(v))
13513 if e.h.Canonical {
13514 v2 := make([]int64, len(v))
13515 var i int
13516 for k, _ := range v {
13517 v2[i] = int64(k)
13518 i++
13519 }
13520 sort.Sort(intSlice(v2))
13521 if esep {
13522 for _, k2 := range v2 {
13523 ee.WriteMapElemKey()
13524 ee.EncodeInt(int64(int64(k2)))
13525 ee.WriteMapElemValue()
13526 ee.EncodeUint(uint64(v[int64(k2)]))
13527 }
13528 } else {
13529 for _, k2 := range v2 {
13530 ee.EncodeInt(int64(int64(k2)))
13531 ee.EncodeUint(uint64(v[int64(k2)]))
13532 }
13533 }
13534 } else {
13535 if esep {
13536 for k2, v2 := range v {
13537 ee.WriteMapElemKey()
13538 ee.EncodeInt(int64(k2))
13539 ee.WriteMapElemValue()
13540 ee.EncodeUint(uint64(v2))
13541 }
13542 } else {
13543 for k2, v2 := range v {
13544 ee.EncodeInt(int64(k2))
13545 ee.EncodeUint(uint64(v2))
13546 }
13547 }
13548 }
13549 ee.WriteMapEnd()
13550}
13551
13552func (e *Encoder) fastpathEncMapInt64Uint16R(f *codecFnInfo, rv reflect.Value) {
13553 fastpathTV.EncMapInt64Uint16V(rv2i(rv).(map[int64]uint16), e)
13554}
13555func (_ fastpathT) EncMapInt64Uint16V(v map[int64]uint16, e *Encoder) {
13556 if v == nil {
13557 e.e.EncodeNil()
13558 return
13559 }
13560 ee, esep := e.e, e.hh.hasElemSeparators()
13561 ee.WriteMapStart(len(v))
13562 if e.h.Canonical {
13563 v2 := make([]int64, len(v))
13564 var i int
13565 for k, _ := range v {
13566 v2[i] = int64(k)
13567 i++
13568 }
13569 sort.Sort(intSlice(v2))
13570 if esep {
13571 for _, k2 := range v2 {
13572 ee.WriteMapElemKey()
13573 ee.EncodeInt(int64(int64(k2)))
13574 ee.WriteMapElemValue()
13575 ee.EncodeUint(uint64(v[int64(k2)]))
13576 }
13577 } else {
13578 for _, k2 := range v2 {
13579 ee.EncodeInt(int64(int64(k2)))
13580 ee.EncodeUint(uint64(v[int64(k2)]))
13581 }
13582 }
13583 } else {
13584 if esep {
13585 for k2, v2 := range v {
13586 ee.WriteMapElemKey()
13587 ee.EncodeInt(int64(k2))
13588 ee.WriteMapElemValue()
13589 ee.EncodeUint(uint64(v2))
13590 }
13591 } else {
13592 for k2, v2 := range v {
13593 ee.EncodeInt(int64(k2))
13594 ee.EncodeUint(uint64(v2))
13595 }
13596 }
13597 }
13598 ee.WriteMapEnd()
13599}
13600
13601func (e *Encoder) fastpathEncMapInt64Uint32R(f *codecFnInfo, rv reflect.Value) {
13602 fastpathTV.EncMapInt64Uint32V(rv2i(rv).(map[int64]uint32), e)
13603}
13604func (_ fastpathT) EncMapInt64Uint32V(v map[int64]uint32, e *Encoder) {
13605 if v == nil {
13606 e.e.EncodeNil()
13607 return
13608 }
13609 ee, esep := e.e, e.hh.hasElemSeparators()
13610 ee.WriteMapStart(len(v))
13611 if e.h.Canonical {
13612 v2 := make([]int64, len(v))
13613 var i int
13614 for k, _ := range v {
13615 v2[i] = int64(k)
13616 i++
13617 }
13618 sort.Sort(intSlice(v2))
13619 if esep {
13620 for _, k2 := range v2 {
13621 ee.WriteMapElemKey()
13622 ee.EncodeInt(int64(int64(k2)))
13623 ee.WriteMapElemValue()
13624 ee.EncodeUint(uint64(v[int64(k2)]))
13625 }
13626 } else {
13627 for _, k2 := range v2 {
13628 ee.EncodeInt(int64(int64(k2)))
13629 ee.EncodeUint(uint64(v[int64(k2)]))
13630 }
13631 }
13632 } else {
13633 if esep {
13634 for k2, v2 := range v {
13635 ee.WriteMapElemKey()
13636 ee.EncodeInt(int64(k2))
13637 ee.WriteMapElemValue()
13638 ee.EncodeUint(uint64(v2))
13639 }
13640 } else {
13641 for k2, v2 := range v {
13642 ee.EncodeInt(int64(k2))
13643 ee.EncodeUint(uint64(v2))
13644 }
13645 }
13646 }
13647 ee.WriteMapEnd()
13648}
13649
13650func (e *Encoder) fastpathEncMapInt64Uint64R(f *codecFnInfo, rv reflect.Value) {
13651 fastpathTV.EncMapInt64Uint64V(rv2i(rv).(map[int64]uint64), e)
13652}
13653func (_ fastpathT) EncMapInt64Uint64V(v map[int64]uint64, e *Encoder) {
13654 if v == nil {
13655 e.e.EncodeNil()
13656 return
13657 }
13658 ee, esep := e.e, e.hh.hasElemSeparators()
13659 ee.WriteMapStart(len(v))
13660 if e.h.Canonical {
13661 v2 := make([]int64, len(v))
13662 var i int
13663 for k, _ := range v {
13664 v2[i] = int64(k)
13665 i++
13666 }
13667 sort.Sort(intSlice(v2))
13668 if esep {
13669 for _, k2 := range v2 {
13670 ee.WriteMapElemKey()
13671 ee.EncodeInt(int64(int64(k2)))
13672 ee.WriteMapElemValue()
13673 ee.EncodeUint(uint64(v[int64(k2)]))
13674 }
13675 } else {
13676 for _, k2 := range v2 {
13677 ee.EncodeInt(int64(int64(k2)))
13678 ee.EncodeUint(uint64(v[int64(k2)]))
13679 }
13680 }
13681 } else {
13682 if esep {
13683 for k2, v2 := range v {
13684 ee.WriteMapElemKey()
13685 ee.EncodeInt(int64(k2))
13686 ee.WriteMapElemValue()
13687 ee.EncodeUint(uint64(v2))
13688 }
13689 } else {
13690 for k2, v2 := range v {
13691 ee.EncodeInt(int64(k2))
13692 ee.EncodeUint(uint64(v2))
13693 }
13694 }
13695 }
13696 ee.WriteMapEnd()
13697}
13698
13699func (e *Encoder) fastpathEncMapInt64UintptrR(f *codecFnInfo, rv reflect.Value) {
13700 fastpathTV.EncMapInt64UintptrV(rv2i(rv).(map[int64]uintptr), e)
13701}
13702func (_ fastpathT) EncMapInt64UintptrV(v map[int64]uintptr, e *Encoder) {
13703 if v == nil {
13704 e.e.EncodeNil()
13705 return
13706 }
13707 ee, esep := e.e, e.hh.hasElemSeparators()
13708 ee.WriteMapStart(len(v))
13709 if e.h.Canonical {
13710 v2 := make([]int64, len(v))
13711 var i int
13712 for k, _ := range v {
13713 v2[i] = int64(k)
13714 i++
13715 }
13716 sort.Sort(intSlice(v2))
13717 if esep {
13718 for _, k2 := range v2 {
13719 ee.WriteMapElemKey()
13720 ee.EncodeInt(int64(int64(k2)))
13721 ee.WriteMapElemValue()
13722 e.encode(v[int64(k2)])
13723 }
13724 } else {
13725 for _, k2 := range v2 {
13726 ee.EncodeInt(int64(int64(k2)))
13727 e.encode(v[int64(k2)])
13728 }
13729 }
13730 } else {
13731 if esep {
13732 for k2, v2 := range v {
13733 ee.WriteMapElemKey()
13734 ee.EncodeInt(int64(k2))
13735 ee.WriteMapElemValue()
13736 e.encode(v2)
13737 }
13738 } else {
13739 for k2, v2 := range v {
13740 ee.EncodeInt(int64(k2))
13741 e.encode(v2)
13742 }
13743 }
13744 }
13745 ee.WriteMapEnd()
13746}
13747
13748func (e *Encoder) fastpathEncMapInt64IntR(f *codecFnInfo, rv reflect.Value) {
13749 fastpathTV.EncMapInt64IntV(rv2i(rv).(map[int64]int), e)
13750}
13751func (_ fastpathT) EncMapInt64IntV(v map[int64]int, e *Encoder) {
13752 if v == nil {
13753 e.e.EncodeNil()
13754 return
13755 }
13756 ee, esep := e.e, e.hh.hasElemSeparators()
13757 ee.WriteMapStart(len(v))
13758 if e.h.Canonical {
13759 v2 := make([]int64, len(v))
13760 var i int
13761 for k, _ := range v {
13762 v2[i] = int64(k)
13763 i++
13764 }
13765 sort.Sort(intSlice(v2))
13766 if esep {
13767 for _, k2 := range v2 {
13768 ee.WriteMapElemKey()
13769 ee.EncodeInt(int64(int64(k2)))
13770 ee.WriteMapElemValue()
13771 ee.EncodeInt(int64(v[int64(k2)]))
13772 }
13773 } else {
13774 for _, k2 := range v2 {
13775 ee.EncodeInt(int64(int64(k2)))
13776 ee.EncodeInt(int64(v[int64(k2)]))
13777 }
13778 }
13779 } else {
13780 if esep {
13781 for k2, v2 := range v {
13782 ee.WriteMapElemKey()
13783 ee.EncodeInt(int64(k2))
13784 ee.WriteMapElemValue()
13785 ee.EncodeInt(int64(v2))
13786 }
13787 } else {
13788 for k2, v2 := range v {
13789 ee.EncodeInt(int64(k2))
13790 ee.EncodeInt(int64(v2))
13791 }
13792 }
13793 }
13794 ee.WriteMapEnd()
13795}
13796
13797func (e *Encoder) fastpathEncMapInt64Int8R(f *codecFnInfo, rv reflect.Value) {
13798 fastpathTV.EncMapInt64Int8V(rv2i(rv).(map[int64]int8), e)
13799}
13800func (_ fastpathT) EncMapInt64Int8V(v map[int64]int8, e *Encoder) {
13801 if v == nil {
13802 e.e.EncodeNil()
13803 return
13804 }
13805 ee, esep := e.e, e.hh.hasElemSeparators()
13806 ee.WriteMapStart(len(v))
13807 if e.h.Canonical {
13808 v2 := make([]int64, len(v))
13809 var i int
13810 for k, _ := range v {
13811 v2[i] = int64(k)
13812 i++
13813 }
13814 sort.Sort(intSlice(v2))
13815 if esep {
13816 for _, k2 := range v2 {
13817 ee.WriteMapElemKey()
13818 ee.EncodeInt(int64(int64(k2)))
13819 ee.WriteMapElemValue()
13820 ee.EncodeInt(int64(v[int64(k2)]))
13821 }
13822 } else {
13823 for _, k2 := range v2 {
13824 ee.EncodeInt(int64(int64(k2)))
13825 ee.EncodeInt(int64(v[int64(k2)]))
13826 }
13827 }
13828 } else {
13829 if esep {
13830 for k2, v2 := range v {
13831 ee.WriteMapElemKey()
13832 ee.EncodeInt(int64(k2))
13833 ee.WriteMapElemValue()
13834 ee.EncodeInt(int64(v2))
13835 }
13836 } else {
13837 for k2, v2 := range v {
13838 ee.EncodeInt(int64(k2))
13839 ee.EncodeInt(int64(v2))
13840 }
13841 }
13842 }
13843 ee.WriteMapEnd()
13844}
13845
13846func (e *Encoder) fastpathEncMapInt64Int16R(f *codecFnInfo, rv reflect.Value) {
13847 fastpathTV.EncMapInt64Int16V(rv2i(rv).(map[int64]int16), e)
13848}
13849func (_ fastpathT) EncMapInt64Int16V(v map[int64]int16, e *Encoder) {
13850 if v == nil {
13851 e.e.EncodeNil()
13852 return
13853 }
13854 ee, esep := e.e, e.hh.hasElemSeparators()
13855 ee.WriteMapStart(len(v))
13856 if e.h.Canonical {
13857 v2 := make([]int64, len(v))
13858 var i int
13859 for k, _ := range v {
13860 v2[i] = int64(k)
13861 i++
13862 }
13863 sort.Sort(intSlice(v2))
13864 if esep {
13865 for _, k2 := range v2 {
13866 ee.WriteMapElemKey()
13867 ee.EncodeInt(int64(int64(k2)))
13868 ee.WriteMapElemValue()
13869 ee.EncodeInt(int64(v[int64(k2)]))
13870 }
13871 } else {
13872 for _, k2 := range v2 {
13873 ee.EncodeInt(int64(int64(k2)))
13874 ee.EncodeInt(int64(v[int64(k2)]))
13875 }
13876 }
13877 } else {
13878 if esep {
13879 for k2, v2 := range v {
13880 ee.WriteMapElemKey()
13881 ee.EncodeInt(int64(k2))
13882 ee.WriteMapElemValue()
13883 ee.EncodeInt(int64(v2))
13884 }
13885 } else {
13886 for k2, v2 := range v {
13887 ee.EncodeInt(int64(k2))
13888 ee.EncodeInt(int64(v2))
13889 }
13890 }
13891 }
13892 ee.WriteMapEnd()
13893}
13894
13895func (e *Encoder) fastpathEncMapInt64Int32R(f *codecFnInfo, rv reflect.Value) {
13896 fastpathTV.EncMapInt64Int32V(rv2i(rv).(map[int64]int32), e)
13897}
13898func (_ fastpathT) EncMapInt64Int32V(v map[int64]int32, e *Encoder) {
13899 if v == nil {
13900 e.e.EncodeNil()
13901 return
13902 }
13903 ee, esep := e.e, e.hh.hasElemSeparators()
13904 ee.WriteMapStart(len(v))
13905 if e.h.Canonical {
13906 v2 := make([]int64, len(v))
13907 var i int
13908 for k, _ := range v {
13909 v2[i] = int64(k)
13910 i++
13911 }
13912 sort.Sort(intSlice(v2))
13913 if esep {
13914 for _, k2 := range v2 {
13915 ee.WriteMapElemKey()
13916 ee.EncodeInt(int64(int64(k2)))
13917 ee.WriteMapElemValue()
13918 ee.EncodeInt(int64(v[int64(k2)]))
13919 }
13920 } else {
13921 for _, k2 := range v2 {
13922 ee.EncodeInt(int64(int64(k2)))
13923 ee.EncodeInt(int64(v[int64(k2)]))
13924 }
13925 }
13926 } else {
13927 if esep {
13928 for k2, v2 := range v {
13929 ee.WriteMapElemKey()
13930 ee.EncodeInt(int64(k2))
13931 ee.WriteMapElemValue()
13932 ee.EncodeInt(int64(v2))
13933 }
13934 } else {
13935 for k2, v2 := range v {
13936 ee.EncodeInt(int64(k2))
13937 ee.EncodeInt(int64(v2))
13938 }
13939 }
13940 }
13941 ee.WriteMapEnd()
13942}
13943
13944func (e *Encoder) fastpathEncMapInt64Int64R(f *codecFnInfo, rv reflect.Value) {
13945 fastpathTV.EncMapInt64Int64V(rv2i(rv).(map[int64]int64), e)
13946}
13947func (_ fastpathT) EncMapInt64Int64V(v map[int64]int64, e *Encoder) {
13948 if v == nil {
13949 e.e.EncodeNil()
13950 return
13951 }
13952 ee, esep := e.e, e.hh.hasElemSeparators()
13953 ee.WriteMapStart(len(v))
13954 if e.h.Canonical {
13955 v2 := make([]int64, len(v))
13956 var i int
13957 for k, _ := range v {
13958 v2[i] = int64(k)
13959 i++
13960 }
13961 sort.Sort(intSlice(v2))
13962 if esep {
13963 for _, k2 := range v2 {
13964 ee.WriteMapElemKey()
13965 ee.EncodeInt(int64(int64(k2)))
13966 ee.WriteMapElemValue()
13967 ee.EncodeInt(int64(v[int64(k2)]))
13968 }
13969 } else {
13970 for _, k2 := range v2 {
13971 ee.EncodeInt(int64(int64(k2)))
13972 ee.EncodeInt(int64(v[int64(k2)]))
13973 }
13974 }
13975 } else {
13976 if esep {
13977 for k2, v2 := range v {
13978 ee.WriteMapElemKey()
13979 ee.EncodeInt(int64(k2))
13980 ee.WriteMapElemValue()
13981 ee.EncodeInt(int64(v2))
13982 }
13983 } else {
13984 for k2, v2 := range v {
13985 ee.EncodeInt(int64(k2))
13986 ee.EncodeInt(int64(v2))
13987 }
13988 }
13989 }
13990 ee.WriteMapEnd()
13991}
13992
13993func (e *Encoder) fastpathEncMapInt64Float32R(f *codecFnInfo, rv reflect.Value) {
13994 fastpathTV.EncMapInt64Float32V(rv2i(rv).(map[int64]float32), e)
13995}
13996func (_ fastpathT) EncMapInt64Float32V(v map[int64]float32, e *Encoder) {
13997 if v == nil {
13998 e.e.EncodeNil()
13999 return
14000 }
14001 ee, esep := e.e, e.hh.hasElemSeparators()
14002 ee.WriteMapStart(len(v))
14003 if e.h.Canonical {
14004 v2 := make([]int64, len(v))
14005 var i int
14006 for k, _ := range v {
14007 v2[i] = int64(k)
14008 i++
14009 }
14010 sort.Sort(intSlice(v2))
14011 if esep {
14012 for _, k2 := range v2 {
14013 ee.WriteMapElemKey()
14014 ee.EncodeInt(int64(int64(k2)))
14015 ee.WriteMapElemValue()
14016 ee.EncodeFloat32(v[int64(k2)])
14017 }
14018 } else {
14019 for _, k2 := range v2 {
14020 ee.EncodeInt(int64(int64(k2)))
14021 ee.EncodeFloat32(v[int64(k2)])
14022 }
14023 }
14024 } else {
14025 if esep {
14026 for k2, v2 := range v {
14027 ee.WriteMapElemKey()
14028 ee.EncodeInt(int64(k2))
14029 ee.WriteMapElemValue()
14030 ee.EncodeFloat32(v2)
14031 }
14032 } else {
14033 for k2, v2 := range v {
14034 ee.EncodeInt(int64(k2))
14035 ee.EncodeFloat32(v2)
14036 }
14037 }
14038 }
14039 ee.WriteMapEnd()
14040}
14041
14042func (e *Encoder) fastpathEncMapInt64Float64R(f *codecFnInfo, rv reflect.Value) {
14043 fastpathTV.EncMapInt64Float64V(rv2i(rv).(map[int64]float64), e)
14044}
14045func (_ fastpathT) EncMapInt64Float64V(v map[int64]float64, e *Encoder) {
14046 if v == nil {
14047 e.e.EncodeNil()
14048 return
14049 }
14050 ee, esep := e.e, e.hh.hasElemSeparators()
14051 ee.WriteMapStart(len(v))
14052 if e.h.Canonical {
14053 v2 := make([]int64, len(v))
14054 var i int
14055 for k, _ := range v {
14056 v2[i] = int64(k)
14057 i++
14058 }
14059 sort.Sort(intSlice(v2))
14060 if esep {
14061 for _, k2 := range v2 {
14062 ee.WriteMapElemKey()
14063 ee.EncodeInt(int64(int64(k2)))
14064 ee.WriteMapElemValue()
14065 ee.EncodeFloat64(v[int64(k2)])
14066 }
14067 } else {
14068 for _, k2 := range v2 {
14069 ee.EncodeInt(int64(int64(k2)))
14070 ee.EncodeFloat64(v[int64(k2)])
14071 }
14072 }
14073 } else {
14074 if esep {
14075 for k2, v2 := range v {
14076 ee.WriteMapElemKey()
14077 ee.EncodeInt(int64(k2))
14078 ee.WriteMapElemValue()
14079 ee.EncodeFloat64(v2)
14080 }
14081 } else {
14082 for k2, v2 := range v {
14083 ee.EncodeInt(int64(k2))
14084 ee.EncodeFloat64(v2)
14085 }
14086 }
14087 }
14088 ee.WriteMapEnd()
14089}
14090
14091func (e *Encoder) fastpathEncMapInt64BoolR(f *codecFnInfo, rv reflect.Value) {
14092 fastpathTV.EncMapInt64BoolV(rv2i(rv).(map[int64]bool), e)
14093}
14094func (_ fastpathT) EncMapInt64BoolV(v map[int64]bool, e *Encoder) {
14095 if v == nil {
14096 e.e.EncodeNil()
14097 return
14098 }
14099 ee, esep := e.e, e.hh.hasElemSeparators()
14100 ee.WriteMapStart(len(v))
14101 if e.h.Canonical {
14102 v2 := make([]int64, len(v))
14103 var i int
14104 for k, _ := range v {
14105 v2[i] = int64(k)
14106 i++
14107 }
14108 sort.Sort(intSlice(v2))
14109 if esep {
14110 for _, k2 := range v2 {
14111 ee.WriteMapElemKey()
14112 ee.EncodeInt(int64(int64(k2)))
14113 ee.WriteMapElemValue()
14114 ee.EncodeBool(v[int64(k2)])
14115 }
14116 } else {
14117 for _, k2 := range v2 {
14118 ee.EncodeInt(int64(int64(k2)))
14119 ee.EncodeBool(v[int64(k2)])
14120 }
14121 }
14122 } else {
14123 if esep {
14124 for k2, v2 := range v {
14125 ee.WriteMapElemKey()
14126 ee.EncodeInt(int64(k2))
14127 ee.WriteMapElemValue()
14128 ee.EncodeBool(v2)
14129 }
14130 } else {
14131 for k2, v2 := range v {
14132 ee.EncodeInt(int64(k2))
14133 ee.EncodeBool(v2)
14134 }
14135 }
14136 }
14137 ee.WriteMapEnd()
14138}
14139
14140func (e *Encoder) fastpathEncMapBoolIntfR(f *codecFnInfo, rv reflect.Value) {
14141 fastpathTV.EncMapBoolIntfV(rv2i(rv).(map[bool]interface{}), e)
14142}
14143func (_ fastpathT) EncMapBoolIntfV(v map[bool]interface{}, e *Encoder) {
14144 if v == nil {
14145 e.e.EncodeNil()
14146 return
14147 }
14148 ee, esep := e.e, e.hh.hasElemSeparators()
14149 ee.WriteMapStart(len(v))
14150 if e.h.Canonical {
14151 v2 := make([]bool, len(v))
14152 var i int
14153 for k, _ := range v {
14154 v2[i] = bool(k)
14155 i++
14156 }
14157 sort.Sort(boolSlice(v2))
14158 if esep {
14159 for _, k2 := range v2 {
14160 ee.WriteMapElemKey()
14161 ee.EncodeBool(bool(k2))
14162 ee.WriteMapElemValue()
14163 e.encode(v[bool(k2)])
14164 }
14165 } else {
14166 for _, k2 := range v2 {
14167 ee.EncodeBool(bool(k2))
14168 e.encode(v[bool(k2)])
14169 }
14170 }
14171 } else {
14172 if esep {
14173 for k2, v2 := range v {
14174 ee.WriteMapElemKey()
14175 ee.EncodeBool(k2)
14176 ee.WriteMapElemValue()
14177 e.encode(v2)
14178 }
14179 } else {
14180 for k2, v2 := range v {
14181 ee.EncodeBool(k2)
14182 e.encode(v2)
14183 }
14184 }
14185 }
14186 ee.WriteMapEnd()
14187}
14188
14189func (e *Encoder) fastpathEncMapBoolStringR(f *codecFnInfo, rv reflect.Value) {
14190 fastpathTV.EncMapBoolStringV(rv2i(rv).(map[bool]string), e)
14191}
14192func (_ fastpathT) EncMapBoolStringV(v map[bool]string, e *Encoder) {
14193 if v == nil {
14194 e.e.EncodeNil()
14195 return
14196 }
14197 ee, esep := e.e, e.hh.hasElemSeparators()
14198 ee.WriteMapStart(len(v))
14199 if e.h.Canonical {
14200 v2 := make([]bool, len(v))
14201 var i int
14202 for k, _ := range v {
14203 v2[i] = bool(k)
14204 i++
14205 }
14206 sort.Sort(boolSlice(v2))
14207 if esep {
14208 for _, k2 := range v2 {
14209 ee.WriteMapElemKey()
14210 ee.EncodeBool(bool(k2))
14211 ee.WriteMapElemValue()
14212 ee.EncodeString(cUTF8, v[bool(k2)])
14213 }
14214 } else {
14215 for _, k2 := range v2 {
14216 ee.EncodeBool(bool(k2))
14217 ee.EncodeString(cUTF8, v[bool(k2)])
14218 }
14219 }
14220 } else {
14221 if esep {
14222 for k2, v2 := range v {
14223 ee.WriteMapElemKey()
14224 ee.EncodeBool(k2)
14225 ee.WriteMapElemValue()
14226 ee.EncodeString(cUTF8, v2)
14227 }
14228 } else {
14229 for k2, v2 := range v {
14230 ee.EncodeBool(k2)
14231 ee.EncodeString(cUTF8, v2)
14232 }
14233 }
14234 }
14235 ee.WriteMapEnd()
14236}
14237
14238func (e *Encoder) fastpathEncMapBoolUintR(f *codecFnInfo, rv reflect.Value) {
14239 fastpathTV.EncMapBoolUintV(rv2i(rv).(map[bool]uint), e)
14240}
14241func (_ fastpathT) EncMapBoolUintV(v map[bool]uint, e *Encoder) {
14242 if v == nil {
14243 e.e.EncodeNil()
14244 return
14245 }
14246 ee, esep := e.e, e.hh.hasElemSeparators()
14247 ee.WriteMapStart(len(v))
14248 if e.h.Canonical {
14249 v2 := make([]bool, len(v))
14250 var i int
14251 for k, _ := range v {
14252 v2[i] = bool(k)
14253 i++
14254 }
14255 sort.Sort(boolSlice(v2))
14256 if esep {
14257 for _, k2 := range v2 {
14258 ee.WriteMapElemKey()
14259 ee.EncodeBool(bool(k2))
14260 ee.WriteMapElemValue()
14261 ee.EncodeUint(uint64(v[bool(k2)]))
14262 }
14263 } else {
14264 for _, k2 := range v2 {
14265 ee.EncodeBool(bool(k2))
14266 ee.EncodeUint(uint64(v[bool(k2)]))
14267 }
14268 }
14269 } else {
14270 if esep {
14271 for k2, v2 := range v {
14272 ee.WriteMapElemKey()
14273 ee.EncodeBool(k2)
14274 ee.WriteMapElemValue()
14275 ee.EncodeUint(uint64(v2))
14276 }
14277 } else {
14278 for k2, v2 := range v {
14279 ee.EncodeBool(k2)
14280 ee.EncodeUint(uint64(v2))
14281 }
14282 }
14283 }
14284 ee.WriteMapEnd()
14285}
14286
14287func (e *Encoder) fastpathEncMapBoolUint8R(f *codecFnInfo, rv reflect.Value) {
14288 fastpathTV.EncMapBoolUint8V(rv2i(rv).(map[bool]uint8), e)
14289}
14290func (_ fastpathT) EncMapBoolUint8V(v map[bool]uint8, e *Encoder) {
14291 if v == nil {
14292 e.e.EncodeNil()
14293 return
14294 }
14295 ee, esep := e.e, e.hh.hasElemSeparators()
14296 ee.WriteMapStart(len(v))
14297 if e.h.Canonical {
14298 v2 := make([]bool, len(v))
14299 var i int
14300 for k, _ := range v {
14301 v2[i] = bool(k)
14302 i++
14303 }
14304 sort.Sort(boolSlice(v2))
14305 if esep {
14306 for _, k2 := range v2 {
14307 ee.WriteMapElemKey()
14308 ee.EncodeBool(bool(k2))
14309 ee.WriteMapElemValue()
14310 ee.EncodeUint(uint64(v[bool(k2)]))
14311 }
14312 } else {
14313 for _, k2 := range v2 {
14314 ee.EncodeBool(bool(k2))
14315 ee.EncodeUint(uint64(v[bool(k2)]))
14316 }
14317 }
14318 } else {
14319 if esep {
14320 for k2, v2 := range v {
14321 ee.WriteMapElemKey()
14322 ee.EncodeBool(k2)
14323 ee.WriteMapElemValue()
14324 ee.EncodeUint(uint64(v2))
14325 }
14326 } else {
14327 for k2, v2 := range v {
14328 ee.EncodeBool(k2)
14329 ee.EncodeUint(uint64(v2))
14330 }
14331 }
14332 }
14333 ee.WriteMapEnd()
14334}
14335
14336func (e *Encoder) fastpathEncMapBoolUint16R(f *codecFnInfo, rv reflect.Value) {
14337 fastpathTV.EncMapBoolUint16V(rv2i(rv).(map[bool]uint16), e)
14338}
14339func (_ fastpathT) EncMapBoolUint16V(v map[bool]uint16, e *Encoder) {
14340 if v == nil {
14341 e.e.EncodeNil()
14342 return
14343 }
14344 ee, esep := e.e, e.hh.hasElemSeparators()
14345 ee.WriteMapStart(len(v))
14346 if e.h.Canonical {
14347 v2 := make([]bool, len(v))
14348 var i int
14349 for k, _ := range v {
14350 v2[i] = bool(k)
14351 i++
14352 }
14353 sort.Sort(boolSlice(v2))
14354 if esep {
14355 for _, k2 := range v2 {
14356 ee.WriteMapElemKey()
14357 ee.EncodeBool(bool(k2))
14358 ee.WriteMapElemValue()
14359 ee.EncodeUint(uint64(v[bool(k2)]))
14360 }
14361 } else {
14362 for _, k2 := range v2 {
14363 ee.EncodeBool(bool(k2))
14364 ee.EncodeUint(uint64(v[bool(k2)]))
14365 }
14366 }
14367 } else {
14368 if esep {
14369 for k2, v2 := range v {
14370 ee.WriteMapElemKey()
14371 ee.EncodeBool(k2)
14372 ee.WriteMapElemValue()
14373 ee.EncodeUint(uint64(v2))
14374 }
14375 } else {
14376 for k2, v2 := range v {
14377 ee.EncodeBool(k2)
14378 ee.EncodeUint(uint64(v2))
14379 }
14380 }
14381 }
14382 ee.WriteMapEnd()
14383}
14384
14385func (e *Encoder) fastpathEncMapBoolUint32R(f *codecFnInfo, rv reflect.Value) {
14386 fastpathTV.EncMapBoolUint32V(rv2i(rv).(map[bool]uint32), e)
14387}
14388func (_ fastpathT) EncMapBoolUint32V(v map[bool]uint32, e *Encoder) {
14389 if v == nil {
14390 e.e.EncodeNil()
14391 return
14392 }
14393 ee, esep := e.e, e.hh.hasElemSeparators()
14394 ee.WriteMapStart(len(v))
14395 if e.h.Canonical {
14396 v2 := make([]bool, len(v))
14397 var i int
14398 for k, _ := range v {
14399 v2[i] = bool(k)
14400 i++
14401 }
14402 sort.Sort(boolSlice(v2))
14403 if esep {
14404 for _, k2 := range v2 {
14405 ee.WriteMapElemKey()
14406 ee.EncodeBool(bool(k2))
14407 ee.WriteMapElemValue()
14408 ee.EncodeUint(uint64(v[bool(k2)]))
14409 }
14410 } else {
14411 for _, k2 := range v2 {
14412 ee.EncodeBool(bool(k2))
14413 ee.EncodeUint(uint64(v[bool(k2)]))
14414 }
14415 }
14416 } else {
14417 if esep {
14418 for k2, v2 := range v {
14419 ee.WriteMapElemKey()
14420 ee.EncodeBool(k2)
14421 ee.WriteMapElemValue()
14422 ee.EncodeUint(uint64(v2))
14423 }
14424 } else {
14425 for k2, v2 := range v {
14426 ee.EncodeBool(k2)
14427 ee.EncodeUint(uint64(v2))
14428 }
14429 }
14430 }
14431 ee.WriteMapEnd()
14432}
14433
14434func (e *Encoder) fastpathEncMapBoolUint64R(f *codecFnInfo, rv reflect.Value) {
14435 fastpathTV.EncMapBoolUint64V(rv2i(rv).(map[bool]uint64), e)
14436}
14437func (_ fastpathT) EncMapBoolUint64V(v map[bool]uint64, e *Encoder) {
14438 if v == nil {
14439 e.e.EncodeNil()
14440 return
14441 }
14442 ee, esep := e.e, e.hh.hasElemSeparators()
14443 ee.WriteMapStart(len(v))
14444 if e.h.Canonical {
14445 v2 := make([]bool, len(v))
14446 var i int
14447 for k, _ := range v {
14448 v2[i] = bool(k)
14449 i++
14450 }
14451 sort.Sort(boolSlice(v2))
14452 if esep {
14453 for _, k2 := range v2 {
14454 ee.WriteMapElemKey()
14455 ee.EncodeBool(bool(k2))
14456 ee.WriteMapElemValue()
14457 ee.EncodeUint(uint64(v[bool(k2)]))
14458 }
14459 } else {
14460 for _, k2 := range v2 {
14461 ee.EncodeBool(bool(k2))
14462 ee.EncodeUint(uint64(v[bool(k2)]))
14463 }
14464 }
14465 } else {
14466 if esep {
14467 for k2, v2 := range v {
14468 ee.WriteMapElemKey()
14469 ee.EncodeBool(k2)
14470 ee.WriteMapElemValue()
14471 ee.EncodeUint(uint64(v2))
14472 }
14473 } else {
14474 for k2, v2 := range v {
14475 ee.EncodeBool(k2)
14476 ee.EncodeUint(uint64(v2))
14477 }
14478 }
14479 }
14480 ee.WriteMapEnd()
14481}
14482
14483func (e *Encoder) fastpathEncMapBoolUintptrR(f *codecFnInfo, rv reflect.Value) {
14484 fastpathTV.EncMapBoolUintptrV(rv2i(rv).(map[bool]uintptr), e)
14485}
14486func (_ fastpathT) EncMapBoolUintptrV(v map[bool]uintptr, e *Encoder) {
14487 if v == nil {
14488 e.e.EncodeNil()
14489 return
14490 }
14491 ee, esep := e.e, e.hh.hasElemSeparators()
14492 ee.WriteMapStart(len(v))
14493 if e.h.Canonical {
14494 v2 := make([]bool, len(v))
14495 var i int
14496 for k, _ := range v {
14497 v2[i] = bool(k)
14498 i++
14499 }
14500 sort.Sort(boolSlice(v2))
14501 if esep {
14502 for _, k2 := range v2 {
14503 ee.WriteMapElemKey()
14504 ee.EncodeBool(bool(k2))
14505 ee.WriteMapElemValue()
14506 e.encode(v[bool(k2)])
14507 }
14508 } else {
14509 for _, k2 := range v2 {
14510 ee.EncodeBool(bool(k2))
14511 e.encode(v[bool(k2)])
14512 }
14513 }
14514 } else {
14515 if esep {
14516 for k2, v2 := range v {
14517 ee.WriteMapElemKey()
14518 ee.EncodeBool(k2)
14519 ee.WriteMapElemValue()
14520 e.encode(v2)
14521 }
14522 } else {
14523 for k2, v2 := range v {
14524 ee.EncodeBool(k2)
14525 e.encode(v2)
14526 }
14527 }
14528 }
14529 ee.WriteMapEnd()
14530}
14531
14532func (e *Encoder) fastpathEncMapBoolIntR(f *codecFnInfo, rv reflect.Value) {
14533 fastpathTV.EncMapBoolIntV(rv2i(rv).(map[bool]int), e)
14534}
14535func (_ fastpathT) EncMapBoolIntV(v map[bool]int, e *Encoder) {
14536 if v == nil {
14537 e.e.EncodeNil()
14538 return
14539 }
14540 ee, esep := e.e, e.hh.hasElemSeparators()
14541 ee.WriteMapStart(len(v))
14542 if e.h.Canonical {
14543 v2 := make([]bool, len(v))
14544 var i int
14545 for k, _ := range v {
14546 v2[i] = bool(k)
14547 i++
14548 }
14549 sort.Sort(boolSlice(v2))
14550 if esep {
14551 for _, k2 := range v2 {
14552 ee.WriteMapElemKey()
14553 ee.EncodeBool(bool(k2))
14554 ee.WriteMapElemValue()
14555 ee.EncodeInt(int64(v[bool(k2)]))
14556 }
14557 } else {
14558 for _, k2 := range v2 {
14559 ee.EncodeBool(bool(k2))
14560 ee.EncodeInt(int64(v[bool(k2)]))
14561 }
14562 }
14563 } else {
14564 if esep {
14565 for k2, v2 := range v {
14566 ee.WriteMapElemKey()
14567 ee.EncodeBool(k2)
14568 ee.WriteMapElemValue()
14569 ee.EncodeInt(int64(v2))
14570 }
14571 } else {
14572 for k2, v2 := range v {
14573 ee.EncodeBool(k2)
14574 ee.EncodeInt(int64(v2))
14575 }
14576 }
14577 }
14578 ee.WriteMapEnd()
14579}
14580
14581func (e *Encoder) fastpathEncMapBoolInt8R(f *codecFnInfo, rv reflect.Value) {
14582 fastpathTV.EncMapBoolInt8V(rv2i(rv).(map[bool]int8), e)
14583}
14584func (_ fastpathT) EncMapBoolInt8V(v map[bool]int8, e *Encoder) {
14585 if v == nil {
14586 e.e.EncodeNil()
14587 return
14588 }
14589 ee, esep := e.e, e.hh.hasElemSeparators()
14590 ee.WriteMapStart(len(v))
14591 if e.h.Canonical {
14592 v2 := make([]bool, len(v))
14593 var i int
14594 for k, _ := range v {
14595 v2[i] = bool(k)
14596 i++
14597 }
14598 sort.Sort(boolSlice(v2))
14599 if esep {
14600 for _, k2 := range v2 {
14601 ee.WriteMapElemKey()
14602 ee.EncodeBool(bool(k2))
14603 ee.WriteMapElemValue()
14604 ee.EncodeInt(int64(v[bool(k2)]))
14605 }
14606 } else {
14607 for _, k2 := range v2 {
14608 ee.EncodeBool(bool(k2))
14609 ee.EncodeInt(int64(v[bool(k2)]))
14610 }
14611 }
14612 } else {
14613 if esep {
14614 for k2, v2 := range v {
14615 ee.WriteMapElemKey()
14616 ee.EncodeBool(k2)
14617 ee.WriteMapElemValue()
14618 ee.EncodeInt(int64(v2))
14619 }
14620 } else {
14621 for k2, v2 := range v {
14622 ee.EncodeBool(k2)
14623 ee.EncodeInt(int64(v2))
14624 }
14625 }
14626 }
14627 ee.WriteMapEnd()
14628}
14629
14630func (e *Encoder) fastpathEncMapBoolInt16R(f *codecFnInfo, rv reflect.Value) {
14631 fastpathTV.EncMapBoolInt16V(rv2i(rv).(map[bool]int16), e)
14632}
14633func (_ fastpathT) EncMapBoolInt16V(v map[bool]int16, e *Encoder) {
14634 if v == nil {
14635 e.e.EncodeNil()
14636 return
14637 }
14638 ee, esep := e.e, e.hh.hasElemSeparators()
14639 ee.WriteMapStart(len(v))
14640 if e.h.Canonical {
14641 v2 := make([]bool, len(v))
14642 var i int
14643 for k, _ := range v {
14644 v2[i] = bool(k)
14645 i++
14646 }
14647 sort.Sort(boolSlice(v2))
14648 if esep {
14649 for _, k2 := range v2 {
14650 ee.WriteMapElemKey()
14651 ee.EncodeBool(bool(k2))
14652 ee.WriteMapElemValue()
14653 ee.EncodeInt(int64(v[bool(k2)]))
14654 }
14655 } else {
14656 for _, k2 := range v2 {
14657 ee.EncodeBool(bool(k2))
14658 ee.EncodeInt(int64(v[bool(k2)]))
14659 }
14660 }
14661 } else {
14662 if esep {
14663 for k2, v2 := range v {
14664 ee.WriteMapElemKey()
14665 ee.EncodeBool(k2)
14666 ee.WriteMapElemValue()
14667 ee.EncodeInt(int64(v2))
14668 }
14669 } else {
14670 for k2, v2 := range v {
14671 ee.EncodeBool(k2)
14672 ee.EncodeInt(int64(v2))
14673 }
14674 }
14675 }
14676 ee.WriteMapEnd()
14677}
14678
14679func (e *Encoder) fastpathEncMapBoolInt32R(f *codecFnInfo, rv reflect.Value) {
14680 fastpathTV.EncMapBoolInt32V(rv2i(rv).(map[bool]int32), e)
14681}
14682func (_ fastpathT) EncMapBoolInt32V(v map[bool]int32, e *Encoder) {
14683 if v == nil {
14684 e.e.EncodeNil()
14685 return
14686 }
14687 ee, esep := e.e, e.hh.hasElemSeparators()
14688 ee.WriteMapStart(len(v))
14689 if e.h.Canonical {
14690 v2 := make([]bool, len(v))
14691 var i int
14692 for k, _ := range v {
14693 v2[i] = bool(k)
14694 i++
14695 }
14696 sort.Sort(boolSlice(v2))
14697 if esep {
14698 for _, k2 := range v2 {
14699 ee.WriteMapElemKey()
14700 ee.EncodeBool(bool(k2))
14701 ee.WriteMapElemValue()
14702 ee.EncodeInt(int64(v[bool(k2)]))
14703 }
14704 } else {
14705 for _, k2 := range v2 {
14706 ee.EncodeBool(bool(k2))
14707 ee.EncodeInt(int64(v[bool(k2)]))
14708 }
14709 }
14710 } else {
14711 if esep {
14712 for k2, v2 := range v {
14713 ee.WriteMapElemKey()
14714 ee.EncodeBool(k2)
14715 ee.WriteMapElemValue()
14716 ee.EncodeInt(int64(v2))
14717 }
14718 } else {
14719 for k2, v2 := range v {
14720 ee.EncodeBool(k2)
14721 ee.EncodeInt(int64(v2))
14722 }
14723 }
14724 }
14725 ee.WriteMapEnd()
14726}
14727
14728func (e *Encoder) fastpathEncMapBoolInt64R(f *codecFnInfo, rv reflect.Value) {
14729 fastpathTV.EncMapBoolInt64V(rv2i(rv).(map[bool]int64), e)
14730}
14731func (_ fastpathT) EncMapBoolInt64V(v map[bool]int64, e *Encoder) {
14732 if v == nil {
14733 e.e.EncodeNil()
14734 return
14735 }
14736 ee, esep := e.e, e.hh.hasElemSeparators()
14737 ee.WriteMapStart(len(v))
14738 if e.h.Canonical {
14739 v2 := make([]bool, len(v))
14740 var i int
14741 for k, _ := range v {
14742 v2[i] = bool(k)
14743 i++
14744 }
14745 sort.Sort(boolSlice(v2))
14746 if esep {
14747 for _, k2 := range v2 {
14748 ee.WriteMapElemKey()
14749 ee.EncodeBool(bool(k2))
14750 ee.WriteMapElemValue()
14751 ee.EncodeInt(int64(v[bool(k2)]))
14752 }
14753 } else {
14754 for _, k2 := range v2 {
14755 ee.EncodeBool(bool(k2))
14756 ee.EncodeInt(int64(v[bool(k2)]))
14757 }
14758 }
14759 } else {
14760 if esep {
14761 for k2, v2 := range v {
14762 ee.WriteMapElemKey()
14763 ee.EncodeBool(k2)
14764 ee.WriteMapElemValue()
14765 ee.EncodeInt(int64(v2))
14766 }
14767 } else {
14768 for k2, v2 := range v {
14769 ee.EncodeBool(k2)
14770 ee.EncodeInt(int64(v2))
14771 }
14772 }
14773 }
14774 ee.WriteMapEnd()
14775}
14776
14777func (e *Encoder) fastpathEncMapBoolFloat32R(f *codecFnInfo, rv reflect.Value) {
14778 fastpathTV.EncMapBoolFloat32V(rv2i(rv).(map[bool]float32), e)
14779}
14780func (_ fastpathT) EncMapBoolFloat32V(v map[bool]float32, e *Encoder) {
14781 if v == nil {
14782 e.e.EncodeNil()
14783 return
14784 }
14785 ee, esep := e.e, e.hh.hasElemSeparators()
14786 ee.WriteMapStart(len(v))
14787 if e.h.Canonical {
14788 v2 := make([]bool, len(v))
14789 var i int
14790 for k, _ := range v {
14791 v2[i] = bool(k)
14792 i++
14793 }
14794 sort.Sort(boolSlice(v2))
14795 if esep {
14796 for _, k2 := range v2 {
14797 ee.WriteMapElemKey()
14798 ee.EncodeBool(bool(k2))
14799 ee.WriteMapElemValue()
14800 ee.EncodeFloat32(v[bool(k2)])
14801 }
14802 } else {
14803 for _, k2 := range v2 {
14804 ee.EncodeBool(bool(k2))
14805 ee.EncodeFloat32(v[bool(k2)])
14806 }
14807 }
14808 } else {
14809 if esep {
14810 for k2, v2 := range v {
14811 ee.WriteMapElemKey()
14812 ee.EncodeBool(k2)
14813 ee.WriteMapElemValue()
14814 ee.EncodeFloat32(v2)
14815 }
14816 } else {
14817 for k2, v2 := range v {
14818 ee.EncodeBool(k2)
14819 ee.EncodeFloat32(v2)
14820 }
14821 }
14822 }
14823 ee.WriteMapEnd()
14824}
14825
14826func (e *Encoder) fastpathEncMapBoolFloat64R(f *codecFnInfo, rv reflect.Value) {
14827 fastpathTV.EncMapBoolFloat64V(rv2i(rv).(map[bool]float64), e)
14828}
14829func (_ fastpathT) EncMapBoolFloat64V(v map[bool]float64, e *Encoder) {
14830 if v == nil {
14831 e.e.EncodeNil()
14832 return
14833 }
14834 ee, esep := e.e, e.hh.hasElemSeparators()
14835 ee.WriteMapStart(len(v))
14836 if e.h.Canonical {
14837 v2 := make([]bool, len(v))
14838 var i int
14839 for k, _ := range v {
14840 v2[i] = bool(k)
14841 i++
14842 }
14843 sort.Sort(boolSlice(v2))
14844 if esep {
14845 for _, k2 := range v2 {
14846 ee.WriteMapElemKey()
14847 ee.EncodeBool(bool(k2))
14848 ee.WriteMapElemValue()
14849 ee.EncodeFloat64(v[bool(k2)])
14850 }
14851 } else {
14852 for _, k2 := range v2 {
14853 ee.EncodeBool(bool(k2))
14854 ee.EncodeFloat64(v[bool(k2)])
14855 }
14856 }
14857 } else {
14858 if esep {
14859 for k2, v2 := range v {
14860 ee.WriteMapElemKey()
14861 ee.EncodeBool(k2)
14862 ee.WriteMapElemValue()
14863 ee.EncodeFloat64(v2)
14864 }
14865 } else {
14866 for k2, v2 := range v {
14867 ee.EncodeBool(k2)
14868 ee.EncodeFloat64(v2)
14869 }
14870 }
14871 }
14872 ee.WriteMapEnd()
14873}
14874
14875func (e *Encoder) fastpathEncMapBoolBoolR(f *codecFnInfo, rv reflect.Value) {
14876 fastpathTV.EncMapBoolBoolV(rv2i(rv).(map[bool]bool), e)
14877}
14878func (_ fastpathT) EncMapBoolBoolV(v map[bool]bool, e *Encoder) {
14879 if v == nil {
14880 e.e.EncodeNil()
14881 return
14882 }
14883 ee, esep := e.e, e.hh.hasElemSeparators()
14884 ee.WriteMapStart(len(v))
14885 if e.h.Canonical {
14886 v2 := make([]bool, len(v))
14887 var i int
14888 for k, _ := range v {
14889 v2[i] = bool(k)
14890 i++
14891 }
14892 sort.Sort(boolSlice(v2))
14893 if esep {
14894 for _, k2 := range v2 {
14895 ee.WriteMapElemKey()
14896 ee.EncodeBool(bool(k2))
14897 ee.WriteMapElemValue()
14898 ee.EncodeBool(v[bool(k2)])
14899 }
14900 } else {
14901 for _, k2 := range v2 {
14902 ee.EncodeBool(bool(k2))
14903 ee.EncodeBool(v[bool(k2)])
14904 }
14905 }
14906 } else {
14907 if esep {
14908 for k2, v2 := range v {
14909 ee.WriteMapElemKey()
14910 ee.EncodeBool(k2)
14911 ee.WriteMapElemValue()
14912 ee.EncodeBool(v2)
14913 }
14914 } else {
14915 for k2, v2 := range v {
14916 ee.EncodeBool(k2)
14917 ee.EncodeBool(v2)
14918 }
14919 }
14920 }
14921 ee.WriteMapEnd()
14922}
14923
14924// -- decode
14925
14926// -- -- fast path type switch
14927func fastpathDecodeTypeSwitch(iv interface{}, d *Decoder) bool {
14928 var changed bool
14929 switch v := iv.(type) {
14930
14931 case []interface{}:
14932 var v2 []interface{}
14933 v2, changed = fastpathTV.DecSliceIntfV(v, false, d)
14934 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
14935 copy(v, v2)
14936 }
14937 case *[]interface{}:
14938 var v2 []interface{}
14939 v2, changed = fastpathTV.DecSliceIntfV(*v, true, d)
14940 if changed {
14941 *v = v2
14942 }
14943 case []string:
14944 var v2 []string
14945 v2, changed = fastpathTV.DecSliceStringV(v, false, d)
14946 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
14947 copy(v, v2)
14948 }
14949 case *[]string:
14950 var v2 []string
14951 v2, changed = fastpathTV.DecSliceStringV(*v, true, d)
14952 if changed {
14953 *v = v2
14954 }
14955 case []float32:
14956 var v2 []float32
14957 v2, changed = fastpathTV.DecSliceFloat32V(v, false, d)
14958 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
14959 copy(v, v2)
14960 }
14961 case *[]float32:
14962 var v2 []float32
14963 v2, changed = fastpathTV.DecSliceFloat32V(*v, true, d)
14964 if changed {
14965 *v = v2
14966 }
14967 case []float64:
14968 var v2 []float64
14969 v2, changed = fastpathTV.DecSliceFloat64V(v, false, d)
14970 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
14971 copy(v, v2)
14972 }
14973 case *[]float64:
14974 var v2 []float64
14975 v2, changed = fastpathTV.DecSliceFloat64V(*v, true, d)
14976 if changed {
14977 *v = v2
14978 }
14979 case []uint:
14980 var v2 []uint
14981 v2, changed = fastpathTV.DecSliceUintV(v, false, d)
14982 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
14983 copy(v, v2)
14984 }
14985 case *[]uint:
14986 var v2 []uint
14987 v2, changed = fastpathTV.DecSliceUintV(*v, true, d)
14988 if changed {
14989 *v = v2
14990 }
14991 case []uint16:
14992 var v2 []uint16
14993 v2, changed = fastpathTV.DecSliceUint16V(v, false, d)
14994 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
14995 copy(v, v2)
14996 }
14997 case *[]uint16:
14998 var v2 []uint16
14999 v2, changed = fastpathTV.DecSliceUint16V(*v, true, d)
15000 if changed {
15001 *v = v2
15002 }
15003 case []uint32:
15004 var v2 []uint32
15005 v2, changed = fastpathTV.DecSliceUint32V(v, false, d)
15006 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15007 copy(v, v2)
15008 }
15009 case *[]uint32:
15010 var v2 []uint32
15011 v2, changed = fastpathTV.DecSliceUint32V(*v, true, d)
15012 if changed {
15013 *v = v2
15014 }
15015 case []uint64:
15016 var v2 []uint64
15017 v2, changed = fastpathTV.DecSliceUint64V(v, false, d)
15018 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15019 copy(v, v2)
15020 }
15021 case *[]uint64:
15022 var v2 []uint64
15023 v2, changed = fastpathTV.DecSliceUint64V(*v, true, d)
15024 if changed {
15025 *v = v2
15026 }
15027 case []uintptr:
15028 var v2 []uintptr
15029 v2, changed = fastpathTV.DecSliceUintptrV(v, false, d)
15030 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15031 copy(v, v2)
15032 }
15033 case *[]uintptr:
15034 var v2 []uintptr
15035 v2, changed = fastpathTV.DecSliceUintptrV(*v, true, d)
15036 if changed {
15037 *v = v2
15038 }
15039 case []int:
15040 var v2 []int
15041 v2, changed = fastpathTV.DecSliceIntV(v, false, d)
15042 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15043 copy(v, v2)
15044 }
15045 case *[]int:
15046 var v2 []int
15047 v2, changed = fastpathTV.DecSliceIntV(*v, true, d)
15048 if changed {
15049 *v = v2
15050 }
15051 case []int8:
15052 var v2 []int8
15053 v2, changed = fastpathTV.DecSliceInt8V(v, false, d)
15054 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15055 copy(v, v2)
15056 }
15057 case *[]int8:
15058 var v2 []int8
15059 v2, changed = fastpathTV.DecSliceInt8V(*v, true, d)
15060 if changed {
15061 *v = v2
15062 }
15063 case []int16:
15064 var v2 []int16
15065 v2, changed = fastpathTV.DecSliceInt16V(v, false, d)
15066 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15067 copy(v, v2)
15068 }
15069 case *[]int16:
15070 var v2 []int16
15071 v2, changed = fastpathTV.DecSliceInt16V(*v, true, d)
15072 if changed {
15073 *v = v2
15074 }
15075 case []int32:
15076 var v2 []int32
15077 v2, changed = fastpathTV.DecSliceInt32V(v, false, d)
15078 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15079 copy(v, v2)
15080 }
15081 case *[]int32:
15082 var v2 []int32
15083 v2, changed = fastpathTV.DecSliceInt32V(*v, true, d)
15084 if changed {
15085 *v = v2
15086 }
15087 case []int64:
15088 var v2 []int64
15089 v2, changed = fastpathTV.DecSliceInt64V(v, false, d)
15090 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15091 copy(v, v2)
15092 }
15093 case *[]int64:
15094 var v2 []int64
15095 v2, changed = fastpathTV.DecSliceInt64V(*v, true, d)
15096 if changed {
15097 *v = v2
15098 }
15099 case []bool:
15100 var v2 []bool
15101 v2, changed = fastpathTV.DecSliceBoolV(v, false, d)
15102 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
15103 copy(v, v2)
15104 }
15105 case *[]bool:
15106 var v2 []bool
15107 v2, changed = fastpathTV.DecSliceBoolV(*v, true, d)
15108 if changed {
15109 *v = v2
15110 }
15111
15112 case map[interface{}]interface{}:
15113 fastpathTV.DecMapIntfIntfV(v, false, d)
15114 case *map[interface{}]interface{}:
15115 var v2 map[interface{}]interface{}
15116 v2, changed = fastpathTV.DecMapIntfIntfV(*v, true, d)
15117 if changed {
15118 *v = v2
15119 }
15120 case map[interface{}]string:
15121 fastpathTV.DecMapIntfStringV(v, false, d)
15122 case *map[interface{}]string:
15123 var v2 map[interface{}]string
15124 v2, changed = fastpathTV.DecMapIntfStringV(*v, true, d)
15125 if changed {
15126 *v = v2
15127 }
15128 case map[interface{}]uint:
15129 fastpathTV.DecMapIntfUintV(v, false, d)
15130 case *map[interface{}]uint:
15131 var v2 map[interface{}]uint
15132 v2, changed = fastpathTV.DecMapIntfUintV(*v, true, d)
15133 if changed {
15134 *v = v2
15135 }
15136 case map[interface{}]uint8:
15137 fastpathTV.DecMapIntfUint8V(v, false, d)
15138 case *map[interface{}]uint8:
15139 var v2 map[interface{}]uint8
15140 v2, changed = fastpathTV.DecMapIntfUint8V(*v, true, d)
15141 if changed {
15142 *v = v2
15143 }
15144 case map[interface{}]uint16:
15145 fastpathTV.DecMapIntfUint16V(v, false, d)
15146 case *map[interface{}]uint16:
15147 var v2 map[interface{}]uint16
15148 v2, changed = fastpathTV.DecMapIntfUint16V(*v, true, d)
15149 if changed {
15150 *v = v2
15151 }
15152 case map[interface{}]uint32:
15153 fastpathTV.DecMapIntfUint32V(v, false, d)
15154 case *map[interface{}]uint32:
15155 var v2 map[interface{}]uint32
15156 v2, changed = fastpathTV.DecMapIntfUint32V(*v, true, d)
15157 if changed {
15158 *v = v2
15159 }
15160 case map[interface{}]uint64:
15161 fastpathTV.DecMapIntfUint64V(v, false, d)
15162 case *map[interface{}]uint64:
15163 var v2 map[interface{}]uint64
15164 v2, changed = fastpathTV.DecMapIntfUint64V(*v, true, d)
15165 if changed {
15166 *v = v2
15167 }
15168 case map[interface{}]uintptr:
15169 fastpathTV.DecMapIntfUintptrV(v, false, d)
15170 case *map[interface{}]uintptr:
15171 var v2 map[interface{}]uintptr
15172 v2, changed = fastpathTV.DecMapIntfUintptrV(*v, true, d)
15173 if changed {
15174 *v = v2
15175 }
15176 case map[interface{}]int:
15177 fastpathTV.DecMapIntfIntV(v, false, d)
15178 case *map[interface{}]int:
15179 var v2 map[interface{}]int
15180 v2, changed = fastpathTV.DecMapIntfIntV(*v, true, d)
15181 if changed {
15182 *v = v2
15183 }
15184 case map[interface{}]int8:
15185 fastpathTV.DecMapIntfInt8V(v, false, d)
15186 case *map[interface{}]int8:
15187 var v2 map[interface{}]int8
15188 v2, changed = fastpathTV.DecMapIntfInt8V(*v, true, d)
15189 if changed {
15190 *v = v2
15191 }
15192 case map[interface{}]int16:
15193 fastpathTV.DecMapIntfInt16V(v, false, d)
15194 case *map[interface{}]int16:
15195 var v2 map[interface{}]int16
15196 v2, changed = fastpathTV.DecMapIntfInt16V(*v, true, d)
15197 if changed {
15198 *v = v2
15199 }
15200 case map[interface{}]int32:
15201 fastpathTV.DecMapIntfInt32V(v, false, d)
15202 case *map[interface{}]int32:
15203 var v2 map[interface{}]int32
15204 v2, changed = fastpathTV.DecMapIntfInt32V(*v, true, d)
15205 if changed {
15206 *v = v2
15207 }
15208 case map[interface{}]int64:
15209 fastpathTV.DecMapIntfInt64V(v, false, d)
15210 case *map[interface{}]int64:
15211 var v2 map[interface{}]int64
15212 v2, changed = fastpathTV.DecMapIntfInt64V(*v, true, d)
15213 if changed {
15214 *v = v2
15215 }
15216 case map[interface{}]float32:
15217 fastpathTV.DecMapIntfFloat32V(v, false, d)
15218 case *map[interface{}]float32:
15219 var v2 map[interface{}]float32
15220 v2, changed = fastpathTV.DecMapIntfFloat32V(*v, true, d)
15221 if changed {
15222 *v = v2
15223 }
15224 case map[interface{}]float64:
15225 fastpathTV.DecMapIntfFloat64V(v, false, d)
15226 case *map[interface{}]float64:
15227 var v2 map[interface{}]float64
15228 v2, changed = fastpathTV.DecMapIntfFloat64V(*v, true, d)
15229 if changed {
15230 *v = v2
15231 }
15232 case map[interface{}]bool:
15233 fastpathTV.DecMapIntfBoolV(v, false, d)
15234 case *map[interface{}]bool:
15235 var v2 map[interface{}]bool
15236 v2, changed = fastpathTV.DecMapIntfBoolV(*v, true, d)
15237 if changed {
15238 *v = v2
15239 }
15240 case map[string]interface{}:
15241 fastpathTV.DecMapStringIntfV(v, false, d)
15242 case *map[string]interface{}:
15243 var v2 map[string]interface{}
15244 v2, changed = fastpathTV.DecMapStringIntfV(*v, true, d)
15245 if changed {
15246 *v = v2
15247 }
15248 case map[string]string:
15249 fastpathTV.DecMapStringStringV(v, false, d)
15250 case *map[string]string:
15251 var v2 map[string]string
15252 v2, changed = fastpathTV.DecMapStringStringV(*v, true, d)
15253 if changed {
15254 *v = v2
15255 }
15256 case map[string]uint:
15257 fastpathTV.DecMapStringUintV(v, false, d)
15258 case *map[string]uint:
15259 var v2 map[string]uint
15260 v2, changed = fastpathTV.DecMapStringUintV(*v, true, d)
15261 if changed {
15262 *v = v2
15263 }
15264 case map[string]uint8:
15265 fastpathTV.DecMapStringUint8V(v, false, d)
15266 case *map[string]uint8:
15267 var v2 map[string]uint8
15268 v2, changed = fastpathTV.DecMapStringUint8V(*v, true, d)
15269 if changed {
15270 *v = v2
15271 }
15272 case map[string]uint16:
15273 fastpathTV.DecMapStringUint16V(v, false, d)
15274 case *map[string]uint16:
15275 var v2 map[string]uint16
15276 v2, changed = fastpathTV.DecMapStringUint16V(*v, true, d)
15277 if changed {
15278 *v = v2
15279 }
15280 case map[string]uint32:
15281 fastpathTV.DecMapStringUint32V(v, false, d)
15282 case *map[string]uint32:
15283 var v2 map[string]uint32
15284 v2, changed = fastpathTV.DecMapStringUint32V(*v, true, d)
15285 if changed {
15286 *v = v2
15287 }
15288 case map[string]uint64:
15289 fastpathTV.DecMapStringUint64V(v, false, d)
15290 case *map[string]uint64:
15291 var v2 map[string]uint64
15292 v2, changed = fastpathTV.DecMapStringUint64V(*v, true, d)
15293 if changed {
15294 *v = v2
15295 }
15296 case map[string]uintptr:
15297 fastpathTV.DecMapStringUintptrV(v, false, d)
15298 case *map[string]uintptr:
15299 var v2 map[string]uintptr
15300 v2, changed = fastpathTV.DecMapStringUintptrV(*v, true, d)
15301 if changed {
15302 *v = v2
15303 }
15304 case map[string]int:
15305 fastpathTV.DecMapStringIntV(v, false, d)
15306 case *map[string]int:
15307 var v2 map[string]int
15308 v2, changed = fastpathTV.DecMapStringIntV(*v, true, d)
15309 if changed {
15310 *v = v2
15311 }
15312 case map[string]int8:
15313 fastpathTV.DecMapStringInt8V(v, false, d)
15314 case *map[string]int8:
15315 var v2 map[string]int8
15316 v2, changed = fastpathTV.DecMapStringInt8V(*v, true, d)
15317 if changed {
15318 *v = v2
15319 }
15320 case map[string]int16:
15321 fastpathTV.DecMapStringInt16V(v, false, d)
15322 case *map[string]int16:
15323 var v2 map[string]int16
15324 v2, changed = fastpathTV.DecMapStringInt16V(*v, true, d)
15325 if changed {
15326 *v = v2
15327 }
15328 case map[string]int32:
15329 fastpathTV.DecMapStringInt32V(v, false, d)
15330 case *map[string]int32:
15331 var v2 map[string]int32
15332 v2, changed = fastpathTV.DecMapStringInt32V(*v, true, d)
15333 if changed {
15334 *v = v2
15335 }
15336 case map[string]int64:
15337 fastpathTV.DecMapStringInt64V(v, false, d)
15338 case *map[string]int64:
15339 var v2 map[string]int64
15340 v2, changed = fastpathTV.DecMapStringInt64V(*v, true, d)
15341 if changed {
15342 *v = v2
15343 }
15344 case map[string]float32:
15345 fastpathTV.DecMapStringFloat32V(v, false, d)
15346 case *map[string]float32:
15347 var v2 map[string]float32
15348 v2, changed = fastpathTV.DecMapStringFloat32V(*v, true, d)
15349 if changed {
15350 *v = v2
15351 }
15352 case map[string]float64:
15353 fastpathTV.DecMapStringFloat64V(v, false, d)
15354 case *map[string]float64:
15355 var v2 map[string]float64
15356 v2, changed = fastpathTV.DecMapStringFloat64V(*v, true, d)
15357 if changed {
15358 *v = v2
15359 }
15360 case map[string]bool:
15361 fastpathTV.DecMapStringBoolV(v, false, d)
15362 case *map[string]bool:
15363 var v2 map[string]bool
15364 v2, changed = fastpathTV.DecMapStringBoolV(*v, true, d)
15365 if changed {
15366 *v = v2
15367 }
15368 case map[float32]interface{}:
15369 fastpathTV.DecMapFloat32IntfV(v, false, d)
15370 case *map[float32]interface{}:
15371 var v2 map[float32]interface{}
15372 v2, changed = fastpathTV.DecMapFloat32IntfV(*v, true, d)
15373 if changed {
15374 *v = v2
15375 }
15376 case map[float32]string:
15377 fastpathTV.DecMapFloat32StringV(v, false, d)
15378 case *map[float32]string:
15379 var v2 map[float32]string
15380 v2, changed = fastpathTV.DecMapFloat32StringV(*v, true, d)
15381 if changed {
15382 *v = v2
15383 }
15384 case map[float32]uint:
15385 fastpathTV.DecMapFloat32UintV(v, false, d)
15386 case *map[float32]uint:
15387 var v2 map[float32]uint
15388 v2, changed = fastpathTV.DecMapFloat32UintV(*v, true, d)
15389 if changed {
15390 *v = v2
15391 }
15392 case map[float32]uint8:
15393 fastpathTV.DecMapFloat32Uint8V(v, false, d)
15394 case *map[float32]uint8:
15395 var v2 map[float32]uint8
15396 v2, changed = fastpathTV.DecMapFloat32Uint8V(*v, true, d)
15397 if changed {
15398 *v = v2
15399 }
15400 case map[float32]uint16:
15401 fastpathTV.DecMapFloat32Uint16V(v, false, d)
15402 case *map[float32]uint16:
15403 var v2 map[float32]uint16
15404 v2, changed = fastpathTV.DecMapFloat32Uint16V(*v, true, d)
15405 if changed {
15406 *v = v2
15407 }
15408 case map[float32]uint32:
15409 fastpathTV.DecMapFloat32Uint32V(v, false, d)
15410 case *map[float32]uint32:
15411 var v2 map[float32]uint32
15412 v2, changed = fastpathTV.DecMapFloat32Uint32V(*v, true, d)
15413 if changed {
15414 *v = v2
15415 }
15416 case map[float32]uint64:
15417 fastpathTV.DecMapFloat32Uint64V(v, false, d)
15418 case *map[float32]uint64:
15419 var v2 map[float32]uint64
15420 v2, changed = fastpathTV.DecMapFloat32Uint64V(*v, true, d)
15421 if changed {
15422 *v = v2
15423 }
15424 case map[float32]uintptr:
15425 fastpathTV.DecMapFloat32UintptrV(v, false, d)
15426 case *map[float32]uintptr:
15427 var v2 map[float32]uintptr
15428 v2, changed = fastpathTV.DecMapFloat32UintptrV(*v, true, d)
15429 if changed {
15430 *v = v2
15431 }
15432 case map[float32]int:
15433 fastpathTV.DecMapFloat32IntV(v, false, d)
15434 case *map[float32]int:
15435 var v2 map[float32]int
15436 v2, changed = fastpathTV.DecMapFloat32IntV(*v, true, d)
15437 if changed {
15438 *v = v2
15439 }
15440 case map[float32]int8:
15441 fastpathTV.DecMapFloat32Int8V(v, false, d)
15442 case *map[float32]int8:
15443 var v2 map[float32]int8
15444 v2, changed = fastpathTV.DecMapFloat32Int8V(*v, true, d)
15445 if changed {
15446 *v = v2
15447 }
15448 case map[float32]int16:
15449 fastpathTV.DecMapFloat32Int16V(v, false, d)
15450 case *map[float32]int16:
15451 var v2 map[float32]int16
15452 v2, changed = fastpathTV.DecMapFloat32Int16V(*v, true, d)
15453 if changed {
15454 *v = v2
15455 }
15456 case map[float32]int32:
15457 fastpathTV.DecMapFloat32Int32V(v, false, d)
15458 case *map[float32]int32:
15459 var v2 map[float32]int32
15460 v2, changed = fastpathTV.DecMapFloat32Int32V(*v, true, d)
15461 if changed {
15462 *v = v2
15463 }
15464 case map[float32]int64:
15465 fastpathTV.DecMapFloat32Int64V(v, false, d)
15466 case *map[float32]int64:
15467 var v2 map[float32]int64
15468 v2, changed = fastpathTV.DecMapFloat32Int64V(*v, true, d)
15469 if changed {
15470 *v = v2
15471 }
15472 case map[float32]float32:
15473 fastpathTV.DecMapFloat32Float32V(v, false, d)
15474 case *map[float32]float32:
15475 var v2 map[float32]float32
15476 v2, changed = fastpathTV.DecMapFloat32Float32V(*v, true, d)
15477 if changed {
15478 *v = v2
15479 }
15480 case map[float32]float64:
15481 fastpathTV.DecMapFloat32Float64V(v, false, d)
15482 case *map[float32]float64:
15483 var v2 map[float32]float64
15484 v2, changed = fastpathTV.DecMapFloat32Float64V(*v, true, d)
15485 if changed {
15486 *v = v2
15487 }
15488 case map[float32]bool:
15489 fastpathTV.DecMapFloat32BoolV(v, false, d)
15490 case *map[float32]bool:
15491 var v2 map[float32]bool
15492 v2, changed = fastpathTV.DecMapFloat32BoolV(*v, true, d)
15493 if changed {
15494 *v = v2
15495 }
15496 case map[float64]interface{}:
15497 fastpathTV.DecMapFloat64IntfV(v, false, d)
15498 case *map[float64]interface{}:
15499 var v2 map[float64]interface{}
15500 v2, changed = fastpathTV.DecMapFloat64IntfV(*v, true, d)
15501 if changed {
15502 *v = v2
15503 }
15504 case map[float64]string:
15505 fastpathTV.DecMapFloat64StringV(v, false, d)
15506 case *map[float64]string:
15507 var v2 map[float64]string
15508 v2, changed = fastpathTV.DecMapFloat64StringV(*v, true, d)
15509 if changed {
15510 *v = v2
15511 }
15512 case map[float64]uint:
15513 fastpathTV.DecMapFloat64UintV(v, false, d)
15514 case *map[float64]uint:
15515 var v2 map[float64]uint
15516 v2, changed = fastpathTV.DecMapFloat64UintV(*v, true, d)
15517 if changed {
15518 *v = v2
15519 }
15520 case map[float64]uint8:
15521 fastpathTV.DecMapFloat64Uint8V(v, false, d)
15522 case *map[float64]uint8:
15523 var v2 map[float64]uint8
15524 v2, changed = fastpathTV.DecMapFloat64Uint8V(*v, true, d)
15525 if changed {
15526 *v = v2
15527 }
15528 case map[float64]uint16:
15529 fastpathTV.DecMapFloat64Uint16V(v, false, d)
15530 case *map[float64]uint16:
15531 var v2 map[float64]uint16
15532 v2, changed = fastpathTV.DecMapFloat64Uint16V(*v, true, d)
15533 if changed {
15534 *v = v2
15535 }
15536 case map[float64]uint32:
15537 fastpathTV.DecMapFloat64Uint32V(v, false, d)
15538 case *map[float64]uint32:
15539 var v2 map[float64]uint32
15540 v2, changed = fastpathTV.DecMapFloat64Uint32V(*v, true, d)
15541 if changed {
15542 *v = v2
15543 }
15544 case map[float64]uint64:
15545 fastpathTV.DecMapFloat64Uint64V(v, false, d)
15546 case *map[float64]uint64:
15547 var v2 map[float64]uint64
15548 v2, changed = fastpathTV.DecMapFloat64Uint64V(*v, true, d)
15549 if changed {
15550 *v = v2
15551 }
15552 case map[float64]uintptr:
15553 fastpathTV.DecMapFloat64UintptrV(v, false, d)
15554 case *map[float64]uintptr:
15555 var v2 map[float64]uintptr
15556 v2, changed = fastpathTV.DecMapFloat64UintptrV(*v, true, d)
15557 if changed {
15558 *v = v2
15559 }
15560 case map[float64]int:
15561 fastpathTV.DecMapFloat64IntV(v, false, d)
15562 case *map[float64]int:
15563 var v2 map[float64]int
15564 v2, changed = fastpathTV.DecMapFloat64IntV(*v, true, d)
15565 if changed {
15566 *v = v2
15567 }
15568 case map[float64]int8:
15569 fastpathTV.DecMapFloat64Int8V(v, false, d)
15570 case *map[float64]int8:
15571 var v2 map[float64]int8
15572 v2, changed = fastpathTV.DecMapFloat64Int8V(*v, true, d)
15573 if changed {
15574 *v = v2
15575 }
15576 case map[float64]int16:
15577 fastpathTV.DecMapFloat64Int16V(v, false, d)
15578 case *map[float64]int16:
15579 var v2 map[float64]int16
15580 v2, changed = fastpathTV.DecMapFloat64Int16V(*v, true, d)
15581 if changed {
15582 *v = v2
15583 }
15584 case map[float64]int32:
15585 fastpathTV.DecMapFloat64Int32V(v, false, d)
15586 case *map[float64]int32:
15587 var v2 map[float64]int32
15588 v2, changed = fastpathTV.DecMapFloat64Int32V(*v, true, d)
15589 if changed {
15590 *v = v2
15591 }
15592 case map[float64]int64:
15593 fastpathTV.DecMapFloat64Int64V(v, false, d)
15594 case *map[float64]int64:
15595 var v2 map[float64]int64
15596 v2, changed = fastpathTV.DecMapFloat64Int64V(*v, true, d)
15597 if changed {
15598 *v = v2
15599 }
15600 case map[float64]float32:
15601 fastpathTV.DecMapFloat64Float32V(v, false, d)
15602 case *map[float64]float32:
15603 var v2 map[float64]float32
15604 v2, changed = fastpathTV.DecMapFloat64Float32V(*v, true, d)
15605 if changed {
15606 *v = v2
15607 }
15608 case map[float64]float64:
15609 fastpathTV.DecMapFloat64Float64V(v, false, d)
15610 case *map[float64]float64:
15611 var v2 map[float64]float64
15612 v2, changed = fastpathTV.DecMapFloat64Float64V(*v, true, d)
15613 if changed {
15614 *v = v2
15615 }
15616 case map[float64]bool:
15617 fastpathTV.DecMapFloat64BoolV(v, false, d)
15618 case *map[float64]bool:
15619 var v2 map[float64]bool
15620 v2, changed = fastpathTV.DecMapFloat64BoolV(*v, true, d)
15621 if changed {
15622 *v = v2
15623 }
15624 case map[uint]interface{}:
15625 fastpathTV.DecMapUintIntfV(v, false, d)
15626 case *map[uint]interface{}:
15627 var v2 map[uint]interface{}
15628 v2, changed = fastpathTV.DecMapUintIntfV(*v, true, d)
15629 if changed {
15630 *v = v2
15631 }
15632 case map[uint]string:
15633 fastpathTV.DecMapUintStringV(v, false, d)
15634 case *map[uint]string:
15635 var v2 map[uint]string
15636 v2, changed = fastpathTV.DecMapUintStringV(*v, true, d)
15637 if changed {
15638 *v = v2
15639 }
15640 case map[uint]uint:
15641 fastpathTV.DecMapUintUintV(v, false, d)
15642 case *map[uint]uint:
15643 var v2 map[uint]uint
15644 v2, changed = fastpathTV.DecMapUintUintV(*v, true, d)
15645 if changed {
15646 *v = v2
15647 }
15648 case map[uint]uint8:
15649 fastpathTV.DecMapUintUint8V(v, false, d)
15650 case *map[uint]uint8:
15651 var v2 map[uint]uint8
15652 v2, changed = fastpathTV.DecMapUintUint8V(*v, true, d)
15653 if changed {
15654 *v = v2
15655 }
15656 case map[uint]uint16:
15657 fastpathTV.DecMapUintUint16V(v, false, d)
15658 case *map[uint]uint16:
15659 var v2 map[uint]uint16
15660 v2, changed = fastpathTV.DecMapUintUint16V(*v, true, d)
15661 if changed {
15662 *v = v2
15663 }
15664 case map[uint]uint32:
15665 fastpathTV.DecMapUintUint32V(v, false, d)
15666 case *map[uint]uint32:
15667 var v2 map[uint]uint32
15668 v2, changed = fastpathTV.DecMapUintUint32V(*v, true, d)
15669 if changed {
15670 *v = v2
15671 }
15672 case map[uint]uint64:
15673 fastpathTV.DecMapUintUint64V(v, false, d)
15674 case *map[uint]uint64:
15675 var v2 map[uint]uint64
15676 v2, changed = fastpathTV.DecMapUintUint64V(*v, true, d)
15677 if changed {
15678 *v = v2
15679 }
15680 case map[uint]uintptr:
15681 fastpathTV.DecMapUintUintptrV(v, false, d)
15682 case *map[uint]uintptr:
15683 var v2 map[uint]uintptr
15684 v2, changed = fastpathTV.DecMapUintUintptrV(*v, true, d)
15685 if changed {
15686 *v = v2
15687 }
15688 case map[uint]int:
15689 fastpathTV.DecMapUintIntV(v, false, d)
15690 case *map[uint]int:
15691 var v2 map[uint]int
15692 v2, changed = fastpathTV.DecMapUintIntV(*v, true, d)
15693 if changed {
15694 *v = v2
15695 }
15696 case map[uint]int8:
15697 fastpathTV.DecMapUintInt8V(v, false, d)
15698 case *map[uint]int8:
15699 var v2 map[uint]int8
15700 v2, changed = fastpathTV.DecMapUintInt8V(*v, true, d)
15701 if changed {
15702 *v = v2
15703 }
15704 case map[uint]int16:
15705 fastpathTV.DecMapUintInt16V(v, false, d)
15706 case *map[uint]int16:
15707 var v2 map[uint]int16
15708 v2, changed = fastpathTV.DecMapUintInt16V(*v, true, d)
15709 if changed {
15710 *v = v2
15711 }
15712 case map[uint]int32:
15713 fastpathTV.DecMapUintInt32V(v, false, d)
15714 case *map[uint]int32:
15715 var v2 map[uint]int32
15716 v2, changed = fastpathTV.DecMapUintInt32V(*v, true, d)
15717 if changed {
15718 *v = v2
15719 }
15720 case map[uint]int64:
15721 fastpathTV.DecMapUintInt64V(v, false, d)
15722 case *map[uint]int64:
15723 var v2 map[uint]int64
15724 v2, changed = fastpathTV.DecMapUintInt64V(*v, true, d)
15725 if changed {
15726 *v = v2
15727 }
15728 case map[uint]float32:
15729 fastpathTV.DecMapUintFloat32V(v, false, d)
15730 case *map[uint]float32:
15731 var v2 map[uint]float32
15732 v2, changed = fastpathTV.DecMapUintFloat32V(*v, true, d)
15733 if changed {
15734 *v = v2
15735 }
15736 case map[uint]float64:
15737 fastpathTV.DecMapUintFloat64V(v, false, d)
15738 case *map[uint]float64:
15739 var v2 map[uint]float64
15740 v2, changed = fastpathTV.DecMapUintFloat64V(*v, true, d)
15741 if changed {
15742 *v = v2
15743 }
15744 case map[uint]bool:
15745 fastpathTV.DecMapUintBoolV(v, false, d)
15746 case *map[uint]bool:
15747 var v2 map[uint]bool
15748 v2, changed = fastpathTV.DecMapUintBoolV(*v, true, d)
15749 if changed {
15750 *v = v2
15751 }
15752 case map[uint8]interface{}:
15753 fastpathTV.DecMapUint8IntfV(v, false, d)
15754 case *map[uint8]interface{}:
15755 var v2 map[uint8]interface{}
15756 v2, changed = fastpathTV.DecMapUint8IntfV(*v, true, d)
15757 if changed {
15758 *v = v2
15759 }
15760 case map[uint8]string:
15761 fastpathTV.DecMapUint8StringV(v, false, d)
15762 case *map[uint8]string:
15763 var v2 map[uint8]string
15764 v2, changed = fastpathTV.DecMapUint8StringV(*v, true, d)
15765 if changed {
15766 *v = v2
15767 }
15768 case map[uint8]uint:
15769 fastpathTV.DecMapUint8UintV(v, false, d)
15770 case *map[uint8]uint:
15771 var v2 map[uint8]uint
15772 v2, changed = fastpathTV.DecMapUint8UintV(*v, true, d)
15773 if changed {
15774 *v = v2
15775 }
15776 case map[uint8]uint8:
15777 fastpathTV.DecMapUint8Uint8V(v, false, d)
15778 case *map[uint8]uint8:
15779 var v2 map[uint8]uint8
15780 v2, changed = fastpathTV.DecMapUint8Uint8V(*v, true, d)
15781 if changed {
15782 *v = v2
15783 }
15784 case map[uint8]uint16:
15785 fastpathTV.DecMapUint8Uint16V(v, false, d)
15786 case *map[uint8]uint16:
15787 var v2 map[uint8]uint16
15788 v2, changed = fastpathTV.DecMapUint8Uint16V(*v, true, d)
15789 if changed {
15790 *v = v2
15791 }
15792 case map[uint8]uint32:
15793 fastpathTV.DecMapUint8Uint32V(v, false, d)
15794 case *map[uint8]uint32:
15795 var v2 map[uint8]uint32
15796 v2, changed = fastpathTV.DecMapUint8Uint32V(*v, true, d)
15797 if changed {
15798 *v = v2
15799 }
15800 case map[uint8]uint64:
15801 fastpathTV.DecMapUint8Uint64V(v, false, d)
15802 case *map[uint8]uint64:
15803 var v2 map[uint8]uint64
15804 v2, changed = fastpathTV.DecMapUint8Uint64V(*v, true, d)
15805 if changed {
15806 *v = v2
15807 }
15808 case map[uint8]uintptr:
15809 fastpathTV.DecMapUint8UintptrV(v, false, d)
15810 case *map[uint8]uintptr:
15811 var v2 map[uint8]uintptr
15812 v2, changed = fastpathTV.DecMapUint8UintptrV(*v, true, d)
15813 if changed {
15814 *v = v2
15815 }
15816 case map[uint8]int:
15817 fastpathTV.DecMapUint8IntV(v, false, d)
15818 case *map[uint8]int:
15819 var v2 map[uint8]int
15820 v2, changed = fastpathTV.DecMapUint8IntV(*v, true, d)
15821 if changed {
15822 *v = v2
15823 }
15824 case map[uint8]int8:
15825 fastpathTV.DecMapUint8Int8V(v, false, d)
15826 case *map[uint8]int8:
15827 var v2 map[uint8]int8
15828 v2, changed = fastpathTV.DecMapUint8Int8V(*v, true, d)
15829 if changed {
15830 *v = v2
15831 }
15832 case map[uint8]int16:
15833 fastpathTV.DecMapUint8Int16V(v, false, d)
15834 case *map[uint8]int16:
15835 var v2 map[uint8]int16
15836 v2, changed = fastpathTV.DecMapUint8Int16V(*v, true, d)
15837 if changed {
15838 *v = v2
15839 }
15840 case map[uint8]int32:
15841 fastpathTV.DecMapUint8Int32V(v, false, d)
15842 case *map[uint8]int32:
15843 var v2 map[uint8]int32
15844 v2, changed = fastpathTV.DecMapUint8Int32V(*v, true, d)
15845 if changed {
15846 *v = v2
15847 }
15848 case map[uint8]int64:
15849 fastpathTV.DecMapUint8Int64V(v, false, d)
15850 case *map[uint8]int64:
15851 var v2 map[uint8]int64
15852 v2, changed = fastpathTV.DecMapUint8Int64V(*v, true, d)
15853 if changed {
15854 *v = v2
15855 }
15856 case map[uint8]float32:
15857 fastpathTV.DecMapUint8Float32V(v, false, d)
15858 case *map[uint8]float32:
15859 var v2 map[uint8]float32
15860 v2, changed = fastpathTV.DecMapUint8Float32V(*v, true, d)
15861 if changed {
15862 *v = v2
15863 }
15864 case map[uint8]float64:
15865 fastpathTV.DecMapUint8Float64V(v, false, d)
15866 case *map[uint8]float64:
15867 var v2 map[uint8]float64
15868 v2, changed = fastpathTV.DecMapUint8Float64V(*v, true, d)
15869 if changed {
15870 *v = v2
15871 }
15872 case map[uint8]bool:
15873 fastpathTV.DecMapUint8BoolV(v, false, d)
15874 case *map[uint8]bool:
15875 var v2 map[uint8]bool
15876 v2, changed = fastpathTV.DecMapUint8BoolV(*v, true, d)
15877 if changed {
15878 *v = v2
15879 }
15880 case map[uint16]interface{}:
15881 fastpathTV.DecMapUint16IntfV(v, false, d)
15882 case *map[uint16]interface{}:
15883 var v2 map[uint16]interface{}
15884 v2, changed = fastpathTV.DecMapUint16IntfV(*v, true, d)
15885 if changed {
15886 *v = v2
15887 }
15888 case map[uint16]string:
15889 fastpathTV.DecMapUint16StringV(v, false, d)
15890 case *map[uint16]string:
15891 var v2 map[uint16]string
15892 v2, changed = fastpathTV.DecMapUint16StringV(*v, true, d)
15893 if changed {
15894 *v = v2
15895 }
15896 case map[uint16]uint:
15897 fastpathTV.DecMapUint16UintV(v, false, d)
15898 case *map[uint16]uint:
15899 var v2 map[uint16]uint
15900 v2, changed = fastpathTV.DecMapUint16UintV(*v, true, d)
15901 if changed {
15902 *v = v2
15903 }
15904 case map[uint16]uint8:
15905 fastpathTV.DecMapUint16Uint8V(v, false, d)
15906 case *map[uint16]uint8:
15907 var v2 map[uint16]uint8
15908 v2, changed = fastpathTV.DecMapUint16Uint8V(*v, true, d)
15909 if changed {
15910 *v = v2
15911 }
15912 case map[uint16]uint16:
15913 fastpathTV.DecMapUint16Uint16V(v, false, d)
15914 case *map[uint16]uint16:
15915 var v2 map[uint16]uint16
15916 v2, changed = fastpathTV.DecMapUint16Uint16V(*v, true, d)
15917 if changed {
15918 *v = v2
15919 }
15920 case map[uint16]uint32:
15921 fastpathTV.DecMapUint16Uint32V(v, false, d)
15922 case *map[uint16]uint32:
15923 var v2 map[uint16]uint32
15924 v2, changed = fastpathTV.DecMapUint16Uint32V(*v, true, d)
15925 if changed {
15926 *v = v2
15927 }
15928 case map[uint16]uint64:
15929 fastpathTV.DecMapUint16Uint64V(v, false, d)
15930 case *map[uint16]uint64:
15931 var v2 map[uint16]uint64
15932 v2, changed = fastpathTV.DecMapUint16Uint64V(*v, true, d)
15933 if changed {
15934 *v = v2
15935 }
15936 case map[uint16]uintptr:
15937 fastpathTV.DecMapUint16UintptrV(v, false, d)
15938 case *map[uint16]uintptr:
15939 var v2 map[uint16]uintptr
15940 v2, changed = fastpathTV.DecMapUint16UintptrV(*v, true, d)
15941 if changed {
15942 *v = v2
15943 }
15944 case map[uint16]int:
15945 fastpathTV.DecMapUint16IntV(v, false, d)
15946 case *map[uint16]int:
15947 var v2 map[uint16]int
15948 v2, changed = fastpathTV.DecMapUint16IntV(*v, true, d)
15949 if changed {
15950 *v = v2
15951 }
15952 case map[uint16]int8:
15953 fastpathTV.DecMapUint16Int8V(v, false, d)
15954 case *map[uint16]int8:
15955 var v2 map[uint16]int8
15956 v2, changed = fastpathTV.DecMapUint16Int8V(*v, true, d)
15957 if changed {
15958 *v = v2
15959 }
15960 case map[uint16]int16:
15961 fastpathTV.DecMapUint16Int16V(v, false, d)
15962 case *map[uint16]int16:
15963 var v2 map[uint16]int16
15964 v2, changed = fastpathTV.DecMapUint16Int16V(*v, true, d)
15965 if changed {
15966 *v = v2
15967 }
15968 case map[uint16]int32:
15969 fastpathTV.DecMapUint16Int32V(v, false, d)
15970 case *map[uint16]int32:
15971 var v2 map[uint16]int32
15972 v2, changed = fastpathTV.DecMapUint16Int32V(*v, true, d)
15973 if changed {
15974 *v = v2
15975 }
15976 case map[uint16]int64:
15977 fastpathTV.DecMapUint16Int64V(v, false, d)
15978 case *map[uint16]int64:
15979 var v2 map[uint16]int64
15980 v2, changed = fastpathTV.DecMapUint16Int64V(*v, true, d)
15981 if changed {
15982 *v = v2
15983 }
15984 case map[uint16]float32:
15985 fastpathTV.DecMapUint16Float32V(v, false, d)
15986 case *map[uint16]float32:
15987 var v2 map[uint16]float32
15988 v2, changed = fastpathTV.DecMapUint16Float32V(*v, true, d)
15989 if changed {
15990 *v = v2
15991 }
15992 case map[uint16]float64:
15993 fastpathTV.DecMapUint16Float64V(v, false, d)
15994 case *map[uint16]float64:
15995 var v2 map[uint16]float64
15996 v2, changed = fastpathTV.DecMapUint16Float64V(*v, true, d)
15997 if changed {
15998 *v = v2
15999 }
16000 case map[uint16]bool:
16001 fastpathTV.DecMapUint16BoolV(v, false, d)
16002 case *map[uint16]bool:
16003 var v2 map[uint16]bool
16004 v2, changed = fastpathTV.DecMapUint16BoolV(*v, true, d)
16005 if changed {
16006 *v = v2
16007 }
16008 case map[uint32]interface{}:
16009 fastpathTV.DecMapUint32IntfV(v, false, d)
16010 case *map[uint32]interface{}:
16011 var v2 map[uint32]interface{}
16012 v2, changed = fastpathTV.DecMapUint32IntfV(*v, true, d)
16013 if changed {
16014 *v = v2
16015 }
16016 case map[uint32]string:
16017 fastpathTV.DecMapUint32StringV(v, false, d)
16018 case *map[uint32]string:
16019 var v2 map[uint32]string
16020 v2, changed = fastpathTV.DecMapUint32StringV(*v, true, d)
16021 if changed {
16022 *v = v2
16023 }
16024 case map[uint32]uint:
16025 fastpathTV.DecMapUint32UintV(v, false, d)
16026 case *map[uint32]uint:
16027 var v2 map[uint32]uint
16028 v2, changed = fastpathTV.DecMapUint32UintV(*v, true, d)
16029 if changed {
16030 *v = v2
16031 }
16032 case map[uint32]uint8:
16033 fastpathTV.DecMapUint32Uint8V(v, false, d)
16034 case *map[uint32]uint8:
16035 var v2 map[uint32]uint8
16036 v2, changed = fastpathTV.DecMapUint32Uint8V(*v, true, d)
16037 if changed {
16038 *v = v2
16039 }
16040 case map[uint32]uint16:
16041 fastpathTV.DecMapUint32Uint16V(v, false, d)
16042 case *map[uint32]uint16:
16043 var v2 map[uint32]uint16
16044 v2, changed = fastpathTV.DecMapUint32Uint16V(*v, true, d)
16045 if changed {
16046 *v = v2
16047 }
16048 case map[uint32]uint32:
16049 fastpathTV.DecMapUint32Uint32V(v, false, d)
16050 case *map[uint32]uint32:
16051 var v2 map[uint32]uint32
16052 v2, changed = fastpathTV.DecMapUint32Uint32V(*v, true, d)
16053 if changed {
16054 *v = v2
16055 }
16056 case map[uint32]uint64:
16057 fastpathTV.DecMapUint32Uint64V(v, false, d)
16058 case *map[uint32]uint64:
16059 var v2 map[uint32]uint64
16060 v2, changed = fastpathTV.DecMapUint32Uint64V(*v, true, d)
16061 if changed {
16062 *v = v2
16063 }
16064 case map[uint32]uintptr:
16065 fastpathTV.DecMapUint32UintptrV(v, false, d)
16066 case *map[uint32]uintptr:
16067 var v2 map[uint32]uintptr
16068 v2, changed = fastpathTV.DecMapUint32UintptrV(*v, true, d)
16069 if changed {
16070 *v = v2
16071 }
16072 case map[uint32]int:
16073 fastpathTV.DecMapUint32IntV(v, false, d)
16074 case *map[uint32]int:
16075 var v2 map[uint32]int
16076 v2, changed = fastpathTV.DecMapUint32IntV(*v, true, d)
16077 if changed {
16078 *v = v2
16079 }
16080 case map[uint32]int8:
16081 fastpathTV.DecMapUint32Int8V(v, false, d)
16082 case *map[uint32]int8:
16083 var v2 map[uint32]int8
16084 v2, changed = fastpathTV.DecMapUint32Int8V(*v, true, d)
16085 if changed {
16086 *v = v2
16087 }
16088 case map[uint32]int16:
16089 fastpathTV.DecMapUint32Int16V(v, false, d)
16090 case *map[uint32]int16:
16091 var v2 map[uint32]int16
16092 v2, changed = fastpathTV.DecMapUint32Int16V(*v, true, d)
16093 if changed {
16094 *v = v2
16095 }
16096 case map[uint32]int32:
16097 fastpathTV.DecMapUint32Int32V(v, false, d)
16098 case *map[uint32]int32:
16099 var v2 map[uint32]int32
16100 v2, changed = fastpathTV.DecMapUint32Int32V(*v, true, d)
16101 if changed {
16102 *v = v2
16103 }
16104 case map[uint32]int64:
16105 fastpathTV.DecMapUint32Int64V(v, false, d)
16106 case *map[uint32]int64:
16107 var v2 map[uint32]int64
16108 v2, changed = fastpathTV.DecMapUint32Int64V(*v, true, d)
16109 if changed {
16110 *v = v2
16111 }
16112 case map[uint32]float32:
16113 fastpathTV.DecMapUint32Float32V(v, false, d)
16114 case *map[uint32]float32:
16115 var v2 map[uint32]float32
16116 v2, changed = fastpathTV.DecMapUint32Float32V(*v, true, d)
16117 if changed {
16118 *v = v2
16119 }
16120 case map[uint32]float64:
16121 fastpathTV.DecMapUint32Float64V(v, false, d)
16122 case *map[uint32]float64:
16123 var v2 map[uint32]float64
16124 v2, changed = fastpathTV.DecMapUint32Float64V(*v, true, d)
16125 if changed {
16126 *v = v2
16127 }
16128 case map[uint32]bool:
16129 fastpathTV.DecMapUint32BoolV(v, false, d)
16130 case *map[uint32]bool:
16131 var v2 map[uint32]bool
16132 v2, changed = fastpathTV.DecMapUint32BoolV(*v, true, d)
16133 if changed {
16134 *v = v2
16135 }
16136 case map[uint64]interface{}:
16137 fastpathTV.DecMapUint64IntfV(v, false, d)
16138 case *map[uint64]interface{}:
16139 var v2 map[uint64]interface{}
16140 v2, changed = fastpathTV.DecMapUint64IntfV(*v, true, d)
16141 if changed {
16142 *v = v2
16143 }
16144 case map[uint64]string:
16145 fastpathTV.DecMapUint64StringV(v, false, d)
16146 case *map[uint64]string:
16147 var v2 map[uint64]string
16148 v2, changed = fastpathTV.DecMapUint64StringV(*v, true, d)
16149 if changed {
16150 *v = v2
16151 }
16152 case map[uint64]uint:
16153 fastpathTV.DecMapUint64UintV(v, false, d)
16154 case *map[uint64]uint:
16155 var v2 map[uint64]uint
16156 v2, changed = fastpathTV.DecMapUint64UintV(*v, true, d)
16157 if changed {
16158 *v = v2
16159 }
16160 case map[uint64]uint8:
16161 fastpathTV.DecMapUint64Uint8V(v, false, d)
16162 case *map[uint64]uint8:
16163 var v2 map[uint64]uint8
16164 v2, changed = fastpathTV.DecMapUint64Uint8V(*v, true, d)
16165 if changed {
16166 *v = v2
16167 }
16168 case map[uint64]uint16:
16169 fastpathTV.DecMapUint64Uint16V(v, false, d)
16170 case *map[uint64]uint16:
16171 var v2 map[uint64]uint16
16172 v2, changed = fastpathTV.DecMapUint64Uint16V(*v, true, d)
16173 if changed {
16174 *v = v2
16175 }
16176 case map[uint64]uint32:
16177 fastpathTV.DecMapUint64Uint32V(v, false, d)
16178 case *map[uint64]uint32:
16179 var v2 map[uint64]uint32
16180 v2, changed = fastpathTV.DecMapUint64Uint32V(*v, true, d)
16181 if changed {
16182 *v = v2
16183 }
16184 case map[uint64]uint64:
16185 fastpathTV.DecMapUint64Uint64V(v, false, d)
16186 case *map[uint64]uint64:
16187 var v2 map[uint64]uint64
16188 v2, changed = fastpathTV.DecMapUint64Uint64V(*v, true, d)
16189 if changed {
16190 *v = v2
16191 }
16192 case map[uint64]uintptr:
16193 fastpathTV.DecMapUint64UintptrV(v, false, d)
16194 case *map[uint64]uintptr:
16195 var v2 map[uint64]uintptr
16196 v2, changed = fastpathTV.DecMapUint64UintptrV(*v, true, d)
16197 if changed {
16198 *v = v2
16199 }
16200 case map[uint64]int:
16201 fastpathTV.DecMapUint64IntV(v, false, d)
16202 case *map[uint64]int:
16203 var v2 map[uint64]int
16204 v2, changed = fastpathTV.DecMapUint64IntV(*v, true, d)
16205 if changed {
16206 *v = v2
16207 }
16208 case map[uint64]int8:
16209 fastpathTV.DecMapUint64Int8V(v, false, d)
16210 case *map[uint64]int8:
16211 var v2 map[uint64]int8
16212 v2, changed = fastpathTV.DecMapUint64Int8V(*v, true, d)
16213 if changed {
16214 *v = v2
16215 }
16216 case map[uint64]int16:
16217 fastpathTV.DecMapUint64Int16V(v, false, d)
16218 case *map[uint64]int16:
16219 var v2 map[uint64]int16
16220 v2, changed = fastpathTV.DecMapUint64Int16V(*v, true, d)
16221 if changed {
16222 *v = v2
16223 }
16224 case map[uint64]int32:
16225 fastpathTV.DecMapUint64Int32V(v, false, d)
16226 case *map[uint64]int32:
16227 var v2 map[uint64]int32
16228 v2, changed = fastpathTV.DecMapUint64Int32V(*v, true, d)
16229 if changed {
16230 *v = v2
16231 }
16232 case map[uint64]int64:
16233 fastpathTV.DecMapUint64Int64V(v, false, d)
16234 case *map[uint64]int64:
16235 var v2 map[uint64]int64
16236 v2, changed = fastpathTV.DecMapUint64Int64V(*v, true, d)
16237 if changed {
16238 *v = v2
16239 }
16240 case map[uint64]float32:
16241 fastpathTV.DecMapUint64Float32V(v, false, d)
16242 case *map[uint64]float32:
16243 var v2 map[uint64]float32
16244 v2, changed = fastpathTV.DecMapUint64Float32V(*v, true, d)
16245 if changed {
16246 *v = v2
16247 }
16248 case map[uint64]float64:
16249 fastpathTV.DecMapUint64Float64V(v, false, d)
16250 case *map[uint64]float64:
16251 var v2 map[uint64]float64
16252 v2, changed = fastpathTV.DecMapUint64Float64V(*v, true, d)
16253 if changed {
16254 *v = v2
16255 }
16256 case map[uint64]bool:
16257 fastpathTV.DecMapUint64BoolV(v, false, d)
16258 case *map[uint64]bool:
16259 var v2 map[uint64]bool
16260 v2, changed = fastpathTV.DecMapUint64BoolV(*v, true, d)
16261 if changed {
16262 *v = v2
16263 }
16264 case map[uintptr]interface{}:
16265 fastpathTV.DecMapUintptrIntfV(v, false, d)
16266 case *map[uintptr]interface{}:
16267 var v2 map[uintptr]interface{}
16268 v2, changed = fastpathTV.DecMapUintptrIntfV(*v, true, d)
16269 if changed {
16270 *v = v2
16271 }
16272 case map[uintptr]string:
16273 fastpathTV.DecMapUintptrStringV(v, false, d)
16274 case *map[uintptr]string:
16275 var v2 map[uintptr]string
16276 v2, changed = fastpathTV.DecMapUintptrStringV(*v, true, d)
16277 if changed {
16278 *v = v2
16279 }
16280 case map[uintptr]uint:
16281 fastpathTV.DecMapUintptrUintV(v, false, d)
16282 case *map[uintptr]uint:
16283 var v2 map[uintptr]uint
16284 v2, changed = fastpathTV.DecMapUintptrUintV(*v, true, d)
16285 if changed {
16286 *v = v2
16287 }
16288 case map[uintptr]uint8:
16289 fastpathTV.DecMapUintptrUint8V(v, false, d)
16290 case *map[uintptr]uint8:
16291 var v2 map[uintptr]uint8
16292 v2, changed = fastpathTV.DecMapUintptrUint8V(*v, true, d)
16293 if changed {
16294 *v = v2
16295 }
16296 case map[uintptr]uint16:
16297 fastpathTV.DecMapUintptrUint16V(v, false, d)
16298 case *map[uintptr]uint16:
16299 var v2 map[uintptr]uint16
16300 v2, changed = fastpathTV.DecMapUintptrUint16V(*v, true, d)
16301 if changed {
16302 *v = v2
16303 }
16304 case map[uintptr]uint32:
16305 fastpathTV.DecMapUintptrUint32V(v, false, d)
16306 case *map[uintptr]uint32:
16307 var v2 map[uintptr]uint32
16308 v2, changed = fastpathTV.DecMapUintptrUint32V(*v, true, d)
16309 if changed {
16310 *v = v2
16311 }
16312 case map[uintptr]uint64:
16313 fastpathTV.DecMapUintptrUint64V(v, false, d)
16314 case *map[uintptr]uint64:
16315 var v2 map[uintptr]uint64
16316 v2, changed = fastpathTV.DecMapUintptrUint64V(*v, true, d)
16317 if changed {
16318 *v = v2
16319 }
16320 case map[uintptr]uintptr:
16321 fastpathTV.DecMapUintptrUintptrV(v, false, d)
16322 case *map[uintptr]uintptr:
16323 var v2 map[uintptr]uintptr
16324 v2, changed = fastpathTV.DecMapUintptrUintptrV(*v, true, d)
16325 if changed {
16326 *v = v2
16327 }
16328 case map[uintptr]int:
16329 fastpathTV.DecMapUintptrIntV(v, false, d)
16330 case *map[uintptr]int:
16331 var v2 map[uintptr]int
16332 v2, changed = fastpathTV.DecMapUintptrIntV(*v, true, d)
16333 if changed {
16334 *v = v2
16335 }
16336 case map[uintptr]int8:
16337 fastpathTV.DecMapUintptrInt8V(v, false, d)
16338 case *map[uintptr]int8:
16339 var v2 map[uintptr]int8
16340 v2, changed = fastpathTV.DecMapUintptrInt8V(*v, true, d)
16341 if changed {
16342 *v = v2
16343 }
16344 case map[uintptr]int16:
16345 fastpathTV.DecMapUintptrInt16V(v, false, d)
16346 case *map[uintptr]int16:
16347 var v2 map[uintptr]int16
16348 v2, changed = fastpathTV.DecMapUintptrInt16V(*v, true, d)
16349 if changed {
16350 *v = v2
16351 }
16352 case map[uintptr]int32:
16353 fastpathTV.DecMapUintptrInt32V(v, false, d)
16354 case *map[uintptr]int32:
16355 var v2 map[uintptr]int32
16356 v2, changed = fastpathTV.DecMapUintptrInt32V(*v, true, d)
16357 if changed {
16358 *v = v2
16359 }
16360 case map[uintptr]int64:
16361 fastpathTV.DecMapUintptrInt64V(v, false, d)
16362 case *map[uintptr]int64:
16363 var v2 map[uintptr]int64
16364 v2, changed = fastpathTV.DecMapUintptrInt64V(*v, true, d)
16365 if changed {
16366 *v = v2
16367 }
16368 case map[uintptr]float32:
16369 fastpathTV.DecMapUintptrFloat32V(v, false, d)
16370 case *map[uintptr]float32:
16371 var v2 map[uintptr]float32
16372 v2, changed = fastpathTV.DecMapUintptrFloat32V(*v, true, d)
16373 if changed {
16374 *v = v2
16375 }
16376 case map[uintptr]float64:
16377 fastpathTV.DecMapUintptrFloat64V(v, false, d)
16378 case *map[uintptr]float64:
16379 var v2 map[uintptr]float64
16380 v2, changed = fastpathTV.DecMapUintptrFloat64V(*v, true, d)
16381 if changed {
16382 *v = v2
16383 }
16384 case map[uintptr]bool:
16385 fastpathTV.DecMapUintptrBoolV(v, false, d)
16386 case *map[uintptr]bool:
16387 var v2 map[uintptr]bool
16388 v2, changed = fastpathTV.DecMapUintptrBoolV(*v, true, d)
16389 if changed {
16390 *v = v2
16391 }
16392 case map[int]interface{}:
16393 fastpathTV.DecMapIntIntfV(v, false, d)
16394 case *map[int]interface{}:
16395 var v2 map[int]interface{}
16396 v2, changed = fastpathTV.DecMapIntIntfV(*v, true, d)
16397 if changed {
16398 *v = v2
16399 }
16400 case map[int]string:
16401 fastpathTV.DecMapIntStringV(v, false, d)
16402 case *map[int]string:
16403 var v2 map[int]string
16404 v2, changed = fastpathTV.DecMapIntStringV(*v, true, d)
16405 if changed {
16406 *v = v2
16407 }
16408 case map[int]uint:
16409 fastpathTV.DecMapIntUintV(v, false, d)
16410 case *map[int]uint:
16411 var v2 map[int]uint
16412 v2, changed = fastpathTV.DecMapIntUintV(*v, true, d)
16413 if changed {
16414 *v = v2
16415 }
16416 case map[int]uint8:
16417 fastpathTV.DecMapIntUint8V(v, false, d)
16418 case *map[int]uint8:
16419 var v2 map[int]uint8
16420 v2, changed = fastpathTV.DecMapIntUint8V(*v, true, d)
16421 if changed {
16422 *v = v2
16423 }
16424 case map[int]uint16:
16425 fastpathTV.DecMapIntUint16V(v, false, d)
16426 case *map[int]uint16:
16427 var v2 map[int]uint16
16428 v2, changed = fastpathTV.DecMapIntUint16V(*v, true, d)
16429 if changed {
16430 *v = v2
16431 }
16432 case map[int]uint32:
16433 fastpathTV.DecMapIntUint32V(v, false, d)
16434 case *map[int]uint32:
16435 var v2 map[int]uint32
16436 v2, changed = fastpathTV.DecMapIntUint32V(*v, true, d)
16437 if changed {
16438 *v = v2
16439 }
16440 case map[int]uint64:
16441 fastpathTV.DecMapIntUint64V(v, false, d)
16442 case *map[int]uint64:
16443 var v2 map[int]uint64
16444 v2, changed = fastpathTV.DecMapIntUint64V(*v, true, d)
16445 if changed {
16446 *v = v2
16447 }
16448 case map[int]uintptr:
16449 fastpathTV.DecMapIntUintptrV(v, false, d)
16450 case *map[int]uintptr:
16451 var v2 map[int]uintptr
16452 v2, changed = fastpathTV.DecMapIntUintptrV(*v, true, d)
16453 if changed {
16454 *v = v2
16455 }
16456 case map[int]int:
16457 fastpathTV.DecMapIntIntV(v, false, d)
16458 case *map[int]int:
16459 var v2 map[int]int
16460 v2, changed = fastpathTV.DecMapIntIntV(*v, true, d)
16461 if changed {
16462 *v = v2
16463 }
16464 case map[int]int8:
16465 fastpathTV.DecMapIntInt8V(v, false, d)
16466 case *map[int]int8:
16467 var v2 map[int]int8
16468 v2, changed = fastpathTV.DecMapIntInt8V(*v, true, d)
16469 if changed {
16470 *v = v2
16471 }
16472 case map[int]int16:
16473 fastpathTV.DecMapIntInt16V(v, false, d)
16474 case *map[int]int16:
16475 var v2 map[int]int16
16476 v2, changed = fastpathTV.DecMapIntInt16V(*v, true, d)
16477 if changed {
16478 *v = v2
16479 }
16480 case map[int]int32:
16481 fastpathTV.DecMapIntInt32V(v, false, d)
16482 case *map[int]int32:
16483 var v2 map[int]int32
16484 v2, changed = fastpathTV.DecMapIntInt32V(*v, true, d)
16485 if changed {
16486 *v = v2
16487 }
16488 case map[int]int64:
16489 fastpathTV.DecMapIntInt64V(v, false, d)
16490 case *map[int]int64:
16491 var v2 map[int]int64
16492 v2, changed = fastpathTV.DecMapIntInt64V(*v, true, d)
16493 if changed {
16494 *v = v2
16495 }
16496 case map[int]float32:
16497 fastpathTV.DecMapIntFloat32V(v, false, d)
16498 case *map[int]float32:
16499 var v2 map[int]float32
16500 v2, changed = fastpathTV.DecMapIntFloat32V(*v, true, d)
16501 if changed {
16502 *v = v2
16503 }
16504 case map[int]float64:
16505 fastpathTV.DecMapIntFloat64V(v, false, d)
16506 case *map[int]float64:
16507 var v2 map[int]float64
16508 v2, changed = fastpathTV.DecMapIntFloat64V(*v, true, d)
16509 if changed {
16510 *v = v2
16511 }
16512 case map[int]bool:
16513 fastpathTV.DecMapIntBoolV(v, false, d)
16514 case *map[int]bool:
16515 var v2 map[int]bool
16516 v2, changed = fastpathTV.DecMapIntBoolV(*v, true, d)
16517 if changed {
16518 *v = v2
16519 }
16520 case map[int8]interface{}:
16521 fastpathTV.DecMapInt8IntfV(v, false, d)
16522 case *map[int8]interface{}:
16523 var v2 map[int8]interface{}
16524 v2, changed = fastpathTV.DecMapInt8IntfV(*v, true, d)
16525 if changed {
16526 *v = v2
16527 }
16528 case map[int8]string:
16529 fastpathTV.DecMapInt8StringV(v, false, d)
16530 case *map[int8]string:
16531 var v2 map[int8]string
16532 v2, changed = fastpathTV.DecMapInt8StringV(*v, true, d)
16533 if changed {
16534 *v = v2
16535 }
16536 case map[int8]uint:
16537 fastpathTV.DecMapInt8UintV(v, false, d)
16538 case *map[int8]uint:
16539 var v2 map[int8]uint
16540 v2, changed = fastpathTV.DecMapInt8UintV(*v, true, d)
16541 if changed {
16542 *v = v2
16543 }
16544 case map[int8]uint8:
16545 fastpathTV.DecMapInt8Uint8V(v, false, d)
16546 case *map[int8]uint8:
16547 var v2 map[int8]uint8
16548 v2, changed = fastpathTV.DecMapInt8Uint8V(*v, true, d)
16549 if changed {
16550 *v = v2
16551 }
16552 case map[int8]uint16:
16553 fastpathTV.DecMapInt8Uint16V(v, false, d)
16554 case *map[int8]uint16:
16555 var v2 map[int8]uint16
16556 v2, changed = fastpathTV.DecMapInt8Uint16V(*v, true, d)
16557 if changed {
16558 *v = v2
16559 }
16560 case map[int8]uint32:
16561 fastpathTV.DecMapInt8Uint32V(v, false, d)
16562 case *map[int8]uint32:
16563 var v2 map[int8]uint32
16564 v2, changed = fastpathTV.DecMapInt8Uint32V(*v, true, d)
16565 if changed {
16566 *v = v2
16567 }
16568 case map[int8]uint64:
16569 fastpathTV.DecMapInt8Uint64V(v, false, d)
16570 case *map[int8]uint64:
16571 var v2 map[int8]uint64
16572 v2, changed = fastpathTV.DecMapInt8Uint64V(*v, true, d)
16573 if changed {
16574 *v = v2
16575 }
16576 case map[int8]uintptr:
16577 fastpathTV.DecMapInt8UintptrV(v, false, d)
16578 case *map[int8]uintptr:
16579 var v2 map[int8]uintptr
16580 v2, changed = fastpathTV.DecMapInt8UintptrV(*v, true, d)
16581 if changed {
16582 *v = v2
16583 }
16584 case map[int8]int:
16585 fastpathTV.DecMapInt8IntV(v, false, d)
16586 case *map[int8]int:
16587 var v2 map[int8]int
16588 v2, changed = fastpathTV.DecMapInt8IntV(*v, true, d)
16589 if changed {
16590 *v = v2
16591 }
16592 case map[int8]int8:
16593 fastpathTV.DecMapInt8Int8V(v, false, d)
16594 case *map[int8]int8:
16595 var v2 map[int8]int8
16596 v2, changed = fastpathTV.DecMapInt8Int8V(*v, true, d)
16597 if changed {
16598 *v = v2
16599 }
16600 case map[int8]int16:
16601 fastpathTV.DecMapInt8Int16V(v, false, d)
16602 case *map[int8]int16:
16603 var v2 map[int8]int16
16604 v2, changed = fastpathTV.DecMapInt8Int16V(*v, true, d)
16605 if changed {
16606 *v = v2
16607 }
16608 case map[int8]int32:
16609 fastpathTV.DecMapInt8Int32V(v, false, d)
16610 case *map[int8]int32:
16611 var v2 map[int8]int32
16612 v2, changed = fastpathTV.DecMapInt8Int32V(*v, true, d)
16613 if changed {
16614 *v = v2
16615 }
16616 case map[int8]int64:
16617 fastpathTV.DecMapInt8Int64V(v, false, d)
16618 case *map[int8]int64:
16619 var v2 map[int8]int64
16620 v2, changed = fastpathTV.DecMapInt8Int64V(*v, true, d)
16621 if changed {
16622 *v = v2
16623 }
16624 case map[int8]float32:
16625 fastpathTV.DecMapInt8Float32V(v, false, d)
16626 case *map[int8]float32:
16627 var v2 map[int8]float32
16628 v2, changed = fastpathTV.DecMapInt8Float32V(*v, true, d)
16629 if changed {
16630 *v = v2
16631 }
16632 case map[int8]float64:
16633 fastpathTV.DecMapInt8Float64V(v, false, d)
16634 case *map[int8]float64:
16635 var v2 map[int8]float64
16636 v2, changed = fastpathTV.DecMapInt8Float64V(*v, true, d)
16637 if changed {
16638 *v = v2
16639 }
16640 case map[int8]bool:
16641 fastpathTV.DecMapInt8BoolV(v, false, d)
16642 case *map[int8]bool:
16643 var v2 map[int8]bool
16644 v2, changed = fastpathTV.DecMapInt8BoolV(*v, true, d)
16645 if changed {
16646 *v = v2
16647 }
16648 case map[int16]interface{}:
16649 fastpathTV.DecMapInt16IntfV(v, false, d)
16650 case *map[int16]interface{}:
16651 var v2 map[int16]interface{}
16652 v2, changed = fastpathTV.DecMapInt16IntfV(*v, true, d)
16653 if changed {
16654 *v = v2
16655 }
16656 case map[int16]string:
16657 fastpathTV.DecMapInt16StringV(v, false, d)
16658 case *map[int16]string:
16659 var v2 map[int16]string
16660 v2, changed = fastpathTV.DecMapInt16StringV(*v, true, d)
16661 if changed {
16662 *v = v2
16663 }
16664 case map[int16]uint:
16665 fastpathTV.DecMapInt16UintV(v, false, d)
16666 case *map[int16]uint:
16667 var v2 map[int16]uint
16668 v2, changed = fastpathTV.DecMapInt16UintV(*v, true, d)
16669 if changed {
16670 *v = v2
16671 }
16672 case map[int16]uint8:
16673 fastpathTV.DecMapInt16Uint8V(v, false, d)
16674 case *map[int16]uint8:
16675 var v2 map[int16]uint8
16676 v2, changed = fastpathTV.DecMapInt16Uint8V(*v, true, d)
16677 if changed {
16678 *v = v2
16679 }
16680 case map[int16]uint16:
16681 fastpathTV.DecMapInt16Uint16V(v, false, d)
16682 case *map[int16]uint16:
16683 var v2 map[int16]uint16
16684 v2, changed = fastpathTV.DecMapInt16Uint16V(*v, true, d)
16685 if changed {
16686 *v = v2
16687 }
16688 case map[int16]uint32:
16689 fastpathTV.DecMapInt16Uint32V(v, false, d)
16690 case *map[int16]uint32:
16691 var v2 map[int16]uint32
16692 v2, changed = fastpathTV.DecMapInt16Uint32V(*v, true, d)
16693 if changed {
16694 *v = v2
16695 }
16696 case map[int16]uint64:
16697 fastpathTV.DecMapInt16Uint64V(v, false, d)
16698 case *map[int16]uint64:
16699 var v2 map[int16]uint64
16700 v2, changed = fastpathTV.DecMapInt16Uint64V(*v, true, d)
16701 if changed {
16702 *v = v2
16703 }
16704 case map[int16]uintptr:
16705 fastpathTV.DecMapInt16UintptrV(v, false, d)
16706 case *map[int16]uintptr:
16707 var v2 map[int16]uintptr
16708 v2, changed = fastpathTV.DecMapInt16UintptrV(*v, true, d)
16709 if changed {
16710 *v = v2
16711 }
16712 case map[int16]int:
16713 fastpathTV.DecMapInt16IntV(v, false, d)
16714 case *map[int16]int:
16715 var v2 map[int16]int
16716 v2, changed = fastpathTV.DecMapInt16IntV(*v, true, d)
16717 if changed {
16718 *v = v2
16719 }
16720 case map[int16]int8:
16721 fastpathTV.DecMapInt16Int8V(v, false, d)
16722 case *map[int16]int8:
16723 var v2 map[int16]int8
16724 v2, changed = fastpathTV.DecMapInt16Int8V(*v, true, d)
16725 if changed {
16726 *v = v2
16727 }
16728 case map[int16]int16:
16729 fastpathTV.DecMapInt16Int16V(v, false, d)
16730 case *map[int16]int16:
16731 var v2 map[int16]int16
16732 v2, changed = fastpathTV.DecMapInt16Int16V(*v, true, d)
16733 if changed {
16734 *v = v2
16735 }
16736 case map[int16]int32:
16737 fastpathTV.DecMapInt16Int32V(v, false, d)
16738 case *map[int16]int32:
16739 var v2 map[int16]int32
16740 v2, changed = fastpathTV.DecMapInt16Int32V(*v, true, d)
16741 if changed {
16742 *v = v2
16743 }
16744 case map[int16]int64:
16745 fastpathTV.DecMapInt16Int64V(v, false, d)
16746 case *map[int16]int64:
16747 var v2 map[int16]int64
16748 v2, changed = fastpathTV.DecMapInt16Int64V(*v, true, d)
16749 if changed {
16750 *v = v2
16751 }
16752 case map[int16]float32:
16753 fastpathTV.DecMapInt16Float32V(v, false, d)
16754 case *map[int16]float32:
16755 var v2 map[int16]float32
16756 v2, changed = fastpathTV.DecMapInt16Float32V(*v, true, d)
16757 if changed {
16758 *v = v2
16759 }
16760 case map[int16]float64:
16761 fastpathTV.DecMapInt16Float64V(v, false, d)
16762 case *map[int16]float64:
16763 var v2 map[int16]float64
16764 v2, changed = fastpathTV.DecMapInt16Float64V(*v, true, d)
16765 if changed {
16766 *v = v2
16767 }
16768 case map[int16]bool:
16769 fastpathTV.DecMapInt16BoolV(v, false, d)
16770 case *map[int16]bool:
16771 var v2 map[int16]bool
16772 v2, changed = fastpathTV.DecMapInt16BoolV(*v, true, d)
16773 if changed {
16774 *v = v2
16775 }
16776 case map[int32]interface{}:
16777 fastpathTV.DecMapInt32IntfV(v, false, d)
16778 case *map[int32]interface{}:
16779 var v2 map[int32]interface{}
16780 v2, changed = fastpathTV.DecMapInt32IntfV(*v, true, d)
16781 if changed {
16782 *v = v2
16783 }
16784 case map[int32]string:
16785 fastpathTV.DecMapInt32StringV(v, false, d)
16786 case *map[int32]string:
16787 var v2 map[int32]string
16788 v2, changed = fastpathTV.DecMapInt32StringV(*v, true, d)
16789 if changed {
16790 *v = v2
16791 }
16792 case map[int32]uint:
16793 fastpathTV.DecMapInt32UintV(v, false, d)
16794 case *map[int32]uint:
16795 var v2 map[int32]uint
16796 v2, changed = fastpathTV.DecMapInt32UintV(*v, true, d)
16797 if changed {
16798 *v = v2
16799 }
16800 case map[int32]uint8:
16801 fastpathTV.DecMapInt32Uint8V(v, false, d)
16802 case *map[int32]uint8:
16803 var v2 map[int32]uint8
16804 v2, changed = fastpathTV.DecMapInt32Uint8V(*v, true, d)
16805 if changed {
16806 *v = v2
16807 }
16808 case map[int32]uint16:
16809 fastpathTV.DecMapInt32Uint16V(v, false, d)
16810 case *map[int32]uint16:
16811 var v2 map[int32]uint16
16812 v2, changed = fastpathTV.DecMapInt32Uint16V(*v, true, d)
16813 if changed {
16814 *v = v2
16815 }
16816 case map[int32]uint32:
16817 fastpathTV.DecMapInt32Uint32V(v, false, d)
16818 case *map[int32]uint32:
16819 var v2 map[int32]uint32
16820 v2, changed = fastpathTV.DecMapInt32Uint32V(*v, true, d)
16821 if changed {
16822 *v = v2
16823 }
16824 case map[int32]uint64:
16825 fastpathTV.DecMapInt32Uint64V(v, false, d)
16826 case *map[int32]uint64:
16827 var v2 map[int32]uint64
16828 v2, changed = fastpathTV.DecMapInt32Uint64V(*v, true, d)
16829 if changed {
16830 *v = v2
16831 }
16832 case map[int32]uintptr:
16833 fastpathTV.DecMapInt32UintptrV(v, false, d)
16834 case *map[int32]uintptr:
16835 var v2 map[int32]uintptr
16836 v2, changed = fastpathTV.DecMapInt32UintptrV(*v, true, d)
16837 if changed {
16838 *v = v2
16839 }
16840 case map[int32]int:
16841 fastpathTV.DecMapInt32IntV(v, false, d)
16842 case *map[int32]int:
16843 var v2 map[int32]int
16844 v2, changed = fastpathTV.DecMapInt32IntV(*v, true, d)
16845 if changed {
16846 *v = v2
16847 }
16848 case map[int32]int8:
16849 fastpathTV.DecMapInt32Int8V(v, false, d)
16850 case *map[int32]int8:
16851 var v2 map[int32]int8
16852 v2, changed = fastpathTV.DecMapInt32Int8V(*v, true, d)
16853 if changed {
16854 *v = v2
16855 }
16856 case map[int32]int16:
16857 fastpathTV.DecMapInt32Int16V(v, false, d)
16858 case *map[int32]int16:
16859 var v2 map[int32]int16
16860 v2, changed = fastpathTV.DecMapInt32Int16V(*v, true, d)
16861 if changed {
16862 *v = v2
16863 }
16864 case map[int32]int32:
16865 fastpathTV.DecMapInt32Int32V(v, false, d)
16866 case *map[int32]int32:
16867 var v2 map[int32]int32
16868 v2, changed = fastpathTV.DecMapInt32Int32V(*v, true, d)
16869 if changed {
16870 *v = v2
16871 }
16872 case map[int32]int64:
16873 fastpathTV.DecMapInt32Int64V(v, false, d)
16874 case *map[int32]int64:
16875 var v2 map[int32]int64
16876 v2, changed = fastpathTV.DecMapInt32Int64V(*v, true, d)
16877 if changed {
16878 *v = v2
16879 }
16880 case map[int32]float32:
16881 fastpathTV.DecMapInt32Float32V(v, false, d)
16882 case *map[int32]float32:
16883 var v2 map[int32]float32
16884 v2, changed = fastpathTV.DecMapInt32Float32V(*v, true, d)
16885 if changed {
16886 *v = v2
16887 }
16888 case map[int32]float64:
16889 fastpathTV.DecMapInt32Float64V(v, false, d)
16890 case *map[int32]float64:
16891 var v2 map[int32]float64
16892 v2, changed = fastpathTV.DecMapInt32Float64V(*v, true, d)
16893 if changed {
16894 *v = v2
16895 }
16896 case map[int32]bool:
16897 fastpathTV.DecMapInt32BoolV(v, false, d)
16898 case *map[int32]bool:
16899 var v2 map[int32]bool
16900 v2, changed = fastpathTV.DecMapInt32BoolV(*v, true, d)
16901 if changed {
16902 *v = v2
16903 }
16904 case map[int64]interface{}:
16905 fastpathTV.DecMapInt64IntfV(v, false, d)
16906 case *map[int64]interface{}:
16907 var v2 map[int64]interface{}
16908 v2, changed = fastpathTV.DecMapInt64IntfV(*v, true, d)
16909 if changed {
16910 *v = v2
16911 }
16912 case map[int64]string:
16913 fastpathTV.DecMapInt64StringV(v, false, d)
16914 case *map[int64]string:
16915 var v2 map[int64]string
16916 v2, changed = fastpathTV.DecMapInt64StringV(*v, true, d)
16917 if changed {
16918 *v = v2
16919 }
16920 case map[int64]uint:
16921 fastpathTV.DecMapInt64UintV(v, false, d)
16922 case *map[int64]uint:
16923 var v2 map[int64]uint
16924 v2, changed = fastpathTV.DecMapInt64UintV(*v, true, d)
16925 if changed {
16926 *v = v2
16927 }
16928 case map[int64]uint8:
16929 fastpathTV.DecMapInt64Uint8V(v, false, d)
16930 case *map[int64]uint8:
16931 var v2 map[int64]uint8
16932 v2, changed = fastpathTV.DecMapInt64Uint8V(*v, true, d)
16933 if changed {
16934 *v = v2
16935 }
16936 case map[int64]uint16:
16937 fastpathTV.DecMapInt64Uint16V(v, false, d)
16938 case *map[int64]uint16:
16939 var v2 map[int64]uint16
16940 v2, changed = fastpathTV.DecMapInt64Uint16V(*v, true, d)
16941 if changed {
16942 *v = v2
16943 }
16944 case map[int64]uint32:
16945 fastpathTV.DecMapInt64Uint32V(v, false, d)
16946 case *map[int64]uint32:
16947 var v2 map[int64]uint32
16948 v2, changed = fastpathTV.DecMapInt64Uint32V(*v, true, d)
16949 if changed {
16950 *v = v2
16951 }
16952 case map[int64]uint64:
16953 fastpathTV.DecMapInt64Uint64V(v, false, d)
16954 case *map[int64]uint64:
16955 var v2 map[int64]uint64
16956 v2, changed = fastpathTV.DecMapInt64Uint64V(*v, true, d)
16957 if changed {
16958 *v = v2
16959 }
16960 case map[int64]uintptr:
16961 fastpathTV.DecMapInt64UintptrV(v, false, d)
16962 case *map[int64]uintptr:
16963 var v2 map[int64]uintptr
16964 v2, changed = fastpathTV.DecMapInt64UintptrV(*v, true, d)
16965 if changed {
16966 *v = v2
16967 }
16968 case map[int64]int:
16969 fastpathTV.DecMapInt64IntV(v, false, d)
16970 case *map[int64]int:
16971 var v2 map[int64]int
16972 v2, changed = fastpathTV.DecMapInt64IntV(*v, true, d)
16973 if changed {
16974 *v = v2
16975 }
16976 case map[int64]int8:
16977 fastpathTV.DecMapInt64Int8V(v, false, d)
16978 case *map[int64]int8:
16979 var v2 map[int64]int8
16980 v2, changed = fastpathTV.DecMapInt64Int8V(*v, true, d)
16981 if changed {
16982 *v = v2
16983 }
16984 case map[int64]int16:
16985 fastpathTV.DecMapInt64Int16V(v, false, d)
16986 case *map[int64]int16:
16987 var v2 map[int64]int16
16988 v2, changed = fastpathTV.DecMapInt64Int16V(*v, true, d)
16989 if changed {
16990 *v = v2
16991 }
16992 case map[int64]int32:
16993 fastpathTV.DecMapInt64Int32V(v, false, d)
16994 case *map[int64]int32:
16995 var v2 map[int64]int32
16996 v2, changed = fastpathTV.DecMapInt64Int32V(*v, true, d)
16997 if changed {
16998 *v = v2
16999 }
17000 case map[int64]int64:
17001 fastpathTV.DecMapInt64Int64V(v, false, d)
17002 case *map[int64]int64:
17003 var v2 map[int64]int64
17004 v2, changed = fastpathTV.DecMapInt64Int64V(*v, true, d)
17005 if changed {
17006 *v = v2
17007 }
17008 case map[int64]float32:
17009 fastpathTV.DecMapInt64Float32V(v, false, d)
17010 case *map[int64]float32:
17011 var v2 map[int64]float32
17012 v2, changed = fastpathTV.DecMapInt64Float32V(*v, true, d)
17013 if changed {
17014 *v = v2
17015 }
17016 case map[int64]float64:
17017 fastpathTV.DecMapInt64Float64V(v, false, d)
17018 case *map[int64]float64:
17019 var v2 map[int64]float64
17020 v2, changed = fastpathTV.DecMapInt64Float64V(*v, true, d)
17021 if changed {
17022 *v = v2
17023 }
17024 case map[int64]bool:
17025 fastpathTV.DecMapInt64BoolV(v, false, d)
17026 case *map[int64]bool:
17027 var v2 map[int64]bool
17028 v2, changed = fastpathTV.DecMapInt64BoolV(*v, true, d)
17029 if changed {
17030 *v = v2
17031 }
17032 case map[bool]interface{}:
17033 fastpathTV.DecMapBoolIntfV(v, false, d)
17034 case *map[bool]interface{}:
17035 var v2 map[bool]interface{}
17036 v2, changed = fastpathTV.DecMapBoolIntfV(*v, true, d)
17037 if changed {
17038 *v = v2
17039 }
17040 case map[bool]string:
17041 fastpathTV.DecMapBoolStringV(v, false, d)
17042 case *map[bool]string:
17043 var v2 map[bool]string
17044 v2, changed = fastpathTV.DecMapBoolStringV(*v, true, d)
17045 if changed {
17046 *v = v2
17047 }
17048 case map[bool]uint:
17049 fastpathTV.DecMapBoolUintV(v, false, d)
17050 case *map[bool]uint:
17051 var v2 map[bool]uint
17052 v2, changed = fastpathTV.DecMapBoolUintV(*v, true, d)
17053 if changed {
17054 *v = v2
17055 }
17056 case map[bool]uint8:
17057 fastpathTV.DecMapBoolUint8V(v, false, d)
17058 case *map[bool]uint8:
17059 var v2 map[bool]uint8
17060 v2, changed = fastpathTV.DecMapBoolUint8V(*v, true, d)
17061 if changed {
17062 *v = v2
17063 }
17064 case map[bool]uint16:
17065 fastpathTV.DecMapBoolUint16V(v, false, d)
17066 case *map[bool]uint16:
17067 var v2 map[bool]uint16
17068 v2, changed = fastpathTV.DecMapBoolUint16V(*v, true, d)
17069 if changed {
17070 *v = v2
17071 }
17072 case map[bool]uint32:
17073 fastpathTV.DecMapBoolUint32V(v, false, d)
17074 case *map[bool]uint32:
17075 var v2 map[bool]uint32
17076 v2, changed = fastpathTV.DecMapBoolUint32V(*v, true, d)
17077 if changed {
17078 *v = v2
17079 }
17080 case map[bool]uint64:
17081 fastpathTV.DecMapBoolUint64V(v, false, d)
17082 case *map[bool]uint64:
17083 var v2 map[bool]uint64
17084 v2, changed = fastpathTV.DecMapBoolUint64V(*v, true, d)
17085 if changed {
17086 *v = v2
17087 }
17088 case map[bool]uintptr:
17089 fastpathTV.DecMapBoolUintptrV(v, false, d)
17090 case *map[bool]uintptr:
17091 var v2 map[bool]uintptr
17092 v2, changed = fastpathTV.DecMapBoolUintptrV(*v, true, d)
17093 if changed {
17094 *v = v2
17095 }
17096 case map[bool]int:
17097 fastpathTV.DecMapBoolIntV(v, false, d)
17098 case *map[bool]int:
17099 var v2 map[bool]int
17100 v2, changed = fastpathTV.DecMapBoolIntV(*v, true, d)
17101 if changed {
17102 *v = v2
17103 }
17104 case map[bool]int8:
17105 fastpathTV.DecMapBoolInt8V(v, false, d)
17106 case *map[bool]int8:
17107 var v2 map[bool]int8
17108 v2, changed = fastpathTV.DecMapBoolInt8V(*v, true, d)
17109 if changed {
17110 *v = v2
17111 }
17112 case map[bool]int16:
17113 fastpathTV.DecMapBoolInt16V(v, false, d)
17114 case *map[bool]int16:
17115 var v2 map[bool]int16
17116 v2, changed = fastpathTV.DecMapBoolInt16V(*v, true, d)
17117 if changed {
17118 *v = v2
17119 }
17120 case map[bool]int32:
17121 fastpathTV.DecMapBoolInt32V(v, false, d)
17122 case *map[bool]int32:
17123 var v2 map[bool]int32
17124 v2, changed = fastpathTV.DecMapBoolInt32V(*v, true, d)
17125 if changed {
17126 *v = v2
17127 }
17128 case map[bool]int64:
17129 fastpathTV.DecMapBoolInt64V(v, false, d)
17130 case *map[bool]int64:
17131 var v2 map[bool]int64
17132 v2, changed = fastpathTV.DecMapBoolInt64V(*v, true, d)
17133 if changed {
17134 *v = v2
17135 }
17136 case map[bool]float32:
17137 fastpathTV.DecMapBoolFloat32V(v, false, d)
17138 case *map[bool]float32:
17139 var v2 map[bool]float32
17140 v2, changed = fastpathTV.DecMapBoolFloat32V(*v, true, d)
17141 if changed {
17142 *v = v2
17143 }
17144 case map[bool]float64:
17145 fastpathTV.DecMapBoolFloat64V(v, false, d)
17146 case *map[bool]float64:
17147 var v2 map[bool]float64
17148 v2, changed = fastpathTV.DecMapBoolFloat64V(*v, true, d)
17149 if changed {
17150 *v = v2
17151 }
17152 case map[bool]bool:
17153 fastpathTV.DecMapBoolBoolV(v, false, d)
17154 case *map[bool]bool:
17155 var v2 map[bool]bool
17156 v2, changed = fastpathTV.DecMapBoolBoolV(*v, true, d)
17157 if changed {
17158 *v = v2
17159 }
17160 default:
17161 _ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4
17162 return false
17163 }
17164 return true
17165}
17166
17167func fastpathDecodeSetZeroTypeSwitch(iv interface{}) bool {
17168 switch v := iv.(type) {
17169
17170 case *[]interface{}:
17171 *v = nil
17172 case *[]string:
17173 *v = nil
17174 case *[]float32:
17175 *v = nil
17176 case *[]float64:
17177 *v = nil
17178 case *[]uint:
17179 *v = nil
17180 case *[]uint8:
17181 *v = nil
17182 case *[]uint16:
17183 *v = nil
17184 case *[]uint32:
17185 *v = nil
17186 case *[]uint64:
17187 *v = nil
17188 case *[]uintptr:
17189 *v = nil
17190 case *[]int:
17191 *v = nil
17192 case *[]int8:
17193 *v = nil
17194 case *[]int16:
17195 *v = nil
17196 case *[]int32:
17197 *v = nil
17198 case *[]int64:
17199 *v = nil
17200 case *[]bool:
17201 *v = nil
17202
17203 case *map[interface{}]interface{}:
17204 *v = nil
17205 case *map[interface{}]string:
17206 *v = nil
17207 case *map[interface{}]uint:
17208 *v = nil
17209 case *map[interface{}]uint8:
17210 *v = nil
17211 case *map[interface{}]uint16:
17212 *v = nil
17213 case *map[interface{}]uint32:
17214 *v = nil
17215 case *map[interface{}]uint64:
17216 *v = nil
17217 case *map[interface{}]uintptr:
17218 *v = nil
17219 case *map[interface{}]int:
17220 *v = nil
17221 case *map[interface{}]int8:
17222 *v = nil
17223 case *map[interface{}]int16:
17224 *v = nil
17225 case *map[interface{}]int32:
17226 *v = nil
17227 case *map[interface{}]int64:
17228 *v = nil
17229 case *map[interface{}]float32:
17230 *v = nil
17231 case *map[interface{}]float64:
17232 *v = nil
17233 case *map[interface{}]bool:
17234 *v = nil
17235 case *map[string]interface{}:
17236 *v = nil
17237 case *map[string]string:
17238 *v = nil
17239 case *map[string]uint:
17240 *v = nil
17241 case *map[string]uint8:
17242 *v = nil
17243 case *map[string]uint16:
17244 *v = nil
17245 case *map[string]uint32:
17246 *v = nil
17247 case *map[string]uint64:
17248 *v = nil
17249 case *map[string]uintptr:
17250 *v = nil
17251 case *map[string]int:
17252 *v = nil
17253 case *map[string]int8:
17254 *v = nil
17255 case *map[string]int16:
17256 *v = nil
17257 case *map[string]int32:
17258 *v = nil
17259 case *map[string]int64:
17260 *v = nil
17261 case *map[string]float32:
17262 *v = nil
17263 case *map[string]float64:
17264 *v = nil
17265 case *map[string]bool:
17266 *v = nil
17267 case *map[float32]interface{}:
17268 *v = nil
17269 case *map[float32]string:
17270 *v = nil
17271 case *map[float32]uint:
17272 *v = nil
17273 case *map[float32]uint8:
17274 *v = nil
17275 case *map[float32]uint16:
17276 *v = nil
17277 case *map[float32]uint32:
17278 *v = nil
17279 case *map[float32]uint64:
17280 *v = nil
17281 case *map[float32]uintptr:
17282 *v = nil
17283 case *map[float32]int:
17284 *v = nil
17285 case *map[float32]int8:
17286 *v = nil
17287 case *map[float32]int16:
17288 *v = nil
17289 case *map[float32]int32:
17290 *v = nil
17291 case *map[float32]int64:
17292 *v = nil
17293 case *map[float32]float32:
17294 *v = nil
17295 case *map[float32]float64:
17296 *v = nil
17297 case *map[float32]bool:
17298 *v = nil
17299 case *map[float64]interface{}:
17300 *v = nil
17301 case *map[float64]string:
17302 *v = nil
17303 case *map[float64]uint:
17304 *v = nil
17305 case *map[float64]uint8:
17306 *v = nil
17307 case *map[float64]uint16:
17308 *v = nil
17309 case *map[float64]uint32:
17310 *v = nil
17311 case *map[float64]uint64:
17312 *v = nil
17313 case *map[float64]uintptr:
17314 *v = nil
17315 case *map[float64]int:
17316 *v = nil
17317 case *map[float64]int8:
17318 *v = nil
17319 case *map[float64]int16:
17320 *v = nil
17321 case *map[float64]int32:
17322 *v = nil
17323 case *map[float64]int64:
17324 *v = nil
17325 case *map[float64]float32:
17326 *v = nil
17327 case *map[float64]float64:
17328 *v = nil
17329 case *map[float64]bool:
17330 *v = nil
17331 case *map[uint]interface{}:
17332 *v = nil
17333 case *map[uint]string:
17334 *v = nil
17335 case *map[uint]uint:
17336 *v = nil
17337 case *map[uint]uint8:
17338 *v = nil
17339 case *map[uint]uint16:
17340 *v = nil
17341 case *map[uint]uint32:
17342 *v = nil
17343 case *map[uint]uint64:
17344 *v = nil
17345 case *map[uint]uintptr:
17346 *v = nil
17347 case *map[uint]int:
17348 *v = nil
17349 case *map[uint]int8:
17350 *v = nil
17351 case *map[uint]int16:
17352 *v = nil
17353 case *map[uint]int32:
17354 *v = nil
17355 case *map[uint]int64:
17356 *v = nil
17357 case *map[uint]float32:
17358 *v = nil
17359 case *map[uint]float64:
17360 *v = nil
17361 case *map[uint]bool:
17362 *v = nil
17363 case *map[uint8]interface{}:
17364 *v = nil
17365 case *map[uint8]string:
17366 *v = nil
17367 case *map[uint8]uint:
17368 *v = nil
17369 case *map[uint8]uint8:
17370 *v = nil
17371 case *map[uint8]uint16:
17372 *v = nil
17373 case *map[uint8]uint32:
17374 *v = nil
17375 case *map[uint8]uint64:
17376 *v = nil
17377 case *map[uint8]uintptr:
17378 *v = nil
17379 case *map[uint8]int:
17380 *v = nil
17381 case *map[uint8]int8:
17382 *v = nil
17383 case *map[uint8]int16:
17384 *v = nil
17385 case *map[uint8]int32:
17386 *v = nil
17387 case *map[uint8]int64:
17388 *v = nil
17389 case *map[uint8]float32:
17390 *v = nil
17391 case *map[uint8]float64:
17392 *v = nil
17393 case *map[uint8]bool:
17394 *v = nil
17395 case *map[uint16]interface{}:
17396 *v = nil
17397 case *map[uint16]string:
17398 *v = nil
17399 case *map[uint16]uint:
17400 *v = nil
17401 case *map[uint16]uint8:
17402 *v = nil
17403 case *map[uint16]uint16:
17404 *v = nil
17405 case *map[uint16]uint32:
17406 *v = nil
17407 case *map[uint16]uint64:
17408 *v = nil
17409 case *map[uint16]uintptr:
17410 *v = nil
17411 case *map[uint16]int:
17412 *v = nil
17413 case *map[uint16]int8:
17414 *v = nil
17415 case *map[uint16]int16:
17416 *v = nil
17417 case *map[uint16]int32:
17418 *v = nil
17419 case *map[uint16]int64:
17420 *v = nil
17421 case *map[uint16]float32:
17422 *v = nil
17423 case *map[uint16]float64:
17424 *v = nil
17425 case *map[uint16]bool:
17426 *v = nil
17427 case *map[uint32]interface{}:
17428 *v = nil
17429 case *map[uint32]string:
17430 *v = nil
17431 case *map[uint32]uint:
17432 *v = nil
17433 case *map[uint32]uint8:
17434 *v = nil
17435 case *map[uint32]uint16:
17436 *v = nil
17437 case *map[uint32]uint32:
17438 *v = nil
17439 case *map[uint32]uint64:
17440 *v = nil
17441 case *map[uint32]uintptr:
17442 *v = nil
17443 case *map[uint32]int:
17444 *v = nil
17445 case *map[uint32]int8:
17446 *v = nil
17447 case *map[uint32]int16:
17448 *v = nil
17449 case *map[uint32]int32:
17450 *v = nil
17451 case *map[uint32]int64:
17452 *v = nil
17453 case *map[uint32]float32:
17454 *v = nil
17455 case *map[uint32]float64:
17456 *v = nil
17457 case *map[uint32]bool:
17458 *v = nil
17459 case *map[uint64]interface{}:
17460 *v = nil
17461 case *map[uint64]string:
17462 *v = nil
17463 case *map[uint64]uint:
17464 *v = nil
17465 case *map[uint64]uint8:
17466 *v = nil
17467 case *map[uint64]uint16:
17468 *v = nil
17469 case *map[uint64]uint32:
17470 *v = nil
17471 case *map[uint64]uint64:
17472 *v = nil
17473 case *map[uint64]uintptr:
17474 *v = nil
17475 case *map[uint64]int:
17476 *v = nil
17477 case *map[uint64]int8:
17478 *v = nil
17479 case *map[uint64]int16:
17480 *v = nil
17481 case *map[uint64]int32:
17482 *v = nil
17483 case *map[uint64]int64:
17484 *v = nil
17485 case *map[uint64]float32:
17486 *v = nil
17487 case *map[uint64]float64:
17488 *v = nil
17489 case *map[uint64]bool:
17490 *v = nil
17491 case *map[uintptr]interface{}:
17492 *v = nil
17493 case *map[uintptr]string:
17494 *v = nil
17495 case *map[uintptr]uint:
17496 *v = nil
17497 case *map[uintptr]uint8:
17498 *v = nil
17499 case *map[uintptr]uint16:
17500 *v = nil
17501 case *map[uintptr]uint32:
17502 *v = nil
17503 case *map[uintptr]uint64:
17504 *v = nil
17505 case *map[uintptr]uintptr:
17506 *v = nil
17507 case *map[uintptr]int:
17508 *v = nil
17509 case *map[uintptr]int8:
17510 *v = nil
17511 case *map[uintptr]int16:
17512 *v = nil
17513 case *map[uintptr]int32:
17514 *v = nil
17515 case *map[uintptr]int64:
17516 *v = nil
17517 case *map[uintptr]float32:
17518 *v = nil
17519 case *map[uintptr]float64:
17520 *v = nil
17521 case *map[uintptr]bool:
17522 *v = nil
17523 case *map[int]interface{}:
17524 *v = nil
17525 case *map[int]string:
17526 *v = nil
17527 case *map[int]uint:
17528 *v = nil
17529 case *map[int]uint8:
17530 *v = nil
17531 case *map[int]uint16:
17532 *v = nil
17533 case *map[int]uint32:
17534 *v = nil
17535 case *map[int]uint64:
17536 *v = nil
17537 case *map[int]uintptr:
17538 *v = nil
17539 case *map[int]int:
17540 *v = nil
17541 case *map[int]int8:
17542 *v = nil
17543 case *map[int]int16:
17544 *v = nil
17545 case *map[int]int32:
17546 *v = nil
17547 case *map[int]int64:
17548 *v = nil
17549 case *map[int]float32:
17550 *v = nil
17551 case *map[int]float64:
17552 *v = nil
17553 case *map[int]bool:
17554 *v = nil
17555 case *map[int8]interface{}:
17556 *v = nil
17557 case *map[int8]string:
17558 *v = nil
17559 case *map[int8]uint:
17560 *v = nil
17561 case *map[int8]uint8:
17562 *v = nil
17563 case *map[int8]uint16:
17564 *v = nil
17565 case *map[int8]uint32:
17566 *v = nil
17567 case *map[int8]uint64:
17568 *v = nil
17569 case *map[int8]uintptr:
17570 *v = nil
17571 case *map[int8]int:
17572 *v = nil
17573 case *map[int8]int8:
17574 *v = nil
17575 case *map[int8]int16:
17576 *v = nil
17577 case *map[int8]int32:
17578 *v = nil
17579 case *map[int8]int64:
17580 *v = nil
17581 case *map[int8]float32:
17582 *v = nil
17583 case *map[int8]float64:
17584 *v = nil
17585 case *map[int8]bool:
17586 *v = nil
17587 case *map[int16]interface{}:
17588 *v = nil
17589 case *map[int16]string:
17590 *v = nil
17591 case *map[int16]uint:
17592 *v = nil
17593 case *map[int16]uint8:
17594 *v = nil
17595 case *map[int16]uint16:
17596 *v = nil
17597 case *map[int16]uint32:
17598 *v = nil
17599 case *map[int16]uint64:
17600 *v = nil
17601 case *map[int16]uintptr:
17602 *v = nil
17603 case *map[int16]int:
17604 *v = nil
17605 case *map[int16]int8:
17606 *v = nil
17607 case *map[int16]int16:
17608 *v = nil
17609 case *map[int16]int32:
17610 *v = nil
17611 case *map[int16]int64:
17612 *v = nil
17613 case *map[int16]float32:
17614 *v = nil
17615 case *map[int16]float64:
17616 *v = nil
17617 case *map[int16]bool:
17618 *v = nil
17619 case *map[int32]interface{}:
17620 *v = nil
17621 case *map[int32]string:
17622 *v = nil
17623 case *map[int32]uint:
17624 *v = nil
17625 case *map[int32]uint8:
17626 *v = nil
17627 case *map[int32]uint16:
17628 *v = nil
17629 case *map[int32]uint32:
17630 *v = nil
17631 case *map[int32]uint64:
17632 *v = nil
17633 case *map[int32]uintptr:
17634 *v = nil
17635 case *map[int32]int:
17636 *v = nil
17637 case *map[int32]int8:
17638 *v = nil
17639 case *map[int32]int16:
17640 *v = nil
17641 case *map[int32]int32:
17642 *v = nil
17643 case *map[int32]int64:
17644 *v = nil
17645 case *map[int32]float32:
17646 *v = nil
17647 case *map[int32]float64:
17648 *v = nil
17649 case *map[int32]bool:
17650 *v = nil
17651 case *map[int64]interface{}:
17652 *v = nil
17653 case *map[int64]string:
17654 *v = nil
17655 case *map[int64]uint:
17656 *v = nil
17657 case *map[int64]uint8:
17658 *v = nil
17659 case *map[int64]uint16:
17660 *v = nil
17661 case *map[int64]uint32:
17662 *v = nil
17663 case *map[int64]uint64:
17664 *v = nil
17665 case *map[int64]uintptr:
17666 *v = nil
17667 case *map[int64]int:
17668 *v = nil
17669 case *map[int64]int8:
17670 *v = nil
17671 case *map[int64]int16:
17672 *v = nil
17673 case *map[int64]int32:
17674 *v = nil
17675 case *map[int64]int64:
17676 *v = nil
17677 case *map[int64]float32:
17678 *v = nil
17679 case *map[int64]float64:
17680 *v = nil
17681 case *map[int64]bool:
17682 *v = nil
17683 case *map[bool]interface{}:
17684 *v = nil
17685 case *map[bool]string:
17686 *v = nil
17687 case *map[bool]uint:
17688 *v = nil
17689 case *map[bool]uint8:
17690 *v = nil
17691 case *map[bool]uint16:
17692 *v = nil
17693 case *map[bool]uint32:
17694 *v = nil
17695 case *map[bool]uint64:
17696 *v = nil
17697 case *map[bool]uintptr:
17698 *v = nil
17699 case *map[bool]int:
17700 *v = nil
17701 case *map[bool]int8:
17702 *v = nil
17703 case *map[bool]int16:
17704 *v = nil
17705 case *map[bool]int32:
17706 *v = nil
17707 case *map[bool]int64:
17708 *v = nil
17709 case *map[bool]float32:
17710 *v = nil
17711 case *map[bool]float64:
17712 *v = nil
17713 case *map[bool]bool:
17714 *v = nil
17715 default:
17716 _ = v // workaround https://github.com/golang/go/issues/12927 seen in go1.4
17717 return false
17718 }
17719 return true
17720}
17721
17722// -- -- fast path functions
17723
17724func (d *Decoder) fastpathDecSliceIntfR(f *codecFnInfo, rv reflect.Value) {
17725 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
17726 vp := rv2i(rv).(*[]interface{})
17727 v, changed := fastpathTV.DecSliceIntfV(*vp, !array, d)
17728 if changed {
17729 *vp = v
17730 }
17731 } else {
17732 v := rv2i(rv).([]interface{})
17733 v2, changed := fastpathTV.DecSliceIntfV(v, !array, d)
17734 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
17735 copy(v, v2)
17736 }
17737 }
17738}
17739func (f fastpathT) DecSliceIntfX(vp *[]interface{}, d *Decoder) {
17740 v, changed := f.DecSliceIntfV(*vp, true, d)
17741 if changed {
17742 *vp = v
17743 }
17744}
17745func (_ fastpathT) DecSliceIntfV(v []interface{}, canChange bool, d *Decoder) (_ []interface{}, changed bool) {
17746 dd := d.d
17747 slh, containerLenS := d.decSliceHelperStart()
17748 if containerLenS == 0 {
17749 if canChange {
17750 if v == nil {
17751 v = []interface{}{}
17752 } else if len(v) != 0 {
17753 v = v[:0]
17754 }
17755 changed = true
17756 }
17757 slh.End()
17758 return v, changed
17759 }
17760 hasLen := containerLenS > 0
17761 var xlen int
17762 if hasLen && canChange {
17763 if containerLenS > cap(v) {
17764 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)
17765 if xlen <= cap(v) {
17766 v = v[:xlen]
17767 } else {
17768 v = make([]interface{}, xlen)
17769 }
17770 changed = true
17771 } else if containerLenS != len(v) {
17772 v = v[:containerLenS]
17773 changed = true
17774 }
17775 }
17776 j := 0
17777 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
17778 if j == 0 && len(v) == 0 && canChange {
17779 if hasLen {
17780 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)
17781 } else {
17782 xlen = 8
17783 }
17784 v = make([]interface{}, xlen)
17785 changed = true
17786 }
17787 // if indefinite, etc, then expand the slice if necessary
17788 var decodeIntoBlank bool
17789 if j >= len(v) {
17790 if canChange {
17791 v = append(v, nil)
17792 changed = true
17793 } else {
17794 d.arrayCannotExpand(len(v), j+1)
17795 decodeIntoBlank = true
17796 }
17797 }
17798 slh.ElemContainerState(j)
17799 if decodeIntoBlank {
17800 d.swallow()
17801 } else if dd.TryDecodeAsNil() {
17802 v[j] = nil
17803 } else {
17804 d.decode(&v[j])
17805 }
17806 }
17807 if canChange {
17808 if j < len(v) {
17809 v = v[:j]
17810 changed = true
17811 } else if j == 0 && v == nil {
17812 v = make([]interface{}, 0)
17813 changed = true
17814 }
17815 }
17816 slh.End()
17817 return v, changed
17818}
17819
17820func (d *Decoder) fastpathDecSliceStringR(f *codecFnInfo, rv reflect.Value) {
17821 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
17822 vp := rv2i(rv).(*[]string)
17823 v, changed := fastpathTV.DecSliceStringV(*vp, !array, d)
17824 if changed {
17825 *vp = v
17826 }
17827 } else {
17828 v := rv2i(rv).([]string)
17829 v2, changed := fastpathTV.DecSliceStringV(v, !array, d)
17830 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
17831 copy(v, v2)
17832 }
17833 }
17834}
17835func (f fastpathT) DecSliceStringX(vp *[]string, d *Decoder) {
17836 v, changed := f.DecSliceStringV(*vp, true, d)
17837 if changed {
17838 *vp = v
17839 }
17840}
17841func (_ fastpathT) DecSliceStringV(v []string, canChange bool, d *Decoder) (_ []string, changed bool) {
17842 dd := d.d
17843 slh, containerLenS := d.decSliceHelperStart()
17844 if containerLenS == 0 {
17845 if canChange {
17846 if v == nil {
17847 v = []string{}
17848 } else if len(v) != 0 {
17849 v = v[:0]
17850 }
17851 changed = true
17852 }
17853 slh.End()
17854 return v, changed
17855 }
17856 hasLen := containerLenS > 0
17857 var xlen int
17858 if hasLen && canChange {
17859 if containerLenS > cap(v) {
17860 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)
17861 if xlen <= cap(v) {
17862 v = v[:xlen]
17863 } else {
17864 v = make([]string, xlen)
17865 }
17866 changed = true
17867 } else if containerLenS != len(v) {
17868 v = v[:containerLenS]
17869 changed = true
17870 }
17871 }
17872 j := 0
17873 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
17874 if j == 0 && len(v) == 0 && canChange {
17875 if hasLen {
17876 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 16)
17877 } else {
17878 xlen = 8
17879 }
17880 v = make([]string, xlen)
17881 changed = true
17882 }
17883 // if indefinite, etc, then expand the slice if necessary
17884 var decodeIntoBlank bool
17885 if j >= len(v) {
17886 if canChange {
17887 v = append(v, "")
17888 changed = true
17889 } else {
17890 d.arrayCannotExpand(len(v), j+1)
17891 decodeIntoBlank = true
17892 }
17893 }
17894 slh.ElemContainerState(j)
17895 if decodeIntoBlank {
17896 d.swallow()
17897 } else if dd.TryDecodeAsNil() {
17898 v[j] = ""
17899 } else {
17900 v[j] = dd.DecodeString()
17901 }
17902 }
17903 if canChange {
17904 if j < len(v) {
17905 v = v[:j]
17906 changed = true
17907 } else if j == 0 && v == nil {
17908 v = make([]string, 0)
17909 changed = true
17910 }
17911 }
17912 slh.End()
17913 return v, changed
17914}
17915
17916func (d *Decoder) fastpathDecSliceFloat32R(f *codecFnInfo, rv reflect.Value) {
17917 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
17918 vp := rv2i(rv).(*[]float32)
17919 v, changed := fastpathTV.DecSliceFloat32V(*vp, !array, d)
17920 if changed {
17921 *vp = v
17922 }
17923 } else {
17924 v := rv2i(rv).([]float32)
17925 v2, changed := fastpathTV.DecSliceFloat32V(v, !array, d)
17926 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
17927 copy(v, v2)
17928 }
17929 }
17930}
17931func (f fastpathT) DecSliceFloat32X(vp *[]float32, d *Decoder) {
17932 v, changed := f.DecSliceFloat32V(*vp, true, d)
17933 if changed {
17934 *vp = v
17935 }
17936}
17937func (_ fastpathT) DecSliceFloat32V(v []float32, canChange bool, d *Decoder) (_ []float32, changed bool) {
17938 dd := d.d
17939 slh, containerLenS := d.decSliceHelperStart()
17940 if containerLenS == 0 {
17941 if canChange {
17942 if v == nil {
17943 v = []float32{}
17944 } else if len(v) != 0 {
17945 v = v[:0]
17946 }
17947 changed = true
17948 }
17949 slh.End()
17950 return v, changed
17951 }
17952 hasLen := containerLenS > 0
17953 var xlen int
17954 if hasLen && canChange {
17955 if containerLenS > cap(v) {
17956 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
17957 if xlen <= cap(v) {
17958 v = v[:xlen]
17959 } else {
17960 v = make([]float32, xlen)
17961 }
17962 changed = true
17963 } else if containerLenS != len(v) {
17964 v = v[:containerLenS]
17965 changed = true
17966 }
17967 }
17968 j := 0
17969 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
17970 if j == 0 && len(v) == 0 && canChange {
17971 if hasLen {
17972 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
17973 } else {
17974 xlen = 8
17975 }
17976 v = make([]float32, xlen)
17977 changed = true
17978 }
17979 // if indefinite, etc, then expand the slice if necessary
17980 var decodeIntoBlank bool
17981 if j >= len(v) {
17982 if canChange {
17983 v = append(v, 0)
17984 changed = true
17985 } else {
17986 d.arrayCannotExpand(len(v), j+1)
17987 decodeIntoBlank = true
17988 }
17989 }
17990 slh.ElemContainerState(j)
17991 if decodeIntoBlank {
17992 d.swallow()
17993 } else if dd.TryDecodeAsNil() {
17994 v[j] = 0
17995 } else {
17996 v[j] = float32(chkOvf.Float32V(dd.DecodeFloat64()))
17997 }
17998 }
17999 if canChange {
18000 if j < len(v) {
18001 v = v[:j]
18002 changed = true
18003 } else if j == 0 && v == nil {
18004 v = make([]float32, 0)
18005 changed = true
18006 }
18007 }
18008 slh.End()
18009 return v, changed
18010}
18011
18012func (d *Decoder) fastpathDecSliceFloat64R(f *codecFnInfo, rv reflect.Value) {
18013 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18014 vp := rv2i(rv).(*[]float64)
18015 v, changed := fastpathTV.DecSliceFloat64V(*vp, !array, d)
18016 if changed {
18017 *vp = v
18018 }
18019 } else {
18020 v := rv2i(rv).([]float64)
18021 v2, changed := fastpathTV.DecSliceFloat64V(v, !array, d)
18022 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18023 copy(v, v2)
18024 }
18025 }
18026}
18027func (f fastpathT) DecSliceFloat64X(vp *[]float64, d *Decoder) {
18028 v, changed := f.DecSliceFloat64V(*vp, true, d)
18029 if changed {
18030 *vp = v
18031 }
18032}
18033func (_ fastpathT) DecSliceFloat64V(v []float64, canChange bool, d *Decoder) (_ []float64, changed bool) {
18034 dd := d.d
18035 slh, containerLenS := d.decSliceHelperStart()
18036 if containerLenS == 0 {
18037 if canChange {
18038 if v == nil {
18039 v = []float64{}
18040 } else if len(v) != 0 {
18041 v = v[:0]
18042 }
18043 changed = true
18044 }
18045 slh.End()
18046 return v, changed
18047 }
18048 hasLen := containerLenS > 0
18049 var xlen int
18050 if hasLen && canChange {
18051 if containerLenS > cap(v) {
18052 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18053 if xlen <= cap(v) {
18054 v = v[:xlen]
18055 } else {
18056 v = make([]float64, xlen)
18057 }
18058 changed = true
18059 } else if containerLenS != len(v) {
18060 v = v[:containerLenS]
18061 changed = true
18062 }
18063 }
18064 j := 0
18065 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18066 if j == 0 && len(v) == 0 && canChange {
18067 if hasLen {
18068 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18069 } else {
18070 xlen = 8
18071 }
18072 v = make([]float64, xlen)
18073 changed = true
18074 }
18075 // if indefinite, etc, then expand the slice if necessary
18076 var decodeIntoBlank bool
18077 if j >= len(v) {
18078 if canChange {
18079 v = append(v, 0)
18080 changed = true
18081 } else {
18082 d.arrayCannotExpand(len(v), j+1)
18083 decodeIntoBlank = true
18084 }
18085 }
18086 slh.ElemContainerState(j)
18087 if decodeIntoBlank {
18088 d.swallow()
18089 } else if dd.TryDecodeAsNil() {
18090 v[j] = 0
18091 } else {
18092 v[j] = dd.DecodeFloat64()
18093 }
18094 }
18095 if canChange {
18096 if j < len(v) {
18097 v = v[:j]
18098 changed = true
18099 } else if j == 0 && v == nil {
18100 v = make([]float64, 0)
18101 changed = true
18102 }
18103 }
18104 slh.End()
18105 return v, changed
18106}
18107
18108func (d *Decoder) fastpathDecSliceUintR(f *codecFnInfo, rv reflect.Value) {
18109 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18110 vp := rv2i(rv).(*[]uint)
18111 v, changed := fastpathTV.DecSliceUintV(*vp, !array, d)
18112 if changed {
18113 *vp = v
18114 }
18115 } else {
18116 v := rv2i(rv).([]uint)
18117 v2, changed := fastpathTV.DecSliceUintV(v, !array, d)
18118 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18119 copy(v, v2)
18120 }
18121 }
18122}
18123func (f fastpathT) DecSliceUintX(vp *[]uint, d *Decoder) {
18124 v, changed := f.DecSliceUintV(*vp, true, d)
18125 if changed {
18126 *vp = v
18127 }
18128}
18129func (_ fastpathT) DecSliceUintV(v []uint, canChange bool, d *Decoder) (_ []uint, changed bool) {
18130 dd := d.d
18131 slh, containerLenS := d.decSliceHelperStart()
18132 if containerLenS == 0 {
18133 if canChange {
18134 if v == nil {
18135 v = []uint{}
18136 } else if len(v) != 0 {
18137 v = v[:0]
18138 }
18139 changed = true
18140 }
18141 slh.End()
18142 return v, changed
18143 }
18144 hasLen := containerLenS > 0
18145 var xlen int
18146 if hasLen && canChange {
18147 if containerLenS > cap(v) {
18148 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18149 if xlen <= cap(v) {
18150 v = v[:xlen]
18151 } else {
18152 v = make([]uint, xlen)
18153 }
18154 changed = true
18155 } else if containerLenS != len(v) {
18156 v = v[:containerLenS]
18157 changed = true
18158 }
18159 }
18160 j := 0
18161 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18162 if j == 0 && len(v) == 0 && canChange {
18163 if hasLen {
18164 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18165 } else {
18166 xlen = 8
18167 }
18168 v = make([]uint, xlen)
18169 changed = true
18170 }
18171 // if indefinite, etc, then expand the slice if necessary
18172 var decodeIntoBlank bool
18173 if j >= len(v) {
18174 if canChange {
18175 v = append(v, 0)
18176 changed = true
18177 } else {
18178 d.arrayCannotExpand(len(v), j+1)
18179 decodeIntoBlank = true
18180 }
18181 }
18182 slh.ElemContainerState(j)
18183 if decodeIntoBlank {
18184 d.swallow()
18185 } else if dd.TryDecodeAsNil() {
18186 v[j] = 0
18187 } else {
18188 v[j] = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
18189 }
18190 }
18191 if canChange {
18192 if j < len(v) {
18193 v = v[:j]
18194 changed = true
18195 } else if j == 0 && v == nil {
18196 v = make([]uint, 0)
18197 changed = true
18198 }
18199 }
18200 slh.End()
18201 return v, changed
18202}
18203
18204func (d *Decoder) fastpathDecSliceUint8R(f *codecFnInfo, rv reflect.Value) {
18205 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18206 vp := rv2i(rv).(*[]uint8)
18207 v, changed := fastpathTV.DecSliceUint8V(*vp, !array, d)
18208 if changed {
18209 *vp = v
18210 }
18211 } else {
18212 v := rv2i(rv).([]uint8)
18213 v2, changed := fastpathTV.DecSliceUint8V(v, !array, d)
18214 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18215 copy(v, v2)
18216 }
18217 }
18218}
18219func (f fastpathT) DecSliceUint8X(vp *[]uint8, d *Decoder) {
18220 v, changed := f.DecSliceUint8V(*vp, true, d)
18221 if changed {
18222 *vp = v
18223 }
18224}
18225func (_ fastpathT) DecSliceUint8V(v []uint8, canChange bool, d *Decoder) (_ []uint8, changed bool) {
18226 dd := d.d
18227 slh, containerLenS := d.decSliceHelperStart()
18228 if containerLenS == 0 {
18229 if canChange {
18230 if v == nil {
18231 v = []uint8{}
18232 } else if len(v) != 0 {
18233 v = v[:0]
18234 }
18235 changed = true
18236 }
18237 slh.End()
18238 return v, changed
18239 }
18240 hasLen := containerLenS > 0
18241 var xlen int
18242 if hasLen && canChange {
18243 if containerLenS > cap(v) {
18244 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
18245 if xlen <= cap(v) {
18246 v = v[:xlen]
18247 } else {
18248 v = make([]uint8, xlen)
18249 }
18250 changed = true
18251 } else if containerLenS != len(v) {
18252 v = v[:containerLenS]
18253 changed = true
18254 }
18255 }
18256 j := 0
18257 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18258 if j == 0 && len(v) == 0 && canChange {
18259 if hasLen {
18260 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
18261 } else {
18262 xlen = 8
18263 }
18264 v = make([]uint8, xlen)
18265 changed = true
18266 }
18267 // if indefinite, etc, then expand the slice if necessary
18268 var decodeIntoBlank bool
18269 if j >= len(v) {
18270 if canChange {
18271 v = append(v, 0)
18272 changed = true
18273 } else {
18274 d.arrayCannotExpand(len(v), j+1)
18275 decodeIntoBlank = true
18276 }
18277 }
18278 slh.ElemContainerState(j)
18279 if decodeIntoBlank {
18280 d.swallow()
18281 } else if dd.TryDecodeAsNil() {
18282 v[j] = 0
18283 } else {
18284 v[j] = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
18285 }
18286 }
18287 if canChange {
18288 if j < len(v) {
18289 v = v[:j]
18290 changed = true
18291 } else if j == 0 && v == nil {
18292 v = make([]uint8, 0)
18293 changed = true
18294 }
18295 }
18296 slh.End()
18297 return v, changed
18298}
18299
18300func (d *Decoder) fastpathDecSliceUint16R(f *codecFnInfo, rv reflect.Value) {
18301 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18302 vp := rv2i(rv).(*[]uint16)
18303 v, changed := fastpathTV.DecSliceUint16V(*vp, !array, d)
18304 if changed {
18305 *vp = v
18306 }
18307 } else {
18308 v := rv2i(rv).([]uint16)
18309 v2, changed := fastpathTV.DecSliceUint16V(v, !array, d)
18310 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18311 copy(v, v2)
18312 }
18313 }
18314}
18315func (f fastpathT) DecSliceUint16X(vp *[]uint16, d *Decoder) {
18316 v, changed := f.DecSliceUint16V(*vp, true, d)
18317 if changed {
18318 *vp = v
18319 }
18320}
18321func (_ fastpathT) DecSliceUint16V(v []uint16, canChange bool, d *Decoder) (_ []uint16, changed bool) {
18322 dd := d.d
18323 slh, containerLenS := d.decSliceHelperStart()
18324 if containerLenS == 0 {
18325 if canChange {
18326 if v == nil {
18327 v = []uint16{}
18328 } else if len(v) != 0 {
18329 v = v[:0]
18330 }
18331 changed = true
18332 }
18333 slh.End()
18334 return v, changed
18335 }
18336 hasLen := containerLenS > 0
18337 var xlen int
18338 if hasLen && canChange {
18339 if containerLenS > cap(v) {
18340 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)
18341 if xlen <= cap(v) {
18342 v = v[:xlen]
18343 } else {
18344 v = make([]uint16, xlen)
18345 }
18346 changed = true
18347 } else if containerLenS != len(v) {
18348 v = v[:containerLenS]
18349 changed = true
18350 }
18351 }
18352 j := 0
18353 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18354 if j == 0 && len(v) == 0 && canChange {
18355 if hasLen {
18356 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)
18357 } else {
18358 xlen = 8
18359 }
18360 v = make([]uint16, xlen)
18361 changed = true
18362 }
18363 // if indefinite, etc, then expand the slice if necessary
18364 var decodeIntoBlank bool
18365 if j >= len(v) {
18366 if canChange {
18367 v = append(v, 0)
18368 changed = true
18369 } else {
18370 d.arrayCannotExpand(len(v), j+1)
18371 decodeIntoBlank = true
18372 }
18373 }
18374 slh.ElemContainerState(j)
18375 if decodeIntoBlank {
18376 d.swallow()
18377 } else if dd.TryDecodeAsNil() {
18378 v[j] = 0
18379 } else {
18380 v[j] = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
18381 }
18382 }
18383 if canChange {
18384 if j < len(v) {
18385 v = v[:j]
18386 changed = true
18387 } else if j == 0 && v == nil {
18388 v = make([]uint16, 0)
18389 changed = true
18390 }
18391 }
18392 slh.End()
18393 return v, changed
18394}
18395
18396func (d *Decoder) fastpathDecSliceUint32R(f *codecFnInfo, rv reflect.Value) {
18397 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18398 vp := rv2i(rv).(*[]uint32)
18399 v, changed := fastpathTV.DecSliceUint32V(*vp, !array, d)
18400 if changed {
18401 *vp = v
18402 }
18403 } else {
18404 v := rv2i(rv).([]uint32)
18405 v2, changed := fastpathTV.DecSliceUint32V(v, !array, d)
18406 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18407 copy(v, v2)
18408 }
18409 }
18410}
18411func (f fastpathT) DecSliceUint32X(vp *[]uint32, d *Decoder) {
18412 v, changed := f.DecSliceUint32V(*vp, true, d)
18413 if changed {
18414 *vp = v
18415 }
18416}
18417func (_ fastpathT) DecSliceUint32V(v []uint32, canChange bool, d *Decoder) (_ []uint32, changed bool) {
18418 dd := d.d
18419 slh, containerLenS := d.decSliceHelperStart()
18420 if containerLenS == 0 {
18421 if canChange {
18422 if v == nil {
18423 v = []uint32{}
18424 } else if len(v) != 0 {
18425 v = v[:0]
18426 }
18427 changed = true
18428 }
18429 slh.End()
18430 return v, changed
18431 }
18432 hasLen := containerLenS > 0
18433 var xlen int
18434 if hasLen && canChange {
18435 if containerLenS > cap(v) {
18436 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
18437 if xlen <= cap(v) {
18438 v = v[:xlen]
18439 } else {
18440 v = make([]uint32, xlen)
18441 }
18442 changed = true
18443 } else if containerLenS != len(v) {
18444 v = v[:containerLenS]
18445 changed = true
18446 }
18447 }
18448 j := 0
18449 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18450 if j == 0 && len(v) == 0 && canChange {
18451 if hasLen {
18452 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
18453 } else {
18454 xlen = 8
18455 }
18456 v = make([]uint32, xlen)
18457 changed = true
18458 }
18459 // if indefinite, etc, then expand the slice if necessary
18460 var decodeIntoBlank bool
18461 if j >= len(v) {
18462 if canChange {
18463 v = append(v, 0)
18464 changed = true
18465 } else {
18466 d.arrayCannotExpand(len(v), j+1)
18467 decodeIntoBlank = true
18468 }
18469 }
18470 slh.ElemContainerState(j)
18471 if decodeIntoBlank {
18472 d.swallow()
18473 } else if dd.TryDecodeAsNil() {
18474 v[j] = 0
18475 } else {
18476 v[j] = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
18477 }
18478 }
18479 if canChange {
18480 if j < len(v) {
18481 v = v[:j]
18482 changed = true
18483 } else if j == 0 && v == nil {
18484 v = make([]uint32, 0)
18485 changed = true
18486 }
18487 }
18488 slh.End()
18489 return v, changed
18490}
18491
18492func (d *Decoder) fastpathDecSliceUint64R(f *codecFnInfo, rv reflect.Value) {
18493 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18494 vp := rv2i(rv).(*[]uint64)
18495 v, changed := fastpathTV.DecSliceUint64V(*vp, !array, d)
18496 if changed {
18497 *vp = v
18498 }
18499 } else {
18500 v := rv2i(rv).([]uint64)
18501 v2, changed := fastpathTV.DecSliceUint64V(v, !array, d)
18502 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18503 copy(v, v2)
18504 }
18505 }
18506}
18507func (f fastpathT) DecSliceUint64X(vp *[]uint64, d *Decoder) {
18508 v, changed := f.DecSliceUint64V(*vp, true, d)
18509 if changed {
18510 *vp = v
18511 }
18512}
18513func (_ fastpathT) DecSliceUint64V(v []uint64, canChange bool, d *Decoder) (_ []uint64, changed bool) {
18514 dd := d.d
18515 slh, containerLenS := d.decSliceHelperStart()
18516 if containerLenS == 0 {
18517 if canChange {
18518 if v == nil {
18519 v = []uint64{}
18520 } else if len(v) != 0 {
18521 v = v[:0]
18522 }
18523 changed = true
18524 }
18525 slh.End()
18526 return v, changed
18527 }
18528 hasLen := containerLenS > 0
18529 var xlen int
18530 if hasLen && canChange {
18531 if containerLenS > cap(v) {
18532 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18533 if xlen <= cap(v) {
18534 v = v[:xlen]
18535 } else {
18536 v = make([]uint64, xlen)
18537 }
18538 changed = true
18539 } else if containerLenS != len(v) {
18540 v = v[:containerLenS]
18541 changed = true
18542 }
18543 }
18544 j := 0
18545 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18546 if j == 0 && len(v) == 0 && canChange {
18547 if hasLen {
18548 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18549 } else {
18550 xlen = 8
18551 }
18552 v = make([]uint64, xlen)
18553 changed = true
18554 }
18555 // if indefinite, etc, then expand the slice if necessary
18556 var decodeIntoBlank bool
18557 if j >= len(v) {
18558 if canChange {
18559 v = append(v, 0)
18560 changed = true
18561 } else {
18562 d.arrayCannotExpand(len(v), j+1)
18563 decodeIntoBlank = true
18564 }
18565 }
18566 slh.ElemContainerState(j)
18567 if decodeIntoBlank {
18568 d.swallow()
18569 } else if dd.TryDecodeAsNil() {
18570 v[j] = 0
18571 } else {
18572 v[j] = dd.DecodeUint64()
18573 }
18574 }
18575 if canChange {
18576 if j < len(v) {
18577 v = v[:j]
18578 changed = true
18579 } else if j == 0 && v == nil {
18580 v = make([]uint64, 0)
18581 changed = true
18582 }
18583 }
18584 slh.End()
18585 return v, changed
18586}
18587
18588func (d *Decoder) fastpathDecSliceUintptrR(f *codecFnInfo, rv reflect.Value) {
18589 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18590 vp := rv2i(rv).(*[]uintptr)
18591 v, changed := fastpathTV.DecSliceUintptrV(*vp, !array, d)
18592 if changed {
18593 *vp = v
18594 }
18595 } else {
18596 v := rv2i(rv).([]uintptr)
18597 v2, changed := fastpathTV.DecSliceUintptrV(v, !array, d)
18598 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18599 copy(v, v2)
18600 }
18601 }
18602}
18603func (f fastpathT) DecSliceUintptrX(vp *[]uintptr, d *Decoder) {
18604 v, changed := f.DecSliceUintptrV(*vp, true, d)
18605 if changed {
18606 *vp = v
18607 }
18608}
18609func (_ fastpathT) DecSliceUintptrV(v []uintptr, canChange bool, d *Decoder) (_ []uintptr, changed bool) {
18610 dd := d.d
18611 slh, containerLenS := d.decSliceHelperStart()
18612 if containerLenS == 0 {
18613 if canChange {
18614 if v == nil {
18615 v = []uintptr{}
18616 } else if len(v) != 0 {
18617 v = v[:0]
18618 }
18619 changed = true
18620 }
18621 slh.End()
18622 return v, changed
18623 }
18624 hasLen := containerLenS > 0
18625 var xlen int
18626 if hasLen && canChange {
18627 if containerLenS > cap(v) {
18628 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18629 if xlen <= cap(v) {
18630 v = v[:xlen]
18631 } else {
18632 v = make([]uintptr, xlen)
18633 }
18634 changed = true
18635 } else if containerLenS != len(v) {
18636 v = v[:containerLenS]
18637 changed = true
18638 }
18639 }
18640 j := 0
18641 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18642 if j == 0 && len(v) == 0 && canChange {
18643 if hasLen {
18644 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18645 } else {
18646 xlen = 8
18647 }
18648 v = make([]uintptr, xlen)
18649 changed = true
18650 }
18651 // if indefinite, etc, then expand the slice if necessary
18652 var decodeIntoBlank bool
18653 if j >= len(v) {
18654 if canChange {
18655 v = append(v, 0)
18656 changed = true
18657 } else {
18658 d.arrayCannotExpand(len(v), j+1)
18659 decodeIntoBlank = true
18660 }
18661 }
18662 slh.ElemContainerState(j)
18663 if decodeIntoBlank {
18664 d.swallow()
18665 } else if dd.TryDecodeAsNil() {
18666 v[j] = 0
18667 } else {
18668 v[j] = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
18669 }
18670 }
18671 if canChange {
18672 if j < len(v) {
18673 v = v[:j]
18674 changed = true
18675 } else if j == 0 && v == nil {
18676 v = make([]uintptr, 0)
18677 changed = true
18678 }
18679 }
18680 slh.End()
18681 return v, changed
18682}
18683
18684func (d *Decoder) fastpathDecSliceIntR(f *codecFnInfo, rv reflect.Value) {
18685 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18686 vp := rv2i(rv).(*[]int)
18687 v, changed := fastpathTV.DecSliceIntV(*vp, !array, d)
18688 if changed {
18689 *vp = v
18690 }
18691 } else {
18692 v := rv2i(rv).([]int)
18693 v2, changed := fastpathTV.DecSliceIntV(v, !array, d)
18694 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18695 copy(v, v2)
18696 }
18697 }
18698}
18699func (f fastpathT) DecSliceIntX(vp *[]int, d *Decoder) {
18700 v, changed := f.DecSliceIntV(*vp, true, d)
18701 if changed {
18702 *vp = v
18703 }
18704}
18705func (_ fastpathT) DecSliceIntV(v []int, canChange bool, d *Decoder) (_ []int, changed bool) {
18706 dd := d.d
18707 slh, containerLenS := d.decSliceHelperStart()
18708 if containerLenS == 0 {
18709 if canChange {
18710 if v == nil {
18711 v = []int{}
18712 } else if len(v) != 0 {
18713 v = v[:0]
18714 }
18715 changed = true
18716 }
18717 slh.End()
18718 return v, changed
18719 }
18720 hasLen := containerLenS > 0
18721 var xlen int
18722 if hasLen && canChange {
18723 if containerLenS > cap(v) {
18724 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18725 if xlen <= cap(v) {
18726 v = v[:xlen]
18727 } else {
18728 v = make([]int, xlen)
18729 }
18730 changed = true
18731 } else if containerLenS != len(v) {
18732 v = v[:containerLenS]
18733 changed = true
18734 }
18735 }
18736 j := 0
18737 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18738 if j == 0 && len(v) == 0 && canChange {
18739 if hasLen {
18740 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
18741 } else {
18742 xlen = 8
18743 }
18744 v = make([]int, xlen)
18745 changed = true
18746 }
18747 // if indefinite, etc, then expand the slice if necessary
18748 var decodeIntoBlank bool
18749 if j >= len(v) {
18750 if canChange {
18751 v = append(v, 0)
18752 changed = true
18753 } else {
18754 d.arrayCannotExpand(len(v), j+1)
18755 decodeIntoBlank = true
18756 }
18757 }
18758 slh.ElemContainerState(j)
18759 if decodeIntoBlank {
18760 d.swallow()
18761 } else if dd.TryDecodeAsNil() {
18762 v[j] = 0
18763 } else {
18764 v[j] = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
18765 }
18766 }
18767 if canChange {
18768 if j < len(v) {
18769 v = v[:j]
18770 changed = true
18771 } else if j == 0 && v == nil {
18772 v = make([]int, 0)
18773 changed = true
18774 }
18775 }
18776 slh.End()
18777 return v, changed
18778}
18779
18780func (d *Decoder) fastpathDecSliceInt8R(f *codecFnInfo, rv reflect.Value) {
18781 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18782 vp := rv2i(rv).(*[]int8)
18783 v, changed := fastpathTV.DecSliceInt8V(*vp, !array, d)
18784 if changed {
18785 *vp = v
18786 }
18787 } else {
18788 v := rv2i(rv).([]int8)
18789 v2, changed := fastpathTV.DecSliceInt8V(v, !array, d)
18790 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18791 copy(v, v2)
18792 }
18793 }
18794}
18795func (f fastpathT) DecSliceInt8X(vp *[]int8, d *Decoder) {
18796 v, changed := f.DecSliceInt8V(*vp, true, d)
18797 if changed {
18798 *vp = v
18799 }
18800}
18801func (_ fastpathT) DecSliceInt8V(v []int8, canChange bool, d *Decoder) (_ []int8, changed bool) {
18802 dd := d.d
18803 slh, containerLenS := d.decSliceHelperStart()
18804 if containerLenS == 0 {
18805 if canChange {
18806 if v == nil {
18807 v = []int8{}
18808 } else if len(v) != 0 {
18809 v = v[:0]
18810 }
18811 changed = true
18812 }
18813 slh.End()
18814 return v, changed
18815 }
18816 hasLen := containerLenS > 0
18817 var xlen int
18818 if hasLen && canChange {
18819 if containerLenS > cap(v) {
18820 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
18821 if xlen <= cap(v) {
18822 v = v[:xlen]
18823 } else {
18824 v = make([]int8, xlen)
18825 }
18826 changed = true
18827 } else if containerLenS != len(v) {
18828 v = v[:containerLenS]
18829 changed = true
18830 }
18831 }
18832 j := 0
18833 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18834 if j == 0 && len(v) == 0 && canChange {
18835 if hasLen {
18836 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
18837 } else {
18838 xlen = 8
18839 }
18840 v = make([]int8, xlen)
18841 changed = true
18842 }
18843 // if indefinite, etc, then expand the slice if necessary
18844 var decodeIntoBlank bool
18845 if j >= len(v) {
18846 if canChange {
18847 v = append(v, 0)
18848 changed = true
18849 } else {
18850 d.arrayCannotExpand(len(v), j+1)
18851 decodeIntoBlank = true
18852 }
18853 }
18854 slh.ElemContainerState(j)
18855 if decodeIntoBlank {
18856 d.swallow()
18857 } else if dd.TryDecodeAsNil() {
18858 v[j] = 0
18859 } else {
18860 v[j] = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
18861 }
18862 }
18863 if canChange {
18864 if j < len(v) {
18865 v = v[:j]
18866 changed = true
18867 } else if j == 0 && v == nil {
18868 v = make([]int8, 0)
18869 changed = true
18870 }
18871 }
18872 slh.End()
18873 return v, changed
18874}
18875
18876func (d *Decoder) fastpathDecSliceInt16R(f *codecFnInfo, rv reflect.Value) {
18877 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18878 vp := rv2i(rv).(*[]int16)
18879 v, changed := fastpathTV.DecSliceInt16V(*vp, !array, d)
18880 if changed {
18881 *vp = v
18882 }
18883 } else {
18884 v := rv2i(rv).([]int16)
18885 v2, changed := fastpathTV.DecSliceInt16V(v, !array, d)
18886 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18887 copy(v, v2)
18888 }
18889 }
18890}
18891func (f fastpathT) DecSliceInt16X(vp *[]int16, d *Decoder) {
18892 v, changed := f.DecSliceInt16V(*vp, true, d)
18893 if changed {
18894 *vp = v
18895 }
18896}
18897func (_ fastpathT) DecSliceInt16V(v []int16, canChange bool, d *Decoder) (_ []int16, changed bool) {
18898 dd := d.d
18899 slh, containerLenS := d.decSliceHelperStart()
18900 if containerLenS == 0 {
18901 if canChange {
18902 if v == nil {
18903 v = []int16{}
18904 } else if len(v) != 0 {
18905 v = v[:0]
18906 }
18907 changed = true
18908 }
18909 slh.End()
18910 return v, changed
18911 }
18912 hasLen := containerLenS > 0
18913 var xlen int
18914 if hasLen && canChange {
18915 if containerLenS > cap(v) {
18916 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)
18917 if xlen <= cap(v) {
18918 v = v[:xlen]
18919 } else {
18920 v = make([]int16, xlen)
18921 }
18922 changed = true
18923 } else if containerLenS != len(v) {
18924 v = v[:containerLenS]
18925 changed = true
18926 }
18927 }
18928 j := 0
18929 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
18930 if j == 0 && len(v) == 0 && canChange {
18931 if hasLen {
18932 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 2)
18933 } else {
18934 xlen = 8
18935 }
18936 v = make([]int16, xlen)
18937 changed = true
18938 }
18939 // if indefinite, etc, then expand the slice if necessary
18940 var decodeIntoBlank bool
18941 if j >= len(v) {
18942 if canChange {
18943 v = append(v, 0)
18944 changed = true
18945 } else {
18946 d.arrayCannotExpand(len(v), j+1)
18947 decodeIntoBlank = true
18948 }
18949 }
18950 slh.ElemContainerState(j)
18951 if decodeIntoBlank {
18952 d.swallow()
18953 } else if dd.TryDecodeAsNil() {
18954 v[j] = 0
18955 } else {
18956 v[j] = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
18957 }
18958 }
18959 if canChange {
18960 if j < len(v) {
18961 v = v[:j]
18962 changed = true
18963 } else if j == 0 && v == nil {
18964 v = make([]int16, 0)
18965 changed = true
18966 }
18967 }
18968 slh.End()
18969 return v, changed
18970}
18971
18972func (d *Decoder) fastpathDecSliceInt32R(f *codecFnInfo, rv reflect.Value) {
18973 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
18974 vp := rv2i(rv).(*[]int32)
18975 v, changed := fastpathTV.DecSliceInt32V(*vp, !array, d)
18976 if changed {
18977 *vp = v
18978 }
18979 } else {
18980 v := rv2i(rv).([]int32)
18981 v2, changed := fastpathTV.DecSliceInt32V(v, !array, d)
18982 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
18983 copy(v, v2)
18984 }
18985 }
18986}
18987func (f fastpathT) DecSliceInt32X(vp *[]int32, d *Decoder) {
18988 v, changed := f.DecSliceInt32V(*vp, true, d)
18989 if changed {
18990 *vp = v
18991 }
18992}
18993func (_ fastpathT) DecSliceInt32V(v []int32, canChange bool, d *Decoder) (_ []int32, changed bool) {
18994 dd := d.d
18995 slh, containerLenS := d.decSliceHelperStart()
18996 if containerLenS == 0 {
18997 if canChange {
18998 if v == nil {
18999 v = []int32{}
19000 } else if len(v) != 0 {
19001 v = v[:0]
19002 }
19003 changed = true
19004 }
19005 slh.End()
19006 return v, changed
19007 }
19008 hasLen := containerLenS > 0
19009 var xlen int
19010 if hasLen && canChange {
19011 if containerLenS > cap(v) {
19012 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
19013 if xlen <= cap(v) {
19014 v = v[:xlen]
19015 } else {
19016 v = make([]int32, xlen)
19017 }
19018 changed = true
19019 } else if containerLenS != len(v) {
19020 v = v[:containerLenS]
19021 changed = true
19022 }
19023 }
19024 j := 0
19025 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
19026 if j == 0 && len(v) == 0 && canChange {
19027 if hasLen {
19028 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 4)
19029 } else {
19030 xlen = 8
19031 }
19032 v = make([]int32, xlen)
19033 changed = true
19034 }
19035 // if indefinite, etc, then expand the slice if necessary
19036 var decodeIntoBlank bool
19037 if j >= len(v) {
19038 if canChange {
19039 v = append(v, 0)
19040 changed = true
19041 } else {
19042 d.arrayCannotExpand(len(v), j+1)
19043 decodeIntoBlank = true
19044 }
19045 }
19046 slh.ElemContainerState(j)
19047 if decodeIntoBlank {
19048 d.swallow()
19049 } else if dd.TryDecodeAsNil() {
19050 v[j] = 0
19051 } else {
19052 v[j] = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
19053 }
19054 }
19055 if canChange {
19056 if j < len(v) {
19057 v = v[:j]
19058 changed = true
19059 } else if j == 0 && v == nil {
19060 v = make([]int32, 0)
19061 changed = true
19062 }
19063 }
19064 slh.End()
19065 return v, changed
19066}
19067
19068func (d *Decoder) fastpathDecSliceInt64R(f *codecFnInfo, rv reflect.Value) {
19069 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
19070 vp := rv2i(rv).(*[]int64)
19071 v, changed := fastpathTV.DecSliceInt64V(*vp, !array, d)
19072 if changed {
19073 *vp = v
19074 }
19075 } else {
19076 v := rv2i(rv).([]int64)
19077 v2, changed := fastpathTV.DecSliceInt64V(v, !array, d)
19078 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
19079 copy(v, v2)
19080 }
19081 }
19082}
19083func (f fastpathT) DecSliceInt64X(vp *[]int64, d *Decoder) {
19084 v, changed := f.DecSliceInt64V(*vp, true, d)
19085 if changed {
19086 *vp = v
19087 }
19088}
19089func (_ fastpathT) DecSliceInt64V(v []int64, canChange bool, d *Decoder) (_ []int64, changed bool) {
19090 dd := d.d
19091 slh, containerLenS := d.decSliceHelperStart()
19092 if containerLenS == 0 {
19093 if canChange {
19094 if v == nil {
19095 v = []int64{}
19096 } else if len(v) != 0 {
19097 v = v[:0]
19098 }
19099 changed = true
19100 }
19101 slh.End()
19102 return v, changed
19103 }
19104 hasLen := containerLenS > 0
19105 var xlen int
19106 if hasLen && canChange {
19107 if containerLenS > cap(v) {
19108 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
19109 if xlen <= cap(v) {
19110 v = v[:xlen]
19111 } else {
19112 v = make([]int64, xlen)
19113 }
19114 changed = true
19115 } else if containerLenS != len(v) {
19116 v = v[:containerLenS]
19117 changed = true
19118 }
19119 }
19120 j := 0
19121 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
19122 if j == 0 && len(v) == 0 && canChange {
19123 if hasLen {
19124 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 8)
19125 } else {
19126 xlen = 8
19127 }
19128 v = make([]int64, xlen)
19129 changed = true
19130 }
19131 // if indefinite, etc, then expand the slice if necessary
19132 var decodeIntoBlank bool
19133 if j >= len(v) {
19134 if canChange {
19135 v = append(v, 0)
19136 changed = true
19137 } else {
19138 d.arrayCannotExpand(len(v), j+1)
19139 decodeIntoBlank = true
19140 }
19141 }
19142 slh.ElemContainerState(j)
19143 if decodeIntoBlank {
19144 d.swallow()
19145 } else if dd.TryDecodeAsNil() {
19146 v[j] = 0
19147 } else {
19148 v[j] = dd.DecodeInt64()
19149 }
19150 }
19151 if canChange {
19152 if j < len(v) {
19153 v = v[:j]
19154 changed = true
19155 } else if j == 0 && v == nil {
19156 v = make([]int64, 0)
19157 changed = true
19158 }
19159 }
19160 slh.End()
19161 return v, changed
19162}
19163
19164func (d *Decoder) fastpathDecSliceBoolR(f *codecFnInfo, rv reflect.Value) {
19165 if array := f.seq == seqTypeArray; !array && rv.Kind() == reflect.Ptr {
19166 vp := rv2i(rv).(*[]bool)
19167 v, changed := fastpathTV.DecSliceBoolV(*vp, !array, d)
19168 if changed {
19169 *vp = v
19170 }
19171 } else {
19172 v := rv2i(rv).([]bool)
19173 v2, changed := fastpathTV.DecSliceBoolV(v, !array, d)
19174 if changed && len(v) > 0 && len(v2) > 0 && !(len(v2) == len(v) && &v2[0] == &v[0]) {
19175 copy(v, v2)
19176 }
19177 }
19178}
19179func (f fastpathT) DecSliceBoolX(vp *[]bool, d *Decoder) {
19180 v, changed := f.DecSliceBoolV(*vp, true, d)
19181 if changed {
19182 *vp = v
19183 }
19184}
19185func (_ fastpathT) DecSliceBoolV(v []bool, canChange bool, d *Decoder) (_ []bool, changed bool) {
19186 dd := d.d
19187 slh, containerLenS := d.decSliceHelperStart()
19188 if containerLenS == 0 {
19189 if canChange {
19190 if v == nil {
19191 v = []bool{}
19192 } else if len(v) != 0 {
19193 v = v[:0]
19194 }
19195 changed = true
19196 }
19197 slh.End()
19198 return v, changed
19199 }
19200 hasLen := containerLenS > 0
19201 var xlen int
19202 if hasLen && canChange {
19203 if containerLenS > cap(v) {
19204 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
19205 if xlen <= cap(v) {
19206 v = v[:xlen]
19207 } else {
19208 v = make([]bool, xlen)
19209 }
19210 changed = true
19211 } else if containerLenS != len(v) {
19212 v = v[:containerLenS]
19213 changed = true
19214 }
19215 }
19216 j := 0
19217 for ; (hasLen && j < containerLenS) || !(hasLen || dd.CheckBreak()); j++ {
19218 if j == 0 && len(v) == 0 && canChange {
19219 if hasLen {
19220 xlen = decInferLen(containerLenS, d.h.MaxInitLen, 1)
19221 } else {
19222 xlen = 8
19223 }
19224 v = make([]bool, xlen)
19225 changed = true
19226 }
19227 // if indefinite, etc, then expand the slice if necessary
19228 var decodeIntoBlank bool
19229 if j >= len(v) {
19230 if canChange {
19231 v = append(v, false)
19232 changed = true
19233 } else {
19234 d.arrayCannotExpand(len(v), j+1)
19235 decodeIntoBlank = true
19236 }
19237 }
19238 slh.ElemContainerState(j)
19239 if decodeIntoBlank {
19240 d.swallow()
19241 } else if dd.TryDecodeAsNil() {
19242 v[j] = false
19243 } else {
19244 v[j] = dd.DecodeBool()
19245 }
19246 }
19247 if canChange {
19248 if j < len(v) {
19249 v = v[:j]
19250 changed = true
19251 } else if j == 0 && v == nil {
19252 v = make([]bool, 0)
19253 changed = true
19254 }
19255 }
19256 slh.End()
19257 return v, changed
19258}
19259
19260func (d *Decoder) fastpathDecMapIntfIntfR(f *codecFnInfo, rv reflect.Value) {
19261 if rv.Kind() == reflect.Ptr {
19262 vp := rv2i(rv).(*map[interface{}]interface{})
19263 v, changed := fastpathTV.DecMapIntfIntfV(*vp, true, d)
19264 if changed {
19265 *vp = v
19266 }
19267 } else {
19268 fastpathTV.DecMapIntfIntfV(rv2i(rv).(map[interface{}]interface{}), false, d)
19269 }
19270}
19271func (f fastpathT) DecMapIntfIntfX(vp *map[interface{}]interface{}, d *Decoder) {
19272 v, changed := f.DecMapIntfIntfV(*vp, true, d)
19273 if changed {
19274 *vp = v
19275 }
19276}
19277func (_ fastpathT) DecMapIntfIntfV(v map[interface{}]interface{}, canChange bool,
19278 d *Decoder) (_ map[interface{}]interface{}, changed bool) {
19279 dd, esep := d.d, d.hh.hasElemSeparators()
19280 containerLen := dd.ReadMapStart()
19281 if canChange && v == nil {
19282 xlen := decInferLen(containerLen, d.h.MaxInitLen, 32)
19283 v = make(map[interface{}]interface{}, xlen)
19284 changed = true
19285 }
19286 if containerLen == 0 {
19287 dd.ReadMapEnd()
19288 return v, changed
19289 }
19290 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
19291 var mk interface{}
19292 var mv interface{}
19293 hasLen := containerLen > 0
19294 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19295 if esep {
19296 dd.ReadMapElemKey()
19297 }
19298 mk = nil
19299 d.decode(&mk)
19300 if bv, bok := mk.([]byte); bok {
19301 mk = d.string(bv)
19302 }
19303 if esep {
19304 dd.ReadMapElemValue()
19305 }
19306 if dd.TryDecodeAsNil() {
19307 if v == nil {
19308 } else if d.h.DeleteOnNilMapValue {
19309 delete(v, mk)
19310 } else {
19311 v[mk] = nil
19312 }
19313 continue
19314 }
19315 if mapGet {
19316 mv = v[mk]
19317 } else {
19318 mv = nil
19319 }
19320 d.decode(&mv)
19321 if v != nil {
19322 v[mk] = mv
19323 }
19324 }
19325 dd.ReadMapEnd()
19326 return v, changed
19327}
19328
19329func (d *Decoder) fastpathDecMapIntfStringR(f *codecFnInfo, rv reflect.Value) {
19330 if rv.Kind() == reflect.Ptr {
19331 vp := rv2i(rv).(*map[interface{}]string)
19332 v, changed := fastpathTV.DecMapIntfStringV(*vp, true, d)
19333 if changed {
19334 *vp = v
19335 }
19336 } else {
19337 fastpathTV.DecMapIntfStringV(rv2i(rv).(map[interface{}]string), false, d)
19338 }
19339}
19340func (f fastpathT) DecMapIntfStringX(vp *map[interface{}]string, d *Decoder) {
19341 v, changed := f.DecMapIntfStringV(*vp, true, d)
19342 if changed {
19343 *vp = v
19344 }
19345}
19346func (_ fastpathT) DecMapIntfStringV(v map[interface{}]string, canChange bool,
19347 d *Decoder) (_ map[interface{}]string, changed bool) {
19348 dd, esep := d.d, d.hh.hasElemSeparators()
19349 containerLen := dd.ReadMapStart()
19350 if canChange && v == nil {
19351 xlen := decInferLen(containerLen, d.h.MaxInitLen, 32)
19352 v = make(map[interface{}]string, xlen)
19353 changed = true
19354 }
19355 if containerLen == 0 {
19356 dd.ReadMapEnd()
19357 return v, changed
19358 }
19359 var mk interface{}
19360 var mv string
19361 hasLen := containerLen > 0
19362 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19363 if esep {
19364 dd.ReadMapElemKey()
19365 }
19366 mk = nil
19367 d.decode(&mk)
19368 if bv, bok := mk.([]byte); bok {
19369 mk = d.string(bv)
19370 }
19371 if esep {
19372 dd.ReadMapElemValue()
19373 }
19374 if dd.TryDecodeAsNil() {
19375 if v == nil {
19376 } else if d.h.DeleteOnNilMapValue {
19377 delete(v, mk)
19378 } else {
19379 v[mk] = ""
19380 }
19381 continue
19382 }
19383 mv = dd.DecodeString()
19384 if v != nil {
19385 v[mk] = mv
19386 }
19387 }
19388 dd.ReadMapEnd()
19389 return v, changed
19390}
19391
19392func (d *Decoder) fastpathDecMapIntfUintR(f *codecFnInfo, rv reflect.Value) {
19393 if rv.Kind() == reflect.Ptr {
19394 vp := rv2i(rv).(*map[interface{}]uint)
19395 v, changed := fastpathTV.DecMapIntfUintV(*vp, true, d)
19396 if changed {
19397 *vp = v
19398 }
19399 } else {
19400 fastpathTV.DecMapIntfUintV(rv2i(rv).(map[interface{}]uint), false, d)
19401 }
19402}
19403func (f fastpathT) DecMapIntfUintX(vp *map[interface{}]uint, d *Decoder) {
19404 v, changed := f.DecMapIntfUintV(*vp, true, d)
19405 if changed {
19406 *vp = v
19407 }
19408}
19409func (_ fastpathT) DecMapIntfUintV(v map[interface{}]uint, canChange bool,
19410 d *Decoder) (_ map[interface{}]uint, changed bool) {
19411 dd, esep := d.d, d.hh.hasElemSeparators()
19412 containerLen := dd.ReadMapStart()
19413 if canChange && v == nil {
19414 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
19415 v = make(map[interface{}]uint, xlen)
19416 changed = true
19417 }
19418 if containerLen == 0 {
19419 dd.ReadMapEnd()
19420 return v, changed
19421 }
19422 var mk interface{}
19423 var mv uint
19424 hasLen := containerLen > 0
19425 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19426 if esep {
19427 dd.ReadMapElemKey()
19428 }
19429 mk = nil
19430 d.decode(&mk)
19431 if bv, bok := mk.([]byte); bok {
19432 mk = d.string(bv)
19433 }
19434 if esep {
19435 dd.ReadMapElemValue()
19436 }
19437 if dd.TryDecodeAsNil() {
19438 if v == nil {
19439 } else if d.h.DeleteOnNilMapValue {
19440 delete(v, mk)
19441 } else {
19442 v[mk] = 0
19443 }
19444 continue
19445 }
19446 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
19447 if v != nil {
19448 v[mk] = mv
19449 }
19450 }
19451 dd.ReadMapEnd()
19452 return v, changed
19453}
19454
19455func (d *Decoder) fastpathDecMapIntfUint8R(f *codecFnInfo, rv reflect.Value) {
19456 if rv.Kind() == reflect.Ptr {
19457 vp := rv2i(rv).(*map[interface{}]uint8)
19458 v, changed := fastpathTV.DecMapIntfUint8V(*vp, true, d)
19459 if changed {
19460 *vp = v
19461 }
19462 } else {
19463 fastpathTV.DecMapIntfUint8V(rv2i(rv).(map[interface{}]uint8), false, d)
19464 }
19465}
19466func (f fastpathT) DecMapIntfUint8X(vp *map[interface{}]uint8, d *Decoder) {
19467 v, changed := f.DecMapIntfUint8V(*vp, true, d)
19468 if changed {
19469 *vp = v
19470 }
19471}
19472func (_ fastpathT) DecMapIntfUint8V(v map[interface{}]uint8, canChange bool,
19473 d *Decoder) (_ map[interface{}]uint8, changed bool) {
19474 dd, esep := d.d, d.hh.hasElemSeparators()
19475 containerLen := dd.ReadMapStart()
19476 if canChange && v == nil {
19477 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
19478 v = make(map[interface{}]uint8, xlen)
19479 changed = true
19480 }
19481 if containerLen == 0 {
19482 dd.ReadMapEnd()
19483 return v, changed
19484 }
19485 var mk interface{}
19486 var mv uint8
19487 hasLen := containerLen > 0
19488 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19489 if esep {
19490 dd.ReadMapElemKey()
19491 }
19492 mk = nil
19493 d.decode(&mk)
19494 if bv, bok := mk.([]byte); bok {
19495 mk = d.string(bv)
19496 }
19497 if esep {
19498 dd.ReadMapElemValue()
19499 }
19500 if dd.TryDecodeAsNil() {
19501 if v == nil {
19502 } else if d.h.DeleteOnNilMapValue {
19503 delete(v, mk)
19504 } else {
19505 v[mk] = 0
19506 }
19507 continue
19508 }
19509 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
19510 if v != nil {
19511 v[mk] = mv
19512 }
19513 }
19514 dd.ReadMapEnd()
19515 return v, changed
19516}
19517
19518func (d *Decoder) fastpathDecMapIntfUint16R(f *codecFnInfo, rv reflect.Value) {
19519 if rv.Kind() == reflect.Ptr {
19520 vp := rv2i(rv).(*map[interface{}]uint16)
19521 v, changed := fastpathTV.DecMapIntfUint16V(*vp, true, d)
19522 if changed {
19523 *vp = v
19524 }
19525 } else {
19526 fastpathTV.DecMapIntfUint16V(rv2i(rv).(map[interface{}]uint16), false, d)
19527 }
19528}
19529func (f fastpathT) DecMapIntfUint16X(vp *map[interface{}]uint16, d *Decoder) {
19530 v, changed := f.DecMapIntfUint16V(*vp, true, d)
19531 if changed {
19532 *vp = v
19533 }
19534}
19535func (_ fastpathT) DecMapIntfUint16V(v map[interface{}]uint16, canChange bool,
19536 d *Decoder) (_ map[interface{}]uint16, changed bool) {
19537 dd, esep := d.d, d.hh.hasElemSeparators()
19538 containerLen := dd.ReadMapStart()
19539 if canChange && v == nil {
19540 xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
19541 v = make(map[interface{}]uint16, xlen)
19542 changed = true
19543 }
19544 if containerLen == 0 {
19545 dd.ReadMapEnd()
19546 return v, changed
19547 }
19548 var mk interface{}
19549 var mv uint16
19550 hasLen := containerLen > 0
19551 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19552 if esep {
19553 dd.ReadMapElemKey()
19554 }
19555 mk = nil
19556 d.decode(&mk)
19557 if bv, bok := mk.([]byte); bok {
19558 mk = d.string(bv)
19559 }
19560 if esep {
19561 dd.ReadMapElemValue()
19562 }
19563 if dd.TryDecodeAsNil() {
19564 if v == nil {
19565 } else if d.h.DeleteOnNilMapValue {
19566 delete(v, mk)
19567 } else {
19568 v[mk] = 0
19569 }
19570 continue
19571 }
19572 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
19573 if v != nil {
19574 v[mk] = mv
19575 }
19576 }
19577 dd.ReadMapEnd()
19578 return v, changed
19579}
19580
19581func (d *Decoder) fastpathDecMapIntfUint32R(f *codecFnInfo, rv reflect.Value) {
19582 if rv.Kind() == reflect.Ptr {
19583 vp := rv2i(rv).(*map[interface{}]uint32)
19584 v, changed := fastpathTV.DecMapIntfUint32V(*vp, true, d)
19585 if changed {
19586 *vp = v
19587 }
19588 } else {
19589 fastpathTV.DecMapIntfUint32V(rv2i(rv).(map[interface{}]uint32), false, d)
19590 }
19591}
19592func (f fastpathT) DecMapIntfUint32X(vp *map[interface{}]uint32, d *Decoder) {
19593 v, changed := f.DecMapIntfUint32V(*vp, true, d)
19594 if changed {
19595 *vp = v
19596 }
19597}
19598func (_ fastpathT) DecMapIntfUint32V(v map[interface{}]uint32, canChange bool,
19599 d *Decoder) (_ map[interface{}]uint32, changed bool) {
19600 dd, esep := d.d, d.hh.hasElemSeparators()
19601 containerLen := dd.ReadMapStart()
19602 if canChange && v == nil {
19603 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
19604 v = make(map[interface{}]uint32, xlen)
19605 changed = true
19606 }
19607 if containerLen == 0 {
19608 dd.ReadMapEnd()
19609 return v, changed
19610 }
19611 var mk interface{}
19612 var mv uint32
19613 hasLen := containerLen > 0
19614 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19615 if esep {
19616 dd.ReadMapElemKey()
19617 }
19618 mk = nil
19619 d.decode(&mk)
19620 if bv, bok := mk.([]byte); bok {
19621 mk = d.string(bv)
19622 }
19623 if esep {
19624 dd.ReadMapElemValue()
19625 }
19626 if dd.TryDecodeAsNil() {
19627 if v == nil {
19628 } else if d.h.DeleteOnNilMapValue {
19629 delete(v, mk)
19630 } else {
19631 v[mk] = 0
19632 }
19633 continue
19634 }
19635 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
19636 if v != nil {
19637 v[mk] = mv
19638 }
19639 }
19640 dd.ReadMapEnd()
19641 return v, changed
19642}
19643
19644func (d *Decoder) fastpathDecMapIntfUint64R(f *codecFnInfo, rv reflect.Value) {
19645 if rv.Kind() == reflect.Ptr {
19646 vp := rv2i(rv).(*map[interface{}]uint64)
19647 v, changed := fastpathTV.DecMapIntfUint64V(*vp, true, d)
19648 if changed {
19649 *vp = v
19650 }
19651 } else {
19652 fastpathTV.DecMapIntfUint64V(rv2i(rv).(map[interface{}]uint64), false, d)
19653 }
19654}
19655func (f fastpathT) DecMapIntfUint64X(vp *map[interface{}]uint64, d *Decoder) {
19656 v, changed := f.DecMapIntfUint64V(*vp, true, d)
19657 if changed {
19658 *vp = v
19659 }
19660}
19661func (_ fastpathT) DecMapIntfUint64V(v map[interface{}]uint64, canChange bool,
19662 d *Decoder) (_ map[interface{}]uint64, changed bool) {
19663 dd, esep := d.d, d.hh.hasElemSeparators()
19664 containerLen := dd.ReadMapStart()
19665 if canChange && v == nil {
19666 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
19667 v = make(map[interface{}]uint64, xlen)
19668 changed = true
19669 }
19670 if containerLen == 0 {
19671 dd.ReadMapEnd()
19672 return v, changed
19673 }
19674 var mk interface{}
19675 var mv uint64
19676 hasLen := containerLen > 0
19677 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19678 if esep {
19679 dd.ReadMapElemKey()
19680 }
19681 mk = nil
19682 d.decode(&mk)
19683 if bv, bok := mk.([]byte); bok {
19684 mk = d.string(bv)
19685 }
19686 if esep {
19687 dd.ReadMapElemValue()
19688 }
19689 if dd.TryDecodeAsNil() {
19690 if v == nil {
19691 } else if d.h.DeleteOnNilMapValue {
19692 delete(v, mk)
19693 } else {
19694 v[mk] = 0
19695 }
19696 continue
19697 }
19698 mv = dd.DecodeUint64()
19699 if v != nil {
19700 v[mk] = mv
19701 }
19702 }
19703 dd.ReadMapEnd()
19704 return v, changed
19705}
19706
19707func (d *Decoder) fastpathDecMapIntfUintptrR(f *codecFnInfo, rv reflect.Value) {
19708 if rv.Kind() == reflect.Ptr {
19709 vp := rv2i(rv).(*map[interface{}]uintptr)
19710 v, changed := fastpathTV.DecMapIntfUintptrV(*vp, true, d)
19711 if changed {
19712 *vp = v
19713 }
19714 } else {
19715 fastpathTV.DecMapIntfUintptrV(rv2i(rv).(map[interface{}]uintptr), false, d)
19716 }
19717}
19718func (f fastpathT) DecMapIntfUintptrX(vp *map[interface{}]uintptr, d *Decoder) {
19719 v, changed := f.DecMapIntfUintptrV(*vp, true, d)
19720 if changed {
19721 *vp = v
19722 }
19723}
19724func (_ fastpathT) DecMapIntfUintptrV(v map[interface{}]uintptr, canChange bool,
19725 d *Decoder) (_ map[interface{}]uintptr, changed bool) {
19726 dd, esep := d.d, d.hh.hasElemSeparators()
19727 containerLen := dd.ReadMapStart()
19728 if canChange && v == nil {
19729 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
19730 v = make(map[interface{}]uintptr, xlen)
19731 changed = true
19732 }
19733 if containerLen == 0 {
19734 dd.ReadMapEnd()
19735 return v, changed
19736 }
19737 var mk interface{}
19738 var mv uintptr
19739 hasLen := containerLen > 0
19740 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19741 if esep {
19742 dd.ReadMapElemKey()
19743 }
19744 mk = nil
19745 d.decode(&mk)
19746 if bv, bok := mk.([]byte); bok {
19747 mk = d.string(bv)
19748 }
19749 if esep {
19750 dd.ReadMapElemValue()
19751 }
19752 if dd.TryDecodeAsNil() {
19753 if v == nil {
19754 } else if d.h.DeleteOnNilMapValue {
19755 delete(v, mk)
19756 } else {
19757 v[mk] = 0
19758 }
19759 continue
19760 }
19761 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
19762 if v != nil {
19763 v[mk] = mv
19764 }
19765 }
19766 dd.ReadMapEnd()
19767 return v, changed
19768}
19769
19770func (d *Decoder) fastpathDecMapIntfIntR(f *codecFnInfo, rv reflect.Value) {
19771 if rv.Kind() == reflect.Ptr {
19772 vp := rv2i(rv).(*map[interface{}]int)
19773 v, changed := fastpathTV.DecMapIntfIntV(*vp, true, d)
19774 if changed {
19775 *vp = v
19776 }
19777 } else {
19778 fastpathTV.DecMapIntfIntV(rv2i(rv).(map[interface{}]int), false, d)
19779 }
19780}
19781func (f fastpathT) DecMapIntfIntX(vp *map[interface{}]int, d *Decoder) {
19782 v, changed := f.DecMapIntfIntV(*vp, true, d)
19783 if changed {
19784 *vp = v
19785 }
19786}
19787func (_ fastpathT) DecMapIntfIntV(v map[interface{}]int, canChange bool,
19788 d *Decoder) (_ map[interface{}]int, changed bool) {
19789 dd, esep := d.d, d.hh.hasElemSeparators()
19790 containerLen := dd.ReadMapStart()
19791 if canChange && v == nil {
19792 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
19793 v = make(map[interface{}]int, xlen)
19794 changed = true
19795 }
19796 if containerLen == 0 {
19797 dd.ReadMapEnd()
19798 return v, changed
19799 }
19800 var mk interface{}
19801 var mv int
19802 hasLen := containerLen > 0
19803 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19804 if esep {
19805 dd.ReadMapElemKey()
19806 }
19807 mk = nil
19808 d.decode(&mk)
19809 if bv, bok := mk.([]byte); bok {
19810 mk = d.string(bv)
19811 }
19812 if esep {
19813 dd.ReadMapElemValue()
19814 }
19815 if dd.TryDecodeAsNil() {
19816 if v == nil {
19817 } else if d.h.DeleteOnNilMapValue {
19818 delete(v, mk)
19819 } else {
19820 v[mk] = 0
19821 }
19822 continue
19823 }
19824 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
19825 if v != nil {
19826 v[mk] = mv
19827 }
19828 }
19829 dd.ReadMapEnd()
19830 return v, changed
19831}
19832
19833func (d *Decoder) fastpathDecMapIntfInt8R(f *codecFnInfo, rv reflect.Value) {
19834 if rv.Kind() == reflect.Ptr {
19835 vp := rv2i(rv).(*map[interface{}]int8)
19836 v, changed := fastpathTV.DecMapIntfInt8V(*vp, true, d)
19837 if changed {
19838 *vp = v
19839 }
19840 } else {
19841 fastpathTV.DecMapIntfInt8V(rv2i(rv).(map[interface{}]int8), false, d)
19842 }
19843}
19844func (f fastpathT) DecMapIntfInt8X(vp *map[interface{}]int8, d *Decoder) {
19845 v, changed := f.DecMapIntfInt8V(*vp, true, d)
19846 if changed {
19847 *vp = v
19848 }
19849}
19850func (_ fastpathT) DecMapIntfInt8V(v map[interface{}]int8, canChange bool,
19851 d *Decoder) (_ map[interface{}]int8, changed bool) {
19852 dd, esep := d.d, d.hh.hasElemSeparators()
19853 containerLen := dd.ReadMapStart()
19854 if canChange && v == nil {
19855 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
19856 v = make(map[interface{}]int8, xlen)
19857 changed = true
19858 }
19859 if containerLen == 0 {
19860 dd.ReadMapEnd()
19861 return v, changed
19862 }
19863 var mk interface{}
19864 var mv int8
19865 hasLen := containerLen > 0
19866 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19867 if esep {
19868 dd.ReadMapElemKey()
19869 }
19870 mk = nil
19871 d.decode(&mk)
19872 if bv, bok := mk.([]byte); bok {
19873 mk = d.string(bv)
19874 }
19875 if esep {
19876 dd.ReadMapElemValue()
19877 }
19878 if dd.TryDecodeAsNil() {
19879 if v == nil {
19880 } else if d.h.DeleteOnNilMapValue {
19881 delete(v, mk)
19882 } else {
19883 v[mk] = 0
19884 }
19885 continue
19886 }
19887 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
19888 if v != nil {
19889 v[mk] = mv
19890 }
19891 }
19892 dd.ReadMapEnd()
19893 return v, changed
19894}
19895
19896func (d *Decoder) fastpathDecMapIntfInt16R(f *codecFnInfo, rv reflect.Value) {
19897 if rv.Kind() == reflect.Ptr {
19898 vp := rv2i(rv).(*map[interface{}]int16)
19899 v, changed := fastpathTV.DecMapIntfInt16V(*vp, true, d)
19900 if changed {
19901 *vp = v
19902 }
19903 } else {
19904 fastpathTV.DecMapIntfInt16V(rv2i(rv).(map[interface{}]int16), false, d)
19905 }
19906}
19907func (f fastpathT) DecMapIntfInt16X(vp *map[interface{}]int16, d *Decoder) {
19908 v, changed := f.DecMapIntfInt16V(*vp, true, d)
19909 if changed {
19910 *vp = v
19911 }
19912}
19913func (_ fastpathT) DecMapIntfInt16V(v map[interface{}]int16, canChange bool,
19914 d *Decoder) (_ map[interface{}]int16, changed bool) {
19915 dd, esep := d.d, d.hh.hasElemSeparators()
19916 containerLen := dd.ReadMapStart()
19917 if canChange && v == nil {
19918 xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
19919 v = make(map[interface{}]int16, xlen)
19920 changed = true
19921 }
19922 if containerLen == 0 {
19923 dd.ReadMapEnd()
19924 return v, changed
19925 }
19926 var mk interface{}
19927 var mv int16
19928 hasLen := containerLen > 0
19929 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19930 if esep {
19931 dd.ReadMapElemKey()
19932 }
19933 mk = nil
19934 d.decode(&mk)
19935 if bv, bok := mk.([]byte); bok {
19936 mk = d.string(bv)
19937 }
19938 if esep {
19939 dd.ReadMapElemValue()
19940 }
19941 if dd.TryDecodeAsNil() {
19942 if v == nil {
19943 } else if d.h.DeleteOnNilMapValue {
19944 delete(v, mk)
19945 } else {
19946 v[mk] = 0
19947 }
19948 continue
19949 }
19950 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
19951 if v != nil {
19952 v[mk] = mv
19953 }
19954 }
19955 dd.ReadMapEnd()
19956 return v, changed
19957}
19958
19959func (d *Decoder) fastpathDecMapIntfInt32R(f *codecFnInfo, rv reflect.Value) {
19960 if rv.Kind() == reflect.Ptr {
19961 vp := rv2i(rv).(*map[interface{}]int32)
19962 v, changed := fastpathTV.DecMapIntfInt32V(*vp, true, d)
19963 if changed {
19964 *vp = v
19965 }
19966 } else {
19967 fastpathTV.DecMapIntfInt32V(rv2i(rv).(map[interface{}]int32), false, d)
19968 }
19969}
19970func (f fastpathT) DecMapIntfInt32X(vp *map[interface{}]int32, d *Decoder) {
19971 v, changed := f.DecMapIntfInt32V(*vp, true, d)
19972 if changed {
19973 *vp = v
19974 }
19975}
19976func (_ fastpathT) DecMapIntfInt32V(v map[interface{}]int32, canChange bool,
19977 d *Decoder) (_ map[interface{}]int32, changed bool) {
19978 dd, esep := d.d, d.hh.hasElemSeparators()
19979 containerLen := dd.ReadMapStart()
19980 if canChange && v == nil {
19981 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
19982 v = make(map[interface{}]int32, xlen)
19983 changed = true
19984 }
19985 if containerLen == 0 {
19986 dd.ReadMapEnd()
19987 return v, changed
19988 }
19989 var mk interface{}
19990 var mv int32
19991 hasLen := containerLen > 0
19992 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
19993 if esep {
19994 dd.ReadMapElemKey()
19995 }
19996 mk = nil
19997 d.decode(&mk)
19998 if bv, bok := mk.([]byte); bok {
19999 mk = d.string(bv)
20000 }
20001 if esep {
20002 dd.ReadMapElemValue()
20003 }
20004 if dd.TryDecodeAsNil() {
20005 if v == nil {
20006 } else if d.h.DeleteOnNilMapValue {
20007 delete(v, mk)
20008 } else {
20009 v[mk] = 0
20010 }
20011 continue
20012 }
20013 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
20014 if v != nil {
20015 v[mk] = mv
20016 }
20017 }
20018 dd.ReadMapEnd()
20019 return v, changed
20020}
20021
20022func (d *Decoder) fastpathDecMapIntfInt64R(f *codecFnInfo, rv reflect.Value) {
20023 if rv.Kind() == reflect.Ptr {
20024 vp := rv2i(rv).(*map[interface{}]int64)
20025 v, changed := fastpathTV.DecMapIntfInt64V(*vp, true, d)
20026 if changed {
20027 *vp = v
20028 }
20029 } else {
20030 fastpathTV.DecMapIntfInt64V(rv2i(rv).(map[interface{}]int64), false, d)
20031 }
20032}
20033func (f fastpathT) DecMapIntfInt64X(vp *map[interface{}]int64, d *Decoder) {
20034 v, changed := f.DecMapIntfInt64V(*vp, true, d)
20035 if changed {
20036 *vp = v
20037 }
20038}
20039func (_ fastpathT) DecMapIntfInt64V(v map[interface{}]int64, canChange bool,
20040 d *Decoder) (_ map[interface{}]int64, changed bool) {
20041 dd, esep := d.d, d.hh.hasElemSeparators()
20042 containerLen := dd.ReadMapStart()
20043 if canChange && v == nil {
20044 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
20045 v = make(map[interface{}]int64, xlen)
20046 changed = true
20047 }
20048 if containerLen == 0 {
20049 dd.ReadMapEnd()
20050 return v, changed
20051 }
20052 var mk interface{}
20053 var mv int64
20054 hasLen := containerLen > 0
20055 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20056 if esep {
20057 dd.ReadMapElemKey()
20058 }
20059 mk = nil
20060 d.decode(&mk)
20061 if bv, bok := mk.([]byte); bok {
20062 mk = d.string(bv)
20063 }
20064 if esep {
20065 dd.ReadMapElemValue()
20066 }
20067 if dd.TryDecodeAsNil() {
20068 if v == nil {
20069 } else if d.h.DeleteOnNilMapValue {
20070 delete(v, mk)
20071 } else {
20072 v[mk] = 0
20073 }
20074 continue
20075 }
20076 mv = dd.DecodeInt64()
20077 if v != nil {
20078 v[mk] = mv
20079 }
20080 }
20081 dd.ReadMapEnd()
20082 return v, changed
20083}
20084
20085func (d *Decoder) fastpathDecMapIntfFloat32R(f *codecFnInfo, rv reflect.Value) {
20086 if rv.Kind() == reflect.Ptr {
20087 vp := rv2i(rv).(*map[interface{}]float32)
20088 v, changed := fastpathTV.DecMapIntfFloat32V(*vp, true, d)
20089 if changed {
20090 *vp = v
20091 }
20092 } else {
20093 fastpathTV.DecMapIntfFloat32V(rv2i(rv).(map[interface{}]float32), false, d)
20094 }
20095}
20096func (f fastpathT) DecMapIntfFloat32X(vp *map[interface{}]float32, d *Decoder) {
20097 v, changed := f.DecMapIntfFloat32V(*vp, true, d)
20098 if changed {
20099 *vp = v
20100 }
20101}
20102func (_ fastpathT) DecMapIntfFloat32V(v map[interface{}]float32, canChange bool,
20103 d *Decoder) (_ map[interface{}]float32, changed bool) {
20104 dd, esep := d.d, d.hh.hasElemSeparators()
20105 containerLen := dd.ReadMapStart()
20106 if canChange && v == nil {
20107 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
20108 v = make(map[interface{}]float32, xlen)
20109 changed = true
20110 }
20111 if containerLen == 0 {
20112 dd.ReadMapEnd()
20113 return v, changed
20114 }
20115 var mk interface{}
20116 var mv float32
20117 hasLen := containerLen > 0
20118 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20119 if esep {
20120 dd.ReadMapElemKey()
20121 }
20122 mk = nil
20123 d.decode(&mk)
20124 if bv, bok := mk.([]byte); bok {
20125 mk = d.string(bv)
20126 }
20127 if esep {
20128 dd.ReadMapElemValue()
20129 }
20130 if dd.TryDecodeAsNil() {
20131 if v == nil {
20132 } else if d.h.DeleteOnNilMapValue {
20133 delete(v, mk)
20134 } else {
20135 v[mk] = 0
20136 }
20137 continue
20138 }
20139 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
20140 if v != nil {
20141 v[mk] = mv
20142 }
20143 }
20144 dd.ReadMapEnd()
20145 return v, changed
20146}
20147
20148func (d *Decoder) fastpathDecMapIntfFloat64R(f *codecFnInfo, rv reflect.Value) {
20149 if rv.Kind() == reflect.Ptr {
20150 vp := rv2i(rv).(*map[interface{}]float64)
20151 v, changed := fastpathTV.DecMapIntfFloat64V(*vp, true, d)
20152 if changed {
20153 *vp = v
20154 }
20155 } else {
20156 fastpathTV.DecMapIntfFloat64V(rv2i(rv).(map[interface{}]float64), false, d)
20157 }
20158}
20159func (f fastpathT) DecMapIntfFloat64X(vp *map[interface{}]float64, d *Decoder) {
20160 v, changed := f.DecMapIntfFloat64V(*vp, true, d)
20161 if changed {
20162 *vp = v
20163 }
20164}
20165func (_ fastpathT) DecMapIntfFloat64V(v map[interface{}]float64, canChange bool,
20166 d *Decoder) (_ map[interface{}]float64, changed bool) {
20167 dd, esep := d.d, d.hh.hasElemSeparators()
20168 containerLen := dd.ReadMapStart()
20169 if canChange && v == nil {
20170 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
20171 v = make(map[interface{}]float64, xlen)
20172 changed = true
20173 }
20174 if containerLen == 0 {
20175 dd.ReadMapEnd()
20176 return v, changed
20177 }
20178 var mk interface{}
20179 var mv float64
20180 hasLen := containerLen > 0
20181 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20182 if esep {
20183 dd.ReadMapElemKey()
20184 }
20185 mk = nil
20186 d.decode(&mk)
20187 if bv, bok := mk.([]byte); bok {
20188 mk = d.string(bv)
20189 }
20190 if esep {
20191 dd.ReadMapElemValue()
20192 }
20193 if dd.TryDecodeAsNil() {
20194 if v == nil {
20195 } else if d.h.DeleteOnNilMapValue {
20196 delete(v, mk)
20197 } else {
20198 v[mk] = 0
20199 }
20200 continue
20201 }
20202 mv = dd.DecodeFloat64()
20203 if v != nil {
20204 v[mk] = mv
20205 }
20206 }
20207 dd.ReadMapEnd()
20208 return v, changed
20209}
20210
20211func (d *Decoder) fastpathDecMapIntfBoolR(f *codecFnInfo, rv reflect.Value) {
20212 if rv.Kind() == reflect.Ptr {
20213 vp := rv2i(rv).(*map[interface{}]bool)
20214 v, changed := fastpathTV.DecMapIntfBoolV(*vp, true, d)
20215 if changed {
20216 *vp = v
20217 }
20218 } else {
20219 fastpathTV.DecMapIntfBoolV(rv2i(rv).(map[interface{}]bool), false, d)
20220 }
20221}
20222func (f fastpathT) DecMapIntfBoolX(vp *map[interface{}]bool, d *Decoder) {
20223 v, changed := f.DecMapIntfBoolV(*vp, true, d)
20224 if changed {
20225 *vp = v
20226 }
20227}
20228func (_ fastpathT) DecMapIntfBoolV(v map[interface{}]bool, canChange bool,
20229 d *Decoder) (_ map[interface{}]bool, changed bool) {
20230 dd, esep := d.d, d.hh.hasElemSeparators()
20231 containerLen := dd.ReadMapStart()
20232 if canChange && v == nil {
20233 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
20234 v = make(map[interface{}]bool, xlen)
20235 changed = true
20236 }
20237 if containerLen == 0 {
20238 dd.ReadMapEnd()
20239 return v, changed
20240 }
20241 var mk interface{}
20242 var mv bool
20243 hasLen := containerLen > 0
20244 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20245 if esep {
20246 dd.ReadMapElemKey()
20247 }
20248 mk = nil
20249 d.decode(&mk)
20250 if bv, bok := mk.([]byte); bok {
20251 mk = d.string(bv)
20252 }
20253 if esep {
20254 dd.ReadMapElemValue()
20255 }
20256 if dd.TryDecodeAsNil() {
20257 if v == nil {
20258 } else if d.h.DeleteOnNilMapValue {
20259 delete(v, mk)
20260 } else {
20261 v[mk] = false
20262 }
20263 continue
20264 }
20265 mv = dd.DecodeBool()
20266 if v != nil {
20267 v[mk] = mv
20268 }
20269 }
20270 dd.ReadMapEnd()
20271 return v, changed
20272}
20273
20274func (d *Decoder) fastpathDecMapStringIntfR(f *codecFnInfo, rv reflect.Value) {
20275 if rv.Kind() == reflect.Ptr {
20276 vp := rv2i(rv).(*map[string]interface{})
20277 v, changed := fastpathTV.DecMapStringIntfV(*vp, true, d)
20278 if changed {
20279 *vp = v
20280 }
20281 } else {
20282 fastpathTV.DecMapStringIntfV(rv2i(rv).(map[string]interface{}), false, d)
20283 }
20284}
20285func (f fastpathT) DecMapStringIntfX(vp *map[string]interface{}, d *Decoder) {
20286 v, changed := f.DecMapStringIntfV(*vp, true, d)
20287 if changed {
20288 *vp = v
20289 }
20290}
20291func (_ fastpathT) DecMapStringIntfV(v map[string]interface{}, canChange bool,
20292 d *Decoder) (_ map[string]interface{}, changed bool) {
20293 dd, esep := d.d, d.hh.hasElemSeparators()
20294 containerLen := dd.ReadMapStart()
20295 if canChange && v == nil {
20296 xlen := decInferLen(containerLen, d.h.MaxInitLen, 32)
20297 v = make(map[string]interface{}, xlen)
20298 changed = true
20299 }
20300 if containerLen == 0 {
20301 dd.ReadMapEnd()
20302 return v, changed
20303 }
20304 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
20305 var mk string
20306 var mv interface{}
20307 hasLen := containerLen > 0
20308 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20309 if esep {
20310 dd.ReadMapElemKey()
20311 }
20312 mk = dd.DecodeString()
20313 if esep {
20314 dd.ReadMapElemValue()
20315 }
20316 if dd.TryDecodeAsNil() {
20317 if v == nil {
20318 } else if d.h.DeleteOnNilMapValue {
20319 delete(v, mk)
20320 } else {
20321 v[mk] = nil
20322 }
20323 continue
20324 }
20325 if mapGet {
20326 mv = v[mk]
20327 } else {
20328 mv = nil
20329 }
20330 d.decode(&mv)
20331 if v != nil {
20332 v[mk] = mv
20333 }
20334 }
20335 dd.ReadMapEnd()
20336 return v, changed
20337}
20338
20339func (d *Decoder) fastpathDecMapStringStringR(f *codecFnInfo, rv reflect.Value) {
20340 if rv.Kind() == reflect.Ptr {
20341 vp := rv2i(rv).(*map[string]string)
20342 v, changed := fastpathTV.DecMapStringStringV(*vp, true, d)
20343 if changed {
20344 *vp = v
20345 }
20346 } else {
20347 fastpathTV.DecMapStringStringV(rv2i(rv).(map[string]string), false, d)
20348 }
20349}
20350func (f fastpathT) DecMapStringStringX(vp *map[string]string, d *Decoder) {
20351 v, changed := f.DecMapStringStringV(*vp, true, d)
20352 if changed {
20353 *vp = v
20354 }
20355}
20356func (_ fastpathT) DecMapStringStringV(v map[string]string, canChange bool,
20357 d *Decoder) (_ map[string]string, changed bool) {
20358 dd, esep := d.d, d.hh.hasElemSeparators()
20359 containerLen := dd.ReadMapStart()
20360 if canChange && v == nil {
20361 xlen := decInferLen(containerLen, d.h.MaxInitLen, 32)
20362 v = make(map[string]string, xlen)
20363 changed = true
20364 }
20365 if containerLen == 0 {
20366 dd.ReadMapEnd()
20367 return v, changed
20368 }
20369 var mk string
20370 var mv string
20371 hasLen := containerLen > 0
20372 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20373 if esep {
20374 dd.ReadMapElemKey()
20375 }
20376 mk = dd.DecodeString()
20377 if esep {
20378 dd.ReadMapElemValue()
20379 }
20380 if dd.TryDecodeAsNil() {
20381 if v == nil {
20382 } else if d.h.DeleteOnNilMapValue {
20383 delete(v, mk)
20384 } else {
20385 v[mk] = ""
20386 }
20387 continue
20388 }
20389 mv = dd.DecodeString()
20390 if v != nil {
20391 v[mk] = mv
20392 }
20393 }
20394 dd.ReadMapEnd()
20395 return v, changed
20396}
20397
20398func (d *Decoder) fastpathDecMapStringUintR(f *codecFnInfo, rv reflect.Value) {
20399 if rv.Kind() == reflect.Ptr {
20400 vp := rv2i(rv).(*map[string]uint)
20401 v, changed := fastpathTV.DecMapStringUintV(*vp, true, d)
20402 if changed {
20403 *vp = v
20404 }
20405 } else {
20406 fastpathTV.DecMapStringUintV(rv2i(rv).(map[string]uint), false, d)
20407 }
20408}
20409func (f fastpathT) DecMapStringUintX(vp *map[string]uint, d *Decoder) {
20410 v, changed := f.DecMapStringUintV(*vp, true, d)
20411 if changed {
20412 *vp = v
20413 }
20414}
20415func (_ fastpathT) DecMapStringUintV(v map[string]uint, canChange bool,
20416 d *Decoder) (_ map[string]uint, changed bool) {
20417 dd, esep := d.d, d.hh.hasElemSeparators()
20418 containerLen := dd.ReadMapStart()
20419 if canChange && v == nil {
20420 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
20421 v = make(map[string]uint, xlen)
20422 changed = true
20423 }
20424 if containerLen == 0 {
20425 dd.ReadMapEnd()
20426 return v, changed
20427 }
20428 var mk string
20429 var mv uint
20430 hasLen := containerLen > 0
20431 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20432 if esep {
20433 dd.ReadMapElemKey()
20434 }
20435 mk = dd.DecodeString()
20436 if esep {
20437 dd.ReadMapElemValue()
20438 }
20439 if dd.TryDecodeAsNil() {
20440 if v == nil {
20441 } else if d.h.DeleteOnNilMapValue {
20442 delete(v, mk)
20443 } else {
20444 v[mk] = 0
20445 }
20446 continue
20447 }
20448 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
20449 if v != nil {
20450 v[mk] = mv
20451 }
20452 }
20453 dd.ReadMapEnd()
20454 return v, changed
20455}
20456
20457func (d *Decoder) fastpathDecMapStringUint8R(f *codecFnInfo, rv reflect.Value) {
20458 if rv.Kind() == reflect.Ptr {
20459 vp := rv2i(rv).(*map[string]uint8)
20460 v, changed := fastpathTV.DecMapStringUint8V(*vp, true, d)
20461 if changed {
20462 *vp = v
20463 }
20464 } else {
20465 fastpathTV.DecMapStringUint8V(rv2i(rv).(map[string]uint8), false, d)
20466 }
20467}
20468func (f fastpathT) DecMapStringUint8X(vp *map[string]uint8, d *Decoder) {
20469 v, changed := f.DecMapStringUint8V(*vp, true, d)
20470 if changed {
20471 *vp = v
20472 }
20473}
20474func (_ fastpathT) DecMapStringUint8V(v map[string]uint8, canChange bool,
20475 d *Decoder) (_ map[string]uint8, changed bool) {
20476 dd, esep := d.d, d.hh.hasElemSeparators()
20477 containerLen := dd.ReadMapStart()
20478 if canChange && v == nil {
20479 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
20480 v = make(map[string]uint8, xlen)
20481 changed = true
20482 }
20483 if containerLen == 0 {
20484 dd.ReadMapEnd()
20485 return v, changed
20486 }
20487 var mk string
20488 var mv uint8
20489 hasLen := containerLen > 0
20490 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20491 if esep {
20492 dd.ReadMapElemKey()
20493 }
20494 mk = dd.DecodeString()
20495 if esep {
20496 dd.ReadMapElemValue()
20497 }
20498 if dd.TryDecodeAsNil() {
20499 if v == nil {
20500 } else if d.h.DeleteOnNilMapValue {
20501 delete(v, mk)
20502 } else {
20503 v[mk] = 0
20504 }
20505 continue
20506 }
20507 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
20508 if v != nil {
20509 v[mk] = mv
20510 }
20511 }
20512 dd.ReadMapEnd()
20513 return v, changed
20514}
20515
20516func (d *Decoder) fastpathDecMapStringUint16R(f *codecFnInfo, rv reflect.Value) {
20517 if rv.Kind() == reflect.Ptr {
20518 vp := rv2i(rv).(*map[string]uint16)
20519 v, changed := fastpathTV.DecMapStringUint16V(*vp, true, d)
20520 if changed {
20521 *vp = v
20522 }
20523 } else {
20524 fastpathTV.DecMapStringUint16V(rv2i(rv).(map[string]uint16), false, d)
20525 }
20526}
20527func (f fastpathT) DecMapStringUint16X(vp *map[string]uint16, d *Decoder) {
20528 v, changed := f.DecMapStringUint16V(*vp, true, d)
20529 if changed {
20530 *vp = v
20531 }
20532}
20533func (_ fastpathT) DecMapStringUint16V(v map[string]uint16, canChange bool,
20534 d *Decoder) (_ map[string]uint16, changed bool) {
20535 dd, esep := d.d, d.hh.hasElemSeparators()
20536 containerLen := dd.ReadMapStart()
20537 if canChange && v == nil {
20538 xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
20539 v = make(map[string]uint16, xlen)
20540 changed = true
20541 }
20542 if containerLen == 0 {
20543 dd.ReadMapEnd()
20544 return v, changed
20545 }
20546 var mk string
20547 var mv uint16
20548 hasLen := containerLen > 0
20549 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20550 if esep {
20551 dd.ReadMapElemKey()
20552 }
20553 mk = dd.DecodeString()
20554 if esep {
20555 dd.ReadMapElemValue()
20556 }
20557 if dd.TryDecodeAsNil() {
20558 if v == nil {
20559 } else if d.h.DeleteOnNilMapValue {
20560 delete(v, mk)
20561 } else {
20562 v[mk] = 0
20563 }
20564 continue
20565 }
20566 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
20567 if v != nil {
20568 v[mk] = mv
20569 }
20570 }
20571 dd.ReadMapEnd()
20572 return v, changed
20573}
20574
20575func (d *Decoder) fastpathDecMapStringUint32R(f *codecFnInfo, rv reflect.Value) {
20576 if rv.Kind() == reflect.Ptr {
20577 vp := rv2i(rv).(*map[string]uint32)
20578 v, changed := fastpathTV.DecMapStringUint32V(*vp, true, d)
20579 if changed {
20580 *vp = v
20581 }
20582 } else {
20583 fastpathTV.DecMapStringUint32V(rv2i(rv).(map[string]uint32), false, d)
20584 }
20585}
20586func (f fastpathT) DecMapStringUint32X(vp *map[string]uint32, d *Decoder) {
20587 v, changed := f.DecMapStringUint32V(*vp, true, d)
20588 if changed {
20589 *vp = v
20590 }
20591}
20592func (_ fastpathT) DecMapStringUint32V(v map[string]uint32, canChange bool,
20593 d *Decoder) (_ map[string]uint32, changed bool) {
20594 dd, esep := d.d, d.hh.hasElemSeparators()
20595 containerLen := dd.ReadMapStart()
20596 if canChange && v == nil {
20597 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
20598 v = make(map[string]uint32, xlen)
20599 changed = true
20600 }
20601 if containerLen == 0 {
20602 dd.ReadMapEnd()
20603 return v, changed
20604 }
20605 var mk string
20606 var mv uint32
20607 hasLen := containerLen > 0
20608 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20609 if esep {
20610 dd.ReadMapElemKey()
20611 }
20612 mk = dd.DecodeString()
20613 if esep {
20614 dd.ReadMapElemValue()
20615 }
20616 if dd.TryDecodeAsNil() {
20617 if v == nil {
20618 } else if d.h.DeleteOnNilMapValue {
20619 delete(v, mk)
20620 } else {
20621 v[mk] = 0
20622 }
20623 continue
20624 }
20625 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
20626 if v != nil {
20627 v[mk] = mv
20628 }
20629 }
20630 dd.ReadMapEnd()
20631 return v, changed
20632}
20633
20634func (d *Decoder) fastpathDecMapStringUint64R(f *codecFnInfo, rv reflect.Value) {
20635 if rv.Kind() == reflect.Ptr {
20636 vp := rv2i(rv).(*map[string]uint64)
20637 v, changed := fastpathTV.DecMapStringUint64V(*vp, true, d)
20638 if changed {
20639 *vp = v
20640 }
20641 } else {
20642 fastpathTV.DecMapStringUint64V(rv2i(rv).(map[string]uint64), false, d)
20643 }
20644}
20645func (f fastpathT) DecMapStringUint64X(vp *map[string]uint64, d *Decoder) {
20646 v, changed := f.DecMapStringUint64V(*vp, true, d)
20647 if changed {
20648 *vp = v
20649 }
20650}
20651func (_ fastpathT) DecMapStringUint64V(v map[string]uint64, canChange bool,
20652 d *Decoder) (_ map[string]uint64, changed bool) {
20653 dd, esep := d.d, d.hh.hasElemSeparators()
20654 containerLen := dd.ReadMapStart()
20655 if canChange && v == nil {
20656 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
20657 v = make(map[string]uint64, xlen)
20658 changed = true
20659 }
20660 if containerLen == 0 {
20661 dd.ReadMapEnd()
20662 return v, changed
20663 }
20664 var mk string
20665 var mv uint64
20666 hasLen := containerLen > 0
20667 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20668 if esep {
20669 dd.ReadMapElemKey()
20670 }
20671 mk = dd.DecodeString()
20672 if esep {
20673 dd.ReadMapElemValue()
20674 }
20675 if dd.TryDecodeAsNil() {
20676 if v == nil {
20677 } else if d.h.DeleteOnNilMapValue {
20678 delete(v, mk)
20679 } else {
20680 v[mk] = 0
20681 }
20682 continue
20683 }
20684 mv = dd.DecodeUint64()
20685 if v != nil {
20686 v[mk] = mv
20687 }
20688 }
20689 dd.ReadMapEnd()
20690 return v, changed
20691}
20692
20693func (d *Decoder) fastpathDecMapStringUintptrR(f *codecFnInfo, rv reflect.Value) {
20694 if rv.Kind() == reflect.Ptr {
20695 vp := rv2i(rv).(*map[string]uintptr)
20696 v, changed := fastpathTV.DecMapStringUintptrV(*vp, true, d)
20697 if changed {
20698 *vp = v
20699 }
20700 } else {
20701 fastpathTV.DecMapStringUintptrV(rv2i(rv).(map[string]uintptr), false, d)
20702 }
20703}
20704func (f fastpathT) DecMapStringUintptrX(vp *map[string]uintptr, d *Decoder) {
20705 v, changed := f.DecMapStringUintptrV(*vp, true, d)
20706 if changed {
20707 *vp = v
20708 }
20709}
20710func (_ fastpathT) DecMapStringUintptrV(v map[string]uintptr, canChange bool,
20711 d *Decoder) (_ map[string]uintptr, changed bool) {
20712 dd, esep := d.d, d.hh.hasElemSeparators()
20713 containerLen := dd.ReadMapStart()
20714 if canChange && v == nil {
20715 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
20716 v = make(map[string]uintptr, xlen)
20717 changed = true
20718 }
20719 if containerLen == 0 {
20720 dd.ReadMapEnd()
20721 return v, changed
20722 }
20723 var mk string
20724 var mv uintptr
20725 hasLen := containerLen > 0
20726 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20727 if esep {
20728 dd.ReadMapElemKey()
20729 }
20730 mk = dd.DecodeString()
20731 if esep {
20732 dd.ReadMapElemValue()
20733 }
20734 if dd.TryDecodeAsNil() {
20735 if v == nil {
20736 } else if d.h.DeleteOnNilMapValue {
20737 delete(v, mk)
20738 } else {
20739 v[mk] = 0
20740 }
20741 continue
20742 }
20743 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
20744 if v != nil {
20745 v[mk] = mv
20746 }
20747 }
20748 dd.ReadMapEnd()
20749 return v, changed
20750}
20751
20752func (d *Decoder) fastpathDecMapStringIntR(f *codecFnInfo, rv reflect.Value) {
20753 if rv.Kind() == reflect.Ptr {
20754 vp := rv2i(rv).(*map[string]int)
20755 v, changed := fastpathTV.DecMapStringIntV(*vp, true, d)
20756 if changed {
20757 *vp = v
20758 }
20759 } else {
20760 fastpathTV.DecMapStringIntV(rv2i(rv).(map[string]int), false, d)
20761 }
20762}
20763func (f fastpathT) DecMapStringIntX(vp *map[string]int, d *Decoder) {
20764 v, changed := f.DecMapStringIntV(*vp, true, d)
20765 if changed {
20766 *vp = v
20767 }
20768}
20769func (_ fastpathT) DecMapStringIntV(v map[string]int, canChange bool,
20770 d *Decoder) (_ map[string]int, changed bool) {
20771 dd, esep := d.d, d.hh.hasElemSeparators()
20772 containerLen := dd.ReadMapStart()
20773 if canChange && v == nil {
20774 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
20775 v = make(map[string]int, xlen)
20776 changed = true
20777 }
20778 if containerLen == 0 {
20779 dd.ReadMapEnd()
20780 return v, changed
20781 }
20782 var mk string
20783 var mv int
20784 hasLen := containerLen > 0
20785 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20786 if esep {
20787 dd.ReadMapElemKey()
20788 }
20789 mk = dd.DecodeString()
20790 if esep {
20791 dd.ReadMapElemValue()
20792 }
20793 if dd.TryDecodeAsNil() {
20794 if v == nil {
20795 } else if d.h.DeleteOnNilMapValue {
20796 delete(v, mk)
20797 } else {
20798 v[mk] = 0
20799 }
20800 continue
20801 }
20802 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
20803 if v != nil {
20804 v[mk] = mv
20805 }
20806 }
20807 dd.ReadMapEnd()
20808 return v, changed
20809}
20810
20811func (d *Decoder) fastpathDecMapStringInt8R(f *codecFnInfo, rv reflect.Value) {
20812 if rv.Kind() == reflect.Ptr {
20813 vp := rv2i(rv).(*map[string]int8)
20814 v, changed := fastpathTV.DecMapStringInt8V(*vp, true, d)
20815 if changed {
20816 *vp = v
20817 }
20818 } else {
20819 fastpathTV.DecMapStringInt8V(rv2i(rv).(map[string]int8), false, d)
20820 }
20821}
20822func (f fastpathT) DecMapStringInt8X(vp *map[string]int8, d *Decoder) {
20823 v, changed := f.DecMapStringInt8V(*vp, true, d)
20824 if changed {
20825 *vp = v
20826 }
20827}
20828func (_ fastpathT) DecMapStringInt8V(v map[string]int8, canChange bool,
20829 d *Decoder) (_ map[string]int8, changed bool) {
20830 dd, esep := d.d, d.hh.hasElemSeparators()
20831 containerLen := dd.ReadMapStart()
20832 if canChange && v == nil {
20833 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
20834 v = make(map[string]int8, xlen)
20835 changed = true
20836 }
20837 if containerLen == 0 {
20838 dd.ReadMapEnd()
20839 return v, changed
20840 }
20841 var mk string
20842 var mv int8
20843 hasLen := containerLen > 0
20844 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20845 if esep {
20846 dd.ReadMapElemKey()
20847 }
20848 mk = dd.DecodeString()
20849 if esep {
20850 dd.ReadMapElemValue()
20851 }
20852 if dd.TryDecodeAsNil() {
20853 if v == nil {
20854 } else if d.h.DeleteOnNilMapValue {
20855 delete(v, mk)
20856 } else {
20857 v[mk] = 0
20858 }
20859 continue
20860 }
20861 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
20862 if v != nil {
20863 v[mk] = mv
20864 }
20865 }
20866 dd.ReadMapEnd()
20867 return v, changed
20868}
20869
20870func (d *Decoder) fastpathDecMapStringInt16R(f *codecFnInfo, rv reflect.Value) {
20871 if rv.Kind() == reflect.Ptr {
20872 vp := rv2i(rv).(*map[string]int16)
20873 v, changed := fastpathTV.DecMapStringInt16V(*vp, true, d)
20874 if changed {
20875 *vp = v
20876 }
20877 } else {
20878 fastpathTV.DecMapStringInt16V(rv2i(rv).(map[string]int16), false, d)
20879 }
20880}
20881func (f fastpathT) DecMapStringInt16X(vp *map[string]int16, d *Decoder) {
20882 v, changed := f.DecMapStringInt16V(*vp, true, d)
20883 if changed {
20884 *vp = v
20885 }
20886}
20887func (_ fastpathT) DecMapStringInt16V(v map[string]int16, canChange bool,
20888 d *Decoder) (_ map[string]int16, changed bool) {
20889 dd, esep := d.d, d.hh.hasElemSeparators()
20890 containerLen := dd.ReadMapStart()
20891 if canChange && v == nil {
20892 xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
20893 v = make(map[string]int16, xlen)
20894 changed = true
20895 }
20896 if containerLen == 0 {
20897 dd.ReadMapEnd()
20898 return v, changed
20899 }
20900 var mk string
20901 var mv int16
20902 hasLen := containerLen > 0
20903 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20904 if esep {
20905 dd.ReadMapElemKey()
20906 }
20907 mk = dd.DecodeString()
20908 if esep {
20909 dd.ReadMapElemValue()
20910 }
20911 if dd.TryDecodeAsNil() {
20912 if v == nil {
20913 } else if d.h.DeleteOnNilMapValue {
20914 delete(v, mk)
20915 } else {
20916 v[mk] = 0
20917 }
20918 continue
20919 }
20920 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
20921 if v != nil {
20922 v[mk] = mv
20923 }
20924 }
20925 dd.ReadMapEnd()
20926 return v, changed
20927}
20928
20929func (d *Decoder) fastpathDecMapStringInt32R(f *codecFnInfo, rv reflect.Value) {
20930 if rv.Kind() == reflect.Ptr {
20931 vp := rv2i(rv).(*map[string]int32)
20932 v, changed := fastpathTV.DecMapStringInt32V(*vp, true, d)
20933 if changed {
20934 *vp = v
20935 }
20936 } else {
20937 fastpathTV.DecMapStringInt32V(rv2i(rv).(map[string]int32), false, d)
20938 }
20939}
20940func (f fastpathT) DecMapStringInt32X(vp *map[string]int32, d *Decoder) {
20941 v, changed := f.DecMapStringInt32V(*vp, true, d)
20942 if changed {
20943 *vp = v
20944 }
20945}
20946func (_ fastpathT) DecMapStringInt32V(v map[string]int32, canChange bool,
20947 d *Decoder) (_ map[string]int32, changed bool) {
20948 dd, esep := d.d, d.hh.hasElemSeparators()
20949 containerLen := dd.ReadMapStart()
20950 if canChange && v == nil {
20951 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
20952 v = make(map[string]int32, xlen)
20953 changed = true
20954 }
20955 if containerLen == 0 {
20956 dd.ReadMapEnd()
20957 return v, changed
20958 }
20959 var mk string
20960 var mv int32
20961 hasLen := containerLen > 0
20962 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
20963 if esep {
20964 dd.ReadMapElemKey()
20965 }
20966 mk = dd.DecodeString()
20967 if esep {
20968 dd.ReadMapElemValue()
20969 }
20970 if dd.TryDecodeAsNil() {
20971 if v == nil {
20972 } else if d.h.DeleteOnNilMapValue {
20973 delete(v, mk)
20974 } else {
20975 v[mk] = 0
20976 }
20977 continue
20978 }
20979 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
20980 if v != nil {
20981 v[mk] = mv
20982 }
20983 }
20984 dd.ReadMapEnd()
20985 return v, changed
20986}
20987
20988func (d *Decoder) fastpathDecMapStringInt64R(f *codecFnInfo, rv reflect.Value) {
20989 if rv.Kind() == reflect.Ptr {
20990 vp := rv2i(rv).(*map[string]int64)
20991 v, changed := fastpathTV.DecMapStringInt64V(*vp, true, d)
20992 if changed {
20993 *vp = v
20994 }
20995 } else {
20996 fastpathTV.DecMapStringInt64V(rv2i(rv).(map[string]int64), false, d)
20997 }
20998}
20999func (f fastpathT) DecMapStringInt64X(vp *map[string]int64, d *Decoder) {
21000 v, changed := f.DecMapStringInt64V(*vp, true, d)
21001 if changed {
21002 *vp = v
21003 }
21004}
21005func (_ fastpathT) DecMapStringInt64V(v map[string]int64, canChange bool,
21006 d *Decoder) (_ map[string]int64, changed bool) {
21007 dd, esep := d.d, d.hh.hasElemSeparators()
21008 containerLen := dd.ReadMapStart()
21009 if canChange && v == nil {
21010 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
21011 v = make(map[string]int64, xlen)
21012 changed = true
21013 }
21014 if containerLen == 0 {
21015 dd.ReadMapEnd()
21016 return v, changed
21017 }
21018 var mk string
21019 var mv int64
21020 hasLen := containerLen > 0
21021 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21022 if esep {
21023 dd.ReadMapElemKey()
21024 }
21025 mk = dd.DecodeString()
21026 if esep {
21027 dd.ReadMapElemValue()
21028 }
21029 if dd.TryDecodeAsNil() {
21030 if v == nil {
21031 } else if d.h.DeleteOnNilMapValue {
21032 delete(v, mk)
21033 } else {
21034 v[mk] = 0
21035 }
21036 continue
21037 }
21038 mv = dd.DecodeInt64()
21039 if v != nil {
21040 v[mk] = mv
21041 }
21042 }
21043 dd.ReadMapEnd()
21044 return v, changed
21045}
21046
21047func (d *Decoder) fastpathDecMapStringFloat32R(f *codecFnInfo, rv reflect.Value) {
21048 if rv.Kind() == reflect.Ptr {
21049 vp := rv2i(rv).(*map[string]float32)
21050 v, changed := fastpathTV.DecMapStringFloat32V(*vp, true, d)
21051 if changed {
21052 *vp = v
21053 }
21054 } else {
21055 fastpathTV.DecMapStringFloat32V(rv2i(rv).(map[string]float32), false, d)
21056 }
21057}
21058func (f fastpathT) DecMapStringFloat32X(vp *map[string]float32, d *Decoder) {
21059 v, changed := f.DecMapStringFloat32V(*vp, true, d)
21060 if changed {
21061 *vp = v
21062 }
21063}
21064func (_ fastpathT) DecMapStringFloat32V(v map[string]float32, canChange bool,
21065 d *Decoder) (_ map[string]float32, changed bool) {
21066 dd, esep := d.d, d.hh.hasElemSeparators()
21067 containerLen := dd.ReadMapStart()
21068 if canChange && v == nil {
21069 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
21070 v = make(map[string]float32, xlen)
21071 changed = true
21072 }
21073 if containerLen == 0 {
21074 dd.ReadMapEnd()
21075 return v, changed
21076 }
21077 var mk string
21078 var mv float32
21079 hasLen := containerLen > 0
21080 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21081 if esep {
21082 dd.ReadMapElemKey()
21083 }
21084 mk = dd.DecodeString()
21085 if esep {
21086 dd.ReadMapElemValue()
21087 }
21088 if dd.TryDecodeAsNil() {
21089 if v == nil {
21090 } else if d.h.DeleteOnNilMapValue {
21091 delete(v, mk)
21092 } else {
21093 v[mk] = 0
21094 }
21095 continue
21096 }
21097 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21098 if v != nil {
21099 v[mk] = mv
21100 }
21101 }
21102 dd.ReadMapEnd()
21103 return v, changed
21104}
21105
21106func (d *Decoder) fastpathDecMapStringFloat64R(f *codecFnInfo, rv reflect.Value) {
21107 if rv.Kind() == reflect.Ptr {
21108 vp := rv2i(rv).(*map[string]float64)
21109 v, changed := fastpathTV.DecMapStringFloat64V(*vp, true, d)
21110 if changed {
21111 *vp = v
21112 }
21113 } else {
21114 fastpathTV.DecMapStringFloat64V(rv2i(rv).(map[string]float64), false, d)
21115 }
21116}
21117func (f fastpathT) DecMapStringFloat64X(vp *map[string]float64, d *Decoder) {
21118 v, changed := f.DecMapStringFloat64V(*vp, true, d)
21119 if changed {
21120 *vp = v
21121 }
21122}
21123func (_ fastpathT) DecMapStringFloat64V(v map[string]float64, canChange bool,
21124 d *Decoder) (_ map[string]float64, changed bool) {
21125 dd, esep := d.d, d.hh.hasElemSeparators()
21126 containerLen := dd.ReadMapStart()
21127 if canChange && v == nil {
21128 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
21129 v = make(map[string]float64, xlen)
21130 changed = true
21131 }
21132 if containerLen == 0 {
21133 dd.ReadMapEnd()
21134 return v, changed
21135 }
21136 var mk string
21137 var mv float64
21138 hasLen := containerLen > 0
21139 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21140 if esep {
21141 dd.ReadMapElemKey()
21142 }
21143 mk = dd.DecodeString()
21144 if esep {
21145 dd.ReadMapElemValue()
21146 }
21147 if dd.TryDecodeAsNil() {
21148 if v == nil {
21149 } else if d.h.DeleteOnNilMapValue {
21150 delete(v, mk)
21151 } else {
21152 v[mk] = 0
21153 }
21154 continue
21155 }
21156 mv = dd.DecodeFloat64()
21157 if v != nil {
21158 v[mk] = mv
21159 }
21160 }
21161 dd.ReadMapEnd()
21162 return v, changed
21163}
21164
21165func (d *Decoder) fastpathDecMapStringBoolR(f *codecFnInfo, rv reflect.Value) {
21166 if rv.Kind() == reflect.Ptr {
21167 vp := rv2i(rv).(*map[string]bool)
21168 v, changed := fastpathTV.DecMapStringBoolV(*vp, true, d)
21169 if changed {
21170 *vp = v
21171 }
21172 } else {
21173 fastpathTV.DecMapStringBoolV(rv2i(rv).(map[string]bool), false, d)
21174 }
21175}
21176func (f fastpathT) DecMapStringBoolX(vp *map[string]bool, d *Decoder) {
21177 v, changed := f.DecMapStringBoolV(*vp, true, d)
21178 if changed {
21179 *vp = v
21180 }
21181}
21182func (_ fastpathT) DecMapStringBoolV(v map[string]bool, canChange bool,
21183 d *Decoder) (_ map[string]bool, changed bool) {
21184 dd, esep := d.d, d.hh.hasElemSeparators()
21185 containerLen := dd.ReadMapStart()
21186 if canChange && v == nil {
21187 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
21188 v = make(map[string]bool, xlen)
21189 changed = true
21190 }
21191 if containerLen == 0 {
21192 dd.ReadMapEnd()
21193 return v, changed
21194 }
21195 var mk string
21196 var mv bool
21197 hasLen := containerLen > 0
21198 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21199 if esep {
21200 dd.ReadMapElemKey()
21201 }
21202 mk = dd.DecodeString()
21203 if esep {
21204 dd.ReadMapElemValue()
21205 }
21206 if dd.TryDecodeAsNil() {
21207 if v == nil {
21208 } else if d.h.DeleteOnNilMapValue {
21209 delete(v, mk)
21210 } else {
21211 v[mk] = false
21212 }
21213 continue
21214 }
21215 mv = dd.DecodeBool()
21216 if v != nil {
21217 v[mk] = mv
21218 }
21219 }
21220 dd.ReadMapEnd()
21221 return v, changed
21222}
21223
21224func (d *Decoder) fastpathDecMapFloat32IntfR(f *codecFnInfo, rv reflect.Value) {
21225 if rv.Kind() == reflect.Ptr {
21226 vp := rv2i(rv).(*map[float32]interface{})
21227 v, changed := fastpathTV.DecMapFloat32IntfV(*vp, true, d)
21228 if changed {
21229 *vp = v
21230 }
21231 } else {
21232 fastpathTV.DecMapFloat32IntfV(rv2i(rv).(map[float32]interface{}), false, d)
21233 }
21234}
21235func (f fastpathT) DecMapFloat32IntfX(vp *map[float32]interface{}, d *Decoder) {
21236 v, changed := f.DecMapFloat32IntfV(*vp, true, d)
21237 if changed {
21238 *vp = v
21239 }
21240}
21241func (_ fastpathT) DecMapFloat32IntfV(v map[float32]interface{}, canChange bool,
21242 d *Decoder) (_ map[float32]interface{}, changed bool) {
21243 dd, esep := d.d, d.hh.hasElemSeparators()
21244 containerLen := dd.ReadMapStart()
21245 if canChange && v == nil {
21246 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
21247 v = make(map[float32]interface{}, xlen)
21248 changed = true
21249 }
21250 if containerLen == 0 {
21251 dd.ReadMapEnd()
21252 return v, changed
21253 }
21254 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
21255 var mk float32
21256 var mv interface{}
21257 hasLen := containerLen > 0
21258 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21259 if esep {
21260 dd.ReadMapElemKey()
21261 }
21262 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21263 if esep {
21264 dd.ReadMapElemValue()
21265 }
21266 if dd.TryDecodeAsNil() {
21267 if v == nil {
21268 } else if d.h.DeleteOnNilMapValue {
21269 delete(v, mk)
21270 } else {
21271 v[mk] = nil
21272 }
21273 continue
21274 }
21275 if mapGet {
21276 mv = v[mk]
21277 } else {
21278 mv = nil
21279 }
21280 d.decode(&mv)
21281 if v != nil {
21282 v[mk] = mv
21283 }
21284 }
21285 dd.ReadMapEnd()
21286 return v, changed
21287}
21288
21289func (d *Decoder) fastpathDecMapFloat32StringR(f *codecFnInfo, rv reflect.Value) {
21290 if rv.Kind() == reflect.Ptr {
21291 vp := rv2i(rv).(*map[float32]string)
21292 v, changed := fastpathTV.DecMapFloat32StringV(*vp, true, d)
21293 if changed {
21294 *vp = v
21295 }
21296 } else {
21297 fastpathTV.DecMapFloat32StringV(rv2i(rv).(map[float32]string), false, d)
21298 }
21299}
21300func (f fastpathT) DecMapFloat32StringX(vp *map[float32]string, d *Decoder) {
21301 v, changed := f.DecMapFloat32StringV(*vp, true, d)
21302 if changed {
21303 *vp = v
21304 }
21305}
21306func (_ fastpathT) DecMapFloat32StringV(v map[float32]string, canChange bool,
21307 d *Decoder) (_ map[float32]string, changed bool) {
21308 dd, esep := d.d, d.hh.hasElemSeparators()
21309 containerLen := dd.ReadMapStart()
21310 if canChange && v == nil {
21311 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
21312 v = make(map[float32]string, xlen)
21313 changed = true
21314 }
21315 if containerLen == 0 {
21316 dd.ReadMapEnd()
21317 return v, changed
21318 }
21319 var mk float32
21320 var mv string
21321 hasLen := containerLen > 0
21322 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21323 if esep {
21324 dd.ReadMapElemKey()
21325 }
21326 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21327 if esep {
21328 dd.ReadMapElemValue()
21329 }
21330 if dd.TryDecodeAsNil() {
21331 if v == nil {
21332 } else if d.h.DeleteOnNilMapValue {
21333 delete(v, mk)
21334 } else {
21335 v[mk] = ""
21336 }
21337 continue
21338 }
21339 mv = dd.DecodeString()
21340 if v != nil {
21341 v[mk] = mv
21342 }
21343 }
21344 dd.ReadMapEnd()
21345 return v, changed
21346}
21347
21348func (d *Decoder) fastpathDecMapFloat32UintR(f *codecFnInfo, rv reflect.Value) {
21349 if rv.Kind() == reflect.Ptr {
21350 vp := rv2i(rv).(*map[float32]uint)
21351 v, changed := fastpathTV.DecMapFloat32UintV(*vp, true, d)
21352 if changed {
21353 *vp = v
21354 }
21355 } else {
21356 fastpathTV.DecMapFloat32UintV(rv2i(rv).(map[float32]uint), false, d)
21357 }
21358}
21359func (f fastpathT) DecMapFloat32UintX(vp *map[float32]uint, d *Decoder) {
21360 v, changed := f.DecMapFloat32UintV(*vp, true, d)
21361 if changed {
21362 *vp = v
21363 }
21364}
21365func (_ fastpathT) DecMapFloat32UintV(v map[float32]uint, canChange bool,
21366 d *Decoder) (_ map[float32]uint, changed bool) {
21367 dd, esep := d.d, d.hh.hasElemSeparators()
21368 containerLen := dd.ReadMapStart()
21369 if canChange && v == nil {
21370 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
21371 v = make(map[float32]uint, xlen)
21372 changed = true
21373 }
21374 if containerLen == 0 {
21375 dd.ReadMapEnd()
21376 return v, changed
21377 }
21378 var mk float32
21379 var mv uint
21380 hasLen := containerLen > 0
21381 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21382 if esep {
21383 dd.ReadMapElemKey()
21384 }
21385 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21386 if esep {
21387 dd.ReadMapElemValue()
21388 }
21389 if dd.TryDecodeAsNil() {
21390 if v == nil {
21391 } else if d.h.DeleteOnNilMapValue {
21392 delete(v, mk)
21393 } else {
21394 v[mk] = 0
21395 }
21396 continue
21397 }
21398 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
21399 if v != nil {
21400 v[mk] = mv
21401 }
21402 }
21403 dd.ReadMapEnd()
21404 return v, changed
21405}
21406
21407func (d *Decoder) fastpathDecMapFloat32Uint8R(f *codecFnInfo, rv reflect.Value) {
21408 if rv.Kind() == reflect.Ptr {
21409 vp := rv2i(rv).(*map[float32]uint8)
21410 v, changed := fastpathTV.DecMapFloat32Uint8V(*vp, true, d)
21411 if changed {
21412 *vp = v
21413 }
21414 } else {
21415 fastpathTV.DecMapFloat32Uint8V(rv2i(rv).(map[float32]uint8), false, d)
21416 }
21417}
21418func (f fastpathT) DecMapFloat32Uint8X(vp *map[float32]uint8, d *Decoder) {
21419 v, changed := f.DecMapFloat32Uint8V(*vp, true, d)
21420 if changed {
21421 *vp = v
21422 }
21423}
21424func (_ fastpathT) DecMapFloat32Uint8V(v map[float32]uint8, canChange bool,
21425 d *Decoder) (_ map[float32]uint8, changed bool) {
21426 dd, esep := d.d, d.hh.hasElemSeparators()
21427 containerLen := dd.ReadMapStart()
21428 if canChange && v == nil {
21429 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
21430 v = make(map[float32]uint8, xlen)
21431 changed = true
21432 }
21433 if containerLen == 0 {
21434 dd.ReadMapEnd()
21435 return v, changed
21436 }
21437 var mk float32
21438 var mv uint8
21439 hasLen := containerLen > 0
21440 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21441 if esep {
21442 dd.ReadMapElemKey()
21443 }
21444 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21445 if esep {
21446 dd.ReadMapElemValue()
21447 }
21448 if dd.TryDecodeAsNil() {
21449 if v == nil {
21450 } else if d.h.DeleteOnNilMapValue {
21451 delete(v, mk)
21452 } else {
21453 v[mk] = 0
21454 }
21455 continue
21456 }
21457 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
21458 if v != nil {
21459 v[mk] = mv
21460 }
21461 }
21462 dd.ReadMapEnd()
21463 return v, changed
21464}
21465
21466func (d *Decoder) fastpathDecMapFloat32Uint16R(f *codecFnInfo, rv reflect.Value) {
21467 if rv.Kind() == reflect.Ptr {
21468 vp := rv2i(rv).(*map[float32]uint16)
21469 v, changed := fastpathTV.DecMapFloat32Uint16V(*vp, true, d)
21470 if changed {
21471 *vp = v
21472 }
21473 } else {
21474 fastpathTV.DecMapFloat32Uint16V(rv2i(rv).(map[float32]uint16), false, d)
21475 }
21476}
21477func (f fastpathT) DecMapFloat32Uint16X(vp *map[float32]uint16, d *Decoder) {
21478 v, changed := f.DecMapFloat32Uint16V(*vp, true, d)
21479 if changed {
21480 *vp = v
21481 }
21482}
21483func (_ fastpathT) DecMapFloat32Uint16V(v map[float32]uint16, canChange bool,
21484 d *Decoder) (_ map[float32]uint16, changed bool) {
21485 dd, esep := d.d, d.hh.hasElemSeparators()
21486 containerLen := dd.ReadMapStart()
21487 if canChange && v == nil {
21488 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
21489 v = make(map[float32]uint16, xlen)
21490 changed = true
21491 }
21492 if containerLen == 0 {
21493 dd.ReadMapEnd()
21494 return v, changed
21495 }
21496 var mk float32
21497 var mv uint16
21498 hasLen := containerLen > 0
21499 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21500 if esep {
21501 dd.ReadMapElemKey()
21502 }
21503 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21504 if esep {
21505 dd.ReadMapElemValue()
21506 }
21507 if dd.TryDecodeAsNil() {
21508 if v == nil {
21509 } else if d.h.DeleteOnNilMapValue {
21510 delete(v, mk)
21511 } else {
21512 v[mk] = 0
21513 }
21514 continue
21515 }
21516 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
21517 if v != nil {
21518 v[mk] = mv
21519 }
21520 }
21521 dd.ReadMapEnd()
21522 return v, changed
21523}
21524
21525func (d *Decoder) fastpathDecMapFloat32Uint32R(f *codecFnInfo, rv reflect.Value) {
21526 if rv.Kind() == reflect.Ptr {
21527 vp := rv2i(rv).(*map[float32]uint32)
21528 v, changed := fastpathTV.DecMapFloat32Uint32V(*vp, true, d)
21529 if changed {
21530 *vp = v
21531 }
21532 } else {
21533 fastpathTV.DecMapFloat32Uint32V(rv2i(rv).(map[float32]uint32), false, d)
21534 }
21535}
21536func (f fastpathT) DecMapFloat32Uint32X(vp *map[float32]uint32, d *Decoder) {
21537 v, changed := f.DecMapFloat32Uint32V(*vp, true, d)
21538 if changed {
21539 *vp = v
21540 }
21541}
21542func (_ fastpathT) DecMapFloat32Uint32V(v map[float32]uint32, canChange bool,
21543 d *Decoder) (_ map[float32]uint32, changed bool) {
21544 dd, esep := d.d, d.hh.hasElemSeparators()
21545 containerLen := dd.ReadMapStart()
21546 if canChange && v == nil {
21547 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
21548 v = make(map[float32]uint32, xlen)
21549 changed = true
21550 }
21551 if containerLen == 0 {
21552 dd.ReadMapEnd()
21553 return v, changed
21554 }
21555 var mk float32
21556 var mv uint32
21557 hasLen := containerLen > 0
21558 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21559 if esep {
21560 dd.ReadMapElemKey()
21561 }
21562 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21563 if esep {
21564 dd.ReadMapElemValue()
21565 }
21566 if dd.TryDecodeAsNil() {
21567 if v == nil {
21568 } else if d.h.DeleteOnNilMapValue {
21569 delete(v, mk)
21570 } else {
21571 v[mk] = 0
21572 }
21573 continue
21574 }
21575 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
21576 if v != nil {
21577 v[mk] = mv
21578 }
21579 }
21580 dd.ReadMapEnd()
21581 return v, changed
21582}
21583
21584func (d *Decoder) fastpathDecMapFloat32Uint64R(f *codecFnInfo, rv reflect.Value) {
21585 if rv.Kind() == reflect.Ptr {
21586 vp := rv2i(rv).(*map[float32]uint64)
21587 v, changed := fastpathTV.DecMapFloat32Uint64V(*vp, true, d)
21588 if changed {
21589 *vp = v
21590 }
21591 } else {
21592 fastpathTV.DecMapFloat32Uint64V(rv2i(rv).(map[float32]uint64), false, d)
21593 }
21594}
21595func (f fastpathT) DecMapFloat32Uint64X(vp *map[float32]uint64, d *Decoder) {
21596 v, changed := f.DecMapFloat32Uint64V(*vp, true, d)
21597 if changed {
21598 *vp = v
21599 }
21600}
21601func (_ fastpathT) DecMapFloat32Uint64V(v map[float32]uint64, canChange bool,
21602 d *Decoder) (_ map[float32]uint64, changed bool) {
21603 dd, esep := d.d, d.hh.hasElemSeparators()
21604 containerLen := dd.ReadMapStart()
21605 if canChange && v == nil {
21606 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
21607 v = make(map[float32]uint64, xlen)
21608 changed = true
21609 }
21610 if containerLen == 0 {
21611 dd.ReadMapEnd()
21612 return v, changed
21613 }
21614 var mk float32
21615 var mv uint64
21616 hasLen := containerLen > 0
21617 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21618 if esep {
21619 dd.ReadMapElemKey()
21620 }
21621 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21622 if esep {
21623 dd.ReadMapElemValue()
21624 }
21625 if dd.TryDecodeAsNil() {
21626 if v == nil {
21627 } else if d.h.DeleteOnNilMapValue {
21628 delete(v, mk)
21629 } else {
21630 v[mk] = 0
21631 }
21632 continue
21633 }
21634 mv = dd.DecodeUint64()
21635 if v != nil {
21636 v[mk] = mv
21637 }
21638 }
21639 dd.ReadMapEnd()
21640 return v, changed
21641}
21642
21643func (d *Decoder) fastpathDecMapFloat32UintptrR(f *codecFnInfo, rv reflect.Value) {
21644 if rv.Kind() == reflect.Ptr {
21645 vp := rv2i(rv).(*map[float32]uintptr)
21646 v, changed := fastpathTV.DecMapFloat32UintptrV(*vp, true, d)
21647 if changed {
21648 *vp = v
21649 }
21650 } else {
21651 fastpathTV.DecMapFloat32UintptrV(rv2i(rv).(map[float32]uintptr), false, d)
21652 }
21653}
21654func (f fastpathT) DecMapFloat32UintptrX(vp *map[float32]uintptr, d *Decoder) {
21655 v, changed := f.DecMapFloat32UintptrV(*vp, true, d)
21656 if changed {
21657 *vp = v
21658 }
21659}
21660func (_ fastpathT) DecMapFloat32UintptrV(v map[float32]uintptr, canChange bool,
21661 d *Decoder) (_ map[float32]uintptr, changed bool) {
21662 dd, esep := d.d, d.hh.hasElemSeparators()
21663 containerLen := dd.ReadMapStart()
21664 if canChange && v == nil {
21665 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
21666 v = make(map[float32]uintptr, xlen)
21667 changed = true
21668 }
21669 if containerLen == 0 {
21670 dd.ReadMapEnd()
21671 return v, changed
21672 }
21673 var mk float32
21674 var mv uintptr
21675 hasLen := containerLen > 0
21676 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21677 if esep {
21678 dd.ReadMapElemKey()
21679 }
21680 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21681 if esep {
21682 dd.ReadMapElemValue()
21683 }
21684 if dd.TryDecodeAsNil() {
21685 if v == nil {
21686 } else if d.h.DeleteOnNilMapValue {
21687 delete(v, mk)
21688 } else {
21689 v[mk] = 0
21690 }
21691 continue
21692 }
21693 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
21694 if v != nil {
21695 v[mk] = mv
21696 }
21697 }
21698 dd.ReadMapEnd()
21699 return v, changed
21700}
21701
21702func (d *Decoder) fastpathDecMapFloat32IntR(f *codecFnInfo, rv reflect.Value) {
21703 if rv.Kind() == reflect.Ptr {
21704 vp := rv2i(rv).(*map[float32]int)
21705 v, changed := fastpathTV.DecMapFloat32IntV(*vp, true, d)
21706 if changed {
21707 *vp = v
21708 }
21709 } else {
21710 fastpathTV.DecMapFloat32IntV(rv2i(rv).(map[float32]int), false, d)
21711 }
21712}
21713func (f fastpathT) DecMapFloat32IntX(vp *map[float32]int, d *Decoder) {
21714 v, changed := f.DecMapFloat32IntV(*vp, true, d)
21715 if changed {
21716 *vp = v
21717 }
21718}
21719func (_ fastpathT) DecMapFloat32IntV(v map[float32]int, canChange bool,
21720 d *Decoder) (_ map[float32]int, changed bool) {
21721 dd, esep := d.d, d.hh.hasElemSeparators()
21722 containerLen := dd.ReadMapStart()
21723 if canChange && v == nil {
21724 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
21725 v = make(map[float32]int, xlen)
21726 changed = true
21727 }
21728 if containerLen == 0 {
21729 dd.ReadMapEnd()
21730 return v, changed
21731 }
21732 var mk float32
21733 var mv int
21734 hasLen := containerLen > 0
21735 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21736 if esep {
21737 dd.ReadMapElemKey()
21738 }
21739 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21740 if esep {
21741 dd.ReadMapElemValue()
21742 }
21743 if dd.TryDecodeAsNil() {
21744 if v == nil {
21745 } else if d.h.DeleteOnNilMapValue {
21746 delete(v, mk)
21747 } else {
21748 v[mk] = 0
21749 }
21750 continue
21751 }
21752 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
21753 if v != nil {
21754 v[mk] = mv
21755 }
21756 }
21757 dd.ReadMapEnd()
21758 return v, changed
21759}
21760
21761func (d *Decoder) fastpathDecMapFloat32Int8R(f *codecFnInfo, rv reflect.Value) {
21762 if rv.Kind() == reflect.Ptr {
21763 vp := rv2i(rv).(*map[float32]int8)
21764 v, changed := fastpathTV.DecMapFloat32Int8V(*vp, true, d)
21765 if changed {
21766 *vp = v
21767 }
21768 } else {
21769 fastpathTV.DecMapFloat32Int8V(rv2i(rv).(map[float32]int8), false, d)
21770 }
21771}
21772func (f fastpathT) DecMapFloat32Int8X(vp *map[float32]int8, d *Decoder) {
21773 v, changed := f.DecMapFloat32Int8V(*vp, true, d)
21774 if changed {
21775 *vp = v
21776 }
21777}
21778func (_ fastpathT) DecMapFloat32Int8V(v map[float32]int8, canChange bool,
21779 d *Decoder) (_ map[float32]int8, changed bool) {
21780 dd, esep := d.d, d.hh.hasElemSeparators()
21781 containerLen := dd.ReadMapStart()
21782 if canChange && v == nil {
21783 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
21784 v = make(map[float32]int8, xlen)
21785 changed = true
21786 }
21787 if containerLen == 0 {
21788 dd.ReadMapEnd()
21789 return v, changed
21790 }
21791 var mk float32
21792 var mv int8
21793 hasLen := containerLen > 0
21794 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21795 if esep {
21796 dd.ReadMapElemKey()
21797 }
21798 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21799 if esep {
21800 dd.ReadMapElemValue()
21801 }
21802 if dd.TryDecodeAsNil() {
21803 if v == nil {
21804 } else if d.h.DeleteOnNilMapValue {
21805 delete(v, mk)
21806 } else {
21807 v[mk] = 0
21808 }
21809 continue
21810 }
21811 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
21812 if v != nil {
21813 v[mk] = mv
21814 }
21815 }
21816 dd.ReadMapEnd()
21817 return v, changed
21818}
21819
21820func (d *Decoder) fastpathDecMapFloat32Int16R(f *codecFnInfo, rv reflect.Value) {
21821 if rv.Kind() == reflect.Ptr {
21822 vp := rv2i(rv).(*map[float32]int16)
21823 v, changed := fastpathTV.DecMapFloat32Int16V(*vp, true, d)
21824 if changed {
21825 *vp = v
21826 }
21827 } else {
21828 fastpathTV.DecMapFloat32Int16V(rv2i(rv).(map[float32]int16), false, d)
21829 }
21830}
21831func (f fastpathT) DecMapFloat32Int16X(vp *map[float32]int16, d *Decoder) {
21832 v, changed := f.DecMapFloat32Int16V(*vp, true, d)
21833 if changed {
21834 *vp = v
21835 }
21836}
21837func (_ fastpathT) DecMapFloat32Int16V(v map[float32]int16, canChange bool,
21838 d *Decoder) (_ map[float32]int16, changed bool) {
21839 dd, esep := d.d, d.hh.hasElemSeparators()
21840 containerLen := dd.ReadMapStart()
21841 if canChange && v == nil {
21842 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
21843 v = make(map[float32]int16, xlen)
21844 changed = true
21845 }
21846 if containerLen == 0 {
21847 dd.ReadMapEnd()
21848 return v, changed
21849 }
21850 var mk float32
21851 var mv int16
21852 hasLen := containerLen > 0
21853 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21854 if esep {
21855 dd.ReadMapElemKey()
21856 }
21857 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21858 if esep {
21859 dd.ReadMapElemValue()
21860 }
21861 if dd.TryDecodeAsNil() {
21862 if v == nil {
21863 } else if d.h.DeleteOnNilMapValue {
21864 delete(v, mk)
21865 } else {
21866 v[mk] = 0
21867 }
21868 continue
21869 }
21870 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
21871 if v != nil {
21872 v[mk] = mv
21873 }
21874 }
21875 dd.ReadMapEnd()
21876 return v, changed
21877}
21878
21879func (d *Decoder) fastpathDecMapFloat32Int32R(f *codecFnInfo, rv reflect.Value) {
21880 if rv.Kind() == reflect.Ptr {
21881 vp := rv2i(rv).(*map[float32]int32)
21882 v, changed := fastpathTV.DecMapFloat32Int32V(*vp, true, d)
21883 if changed {
21884 *vp = v
21885 }
21886 } else {
21887 fastpathTV.DecMapFloat32Int32V(rv2i(rv).(map[float32]int32), false, d)
21888 }
21889}
21890func (f fastpathT) DecMapFloat32Int32X(vp *map[float32]int32, d *Decoder) {
21891 v, changed := f.DecMapFloat32Int32V(*vp, true, d)
21892 if changed {
21893 *vp = v
21894 }
21895}
21896func (_ fastpathT) DecMapFloat32Int32V(v map[float32]int32, canChange bool,
21897 d *Decoder) (_ map[float32]int32, changed bool) {
21898 dd, esep := d.d, d.hh.hasElemSeparators()
21899 containerLen := dd.ReadMapStart()
21900 if canChange && v == nil {
21901 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
21902 v = make(map[float32]int32, xlen)
21903 changed = true
21904 }
21905 if containerLen == 0 {
21906 dd.ReadMapEnd()
21907 return v, changed
21908 }
21909 var mk float32
21910 var mv int32
21911 hasLen := containerLen > 0
21912 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21913 if esep {
21914 dd.ReadMapElemKey()
21915 }
21916 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21917 if esep {
21918 dd.ReadMapElemValue()
21919 }
21920 if dd.TryDecodeAsNil() {
21921 if v == nil {
21922 } else if d.h.DeleteOnNilMapValue {
21923 delete(v, mk)
21924 } else {
21925 v[mk] = 0
21926 }
21927 continue
21928 }
21929 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
21930 if v != nil {
21931 v[mk] = mv
21932 }
21933 }
21934 dd.ReadMapEnd()
21935 return v, changed
21936}
21937
21938func (d *Decoder) fastpathDecMapFloat32Int64R(f *codecFnInfo, rv reflect.Value) {
21939 if rv.Kind() == reflect.Ptr {
21940 vp := rv2i(rv).(*map[float32]int64)
21941 v, changed := fastpathTV.DecMapFloat32Int64V(*vp, true, d)
21942 if changed {
21943 *vp = v
21944 }
21945 } else {
21946 fastpathTV.DecMapFloat32Int64V(rv2i(rv).(map[float32]int64), false, d)
21947 }
21948}
21949func (f fastpathT) DecMapFloat32Int64X(vp *map[float32]int64, d *Decoder) {
21950 v, changed := f.DecMapFloat32Int64V(*vp, true, d)
21951 if changed {
21952 *vp = v
21953 }
21954}
21955func (_ fastpathT) DecMapFloat32Int64V(v map[float32]int64, canChange bool,
21956 d *Decoder) (_ map[float32]int64, changed bool) {
21957 dd, esep := d.d, d.hh.hasElemSeparators()
21958 containerLen := dd.ReadMapStart()
21959 if canChange && v == nil {
21960 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
21961 v = make(map[float32]int64, xlen)
21962 changed = true
21963 }
21964 if containerLen == 0 {
21965 dd.ReadMapEnd()
21966 return v, changed
21967 }
21968 var mk float32
21969 var mv int64
21970 hasLen := containerLen > 0
21971 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
21972 if esep {
21973 dd.ReadMapElemKey()
21974 }
21975 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
21976 if esep {
21977 dd.ReadMapElemValue()
21978 }
21979 if dd.TryDecodeAsNil() {
21980 if v == nil {
21981 } else if d.h.DeleteOnNilMapValue {
21982 delete(v, mk)
21983 } else {
21984 v[mk] = 0
21985 }
21986 continue
21987 }
21988 mv = dd.DecodeInt64()
21989 if v != nil {
21990 v[mk] = mv
21991 }
21992 }
21993 dd.ReadMapEnd()
21994 return v, changed
21995}
21996
21997func (d *Decoder) fastpathDecMapFloat32Float32R(f *codecFnInfo, rv reflect.Value) {
21998 if rv.Kind() == reflect.Ptr {
21999 vp := rv2i(rv).(*map[float32]float32)
22000 v, changed := fastpathTV.DecMapFloat32Float32V(*vp, true, d)
22001 if changed {
22002 *vp = v
22003 }
22004 } else {
22005 fastpathTV.DecMapFloat32Float32V(rv2i(rv).(map[float32]float32), false, d)
22006 }
22007}
22008func (f fastpathT) DecMapFloat32Float32X(vp *map[float32]float32, d *Decoder) {
22009 v, changed := f.DecMapFloat32Float32V(*vp, true, d)
22010 if changed {
22011 *vp = v
22012 }
22013}
22014func (_ fastpathT) DecMapFloat32Float32V(v map[float32]float32, canChange bool,
22015 d *Decoder) (_ map[float32]float32, changed bool) {
22016 dd, esep := d.d, d.hh.hasElemSeparators()
22017 containerLen := dd.ReadMapStart()
22018 if canChange && v == nil {
22019 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
22020 v = make(map[float32]float32, xlen)
22021 changed = true
22022 }
22023 if containerLen == 0 {
22024 dd.ReadMapEnd()
22025 return v, changed
22026 }
22027 var mk float32
22028 var mv float32
22029 hasLen := containerLen > 0
22030 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22031 if esep {
22032 dd.ReadMapElemKey()
22033 }
22034 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
22035 if esep {
22036 dd.ReadMapElemValue()
22037 }
22038 if dd.TryDecodeAsNil() {
22039 if v == nil {
22040 } else if d.h.DeleteOnNilMapValue {
22041 delete(v, mk)
22042 } else {
22043 v[mk] = 0
22044 }
22045 continue
22046 }
22047 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
22048 if v != nil {
22049 v[mk] = mv
22050 }
22051 }
22052 dd.ReadMapEnd()
22053 return v, changed
22054}
22055
22056func (d *Decoder) fastpathDecMapFloat32Float64R(f *codecFnInfo, rv reflect.Value) {
22057 if rv.Kind() == reflect.Ptr {
22058 vp := rv2i(rv).(*map[float32]float64)
22059 v, changed := fastpathTV.DecMapFloat32Float64V(*vp, true, d)
22060 if changed {
22061 *vp = v
22062 }
22063 } else {
22064 fastpathTV.DecMapFloat32Float64V(rv2i(rv).(map[float32]float64), false, d)
22065 }
22066}
22067func (f fastpathT) DecMapFloat32Float64X(vp *map[float32]float64, d *Decoder) {
22068 v, changed := f.DecMapFloat32Float64V(*vp, true, d)
22069 if changed {
22070 *vp = v
22071 }
22072}
22073func (_ fastpathT) DecMapFloat32Float64V(v map[float32]float64, canChange bool,
22074 d *Decoder) (_ map[float32]float64, changed bool) {
22075 dd, esep := d.d, d.hh.hasElemSeparators()
22076 containerLen := dd.ReadMapStart()
22077 if canChange && v == nil {
22078 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
22079 v = make(map[float32]float64, xlen)
22080 changed = true
22081 }
22082 if containerLen == 0 {
22083 dd.ReadMapEnd()
22084 return v, changed
22085 }
22086 var mk float32
22087 var mv float64
22088 hasLen := containerLen > 0
22089 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22090 if esep {
22091 dd.ReadMapElemKey()
22092 }
22093 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
22094 if esep {
22095 dd.ReadMapElemValue()
22096 }
22097 if dd.TryDecodeAsNil() {
22098 if v == nil {
22099 } else if d.h.DeleteOnNilMapValue {
22100 delete(v, mk)
22101 } else {
22102 v[mk] = 0
22103 }
22104 continue
22105 }
22106 mv = dd.DecodeFloat64()
22107 if v != nil {
22108 v[mk] = mv
22109 }
22110 }
22111 dd.ReadMapEnd()
22112 return v, changed
22113}
22114
22115func (d *Decoder) fastpathDecMapFloat32BoolR(f *codecFnInfo, rv reflect.Value) {
22116 if rv.Kind() == reflect.Ptr {
22117 vp := rv2i(rv).(*map[float32]bool)
22118 v, changed := fastpathTV.DecMapFloat32BoolV(*vp, true, d)
22119 if changed {
22120 *vp = v
22121 }
22122 } else {
22123 fastpathTV.DecMapFloat32BoolV(rv2i(rv).(map[float32]bool), false, d)
22124 }
22125}
22126func (f fastpathT) DecMapFloat32BoolX(vp *map[float32]bool, d *Decoder) {
22127 v, changed := f.DecMapFloat32BoolV(*vp, true, d)
22128 if changed {
22129 *vp = v
22130 }
22131}
22132func (_ fastpathT) DecMapFloat32BoolV(v map[float32]bool, canChange bool,
22133 d *Decoder) (_ map[float32]bool, changed bool) {
22134 dd, esep := d.d, d.hh.hasElemSeparators()
22135 containerLen := dd.ReadMapStart()
22136 if canChange && v == nil {
22137 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
22138 v = make(map[float32]bool, xlen)
22139 changed = true
22140 }
22141 if containerLen == 0 {
22142 dd.ReadMapEnd()
22143 return v, changed
22144 }
22145 var mk float32
22146 var mv bool
22147 hasLen := containerLen > 0
22148 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22149 if esep {
22150 dd.ReadMapElemKey()
22151 }
22152 mk = float32(chkOvf.Float32V(dd.DecodeFloat64()))
22153 if esep {
22154 dd.ReadMapElemValue()
22155 }
22156 if dd.TryDecodeAsNil() {
22157 if v == nil {
22158 } else if d.h.DeleteOnNilMapValue {
22159 delete(v, mk)
22160 } else {
22161 v[mk] = false
22162 }
22163 continue
22164 }
22165 mv = dd.DecodeBool()
22166 if v != nil {
22167 v[mk] = mv
22168 }
22169 }
22170 dd.ReadMapEnd()
22171 return v, changed
22172}
22173
22174func (d *Decoder) fastpathDecMapFloat64IntfR(f *codecFnInfo, rv reflect.Value) {
22175 if rv.Kind() == reflect.Ptr {
22176 vp := rv2i(rv).(*map[float64]interface{})
22177 v, changed := fastpathTV.DecMapFloat64IntfV(*vp, true, d)
22178 if changed {
22179 *vp = v
22180 }
22181 } else {
22182 fastpathTV.DecMapFloat64IntfV(rv2i(rv).(map[float64]interface{}), false, d)
22183 }
22184}
22185func (f fastpathT) DecMapFloat64IntfX(vp *map[float64]interface{}, d *Decoder) {
22186 v, changed := f.DecMapFloat64IntfV(*vp, true, d)
22187 if changed {
22188 *vp = v
22189 }
22190}
22191func (_ fastpathT) DecMapFloat64IntfV(v map[float64]interface{}, canChange bool,
22192 d *Decoder) (_ map[float64]interface{}, changed bool) {
22193 dd, esep := d.d, d.hh.hasElemSeparators()
22194 containerLen := dd.ReadMapStart()
22195 if canChange && v == nil {
22196 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
22197 v = make(map[float64]interface{}, xlen)
22198 changed = true
22199 }
22200 if containerLen == 0 {
22201 dd.ReadMapEnd()
22202 return v, changed
22203 }
22204 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
22205 var mk float64
22206 var mv interface{}
22207 hasLen := containerLen > 0
22208 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22209 if esep {
22210 dd.ReadMapElemKey()
22211 }
22212 mk = dd.DecodeFloat64()
22213 if esep {
22214 dd.ReadMapElemValue()
22215 }
22216 if dd.TryDecodeAsNil() {
22217 if v == nil {
22218 } else if d.h.DeleteOnNilMapValue {
22219 delete(v, mk)
22220 } else {
22221 v[mk] = nil
22222 }
22223 continue
22224 }
22225 if mapGet {
22226 mv = v[mk]
22227 } else {
22228 mv = nil
22229 }
22230 d.decode(&mv)
22231 if v != nil {
22232 v[mk] = mv
22233 }
22234 }
22235 dd.ReadMapEnd()
22236 return v, changed
22237}
22238
22239func (d *Decoder) fastpathDecMapFloat64StringR(f *codecFnInfo, rv reflect.Value) {
22240 if rv.Kind() == reflect.Ptr {
22241 vp := rv2i(rv).(*map[float64]string)
22242 v, changed := fastpathTV.DecMapFloat64StringV(*vp, true, d)
22243 if changed {
22244 *vp = v
22245 }
22246 } else {
22247 fastpathTV.DecMapFloat64StringV(rv2i(rv).(map[float64]string), false, d)
22248 }
22249}
22250func (f fastpathT) DecMapFloat64StringX(vp *map[float64]string, d *Decoder) {
22251 v, changed := f.DecMapFloat64StringV(*vp, true, d)
22252 if changed {
22253 *vp = v
22254 }
22255}
22256func (_ fastpathT) DecMapFloat64StringV(v map[float64]string, canChange bool,
22257 d *Decoder) (_ map[float64]string, changed bool) {
22258 dd, esep := d.d, d.hh.hasElemSeparators()
22259 containerLen := dd.ReadMapStart()
22260 if canChange && v == nil {
22261 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
22262 v = make(map[float64]string, xlen)
22263 changed = true
22264 }
22265 if containerLen == 0 {
22266 dd.ReadMapEnd()
22267 return v, changed
22268 }
22269 var mk float64
22270 var mv string
22271 hasLen := containerLen > 0
22272 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22273 if esep {
22274 dd.ReadMapElemKey()
22275 }
22276 mk = dd.DecodeFloat64()
22277 if esep {
22278 dd.ReadMapElemValue()
22279 }
22280 if dd.TryDecodeAsNil() {
22281 if v == nil {
22282 } else if d.h.DeleteOnNilMapValue {
22283 delete(v, mk)
22284 } else {
22285 v[mk] = ""
22286 }
22287 continue
22288 }
22289 mv = dd.DecodeString()
22290 if v != nil {
22291 v[mk] = mv
22292 }
22293 }
22294 dd.ReadMapEnd()
22295 return v, changed
22296}
22297
22298func (d *Decoder) fastpathDecMapFloat64UintR(f *codecFnInfo, rv reflect.Value) {
22299 if rv.Kind() == reflect.Ptr {
22300 vp := rv2i(rv).(*map[float64]uint)
22301 v, changed := fastpathTV.DecMapFloat64UintV(*vp, true, d)
22302 if changed {
22303 *vp = v
22304 }
22305 } else {
22306 fastpathTV.DecMapFloat64UintV(rv2i(rv).(map[float64]uint), false, d)
22307 }
22308}
22309func (f fastpathT) DecMapFloat64UintX(vp *map[float64]uint, d *Decoder) {
22310 v, changed := f.DecMapFloat64UintV(*vp, true, d)
22311 if changed {
22312 *vp = v
22313 }
22314}
22315func (_ fastpathT) DecMapFloat64UintV(v map[float64]uint, canChange bool,
22316 d *Decoder) (_ map[float64]uint, changed bool) {
22317 dd, esep := d.d, d.hh.hasElemSeparators()
22318 containerLen := dd.ReadMapStart()
22319 if canChange && v == nil {
22320 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
22321 v = make(map[float64]uint, xlen)
22322 changed = true
22323 }
22324 if containerLen == 0 {
22325 dd.ReadMapEnd()
22326 return v, changed
22327 }
22328 var mk float64
22329 var mv uint
22330 hasLen := containerLen > 0
22331 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22332 if esep {
22333 dd.ReadMapElemKey()
22334 }
22335 mk = dd.DecodeFloat64()
22336 if esep {
22337 dd.ReadMapElemValue()
22338 }
22339 if dd.TryDecodeAsNil() {
22340 if v == nil {
22341 } else if d.h.DeleteOnNilMapValue {
22342 delete(v, mk)
22343 } else {
22344 v[mk] = 0
22345 }
22346 continue
22347 }
22348 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
22349 if v != nil {
22350 v[mk] = mv
22351 }
22352 }
22353 dd.ReadMapEnd()
22354 return v, changed
22355}
22356
22357func (d *Decoder) fastpathDecMapFloat64Uint8R(f *codecFnInfo, rv reflect.Value) {
22358 if rv.Kind() == reflect.Ptr {
22359 vp := rv2i(rv).(*map[float64]uint8)
22360 v, changed := fastpathTV.DecMapFloat64Uint8V(*vp, true, d)
22361 if changed {
22362 *vp = v
22363 }
22364 } else {
22365 fastpathTV.DecMapFloat64Uint8V(rv2i(rv).(map[float64]uint8), false, d)
22366 }
22367}
22368func (f fastpathT) DecMapFloat64Uint8X(vp *map[float64]uint8, d *Decoder) {
22369 v, changed := f.DecMapFloat64Uint8V(*vp, true, d)
22370 if changed {
22371 *vp = v
22372 }
22373}
22374func (_ fastpathT) DecMapFloat64Uint8V(v map[float64]uint8, canChange bool,
22375 d *Decoder) (_ map[float64]uint8, changed bool) {
22376 dd, esep := d.d, d.hh.hasElemSeparators()
22377 containerLen := dd.ReadMapStart()
22378 if canChange && v == nil {
22379 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
22380 v = make(map[float64]uint8, xlen)
22381 changed = true
22382 }
22383 if containerLen == 0 {
22384 dd.ReadMapEnd()
22385 return v, changed
22386 }
22387 var mk float64
22388 var mv uint8
22389 hasLen := containerLen > 0
22390 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22391 if esep {
22392 dd.ReadMapElemKey()
22393 }
22394 mk = dd.DecodeFloat64()
22395 if esep {
22396 dd.ReadMapElemValue()
22397 }
22398 if dd.TryDecodeAsNil() {
22399 if v == nil {
22400 } else if d.h.DeleteOnNilMapValue {
22401 delete(v, mk)
22402 } else {
22403 v[mk] = 0
22404 }
22405 continue
22406 }
22407 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
22408 if v != nil {
22409 v[mk] = mv
22410 }
22411 }
22412 dd.ReadMapEnd()
22413 return v, changed
22414}
22415
22416func (d *Decoder) fastpathDecMapFloat64Uint16R(f *codecFnInfo, rv reflect.Value) {
22417 if rv.Kind() == reflect.Ptr {
22418 vp := rv2i(rv).(*map[float64]uint16)
22419 v, changed := fastpathTV.DecMapFloat64Uint16V(*vp, true, d)
22420 if changed {
22421 *vp = v
22422 }
22423 } else {
22424 fastpathTV.DecMapFloat64Uint16V(rv2i(rv).(map[float64]uint16), false, d)
22425 }
22426}
22427func (f fastpathT) DecMapFloat64Uint16X(vp *map[float64]uint16, d *Decoder) {
22428 v, changed := f.DecMapFloat64Uint16V(*vp, true, d)
22429 if changed {
22430 *vp = v
22431 }
22432}
22433func (_ fastpathT) DecMapFloat64Uint16V(v map[float64]uint16, canChange bool,
22434 d *Decoder) (_ map[float64]uint16, changed bool) {
22435 dd, esep := d.d, d.hh.hasElemSeparators()
22436 containerLen := dd.ReadMapStart()
22437 if canChange && v == nil {
22438 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
22439 v = make(map[float64]uint16, xlen)
22440 changed = true
22441 }
22442 if containerLen == 0 {
22443 dd.ReadMapEnd()
22444 return v, changed
22445 }
22446 var mk float64
22447 var mv uint16
22448 hasLen := containerLen > 0
22449 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22450 if esep {
22451 dd.ReadMapElemKey()
22452 }
22453 mk = dd.DecodeFloat64()
22454 if esep {
22455 dd.ReadMapElemValue()
22456 }
22457 if dd.TryDecodeAsNil() {
22458 if v == nil {
22459 } else if d.h.DeleteOnNilMapValue {
22460 delete(v, mk)
22461 } else {
22462 v[mk] = 0
22463 }
22464 continue
22465 }
22466 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
22467 if v != nil {
22468 v[mk] = mv
22469 }
22470 }
22471 dd.ReadMapEnd()
22472 return v, changed
22473}
22474
22475func (d *Decoder) fastpathDecMapFloat64Uint32R(f *codecFnInfo, rv reflect.Value) {
22476 if rv.Kind() == reflect.Ptr {
22477 vp := rv2i(rv).(*map[float64]uint32)
22478 v, changed := fastpathTV.DecMapFloat64Uint32V(*vp, true, d)
22479 if changed {
22480 *vp = v
22481 }
22482 } else {
22483 fastpathTV.DecMapFloat64Uint32V(rv2i(rv).(map[float64]uint32), false, d)
22484 }
22485}
22486func (f fastpathT) DecMapFloat64Uint32X(vp *map[float64]uint32, d *Decoder) {
22487 v, changed := f.DecMapFloat64Uint32V(*vp, true, d)
22488 if changed {
22489 *vp = v
22490 }
22491}
22492func (_ fastpathT) DecMapFloat64Uint32V(v map[float64]uint32, canChange bool,
22493 d *Decoder) (_ map[float64]uint32, changed bool) {
22494 dd, esep := d.d, d.hh.hasElemSeparators()
22495 containerLen := dd.ReadMapStart()
22496 if canChange && v == nil {
22497 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
22498 v = make(map[float64]uint32, xlen)
22499 changed = true
22500 }
22501 if containerLen == 0 {
22502 dd.ReadMapEnd()
22503 return v, changed
22504 }
22505 var mk float64
22506 var mv uint32
22507 hasLen := containerLen > 0
22508 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22509 if esep {
22510 dd.ReadMapElemKey()
22511 }
22512 mk = dd.DecodeFloat64()
22513 if esep {
22514 dd.ReadMapElemValue()
22515 }
22516 if dd.TryDecodeAsNil() {
22517 if v == nil {
22518 } else if d.h.DeleteOnNilMapValue {
22519 delete(v, mk)
22520 } else {
22521 v[mk] = 0
22522 }
22523 continue
22524 }
22525 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
22526 if v != nil {
22527 v[mk] = mv
22528 }
22529 }
22530 dd.ReadMapEnd()
22531 return v, changed
22532}
22533
22534func (d *Decoder) fastpathDecMapFloat64Uint64R(f *codecFnInfo, rv reflect.Value) {
22535 if rv.Kind() == reflect.Ptr {
22536 vp := rv2i(rv).(*map[float64]uint64)
22537 v, changed := fastpathTV.DecMapFloat64Uint64V(*vp, true, d)
22538 if changed {
22539 *vp = v
22540 }
22541 } else {
22542 fastpathTV.DecMapFloat64Uint64V(rv2i(rv).(map[float64]uint64), false, d)
22543 }
22544}
22545func (f fastpathT) DecMapFloat64Uint64X(vp *map[float64]uint64, d *Decoder) {
22546 v, changed := f.DecMapFloat64Uint64V(*vp, true, d)
22547 if changed {
22548 *vp = v
22549 }
22550}
22551func (_ fastpathT) DecMapFloat64Uint64V(v map[float64]uint64, canChange bool,
22552 d *Decoder) (_ map[float64]uint64, changed bool) {
22553 dd, esep := d.d, d.hh.hasElemSeparators()
22554 containerLen := dd.ReadMapStart()
22555 if canChange && v == nil {
22556 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
22557 v = make(map[float64]uint64, xlen)
22558 changed = true
22559 }
22560 if containerLen == 0 {
22561 dd.ReadMapEnd()
22562 return v, changed
22563 }
22564 var mk float64
22565 var mv uint64
22566 hasLen := containerLen > 0
22567 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22568 if esep {
22569 dd.ReadMapElemKey()
22570 }
22571 mk = dd.DecodeFloat64()
22572 if esep {
22573 dd.ReadMapElemValue()
22574 }
22575 if dd.TryDecodeAsNil() {
22576 if v == nil {
22577 } else if d.h.DeleteOnNilMapValue {
22578 delete(v, mk)
22579 } else {
22580 v[mk] = 0
22581 }
22582 continue
22583 }
22584 mv = dd.DecodeUint64()
22585 if v != nil {
22586 v[mk] = mv
22587 }
22588 }
22589 dd.ReadMapEnd()
22590 return v, changed
22591}
22592
22593func (d *Decoder) fastpathDecMapFloat64UintptrR(f *codecFnInfo, rv reflect.Value) {
22594 if rv.Kind() == reflect.Ptr {
22595 vp := rv2i(rv).(*map[float64]uintptr)
22596 v, changed := fastpathTV.DecMapFloat64UintptrV(*vp, true, d)
22597 if changed {
22598 *vp = v
22599 }
22600 } else {
22601 fastpathTV.DecMapFloat64UintptrV(rv2i(rv).(map[float64]uintptr), false, d)
22602 }
22603}
22604func (f fastpathT) DecMapFloat64UintptrX(vp *map[float64]uintptr, d *Decoder) {
22605 v, changed := f.DecMapFloat64UintptrV(*vp, true, d)
22606 if changed {
22607 *vp = v
22608 }
22609}
22610func (_ fastpathT) DecMapFloat64UintptrV(v map[float64]uintptr, canChange bool,
22611 d *Decoder) (_ map[float64]uintptr, changed bool) {
22612 dd, esep := d.d, d.hh.hasElemSeparators()
22613 containerLen := dd.ReadMapStart()
22614 if canChange && v == nil {
22615 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
22616 v = make(map[float64]uintptr, xlen)
22617 changed = true
22618 }
22619 if containerLen == 0 {
22620 dd.ReadMapEnd()
22621 return v, changed
22622 }
22623 var mk float64
22624 var mv uintptr
22625 hasLen := containerLen > 0
22626 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22627 if esep {
22628 dd.ReadMapElemKey()
22629 }
22630 mk = dd.DecodeFloat64()
22631 if esep {
22632 dd.ReadMapElemValue()
22633 }
22634 if dd.TryDecodeAsNil() {
22635 if v == nil {
22636 } else if d.h.DeleteOnNilMapValue {
22637 delete(v, mk)
22638 } else {
22639 v[mk] = 0
22640 }
22641 continue
22642 }
22643 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
22644 if v != nil {
22645 v[mk] = mv
22646 }
22647 }
22648 dd.ReadMapEnd()
22649 return v, changed
22650}
22651
22652func (d *Decoder) fastpathDecMapFloat64IntR(f *codecFnInfo, rv reflect.Value) {
22653 if rv.Kind() == reflect.Ptr {
22654 vp := rv2i(rv).(*map[float64]int)
22655 v, changed := fastpathTV.DecMapFloat64IntV(*vp, true, d)
22656 if changed {
22657 *vp = v
22658 }
22659 } else {
22660 fastpathTV.DecMapFloat64IntV(rv2i(rv).(map[float64]int), false, d)
22661 }
22662}
22663func (f fastpathT) DecMapFloat64IntX(vp *map[float64]int, d *Decoder) {
22664 v, changed := f.DecMapFloat64IntV(*vp, true, d)
22665 if changed {
22666 *vp = v
22667 }
22668}
22669func (_ fastpathT) DecMapFloat64IntV(v map[float64]int, canChange bool,
22670 d *Decoder) (_ map[float64]int, changed bool) {
22671 dd, esep := d.d, d.hh.hasElemSeparators()
22672 containerLen := dd.ReadMapStart()
22673 if canChange && v == nil {
22674 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
22675 v = make(map[float64]int, xlen)
22676 changed = true
22677 }
22678 if containerLen == 0 {
22679 dd.ReadMapEnd()
22680 return v, changed
22681 }
22682 var mk float64
22683 var mv int
22684 hasLen := containerLen > 0
22685 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22686 if esep {
22687 dd.ReadMapElemKey()
22688 }
22689 mk = dd.DecodeFloat64()
22690 if esep {
22691 dd.ReadMapElemValue()
22692 }
22693 if dd.TryDecodeAsNil() {
22694 if v == nil {
22695 } else if d.h.DeleteOnNilMapValue {
22696 delete(v, mk)
22697 } else {
22698 v[mk] = 0
22699 }
22700 continue
22701 }
22702 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
22703 if v != nil {
22704 v[mk] = mv
22705 }
22706 }
22707 dd.ReadMapEnd()
22708 return v, changed
22709}
22710
22711func (d *Decoder) fastpathDecMapFloat64Int8R(f *codecFnInfo, rv reflect.Value) {
22712 if rv.Kind() == reflect.Ptr {
22713 vp := rv2i(rv).(*map[float64]int8)
22714 v, changed := fastpathTV.DecMapFloat64Int8V(*vp, true, d)
22715 if changed {
22716 *vp = v
22717 }
22718 } else {
22719 fastpathTV.DecMapFloat64Int8V(rv2i(rv).(map[float64]int8), false, d)
22720 }
22721}
22722func (f fastpathT) DecMapFloat64Int8X(vp *map[float64]int8, d *Decoder) {
22723 v, changed := f.DecMapFloat64Int8V(*vp, true, d)
22724 if changed {
22725 *vp = v
22726 }
22727}
22728func (_ fastpathT) DecMapFloat64Int8V(v map[float64]int8, canChange bool,
22729 d *Decoder) (_ map[float64]int8, changed bool) {
22730 dd, esep := d.d, d.hh.hasElemSeparators()
22731 containerLen := dd.ReadMapStart()
22732 if canChange && v == nil {
22733 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
22734 v = make(map[float64]int8, xlen)
22735 changed = true
22736 }
22737 if containerLen == 0 {
22738 dd.ReadMapEnd()
22739 return v, changed
22740 }
22741 var mk float64
22742 var mv int8
22743 hasLen := containerLen > 0
22744 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22745 if esep {
22746 dd.ReadMapElemKey()
22747 }
22748 mk = dd.DecodeFloat64()
22749 if esep {
22750 dd.ReadMapElemValue()
22751 }
22752 if dd.TryDecodeAsNil() {
22753 if v == nil {
22754 } else if d.h.DeleteOnNilMapValue {
22755 delete(v, mk)
22756 } else {
22757 v[mk] = 0
22758 }
22759 continue
22760 }
22761 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
22762 if v != nil {
22763 v[mk] = mv
22764 }
22765 }
22766 dd.ReadMapEnd()
22767 return v, changed
22768}
22769
22770func (d *Decoder) fastpathDecMapFloat64Int16R(f *codecFnInfo, rv reflect.Value) {
22771 if rv.Kind() == reflect.Ptr {
22772 vp := rv2i(rv).(*map[float64]int16)
22773 v, changed := fastpathTV.DecMapFloat64Int16V(*vp, true, d)
22774 if changed {
22775 *vp = v
22776 }
22777 } else {
22778 fastpathTV.DecMapFloat64Int16V(rv2i(rv).(map[float64]int16), false, d)
22779 }
22780}
22781func (f fastpathT) DecMapFloat64Int16X(vp *map[float64]int16, d *Decoder) {
22782 v, changed := f.DecMapFloat64Int16V(*vp, true, d)
22783 if changed {
22784 *vp = v
22785 }
22786}
22787func (_ fastpathT) DecMapFloat64Int16V(v map[float64]int16, canChange bool,
22788 d *Decoder) (_ map[float64]int16, changed bool) {
22789 dd, esep := d.d, d.hh.hasElemSeparators()
22790 containerLen := dd.ReadMapStart()
22791 if canChange && v == nil {
22792 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
22793 v = make(map[float64]int16, xlen)
22794 changed = true
22795 }
22796 if containerLen == 0 {
22797 dd.ReadMapEnd()
22798 return v, changed
22799 }
22800 var mk float64
22801 var mv int16
22802 hasLen := containerLen > 0
22803 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22804 if esep {
22805 dd.ReadMapElemKey()
22806 }
22807 mk = dd.DecodeFloat64()
22808 if esep {
22809 dd.ReadMapElemValue()
22810 }
22811 if dd.TryDecodeAsNil() {
22812 if v == nil {
22813 } else if d.h.DeleteOnNilMapValue {
22814 delete(v, mk)
22815 } else {
22816 v[mk] = 0
22817 }
22818 continue
22819 }
22820 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
22821 if v != nil {
22822 v[mk] = mv
22823 }
22824 }
22825 dd.ReadMapEnd()
22826 return v, changed
22827}
22828
22829func (d *Decoder) fastpathDecMapFloat64Int32R(f *codecFnInfo, rv reflect.Value) {
22830 if rv.Kind() == reflect.Ptr {
22831 vp := rv2i(rv).(*map[float64]int32)
22832 v, changed := fastpathTV.DecMapFloat64Int32V(*vp, true, d)
22833 if changed {
22834 *vp = v
22835 }
22836 } else {
22837 fastpathTV.DecMapFloat64Int32V(rv2i(rv).(map[float64]int32), false, d)
22838 }
22839}
22840func (f fastpathT) DecMapFloat64Int32X(vp *map[float64]int32, d *Decoder) {
22841 v, changed := f.DecMapFloat64Int32V(*vp, true, d)
22842 if changed {
22843 *vp = v
22844 }
22845}
22846func (_ fastpathT) DecMapFloat64Int32V(v map[float64]int32, canChange bool,
22847 d *Decoder) (_ map[float64]int32, changed bool) {
22848 dd, esep := d.d, d.hh.hasElemSeparators()
22849 containerLen := dd.ReadMapStart()
22850 if canChange && v == nil {
22851 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
22852 v = make(map[float64]int32, xlen)
22853 changed = true
22854 }
22855 if containerLen == 0 {
22856 dd.ReadMapEnd()
22857 return v, changed
22858 }
22859 var mk float64
22860 var mv int32
22861 hasLen := containerLen > 0
22862 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22863 if esep {
22864 dd.ReadMapElemKey()
22865 }
22866 mk = dd.DecodeFloat64()
22867 if esep {
22868 dd.ReadMapElemValue()
22869 }
22870 if dd.TryDecodeAsNil() {
22871 if v == nil {
22872 } else if d.h.DeleteOnNilMapValue {
22873 delete(v, mk)
22874 } else {
22875 v[mk] = 0
22876 }
22877 continue
22878 }
22879 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
22880 if v != nil {
22881 v[mk] = mv
22882 }
22883 }
22884 dd.ReadMapEnd()
22885 return v, changed
22886}
22887
22888func (d *Decoder) fastpathDecMapFloat64Int64R(f *codecFnInfo, rv reflect.Value) {
22889 if rv.Kind() == reflect.Ptr {
22890 vp := rv2i(rv).(*map[float64]int64)
22891 v, changed := fastpathTV.DecMapFloat64Int64V(*vp, true, d)
22892 if changed {
22893 *vp = v
22894 }
22895 } else {
22896 fastpathTV.DecMapFloat64Int64V(rv2i(rv).(map[float64]int64), false, d)
22897 }
22898}
22899func (f fastpathT) DecMapFloat64Int64X(vp *map[float64]int64, d *Decoder) {
22900 v, changed := f.DecMapFloat64Int64V(*vp, true, d)
22901 if changed {
22902 *vp = v
22903 }
22904}
22905func (_ fastpathT) DecMapFloat64Int64V(v map[float64]int64, canChange bool,
22906 d *Decoder) (_ map[float64]int64, changed bool) {
22907 dd, esep := d.d, d.hh.hasElemSeparators()
22908 containerLen := dd.ReadMapStart()
22909 if canChange && v == nil {
22910 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
22911 v = make(map[float64]int64, xlen)
22912 changed = true
22913 }
22914 if containerLen == 0 {
22915 dd.ReadMapEnd()
22916 return v, changed
22917 }
22918 var mk float64
22919 var mv int64
22920 hasLen := containerLen > 0
22921 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22922 if esep {
22923 dd.ReadMapElemKey()
22924 }
22925 mk = dd.DecodeFloat64()
22926 if esep {
22927 dd.ReadMapElemValue()
22928 }
22929 if dd.TryDecodeAsNil() {
22930 if v == nil {
22931 } else if d.h.DeleteOnNilMapValue {
22932 delete(v, mk)
22933 } else {
22934 v[mk] = 0
22935 }
22936 continue
22937 }
22938 mv = dd.DecodeInt64()
22939 if v != nil {
22940 v[mk] = mv
22941 }
22942 }
22943 dd.ReadMapEnd()
22944 return v, changed
22945}
22946
22947func (d *Decoder) fastpathDecMapFloat64Float32R(f *codecFnInfo, rv reflect.Value) {
22948 if rv.Kind() == reflect.Ptr {
22949 vp := rv2i(rv).(*map[float64]float32)
22950 v, changed := fastpathTV.DecMapFloat64Float32V(*vp, true, d)
22951 if changed {
22952 *vp = v
22953 }
22954 } else {
22955 fastpathTV.DecMapFloat64Float32V(rv2i(rv).(map[float64]float32), false, d)
22956 }
22957}
22958func (f fastpathT) DecMapFloat64Float32X(vp *map[float64]float32, d *Decoder) {
22959 v, changed := f.DecMapFloat64Float32V(*vp, true, d)
22960 if changed {
22961 *vp = v
22962 }
22963}
22964func (_ fastpathT) DecMapFloat64Float32V(v map[float64]float32, canChange bool,
22965 d *Decoder) (_ map[float64]float32, changed bool) {
22966 dd, esep := d.d, d.hh.hasElemSeparators()
22967 containerLen := dd.ReadMapStart()
22968 if canChange && v == nil {
22969 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
22970 v = make(map[float64]float32, xlen)
22971 changed = true
22972 }
22973 if containerLen == 0 {
22974 dd.ReadMapEnd()
22975 return v, changed
22976 }
22977 var mk float64
22978 var mv float32
22979 hasLen := containerLen > 0
22980 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
22981 if esep {
22982 dd.ReadMapElemKey()
22983 }
22984 mk = dd.DecodeFloat64()
22985 if esep {
22986 dd.ReadMapElemValue()
22987 }
22988 if dd.TryDecodeAsNil() {
22989 if v == nil {
22990 } else if d.h.DeleteOnNilMapValue {
22991 delete(v, mk)
22992 } else {
22993 v[mk] = 0
22994 }
22995 continue
22996 }
22997 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
22998 if v != nil {
22999 v[mk] = mv
23000 }
23001 }
23002 dd.ReadMapEnd()
23003 return v, changed
23004}
23005
23006func (d *Decoder) fastpathDecMapFloat64Float64R(f *codecFnInfo, rv reflect.Value) {
23007 if rv.Kind() == reflect.Ptr {
23008 vp := rv2i(rv).(*map[float64]float64)
23009 v, changed := fastpathTV.DecMapFloat64Float64V(*vp, true, d)
23010 if changed {
23011 *vp = v
23012 }
23013 } else {
23014 fastpathTV.DecMapFloat64Float64V(rv2i(rv).(map[float64]float64), false, d)
23015 }
23016}
23017func (f fastpathT) DecMapFloat64Float64X(vp *map[float64]float64, d *Decoder) {
23018 v, changed := f.DecMapFloat64Float64V(*vp, true, d)
23019 if changed {
23020 *vp = v
23021 }
23022}
23023func (_ fastpathT) DecMapFloat64Float64V(v map[float64]float64, canChange bool,
23024 d *Decoder) (_ map[float64]float64, changed bool) {
23025 dd, esep := d.d, d.hh.hasElemSeparators()
23026 containerLen := dd.ReadMapStart()
23027 if canChange && v == nil {
23028 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
23029 v = make(map[float64]float64, xlen)
23030 changed = true
23031 }
23032 if containerLen == 0 {
23033 dd.ReadMapEnd()
23034 return v, changed
23035 }
23036 var mk float64
23037 var mv float64
23038 hasLen := containerLen > 0
23039 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23040 if esep {
23041 dd.ReadMapElemKey()
23042 }
23043 mk = dd.DecodeFloat64()
23044 if esep {
23045 dd.ReadMapElemValue()
23046 }
23047 if dd.TryDecodeAsNil() {
23048 if v == nil {
23049 } else if d.h.DeleteOnNilMapValue {
23050 delete(v, mk)
23051 } else {
23052 v[mk] = 0
23053 }
23054 continue
23055 }
23056 mv = dd.DecodeFloat64()
23057 if v != nil {
23058 v[mk] = mv
23059 }
23060 }
23061 dd.ReadMapEnd()
23062 return v, changed
23063}
23064
23065func (d *Decoder) fastpathDecMapFloat64BoolR(f *codecFnInfo, rv reflect.Value) {
23066 if rv.Kind() == reflect.Ptr {
23067 vp := rv2i(rv).(*map[float64]bool)
23068 v, changed := fastpathTV.DecMapFloat64BoolV(*vp, true, d)
23069 if changed {
23070 *vp = v
23071 }
23072 } else {
23073 fastpathTV.DecMapFloat64BoolV(rv2i(rv).(map[float64]bool), false, d)
23074 }
23075}
23076func (f fastpathT) DecMapFloat64BoolX(vp *map[float64]bool, d *Decoder) {
23077 v, changed := f.DecMapFloat64BoolV(*vp, true, d)
23078 if changed {
23079 *vp = v
23080 }
23081}
23082func (_ fastpathT) DecMapFloat64BoolV(v map[float64]bool, canChange bool,
23083 d *Decoder) (_ map[float64]bool, changed bool) {
23084 dd, esep := d.d, d.hh.hasElemSeparators()
23085 containerLen := dd.ReadMapStart()
23086 if canChange && v == nil {
23087 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
23088 v = make(map[float64]bool, xlen)
23089 changed = true
23090 }
23091 if containerLen == 0 {
23092 dd.ReadMapEnd()
23093 return v, changed
23094 }
23095 var mk float64
23096 var mv bool
23097 hasLen := containerLen > 0
23098 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23099 if esep {
23100 dd.ReadMapElemKey()
23101 }
23102 mk = dd.DecodeFloat64()
23103 if esep {
23104 dd.ReadMapElemValue()
23105 }
23106 if dd.TryDecodeAsNil() {
23107 if v == nil {
23108 } else if d.h.DeleteOnNilMapValue {
23109 delete(v, mk)
23110 } else {
23111 v[mk] = false
23112 }
23113 continue
23114 }
23115 mv = dd.DecodeBool()
23116 if v != nil {
23117 v[mk] = mv
23118 }
23119 }
23120 dd.ReadMapEnd()
23121 return v, changed
23122}
23123
23124func (d *Decoder) fastpathDecMapUintIntfR(f *codecFnInfo, rv reflect.Value) {
23125 if rv.Kind() == reflect.Ptr {
23126 vp := rv2i(rv).(*map[uint]interface{})
23127 v, changed := fastpathTV.DecMapUintIntfV(*vp, true, d)
23128 if changed {
23129 *vp = v
23130 }
23131 } else {
23132 fastpathTV.DecMapUintIntfV(rv2i(rv).(map[uint]interface{}), false, d)
23133 }
23134}
23135func (f fastpathT) DecMapUintIntfX(vp *map[uint]interface{}, d *Decoder) {
23136 v, changed := f.DecMapUintIntfV(*vp, true, d)
23137 if changed {
23138 *vp = v
23139 }
23140}
23141func (_ fastpathT) DecMapUintIntfV(v map[uint]interface{}, canChange bool,
23142 d *Decoder) (_ map[uint]interface{}, changed bool) {
23143 dd, esep := d.d, d.hh.hasElemSeparators()
23144 containerLen := dd.ReadMapStart()
23145 if canChange && v == nil {
23146 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
23147 v = make(map[uint]interface{}, xlen)
23148 changed = true
23149 }
23150 if containerLen == 0 {
23151 dd.ReadMapEnd()
23152 return v, changed
23153 }
23154 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
23155 var mk uint
23156 var mv interface{}
23157 hasLen := containerLen > 0
23158 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23159 if esep {
23160 dd.ReadMapElemKey()
23161 }
23162 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23163 if esep {
23164 dd.ReadMapElemValue()
23165 }
23166 if dd.TryDecodeAsNil() {
23167 if v == nil {
23168 } else if d.h.DeleteOnNilMapValue {
23169 delete(v, mk)
23170 } else {
23171 v[mk] = nil
23172 }
23173 continue
23174 }
23175 if mapGet {
23176 mv = v[mk]
23177 } else {
23178 mv = nil
23179 }
23180 d.decode(&mv)
23181 if v != nil {
23182 v[mk] = mv
23183 }
23184 }
23185 dd.ReadMapEnd()
23186 return v, changed
23187}
23188
23189func (d *Decoder) fastpathDecMapUintStringR(f *codecFnInfo, rv reflect.Value) {
23190 if rv.Kind() == reflect.Ptr {
23191 vp := rv2i(rv).(*map[uint]string)
23192 v, changed := fastpathTV.DecMapUintStringV(*vp, true, d)
23193 if changed {
23194 *vp = v
23195 }
23196 } else {
23197 fastpathTV.DecMapUintStringV(rv2i(rv).(map[uint]string), false, d)
23198 }
23199}
23200func (f fastpathT) DecMapUintStringX(vp *map[uint]string, d *Decoder) {
23201 v, changed := f.DecMapUintStringV(*vp, true, d)
23202 if changed {
23203 *vp = v
23204 }
23205}
23206func (_ fastpathT) DecMapUintStringV(v map[uint]string, canChange bool,
23207 d *Decoder) (_ map[uint]string, changed bool) {
23208 dd, esep := d.d, d.hh.hasElemSeparators()
23209 containerLen := dd.ReadMapStart()
23210 if canChange && v == nil {
23211 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
23212 v = make(map[uint]string, xlen)
23213 changed = true
23214 }
23215 if containerLen == 0 {
23216 dd.ReadMapEnd()
23217 return v, changed
23218 }
23219 var mk uint
23220 var mv string
23221 hasLen := containerLen > 0
23222 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23223 if esep {
23224 dd.ReadMapElemKey()
23225 }
23226 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23227 if esep {
23228 dd.ReadMapElemValue()
23229 }
23230 if dd.TryDecodeAsNil() {
23231 if v == nil {
23232 } else if d.h.DeleteOnNilMapValue {
23233 delete(v, mk)
23234 } else {
23235 v[mk] = ""
23236 }
23237 continue
23238 }
23239 mv = dd.DecodeString()
23240 if v != nil {
23241 v[mk] = mv
23242 }
23243 }
23244 dd.ReadMapEnd()
23245 return v, changed
23246}
23247
23248func (d *Decoder) fastpathDecMapUintUintR(f *codecFnInfo, rv reflect.Value) {
23249 if rv.Kind() == reflect.Ptr {
23250 vp := rv2i(rv).(*map[uint]uint)
23251 v, changed := fastpathTV.DecMapUintUintV(*vp, true, d)
23252 if changed {
23253 *vp = v
23254 }
23255 } else {
23256 fastpathTV.DecMapUintUintV(rv2i(rv).(map[uint]uint), false, d)
23257 }
23258}
23259func (f fastpathT) DecMapUintUintX(vp *map[uint]uint, d *Decoder) {
23260 v, changed := f.DecMapUintUintV(*vp, true, d)
23261 if changed {
23262 *vp = v
23263 }
23264}
23265func (_ fastpathT) DecMapUintUintV(v map[uint]uint, canChange bool,
23266 d *Decoder) (_ map[uint]uint, changed bool) {
23267 dd, esep := d.d, d.hh.hasElemSeparators()
23268 containerLen := dd.ReadMapStart()
23269 if canChange && v == nil {
23270 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
23271 v = make(map[uint]uint, xlen)
23272 changed = true
23273 }
23274 if containerLen == 0 {
23275 dd.ReadMapEnd()
23276 return v, changed
23277 }
23278 var mk uint
23279 var mv uint
23280 hasLen := containerLen > 0
23281 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23282 if esep {
23283 dd.ReadMapElemKey()
23284 }
23285 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23286 if esep {
23287 dd.ReadMapElemValue()
23288 }
23289 if dd.TryDecodeAsNil() {
23290 if v == nil {
23291 } else if d.h.DeleteOnNilMapValue {
23292 delete(v, mk)
23293 } else {
23294 v[mk] = 0
23295 }
23296 continue
23297 }
23298 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23299 if v != nil {
23300 v[mk] = mv
23301 }
23302 }
23303 dd.ReadMapEnd()
23304 return v, changed
23305}
23306
23307func (d *Decoder) fastpathDecMapUintUint8R(f *codecFnInfo, rv reflect.Value) {
23308 if rv.Kind() == reflect.Ptr {
23309 vp := rv2i(rv).(*map[uint]uint8)
23310 v, changed := fastpathTV.DecMapUintUint8V(*vp, true, d)
23311 if changed {
23312 *vp = v
23313 }
23314 } else {
23315 fastpathTV.DecMapUintUint8V(rv2i(rv).(map[uint]uint8), false, d)
23316 }
23317}
23318func (f fastpathT) DecMapUintUint8X(vp *map[uint]uint8, d *Decoder) {
23319 v, changed := f.DecMapUintUint8V(*vp, true, d)
23320 if changed {
23321 *vp = v
23322 }
23323}
23324func (_ fastpathT) DecMapUintUint8V(v map[uint]uint8, canChange bool,
23325 d *Decoder) (_ map[uint]uint8, changed bool) {
23326 dd, esep := d.d, d.hh.hasElemSeparators()
23327 containerLen := dd.ReadMapStart()
23328 if canChange && v == nil {
23329 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
23330 v = make(map[uint]uint8, xlen)
23331 changed = true
23332 }
23333 if containerLen == 0 {
23334 dd.ReadMapEnd()
23335 return v, changed
23336 }
23337 var mk uint
23338 var mv uint8
23339 hasLen := containerLen > 0
23340 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23341 if esep {
23342 dd.ReadMapElemKey()
23343 }
23344 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23345 if esep {
23346 dd.ReadMapElemValue()
23347 }
23348 if dd.TryDecodeAsNil() {
23349 if v == nil {
23350 } else if d.h.DeleteOnNilMapValue {
23351 delete(v, mk)
23352 } else {
23353 v[mk] = 0
23354 }
23355 continue
23356 }
23357 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
23358 if v != nil {
23359 v[mk] = mv
23360 }
23361 }
23362 dd.ReadMapEnd()
23363 return v, changed
23364}
23365
23366func (d *Decoder) fastpathDecMapUintUint16R(f *codecFnInfo, rv reflect.Value) {
23367 if rv.Kind() == reflect.Ptr {
23368 vp := rv2i(rv).(*map[uint]uint16)
23369 v, changed := fastpathTV.DecMapUintUint16V(*vp, true, d)
23370 if changed {
23371 *vp = v
23372 }
23373 } else {
23374 fastpathTV.DecMapUintUint16V(rv2i(rv).(map[uint]uint16), false, d)
23375 }
23376}
23377func (f fastpathT) DecMapUintUint16X(vp *map[uint]uint16, d *Decoder) {
23378 v, changed := f.DecMapUintUint16V(*vp, true, d)
23379 if changed {
23380 *vp = v
23381 }
23382}
23383func (_ fastpathT) DecMapUintUint16V(v map[uint]uint16, canChange bool,
23384 d *Decoder) (_ map[uint]uint16, changed bool) {
23385 dd, esep := d.d, d.hh.hasElemSeparators()
23386 containerLen := dd.ReadMapStart()
23387 if canChange && v == nil {
23388 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
23389 v = make(map[uint]uint16, xlen)
23390 changed = true
23391 }
23392 if containerLen == 0 {
23393 dd.ReadMapEnd()
23394 return v, changed
23395 }
23396 var mk uint
23397 var mv uint16
23398 hasLen := containerLen > 0
23399 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23400 if esep {
23401 dd.ReadMapElemKey()
23402 }
23403 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23404 if esep {
23405 dd.ReadMapElemValue()
23406 }
23407 if dd.TryDecodeAsNil() {
23408 if v == nil {
23409 } else if d.h.DeleteOnNilMapValue {
23410 delete(v, mk)
23411 } else {
23412 v[mk] = 0
23413 }
23414 continue
23415 }
23416 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
23417 if v != nil {
23418 v[mk] = mv
23419 }
23420 }
23421 dd.ReadMapEnd()
23422 return v, changed
23423}
23424
23425func (d *Decoder) fastpathDecMapUintUint32R(f *codecFnInfo, rv reflect.Value) {
23426 if rv.Kind() == reflect.Ptr {
23427 vp := rv2i(rv).(*map[uint]uint32)
23428 v, changed := fastpathTV.DecMapUintUint32V(*vp, true, d)
23429 if changed {
23430 *vp = v
23431 }
23432 } else {
23433 fastpathTV.DecMapUintUint32V(rv2i(rv).(map[uint]uint32), false, d)
23434 }
23435}
23436func (f fastpathT) DecMapUintUint32X(vp *map[uint]uint32, d *Decoder) {
23437 v, changed := f.DecMapUintUint32V(*vp, true, d)
23438 if changed {
23439 *vp = v
23440 }
23441}
23442func (_ fastpathT) DecMapUintUint32V(v map[uint]uint32, canChange bool,
23443 d *Decoder) (_ map[uint]uint32, changed bool) {
23444 dd, esep := d.d, d.hh.hasElemSeparators()
23445 containerLen := dd.ReadMapStart()
23446 if canChange && v == nil {
23447 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
23448 v = make(map[uint]uint32, xlen)
23449 changed = true
23450 }
23451 if containerLen == 0 {
23452 dd.ReadMapEnd()
23453 return v, changed
23454 }
23455 var mk uint
23456 var mv uint32
23457 hasLen := containerLen > 0
23458 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23459 if esep {
23460 dd.ReadMapElemKey()
23461 }
23462 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23463 if esep {
23464 dd.ReadMapElemValue()
23465 }
23466 if dd.TryDecodeAsNil() {
23467 if v == nil {
23468 } else if d.h.DeleteOnNilMapValue {
23469 delete(v, mk)
23470 } else {
23471 v[mk] = 0
23472 }
23473 continue
23474 }
23475 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
23476 if v != nil {
23477 v[mk] = mv
23478 }
23479 }
23480 dd.ReadMapEnd()
23481 return v, changed
23482}
23483
23484func (d *Decoder) fastpathDecMapUintUint64R(f *codecFnInfo, rv reflect.Value) {
23485 if rv.Kind() == reflect.Ptr {
23486 vp := rv2i(rv).(*map[uint]uint64)
23487 v, changed := fastpathTV.DecMapUintUint64V(*vp, true, d)
23488 if changed {
23489 *vp = v
23490 }
23491 } else {
23492 fastpathTV.DecMapUintUint64V(rv2i(rv).(map[uint]uint64), false, d)
23493 }
23494}
23495func (f fastpathT) DecMapUintUint64X(vp *map[uint]uint64, d *Decoder) {
23496 v, changed := f.DecMapUintUint64V(*vp, true, d)
23497 if changed {
23498 *vp = v
23499 }
23500}
23501func (_ fastpathT) DecMapUintUint64V(v map[uint]uint64, canChange bool,
23502 d *Decoder) (_ map[uint]uint64, changed bool) {
23503 dd, esep := d.d, d.hh.hasElemSeparators()
23504 containerLen := dd.ReadMapStart()
23505 if canChange && v == nil {
23506 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
23507 v = make(map[uint]uint64, xlen)
23508 changed = true
23509 }
23510 if containerLen == 0 {
23511 dd.ReadMapEnd()
23512 return v, changed
23513 }
23514 var mk uint
23515 var mv uint64
23516 hasLen := containerLen > 0
23517 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23518 if esep {
23519 dd.ReadMapElemKey()
23520 }
23521 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23522 if esep {
23523 dd.ReadMapElemValue()
23524 }
23525 if dd.TryDecodeAsNil() {
23526 if v == nil {
23527 } else if d.h.DeleteOnNilMapValue {
23528 delete(v, mk)
23529 } else {
23530 v[mk] = 0
23531 }
23532 continue
23533 }
23534 mv = dd.DecodeUint64()
23535 if v != nil {
23536 v[mk] = mv
23537 }
23538 }
23539 dd.ReadMapEnd()
23540 return v, changed
23541}
23542
23543func (d *Decoder) fastpathDecMapUintUintptrR(f *codecFnInfo, rv reflect.Value) {
23544 if rv.Kind() == reflect.Ptr {
23545 vp := rv2i(rv).(*map[uint]uintptr)
23546 v, changed := fastpathTV.DecMapUintUintptrV(*vp, true, d)
23547 if changed {
23548 *vp = v
23549 }
23550 } else {
23551 fastpathTV.DecMapUintUintptrV(rv2i(rv).(map[uint]uintptr), false, d)
23552 }
23553}
23554func (f fastpathT) DecMapUintUintptrX(vp *map[uint]uintptr, d *Decoder) {
23555 v, changed := f.DecMapUintUintptrV(*vp, true, d)
23556 if changed {
23557 *vp = v
23558 }
23559}
23560func (_ fastpathT) DecMapUintUintptrV(v map[uint]uintptr, canChange bool,
23561 d *Decoder) (_ map[uint]uintptr, changed bool) {
23562 dd, esep := d.d, d.hh.hasElemSeparators()
23563 containerLen := dd.ReadMapStart()
23564 if canChange && v == nil {
23565 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
23566 v = make(map[uint]uintptr, xlen)
23567 changed = true
23568 }
23569 if containerLen == 0 {
23570 dd.ReadMapEnd()
23571 return v, changed
23572 }
23573 var mk uint
23574 var mv uintptr
23575 hasLen := containerLen > 0
23576 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23577 if esep {
23578 dd.ReadMapElemKey()
23579 }
23580 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23581 if esep {
23582 dd.ReadMapElemValue()
23583 }
23584 if dd.TryDecodeAsNil() {
23585 if v == nil {
23586 } else if d.h.DeleteOnNilMapValue {
23587 delete(v, mk)
23588 } else {
23589 v[mk] = 0
23590 }
23591 continue
23592 }
23593 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23594 if v != nil {
23595 v[mk] = mv
23596 }
23597 }
23598 dd.ReadMapEnd()
23599 return v, changed
23600}
23601
23602func (d *Decoder) fastpathDecMapUintIntR(f *codecFnInfo, rv reflect.Value) {
23603 if rv.Kind() == reflect.Ptr {
23604 vp := rv2i(rv).(*map[uint]int)
23605 v, changed := fastpathTV.DecMapUintIntV(*vp, true, d)
23606 if changed {
23607 *vp = v
23608 }
23609 } else {
23610 fastpathTV.DecMapUintIntV(rv2i(rv).(map[uint]int), false, d)
23611 }
23612}
23613func (f fastpathT) DecMapUintIntX(vp *map[uint]int, d *Decoder) {
23614 v, changed := f.DecMapUintIntV(*vp, true, d)
23615 if changed {
23616 *vp = v
23617 }
23618}
23619func (_ fastpathT) DecMapUintIntV(v map[uint]int, canChange bool,
23620 d *Decoder) (_ map[uint]int, changed bool) {
23621 dd, esep := d.d, d.hh.hasElemSeparators()
23622 containerLen := dd.ReadMapStart()
23623 if canChange && v == nil {
23624 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
23625 v = make(map[uint]int, xlen)
23626 changed = true
23627 }
23628 if containerLen == 0 {
23629 dd.ReadMapEnd()
23630 return v, changed
23631 }
23632 var mk uint
23633 var mv int
23634 hasLen := containerLen > 0
23635 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23636 if esep {
23637 dd.ReadMapElemKey()
23638 }
23639 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23640 if esep {
23641 dd.ReadMapElemValue()
23642 }
23643 if dd.TryDecodeAsNil() {
23644 if v == nil {
23645 } else if d.h.DeleteOnNilMapValue {
23646 delete(v, mk)
23647 } else {
23648 v[mk] = 0
23649 }
23650 continue
23651 }
23652 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
23653 if v != nil {
23654 v[mk] = mv
23655 }
23656 }
23657 dd.ReadMapEnd()
23658 return v, changed
23659}
23660
23661func (d *Decoder) fastpathDecMapUintInt8R(f *codecFnInfo, rv reflect.Value) {
23662 if rv.Kind() == reflect.Ptr {
23663 vp := rv2i(rv).(*map[uint]int8)
23664 v, changed := fastpathTV.DecMapUintInt8V(*vp, true, d)
23665 if changed {
23666 *vp = v
23667 }
23668 } else {
23669 fastpathTV.DecMapUintInt8V(rv2i(rv).(map[uint]int8), false, d)
23670 }
23671}
23672func (f fastpathT) DecMapUintInt8X(vp *map[uint]int8, d *Decoder) {
23673 v, changed := f.DecMapUintInt8V(*vp, true, d)
23674 if changed {
23675 *vp = v
23676 }
23677}
23678func (_ fastpathT) DecMapUintInt8V(v map[uint]int8, canChange bool,
23679 d *Decoder) (_ map[uint]int8, changed bool) {
23680 dd, esep := d.d, d.hh.hasElemSeparators()
23681 containerLen := dd.ReadMapStart()
23682 if canChange && v == nil {
23683 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
23684 v = make(map[uint]int8, xlen)
23685 changed = true
23686 }
23687 if containerLen == 0 {
23688 dd.ReadMapEnd()
23689 return v, changed
23690 }
23691 var mk uint
23692 var mv int8
23693 hasLen := containerLen > 0
23694 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23695 if esep {
23696 dd.ReadMapElemKey()
23697 }
23698 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23699 if esep {
23700 dd.ReadMapElemValue()
23701 }
23702 if dd.TryDecodeAsNil() {
23703 if v == nil {
23704 } else if d.h.DeleteOnNilMapValue {
23705 delete(v, mk)
23706 } else {
23707 v[mk] = 0
23708 }
23709 continue
23710 }
23711 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
23712 if v != nil {
23713 v[mk] = mv
23714 }
23715 }
23716 dd.ReadMapEnd()
23717 return v, changed
23718}
23719
23720func (d *Decoder) fastpathDecMapUintInt16R(f *codecFnInfo, rv reflect.Value) {
23721 if rv.Kind() == reflect.Ptr {
23722 vp := rv2i(rv).(*map[uint]int16)
23723 v, changed := fastpathTV.DecMapUintInt16V(*vp, true, d)
23724 if changed {
23725 *vp = v
23726 }
23727 } else {
23728 fastpathTV.DecMapUintInt16V(rv2i(rv).(map[uint]int16), false, d)
23729 }
23730}
23731func (f fastpathT) DecMapUintInt16X(vp *map[uint]int16, d *Decoder) {
23732 v, changed := f.DecMapUintInt16V(*vp, true, d)
23733 if changed {
23734 *vp = v
23735 }
23736}
23737func (_ fastpathT) DecMapUintInt16V(v map[uint]int16, canChange bool,
23738 d *Decoder) (_ map[uint]int16, changed bool) {
23739 dd, esep := d.d, d.hh.hasElemSeparators()
23740 containerLen := dd.ReadMapStart()
23741 if canChange && v == nil {
23742 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
23743 v = make(map[uint]int16, xlen)
23744 changed = true
23745 }
23746 if containerLen == 0 {
23747 dd.ReadMapEnd()
23748 return v, changed
23749 }
23750 var mk uint
23751 var mv int16
23752 hasLen := containerLen > 0
23753 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23754 if esep {
23755 dd.ReadMapElemKey()
23756 }
23757 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23758 if esep {
23759 dd.ReadMapElemValue()
23760 }
23761 if dd.TryDecodeAsNil() {
23762 if v == nil {
23763 } else if d.h.DeleteOnNilMapValue {
23764 delete(v, mk)
23765 } else {
23766 v[mk] = 0
23767 }
23768 continue
23769 }
23770 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
23771 if v != nil {
23772 v[mk] = mv
23773 }
23774 }
23775 dd.ReadMapEnd()
23776 return v, changed
23777}
23778
23779func (d *Decoder) fastpathDecMapUintInt32R(f *codecFnInfo, rv reflect.Value) {
23780 if rv.Kind() == reflect.Ptr {
23781 vp := rv2i(rv).(*map[uint]int32)
23782 v, changed := fastpathTV.DecMapUintInt32V(*vp, true, d)
23783 if changed {
23784 *vp = v
23785 }
23786 } else {
23787 fastpathTV.DecMapUintInt32V(rv2i(rv).(map[uint]int32), false, d)
23788 }
23789}
23790func (f fastpathT) DecMapUintInt32X(vp *map[uint]int32, d *Decoder) {
23791 v, changed := f.DecMapUintInt32V(*vp, true, d)
23792 if changed {
23793 *vp = v
23794 }
23795}
23796func (_ fastpathT) DecMapUintInt32V(v map[uint]int32, canChange bool,
23797 d *Decoder) (_ map[uint]int32, changed bool) {
23798 dd, esep := d.d, d.hh.hasElemSeparators()
23799 containerLen := dd.ReadMapStart()
23800 if canChange && v == nil {
23801 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
23802 v = make(map[uint]int32, xlen)
23803 changed = true
23804 }
23805 if containerLen == 0 {
23806 dd.ReadMapEnd()
23807 return v, changed
23808 }
23809 var mk uint
23810 var mv int32
23811 hasLen := containerLen > 0
23812 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23813 if esep {
23814 dd.ReadMapElemKey()
23815 }
23816 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23817 if esep {
23818 dd.ReadMapElemValue()
23819 }
23820 if dd.TryDecodeAsNil() {
23821 if v == nil {
23822 } else if d.h.DeleteOnNilMapValue {
23823 delete(v, mk)
23824 } else {
23825 v[mk] = 0
23826 }
23827 continue
23828 }
23829 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
23830 if v != nil {
23831 v[mk] = mv
23832 }
23833 }
23834 dd.ReadMapEnd()
23835 return v, changed
23836}
23837
23838func (d *Decoder) fastpathDecMapUintInt64R(f *codecFnInfo, rv reflect.Value) {
23839 if rv.Kind() == reflect.Ptr {
23840 vp := rv2i(rv).(*map[uint]int64)
23841 v, changed := fastpathTV.DecMapUintInt64V(*vp, true, d)
23842 if changed {
23843 *vp = v
23844 }
23845 } else {
23846 fastpathTV.DecMapUintInt64V(rv2i(rv).(map[uint]int64), false, d)
23847 }
23848}
23849func (f fastpathT) DecMapUintInt64X(vp *map[uint]int64, d *Decoder) {
23850 v, changed := f.DecMapUintInt64V(*vp, true, d)
23851 if changed {
23852 *vp = v
23853 }
23854}
23855func (_ fastpathT) DecMapUintInt64V(v map[uint]int64, canChange bool,
23856 d *Decoder) (_ map[uint]int64, changed bool) {
23857 dd, esep := d.d, d.hh.hasElemSeparators()
23858 containerLen := dd.ReadMapStart()
23859 if canChange && v == nil {
23860 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
23861 v = make(map[uint]int64, xlen)
23862 changed = true
23863 }
23864 if containerLen == 0 {
23865 dd.ReadMapEnd()
23866 return v, changed
23867 }
23868 var mk uint
23869 var mv int64
23870 hasLen := containerLen > 0
23871 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23872 if esep {
23873 dd.ReadMapElemKey()
23874 }
23875 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23876 if esep {
23877 dd.ReadMapElemValue()
23878 }
23879 if dd.TryDecodeAsNil() {
23880 if v == nil {
23881 } else if d.h.DeleteOnNilMapValue {
23882 delete(v, mk)
23883 } else {
23884 v[mk] = 0
23885 }
23886 continue
23887 }
23888 mv = dd.DecodeInt64()
23889 if v != nil {
23890 v[mk] = mv
23891 }
23892 }
23893 dd.ReadMapEnd()
23894 return v, changed
23895}
23896
23897func (d *Decoder) fastpathDecMapUintFloat32R(f *codecFnInfo, rv reflect.Value) {
23898 if rv.Kind() == reflect.Ptr {
23899 vp := rv2i(rv).(*map[uint]float32)
23900 v, changed := fastpathTV.DecMapUintFloat32V(*vp, true, d)
23901 if changed {
23902 *vp = v
23903 }
23904 } else {
23905 fastpathTV.DecMapUintFloat32V(rv2i(rv).(map[uint]float32), false, d)
23906 }
23907}
23908func (f fastpathT) DecMapUintFloat32X(vp *map[uint]float32, d *Decoder) {
23909 v, changed := f.DecMapUintFloat32V(*vp, true, d)
23910 if changed {
23911 *vp = v
23912 }
23913}
23914func (_ fastpathT) DecMapUintFloat32V(v map[uint]float32, canChange bool,
23915 d *Decoder) (_ map[uint]float32, changed bool) {
23916 dd, esep := d.d, d.hh.hasElemSeparators()
23917 containerLen := dd.ReadMapStart()
23918 if canChange && v == nil {
23919 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
23920 v = make(map[uint]float32, xlen)
23921 changed = true
23922 }
23923 if containerLen == 0 {
23924 dd.ReadMapEnd()
23925 return v, changed
23926 }
23927 var mk uint
23928 var mv float32
23929 hasLen := containerLen > 0
23930 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23931 if esep {
23932 dd.ReadMapElemKey()
23933 }
23934 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23935 if esep {
23936 dd.ReadMapElemValue()
23937 }
23938 if dd.TryDecodeAsNil() {
23939 if v == nil {
23940 } else if d.h.DeleteOnNilMapValue {
23941 delete(v, mk)
23942 } else {
23943 v[mk] = 0
23944 }
23945 continue
23946 }
23947 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
23948 if v != nil {
23949 v[mk] = mv
23950 }
23951 }
23952 dd.ReadMapEnd()
23953 return v, changed
23954}
23955
23956func (d *Decoder) fastpathDecMapUintFloat64R(f *codecFnInfo, rv reflect.Value) {
23957 if rv.Kind() == reflect.Ptr {
23958 vp := rv2i(rv).(*map[uint]float64)
23959 v, changed := fastpathTV.DecMapUintFloat64V(*vp, true, d)
23960 if changed {
23961 *vp = v
23962 }
23963 } else {
23964 fastpathTV.DecMapUintFloat64V(rv2i(rv).(map[uint]float64), false, d)
23965 }
23966}
23967func (f fastpathT) DecMapUintFloat64X(vp *map[uint]float64, d *Decoder) {
23968 v, changed := f.DecMapUintFloat64V(*vp, true, d)
23969 if changed {
23970 *vp = v
23971 }
23972}
23973func (_ fastpathT) DecMapUintFloat64V(v map[uint]float64, canChange bool,
23974 d *Decoder) (_ map[uint]float64, changed bool) {
23975 dd, esep := d.d, d.hh.hasElemSeparators()
23976 containerLen := dd.ReadMapStart()
23977 if canChange && v == nil {
23978 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
23979 v = make(map[uint]float64, xlen)
23980 changed = true
23981 }
23982 if containerLen == 0 {
23983 dd.ReadMapEnd()
23984 return v, changed
23985 }
23986 var mk uint
23987 var mv float64
23988 hasLen := containerLen > 0
23989 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
23990 if esep {
23991 dd.ReadMapElemKey()
23992 }
23993 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
23994 if esep {
23995 dd.ReadMapElemValue()
23996 }
23997 if dd.TryDecodeAsNil() {
23998 if v == nil {
23999 } else if d.h.DeleteOnNilMapValue {
24000 delete(v, mk)
24001 } else {
24002 v[mk] = 0
24003 }
24004 continue
24005 }
24006 mv = dd.DecodeFloat64()
24007 if v != nil {
24008 v[mk] = mv
24009 }
24010 }
24011 dd.ReadMapEnd()
24012 return v, changed
24013}
24014
24015func (d *Decoder) fastpathDecMapUintBoolR(f *codecFnInfo, rv reflect.Value) {
24016 if rv.Kind() == reflect.Ptr {
24017 vp := rv2i(rv).(*map[uint]bool)
24018 v, changed := fastpathTV.DecMapUintBoolV(*vp, true, d)
24019 if changed {
24020 *vp = v
24021 }
24022 } else {
24023 fastpathTV.DecMapUintBoolV(rv2i(rv).(map[uint]bool), false, d)
24024 }
24025}
24026func (f fastpathT) DecMapUintBoolX(vp *map[uint]bool, d *Decoder) {
24027 v, changed := f.DecMapUintBoolV(*vp, true, d)
24028 if changed {
24029 *vp = v
24030 }
24031}
24032func (_ fastpathT) DecMapUintBoolV(v map[uint]bool, canChange bool,
24033 d *Decoder) (_ map[uint]bool, changed bool) {
24034 dd, esep := d.d, d.hh.hasElemSeparators()
24035 containerLen := dd.ReadMapStart()
24036 if canChange && v == nil {
24037 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
24038 v = make(map[uint]bool, xlen)
24039 changed = true
24040 }
24041 if containerLen == 0 {
24042 dd.ReadMapEnd()
24043 return v, changed
24044 }
24045 var mk uint
24046 var mv bool
24047 hasLen := containerLen > 0
24048 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24049 if esep {
24050 dd.ReadMapElemKey()
24051 }
24052 mk = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
24053 if esep {
24054 dd.ReadMapElemValue()
24055 }
24056 if dd.TryDecodeAsNil() {
24057 if v == nil {
24058 } else if d.h.DeleteOnNilMapValue {
24059 delete(v, mk)
24060 } else {
24061 v[mk] = false
24062 }
24063 continue
24064 }
24065 mv = dd.DecodeBool()
24066 if v != nil {
24067 v[mk] = mv
24068 }
24069 }
24070 dd.ReadMapEnd()
24071 return v, changed
24072}
24073
24074func (d *Decoder) fastpathDecMapUint8IntfR(f *codecFnInfo, rv reflect.Value) {
24075 if rv.Kind() == reflect.Ptr {
24076 vp := rv2i(rv).(*map[uint8]interface{})
24077 v, changed := fastpathTV.DecMapUint8IntfV(*vp, true, d)
24078 if changed {
24079 *vp = v
24080 }
24081 } else {
24082 fastpathTV.DecMapUint8IntfV(rv2i(rv).(map[uint8]interface{}), false, d)
24083 }
24084}
24085func (f fastpathT) DecMapUint8IntfX(vp *map[uint8]interface{}, d *Decoder) {
24086 v, changed := f.DecMapUint8IntfV(*vp, true, d)
24087 if changed {
24088 *vp = v
24089 }
24090}
24091func (_ fastpathT) DecMapUint8IntfV(v map[uint8]interface{}, canChange bool,
24092 d *Decoder) (_ map[uint8]interface{}, changed bool) {
24093 dd, esep := d.d, d.hh.hasElemSeparators()
24094 containerLen := dd.ReadMapStart()
24095 if canChange && v == nil {
24096 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
24097 v = make(map[uint8]interface{}, xlen)
24098 changed = true
24099 }
24100 if containerLen == 0 {
24101 dd.ReadMapEnd()
24102 return v, changed
24103 }
24104 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
24105 var mk uint8
24106 var mv interface{}
24107 hasLen := containerLen > 0
24108 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24109 if esep {
24110 dd.ReadMapElemKey()
24111 }
24112 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24113 if esep {
24114 dd.ReadMapElemValue()
24115 }
24116 if dd.TryDecodeAsNil() {
24117 if v == nil {
24118 } else if d.h.DeleteOnNilMapValue {
24119 delete(v, mk)
24120 } else {
24121 v[mk] = nil
24122 }
24123 continue
24124 }
24125 if mapGet {
24126 mv = v[mk]
24127 } else {
24128 mv = nil
24129 }
24130 d.decode(&mv)
24131 if v != nil {
24132 v[mk] = mv
24133 }
24134 }
24135 dd.ReadMapEnd()
24136 return v, changed
24137}
24138
24139func (d *Decoder) fastpathDecMapUint8StringR(f *codecFnInfo, rv reflect.Value) {
24140 if rv.Kind() == reflect.Ptr {
24141 vp := rv2i(rv).(*map[uint8]string)
24142 v, changed := fastpathTV.DecMapUint8StringV(*vp, true, d)
24143 if changed {
24144 *vp = v
24145 }
24146 } else {
24147 fastpathTV.DecMapUint8StringV(rv2i(rv).(map[uint8]string), false, d)
24148 }
24149}
24150func (f fastpathT) DecMapUint8StringX(vp *map[uint8]string, d *Decoder) {
24151 v, changed := f.DecMapUint8StringV(*vp, true, d)
24152 if changed {
24153 *vp = v
24154 }
24155}
24156func (_ fastpathT) DecMapUint8StringV(v map[uint8]string, canChange bool,
24157 d *Decoder) (_ map[uint8]string, changed bool) {
24158 dd, esep := d.d, d.hh.hasElemSeparators()
24159 containerLen := dd.ReadMapStart()
24160 if canChange && v == nil {
24161 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
24162 v = make(map[uint8]string, xlen)
24163 changed = true
24164 }
24165 if containerLen == 0 {
24166 dd.ReadMapEnd()
24167 return v, changed
24168 }
24169 var mk uint8
24170 var mv string
24171 hasLen := containerLen > 0
24172 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24173 if esep {
24174 dd.ReadMapElemKey()
24175 }
24176 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24177 if esep {
24178 dd.ReadMapElemValue()
24179 }
24180 if dd.TryDecodeAsNil() {
24181 if v == nil {
24182 } else if d.h.DeleteOnNilMapValue {
24183 delete(v, mk)
24184 } else {
24185 v[mk] = ""
24186 }
24187 continue
24188 }
24189 mv = dd.DecodeString()
24190 if v != nil {
24191 v[mk] = mv
24192 }
24193 }
24194 dd.ReadMapEnd()
24195 return v, changed
24196}
24197
24198func (d *Decoder) fastpathDecMapUint8UintR(f *codecFnInfo, rv reflect.Value) {
24199 if rv.Kind() == reflect.Ptr {
24200 vp := rv2i(rv).(*map[uint8]uint)
24201 v, changed := fastpathTV.DecMapUint8UintV(*vp, true, d)
24202 if changed {
24203 *vp = v
24204 }
24205 } else {
24206 fastpathTV.DecMapUint8UintV(rv2i(rv).(map[uint8]uint), false, d)
24207 }
24208}
24209func (f fastpathT) DecMapUint8UintX(vp *map[uint8]uint, d *Decoder) {
24210 v, changed := f.DecMapUint8UintV(*vp, true, d)
24211 if changed {
24212 *vp = v
24213 }
24214}
24215func (_ fastpathT) DecMapUint8UintV(v map[uint8]uint, canChange bool,
24216 d *Decoder) (_ map[uint8]uint, changed bool) {
24217 dd, esep := d.d, d.hh.hasElemSeparators()
24218 containerLen := dd.ReadMapStart()
24219 if canChange && v == nil {
24220 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
24221 v = make(map[uint8]uint, xlen)
24222 changed = true
24223 }
24224 if containerLen == 0 {
24225 dd.ReadMapEnd()
24226 return v, changed
24227 }
24228 var mk uint8
24229 var mv uint
24230 hasLen := containerLen > 0
24231 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24232 if esep {
24233 dd.ReadMapElemKey()
24234 }
24235 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24236 if esep {
24237 dd.ReadMapElemValue()
24238 }
24239 if dd.TryDecodeAsNil() {
24240 if v == nil {
24241 } else if d.h.DeleteOnNilMapValue {
24242 delete(v, mk)
24243 } else {
24244 v[mk] = 0
24245 }
24246 continue
24247 }
24248 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
24249 if v != nil {
24250 v[mk] = mv
24251 }
24252 }
24253 dd.ReadMapEnd()
24254 return v, changed
24255}
24256
24257func (d *Decoder) fastpathDecMapUint8Uint8R(f *codecFnInfo, rv reflect.Value) {
24258 if rv.Kind() == reflect.Ptr {
24259 vp := rv2i(rv).(*map[uint8]uint8)
24260 v, changed := fastpathTV.DecMapUint8Uint8V(*vp, true, d)
24261 if changed {
24262 *vp = v
24263 }
24264 } else {
24265 fastpathTV.DecMapUint8Uint8V(rv2i(rv).(map[uint8]uint8), false, d)
24266 }
24267}
24268func (f fastpathT) DecMapUint8Uint8X(vp *map[uint8]uint8, d *Decoder) {
24269 v, changed := f.DecMapUint8Uint8V(*vp, true, d)
24270 if changed {
24271 *vp = v
24272 }
24273}
24274func (_ fastpathT) DecMapUint8Uint8V(v map[uint8]uint8, canChange bool,
24275 d *Decoder) (_ map[uint8]uint8, changed bool) {
24276 dd, esep := d.d, d.hh.hasElemSeparators()
24277 containerLen := dd.ReadMapStart()
24278 if canChange && v == nil {
24279 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
24280 v = make(map[uint8]uint8, xlen)
24281 changed = true
24282 }
24283 if containerLen == 0 {
24284 dd.ReadMapEnd()
24285 return v, changed
24286 }
24287 var mk uint8
24288 var mv uint8
24289 hasLen := containerLen > 0
24290 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24291 if esep {
24292 dd.ReadMapElemKey()
24293 }
24294 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24295 if esep {
24296 dd.ReadMapElemValue()
24297 }
24298 if dd.TryDecodeAsNil() {
24299 if v == nil {
24300 } else if d.h.DeleteOnNilMapValue {
24301 delete(v, mk)
24302 } else {
24303 v[mk] = 0
24304 }
24305 continue
24306 }
24307 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24308 if v != nil {
24309 v[mk] = mv
24310 }
24311 }
24312 dd.ReadMapEnd()
24313 return v, changed
24314}
24315
24316func (d *Decoder) fastpathDecMapUint8Uint16R(f *codecFnInfo, rv reflect.Value) {
24317 if rv.Kind() == reflect.Ptr {
24318 vp := rv2i(rv).(*map[uint8]uint16)
24319 v, changed := fastpathTV.DecMapUint8Uint16V(*vp, true, d)
24320 if changed {
24321 *vp = v
24322 }
24323 } else {
24324 fastpathTV.DecMapUint8Uint16V(rv2i(rv).(map[uint8]uint16), false, d)
24325 }
24326}
24327func (f fastpathT) DecMapUint8Uint16X(vp *map[uint8]uint16, d *Decoder) {
24328 v, changed := f.DecMapUint8Uint16V(*vp, true, d)
24329 if changed {
24330 *vp = v
24331 }
24332}
24333func (_ fastpathT) DecMapUint8Uint16V(v map[uint8]uint16, canChange bool,
24334 d *Decoder) (_ map[uint8]uint16, changed bool) {
24335 dd, esep := d.d, d.hh.hasElemSeparators()
24336 containerLen := dd.ReadMapStart()
24337 if canChange && v == nil {
24338 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
24339 v = make(map[uint8]uint16, xlen)
24340 changed = true
24341 }
24342 if containerLen == 0 {
24343 dd.ReadMapEnd()
24344 return v, changed
24345 }
24346 var mk uint8
24347 var mv uint16
24348 hasLen := containerLen > 0
24349 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24350 if esep {
24351 dd.ReadMapElemKey()
24352 }
24353 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24354 if esep {
24355 dd.ReadMapElemValue()
24356 }
24357 if dd.TryDecodeAsNil() {
24358 if v == nil {
24359 } else if d.h.DeleteOnNilMapValue {
24360 delete(v, mk)
24361 } else {
24362 v[mk] = 0
24363 }
24364 continue
24365 }
24366 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
24367 if v != nil {
24368 v[mk] = mv
24369 }
24370 }
24371 dd.ReadMapEnd()
24372 return v, changed
24373}
24374
24375func (d *Decoder) fastpathDecMapUint8Uint32R(f *codecFnInfo, rv reflect.Value) {
24376 if rv.Kind() == reflect.Ptr {
24377 vp := rv2i(rv).(*map[uint8]uint32)
24378 v, changed := fastpathTV.DecMapUint8Uint32V(*vp, true, d)
24379 if changed {
24380 *vp = v
24381 }
24382 } else {
24383 fastpathTV.DecMapUint8Uint32V(rv2i(rv).(map[uint8]uint32), false, d)
24384 }
24385}
24386func (f fastpathT) DecMapUint8Uint32X(vp *map[uint8]uint32, d *Decoder) {
24387 v, changed := f.DecMapUint8Uint32V(*vp, true, d)
24388 if changed {
24389 *vp = v
24390 }
24391}
24392func (_ fastpathT) DecMapUint8Uint32V(v map[uint8]uint32, canChange bool,
24393 d *Decoder) (_ map[uint8]uint32, changed bool) {
24394 dd, esep := d.d, d.hh.hasElemSeparators()
24395 containerLen := dd.ReadMapStart()
24396 if canChange && v == nil {
24397 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
24398 v = make(map[uint8]uint32, xlen)
24399 changed = true
24400 }
24401 if containerLen == 0 {
24402 dd.ReadMapEnd()
24403 return v, changed
24404 }
24405 var mk uint8
24406 var mv uint32
24407 hasLen := containerLen > 0
24408 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24409 if esep {
24410 dd.ReadMapElemKey()
24411 }
24412 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24413 if esep {
24414 dd.ReadMapElemValue()
24415 }
24416 if dd.TryDecodeAsNil() {
24417 if v == nil {
24418 } else if d.h.DeleteOnNilMapValue {
24419 delete(v, mk)
24420 } else {
24421 v[mk] = 0
24422 }
24423 continue
24424 }
24425 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
24426 if v != nil {
24427 v[mk] = mv
24428 }
24429 }
24430 dd.ReadMapEnd()
24431 return v, changed
24432}
24433
24434func (d *Decoder) fastpathDecMapUint8Uint64R(f *codecFnInfo, rv reflect.Value) {
24435 if rv.Kind() == reflect.Ptr {
24436 vp := rv2i(rv).(*map[uint8]uint64)
24437 v, changed := fastpathTV.DecMapUint8Uint64V(*vp, true, d)
24438 if changed {
24439 *vp = v
24440 }
24441 } else {
24442 fastpathTV.DecMapUint8Uint64V(rv2i(rv).(map[uint8]uint64), false, d)
24443 }
24444}
24445func (f fastpathT) DecMapUint8Uint64X(vp *map[uint8]uint64, d *Decoder) {
24446 v, changed := f.DecMapUint8Uint64V(*vp, true, d)
24447 if changed {
24448 *vp = v
24449 }
24450}
24451func (_ fastpathT) DecMapUint8Uint64V(v map[uint8]uint64, canChange bool,
24452 d *Decoder) (_ map[uint8]uint64, changed bool) {
24453 dd, esep := d.d, d.hh.hasElemSeparators()
24454 containerLen := dd.ReadMapStart()
24455 if canChange && v == nil {
24456 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
24457 v = make(map[uint8]uint64, xlen)
24458 changed = true
24459 }
24460 if containerLen == 0 {
24461 dd.ReadMapEnd()
24462 return v, changed
24463 }
24464 var mk uint8
24465 var mv uint64
24466 hasLen := containerLen > 0
24467 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24468 if esep {
24469 dd.ReadMapElemKey()
24470 }
24471 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24472 if esep {
24473 dd.ReadMapElemValue()
24474 }
24475 if dd.TryDecodeAsNil() {
24476 if v == nil {
24477 } else if d.h.DeleteOnNilMapValue {
24478 delete(v, mk)
24479 } else {
24480 v[mk] = 0
24481 }
24482 continue
24483 }
24484 mv = dd.DecodeUint64()
24485 if v != nil {
24486 v[mk] = mv
24487 }
24488 }
24489 dd.ReadMapEnd()
24490 return v, changed
24491}
24492
24493func (d *Decoder) fastpathDecMapUint8UintptrR(f *codecFnInfo, rv reflect.Value) {
24494 if rv.Kind() == reflect.Ptr {
24495 vp := rv2i(rv).(*map[uint8]uintptr)
24496 v, changed := fastpathTV.DecMapUint8UintptrV(*vp, true, d)
24497 if changed {
24498 *vp = v
24499 }
24500 } else {
24501 fastpathTV.DecMapUint8UintptrV(rv2i(rv).(map[uint8]uintptr), false, d)
24502 }
24503}
24504func (f fastpathT) DecMapUint8UintptrX(vp *map[uint8]uintptr, d *Decoder) {
24505 v, changed := f.DecMapUint8UintptrV(*vp, true, d)
24506 if changed {
24507 *vp = v
24508 }
24509}
24510func (_ fastpathT) DecMapUint8UintptrV(v map[uint8]uintptr, canChange bool,
24511 d *Decoder) (_ map[uint8]uintptr, changed bool) {
24512 dd, esep := d.d, d.hh.hasElemSeparators()
24513 containerLen := dd.ReadMapStart()
24514 if canChange && v == nil {
24515 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
24516 v = make(map[uint8]uintptr, xlen)
24517 changed = true
24518 }
24519 if containerLen == 0 {
24520 dd.ReadMapEnd()
24521 return v, changed
24522 }
24523 var mk uint8
24524 var mv uintptr
24525 hasLen := containerLen > 0
24526 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24527 if esep {
24528 dd.ReadMapElemKey()
24529 }
24530 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24531 if esep {
24532 dd.ReadMapElemValue()
24533 }
24534 if dd.TryDecodeAsNil() {
24535 if v == nil {
24536 } else if d.h.DeleteOnNilMapValue {
24537 delete(v, mk)
24538 } else {
24539 v[mk] = 0
24540 }
24541 continue
24542 }
24543 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
24544 if v != nil {
24545 v[mk] = mv
24546 }
24547 }
24548 dd.ReadMapEnd()
24549 return v, changed
24550}
24551
24552func (d *Decoder) fastpathDecMapUint8IntR(f *codecFnInfo, rv reflect.Value) {
24553 if rv.Kind() == reflect.Ptr {
24554 vp := rv2i(rv).(*map[uint8]int)
24555 v, changed := fastpathTV.DecMapUint8IntV(*vp, true, d)
24556 if changed {
24557 *vp = v
24558 }
24559 } else {
24560 fastpathTV.DecMapUint8IntV(rv2i(rv).(map[uint8]int), false, d)
24561 }
24562}
24563func (f fastpathT) DecMapUint8IntX(vp *map[uint8]int, d *Decoder) {
24564 v, changed := f.DecMapUint8IntV(*vp, true, d)
24565 if changed {
24566 *vp = v
24567 }
24568}
24569func (_ fastpathT) DecMapUint8IntV(v map[uint8]int, canChange bool,
24570 d *Decoder) (_ map[uint8]int, changed bool) {
24571 dd, esep := d.d, d.hh.hasElemSeparators()
24572 containerLen := dd.ReadMapStart()
24573 if canChange && v == nil {
24574 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
24575 v = make(map[uint8]int, xlen)
24576 changed = true
24577 }
24578 if containerLen == 0 {
24579 dd.ReadMapEnd()
24580 return v, changed
24581 }
24582 var mk uint8
24583 var mv int
24584 hasLen := containerLen > 0
24585 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24586 if esep {
24587 dd.ReadMapElemKey()
24588 }
24589 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24590 if esep {
24591 dd.ReadMapElemValue()
24592 }
24593 if dd.TryDecodeAsNil() {
24594 if v == nil {
24595 } else if d.h.DeleteOnNilMapValue {
24596 delete(v, mk)
24597 } else {
24598 v[mk] = 0
24599 }
24600 continue
24601 }
24602 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
24603 if v != nil {
24604 v[mk] = mv
24605 }
24606 }
24607 dd.ReadMapEnd()
24608 return v, changed
24609}
24610
24611func (d *Decoder) fastpathDecMapUint8Int8R(f *codecFnInfo, rv reflect.Value) {
24612 if rv.Kind() == reflect.Ptr {
24613 vp := rv2i(rv).(*map[uint8]int8)
24614 v, changed := fastpathTV.DecMapUint8Int8V(*vp, true, d)
24615 if changed {
24616 *vp = v
24617 }
24618 } else {
24619 fastpathTV.DecMapUint8Int8V(rv2i(rv).(map[uint8]int8), false, d)
24620 }
24621}
24622func (f fastpathT) DecMapUint8Int8X(vp *map[uint8]int8, d *Decoder) {
24623 v, changed := f.DecMapUint8Int8V(*vp, true, d)
24624 if changed {
24625 *vp = v
24626 }
24627}
24628func (_ fastpathT) DecMapUint8Int8V(v map[uint8]int8, canChange bool,
24629 d *Decoder) (_ map[uint8]int8, changed bool) {
24630 dd, esep := d.d, d.hh.hasElemSeparators()
24631 containerLen := dd.ReadMapStart()
24632 if canChange && v == nil {
24633 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
24634 v = make(map[uint8]int8, xlen)
24635 changed = true
24636 }
24637 if containerLen == 0 {
24638 dd.ReadMapEnd()
24639 return v, changed
24640 }
24641 var mk uint8
24642 var mv int8
24643 hasLen := containerLen > 0
24644 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24645 if esep {
24646 dd.ReadMapElemKey()
24647 }
24648 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24649 if esep {
24650 dd.ReadMapElemValue()
24651 }
24652 if dd.TryDecodeAsNil() {
24653 if v == nil {
24654 } else if d.h.DeleteOnNilMapValue {
24655 delete(v, mk)
24656 } else {
24657 v[mk] = 0
24658 }
24659 continue
24660 }
24661 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
24662 if v != nil {
24663 v[mk] = mv
24664 }
24665 }
24666 dd.ReadMapEnd()
24667 return v, changed
24668}
24669
24670func (d *Decoder) fastpathDecMapUint8Int16R(f *codecFnInfo, rv reflect.Value) {
24671 if rv.Kind() == reflect.Ptr {
24672 vp := rv2i(rv).(*map[uint8]int16)
24673 v, changed := fastpathTV.DecMapUint8Int16V(*vp, true, d)
24674 if changed {
24675 *vp = v
24676 }
24677 } else {
24678 fastpathTV.DecMapUint8Int16V(rv2i(rv).(map[uint8]int16), false, d)
24679 }
24680}
24681func (f fastpathT) DecMapUint8Int16X(vp *map[uint8]int16, d *Decoder) {
24682 v, changed := f.DecMapUint8Int16V(*vp, true, d)
24683 if changed {
24684 *vp = v
24685 }
24686}
24687func (_ fastpathT) DecMapUint8Int16V(v map[uint8]int16, canChange bool,
24688 d *Decoder) (_ map[uint8]int16, changed bool) {
24689 dd, esep := d.d, d.hh.hasElemSeparators()
24690 containerLen := dd.ReadMapStart()
24691 if canChange && v == nil {
24692 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
24693 v = make(map[uint8]int16, xlen)
24694 changed = true
24695 }
24696 if containerLen == 0 {
24697 dd.ReadMapEnd()
24698 return v, changed
24699 }
24700 var mk uint8
24701 var mv int16
24702 hasLen := containerLen > 0
24703 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24704 if esep {
24705 dd.ReadMapElemKey()
24706 }
24707 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24708 if esep {
24709 dd.ReadMapElemValue()
24710 }
24711 if dd.TryDecodeAsNil() {
24712 if v == nil {
24713 } else if d.h.DeleteOnNilMapValue {
24714 delete(v, mk)
24715 } else {
24716 v[mk] = 0
24717 }
24718 continue
24719 }
24720 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
24721 if v != nil {
24722 v[mk] = mv
24723 }
24724 }
24725 dd.ReadMapEnd()
24726 return v, changed
24727}
24728
24729func (d *Decoder) fastpathDecMapUint8Int32R(f *codecFnInfo, rv reflect.Value) {
24730 if rv.Kind() == reflect.Ptr {
24731 vp := rv2i(rv).(*map[uint8]int32)
24732 v, changed := fastpathTV.DecMapUint8Int32V(*vp, true, d)
24733 if changed {
24734 *vp = v
24735 }
24736 } else {
24737 fastpathTV.DecMapUint8Int32V(rv2i(rv).(map[uint8]int32), false, d)
24738 }
24739}
24740func (f fastpathT) DecMapUint8Int32X(vp *map[uint8]int32, d *Decoder) {
24741 v, changed := f.DecMapUint8Int32V(*vp, true, d)
24742 if changed {
24743 *vp = v
24744 }
24745}
24746func (_ fastpathT) DecMapUint8Int32V(v map[uint8]int32, canChange bool,
24747 d *Decoder) (_ map[uint8]int32, changed bool) {
24748 dd, esep := d.d, d.hh.hasElemSeparators()
24749 containerLen := dd.ReadMapStart()
24750 if canChange && v == nil {
24751 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
24752 v = make(map[uint8]int32, xlen)
24753 changed = true
24754 }
24755 if containerLen == 0 {
24756 dd.ReadMapEnd()
24757 return v, changed
24758 }
24759 var mk uint8
24760 var mv int32
24761 hasLen := containerLen > 0
24762 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24763 if esep {
24764 dd.ReadMapElemKey()
24765 }
24766 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24767 if esep {
24768 dd.ReadMapElemValue()
24769 }
24770 if dd.TryDecodeAsNil() {
24771 if v == nil {
24772 } else if d.h.DeleteOnNilMapValue {
24773 delete(v, mk)
24774 } else {
24775 v[mk] = 0
24776 }
24777 continue
24778 }
24779 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
24780 if v != nil {
24781 v[mk] = mv
24782 }
24783 }
24784 dd.ReadMapEnd()
24785 return v, changed
24786}
24787
24788func (d *Decoder) fastpathDecMapUint8Int64R(f *codecFnInfo, rv reflect.Value) {
24789 if rv.Kind() == reflect.Ptr {
24790 vp := rv2i(rv).(*map[uint8]int64)
24791 v, changed := fastpathTV.DecMapUint8Int64V(*vp, true, d)
24792 if changed {
24793 *vp = v
24794 }
24795 } else {
24796 fastpathTV.DecMapUint8Int64V(rv2i(rv).(map[uint8]int64), false, d)
24797 }
24798}
24799func (f fastpathT) DecMapUint8Int64X(vp *map[uint8]int64, d *Decoder) {
24800 v, changed := f.DecMapUint8Int64V(*vp, true, d)
24801 if changed {
24802 *vp = v
24803 }
24804}
24805func (_ fastpathT) DecMapUint8Int64V(v map[uint8]int64, canChange bool,
24806 d *Decoder) (_ map[uint8]int64, changed bool) {
24807 dd, esep := d.d, d.hh.hasElemSeparators()
24808 containerLen := dd.ReadMapStart()
24809 if canChange && v == nil {
24810 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
24811 v = make(map[uint8]int64, xlen)
24812 changed = true
24813 }
24814 if containerLen == 0 {
24815 dd.ReadMapEnd()
24816 return v, changed
24817 }
24818 var mk uint8
24819 var mv int64
24820 hasLen := containerLen > 0
24821 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24822 if esep {
24823 dd.ReadMapElemKey()
24824 }
24825 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24826 if esep {
24827 dd.ReadMapElemValue()
24828 }
24829 if dd.TryDecodeAsNil() {
24830 if v == nil {
24831 } else if d.h.DeleteOnNilMapValue {
24832 delete(v, mk)
24833 } else {
24834 v[mk] = 0
24835 }
24836 continue
24837 }
24838 mv = dd.DecodeInt64()
24839 if v != nil {
24840 v[mk] = mv
24841 }
24842 }
24843 dd.ReadMapEnd()
24844 return v, changed
24845}
24846
24847func (d *Decoder) fastpathDecMapUint8Float32R(f *codecFnInfo, rv reflect.Value) {
24848 if rv.Kind() == reflect.Ptr {
24849 vp := rv2i(rv).(*map[uint8]float32)
24850 v, changed := fastpathTV.DecMapUint8Float32V(*vp, true, d)
24851 if changed {
24852 *vp = v
24853 }
24854 } else {
24855 fastpathTV.DecMapUint8Float32V(rv2i(rv).(map[uint8]float32), false, d)
24856 }
24857}
24858func (f fastpathT) DecMapUint8Float32X(vp *map[uint8]float32, d *Decoder) {
24859 v, changed := f.DecMapUint8Float32V(*vp, true, d)
24860 if changed {
24861 *vp = v
24862 }
24863}
24864func (_ fastpathT) DecMapUint8Float32V(v map[uint8]float32, canChange bool,
24865 d *Decoder) (_ map[uint8]float32, changed bool) {
24866 dd, esep := d.d, d.hh.hasElemSeparators()
24867 containerLen := dd.ReadMapStart()
24868 if canChange && v == nil {
24869 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
24870 v = make(map[uint8]float32, xlen)
24871 changed = true
24872 }
24873 if containerLen == 0 {
24874 dd.ReadMapEnd()
24875 return v, changed
24876 }
24877 var mk uint8
24878 var mv float32
24879 hasLen := containerLen > 0
24880 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24881 if esep {
24882 dd.ReadMapElemKey()
24883 }
24884 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24885 if esep {
24886 dd.ReadMapElemValue()
24887 }
24888 if dd.TryDecodeAsNil() {
24889 if v == nil {
24890 } else if d.h.DeleteOnNilMapValue {
24891 delete(v, mk)
24892 } else {
24893 v[mk] = 0
24894 }
24895 continue
24896 }
24897 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
24898 if v != nil {
24899 v[mk] = mv
24900 }
24901 }
24902 dd.ReadMapEnd()
24903 return v, changed
24904}
24905
24906func (d *Decoder) fastpathDecMapUint8Float64R(f *codecFnInfo, rv reflect.Value) {
24907 if rv.Kind() == reflect.Ptr {
24908 vp := rv2i(rv).(*map[uint8]float64)
24909 v, changed := fastpathTV.DecMapUint8Float64V(*vp, true, d)
24910 if changed {
24911 *vp = v
24912 }
24913 } else {
24914 fastpathTV.DecMapUint8Float64V(rv2i(rv).(map[uint8]float64), false, d)
24915 }
24916}
24917func (f fastpathT) DecMapUint8Float64X(vp *map[uint8]float64, d *Decoder) {
24918 v, changed := f.DecMapUint8Float64V(*vp, true, d)
24919 if changed {
24920 *vp = v
24921 }
24922}
24923func (_ fastpathT) DecMapUint8Float64V(v map[uint8]float64, canChange bool,
24924 d *Decoder) (_ map[uint8]float64, changed bool) {
24925 dd, esep := d.d, d.hh.hasElemSeparators()
24926 containerLen := dd.ReadMapStart()
24927 if canChange && v == nil {
24928 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
24929 v = make(map[uint8]float64, xlen)
24930 changed = true
24931 }
24932 if containerLen == 0 {
24933 dd.ReadMapEnd()
24934 return v, changed
24935 }
24936 var mk uint8
24937 var mv float64
24938 hasLen := containerLen > 0
24939 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24940 if esep {
24941 dd.ReadMapElemKey()
24942 }
24943 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
24944 if esep {
24945 dd.ReadMapElemValue()
24946 }
24947 if dd.TryDecodeAsNil() {
24948 if v == nil {
24949 } else if d.h.DeleteOnNilMapValue {
24950 delete(v, mk)
24951 } else {
24952 v[mk] = 0
24953 }
24954 continue
24955 }
24956 mv = dd.DecodeFloat64()
24957 if v != nil {
24958 v[mk] = mv
24959 }
24960 }
24961 dd.ReadMapEnd()
24962 return v, changed
24963}
24964
24965func (d *Decoder) fastpathDecMapUint8BoolR(f *codecFnInfo, rv reflect.Value) {
24966 if rv.Kind() == reflect.Ptr {
24967 vp := rv2i(rv).(*map[uint8]bool)
24968 v, changed := fastpathTV.DecMapUint8BoolV(*vp, true, d)
24969 if changed {
24970 *vp = v
24971 }
24972 } else {
24973 fastpathTV.DecMapUint8BoolV(rv2i(rv).(map[uint8]bool), false, d)
24974 }
24975}
24976func (f fastpathT) DecMapUint8BoolX(vp *map[uint8]bool, d *Decoder) {
24977 v, changed := f.DecMapUint8BoolV(*vp, true, d)
24978 if changed {
24979 *vp = v
24980 }
24981}
24982func (_ fastpathT) DecMapUint8BoolV(v map[uint8]bool, canChange bool,
24983 d *Decoder) (_ map[uint8]bool, changed bool) {
24984 dd, esep := d.d, d.hh.hasElemSeparators()
24985 containerLen := dd.ReadMapStart()
24986 if canChange && v == nil {
24987 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
24988 v = make(map[uint8]bool, xlen)
24989 changed = true
24990 }
24991 if containerLen == 0 {
24992 dd.ReadMapEnd()
24993 return v, changed
24994 }
24995 var mk uint8
24996 var mv bool
24997 hasLen := containerLen > 0
24998 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
24999 if esep {
25000 dd.ReadMapElemKey()
25001 }
25002 mk = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
25003 if esep {
25004 dd.ReadMapElemValue()
25005 }
25006 if dd.TryDecodeAsNil() {
25007 if v == nil {
25008 } else if d.h.DeleteOnNilMapValue {
25009 delete(v, mk)
25010 } else {
25011 v[mk] = false
25012 }
25013 continue
25014 }
25015 mv = dd.DecodeBool()
25016 if v != nil {
25017 v[mk] = mv
25018 }
25019 }
25020 dd.ReadMapEnd()
25021 return v, changed
25022}
25023
25024func (d *Decoder) fastpathDecMapUint16IntfR(f *codecFnInfo, rv reflect.Value) {
25025 if rv.Kind() == reflect.Ptr {
25026 vp := rv2i(rv).(*map[uint16]interface{})
25027 v, changed := fastpathTV.DecMapUint16IntfV(*vp, true, d)
25028 if changed {
25029 *vp = v
25030 }
25031 } else {
25032 fastpathTV.DecMapUint16IntfV(rv2i(rv).(map[uint16]interface{}), false, d)
25033 }
25034}
25035func (f fastpathT) DecMapUint16IntfX(vp *map[uint16]interface{}, d *Decoder) {
25036 v, changed := f.DecMapUint16IntfV(*vp, true, d)
25037 if changed {
25038 *vp = v
25039 }
25040}
25041func (_ fastpathT) DecMapUint16IntfV(v map[uint16]interface{}, canChange bool,
25042 d *Decoder) (_ map[uint16]interface{}, changed bool) {
25043 dd, esep := d.d, d.hh.hasElemSeparators()
25044 containerLen := dd.ReadMapStart()
25045 if canChange && v == nil {
25046 xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
25047 v = make(map[uint16]interface{}, xlen)
25048 changed = true
25049 }
25050 if containerLen == 0 {
25051 dd.ReadMapEnd()
25052 return v, changed
25053 }
25054 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
25055 var mk uint16
25056 var mv interface{}
25057 hasLen := containerLen > 0
25058 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25059 if esep {
25060 dd.ReadMapElemKey()
25061 }
25062 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25063 if esep {
25064 dd.ReadMapElemValue()
25065 }
25066 if dd.TryDecodeAsNil() {
25067 if v == nil {
25068 } else if d.h.DeleteOnNilMapValue {
25069 delete(v, mk)
25070 } else {
25071 v[mk] = nil
25072 }
25073 continue
25074 }
25075 if mapGet {
25076 mv = v[mk]
25077 } else {
25078 mv = nil
25079 }
25080 d.decode(&mv)
25081 if v != nil {
25082 v[mk] = mv
25083 }
25084 }
25085 dd.ReadMapEnd()
25086 return v, changed
25087}
25088
25089func (d *Decoder) fastpathDecMapUint16StringR(f *codecFnInfo, rv reflect.Value) {
25090 if rv.Kind() == reflect.Ptr {
25091 vp := rv2i(rv).(*map[uint16]string)
25092 v, changed := fastpathTV.DecMapUint16StringV(*vp, true, d)
25093 if changed {
25094 *vp = v
25095 }
25096 } else {
25097 fastpathTV.DecMapUint16StringV(rv2i(rv).(map[uint16]string), false, d)
25098 }
25099}
25100func (f fastpathT) DecMapUint16StringX(vp *map[uint16]string, d *Decoder) {
25101 v, changed := f.DecMapUint16StringV(*vp, true, d)
25102 if changed {
25103 *vp = v
25104 }
25105}
25106func (_ fastpathT) DecMapUint16StringV(v map[uint16]string, canChange bool,
25107 d *Decoder) (_ map[uint16]string, changed bool) {
25108 dd, esep := d.d, d.hh.hasElemSeparators()
25109 containerLen := dd.ReadMapStart()
25110 if canChange && v == nil {
25111 xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
25112 v = make(map[uint16]string, xlen)
25113 changed = true
25114 }
25115 if containerLen == 0 {
25116 dd.ReadMapEnd()
25117 return v, changed
25118 }
25119 var mk uint16
25120 var mv string
25121 hasLen := containerLen > 0
25122 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25123 if esep {
25124 dd.ReadMapElemKey()
25125 }
25126 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25127 if esep {
25128 dd.ReadMapElemValue()
25129 }
25130 if dd.TryDecodeAsNil() {
25131 if v == nil {
25132 } else if d.h.DeleteOnNilMapValue {
25133 delete(v, mk)
25134 } else {
25135 v[mk] = ""
25136 }
25137 continue
25138 }
25139 mv = dd.DecodeString()
25140 if v != nil {
25141 v[mk] = mv
25142 }
25143 }
25144 dd.ReadMapEnd()
25145 return v, changed
25146}
25147
25148func (d *Decoder) fastpathDecMapUint16UintR(f *codecFnInfo, rv reflect.Value) {
25149 if rv.Kind() == reflect.Ptr {
25150 vp := rv2i(rv).(*map[uint16]uint)
25151 v, changed := fastpathTV.DecMapUint16UintV(*vp, true, d)
25152 if changed {
25153 *vp = v
25154 }
25155 } else {
25156 fastpathTV.DecMapUint16UintV(rv2i(rv).(map[uint16]uint), false, d)
25157 }
25158}
25159func (f fastpathT) DecMapUint16UintX(vp *map[uint16]uint, d *Decoder) {
25160 v, changed := f.DecMapUint16UintV(*vp, true, d)
25161 if changed {
25162 *vp = v
25163 }
25164}
25165func (_ fastpathT) DecMapUint16UintV(v map[uint16]uint, canChange bool,
25166 d *Decoder) (_ map[uint16]uint, changed bool) {
25167 dd, esep := d.d, d.hh.hasElemSeparators()
25168 containerLen := dd.ReadMapStart()
25169 if canChange && v == nil {
25170 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
25171 v = make(map[uint16]uint, xlen)
25172 changed = true
25173 }
25174 if containerLen == 0 {
25175 dd.ReadMapEnd()
25176 return v, changed
25177 }
25178 var mk uint16
25179 var mv uint
25180 hasLen := containerLen > 0
25181 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25182 if esep {
25183 dd.ReadMapElemKey()
25184 }
25185 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25186 if esep {
25187 dd.ReadMapElemValue()
25188 }
25189 if dd.TryDecodeAsNil() {
25190 if v == nil {
25191 } else if d.h.DeleteOnNilMapValue {
25192 delete(v, mk)
25193 } else {
25194 v[mk] = 0
25195 }
25196 continue
25197 }
25198 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
25199 if v != nil {
25200 v[mk] = mv
25201 }
25202 }
25203 dd.ReadMapEnd()
25204 return v, changed
25205}
25206
25207func (d *Decoder) fastpathDecMapUint16Uint8R(f *codecFnInfo, rv reflect.Value) {
25208 if rv.Kind() == reflect.Ptr {
25209 vp := rv2i(rv).(*map[uint16]uint8)
25210 v, changed := fastpathTV.DecMapUint16Uint8V(*vp, true, d)
25211 if changed {
25212 *vp = v
25213 }
25214 } else {
25215 fastpathTV.DecMapUint16Uint8V(rv2i(rv).(map[uint16]uint8), false, d)
25216 }
25217}
25218func (f fastpathT) DecMapUint16Uint8X(vp *map[uint16]uint8, d *Decoder) {
25219 v, changed := f.DecMapUint16Uint8V(*vp, true, d)
25220 if changed {
25221 *vp = v
25222 }
25223}
25224func (_ fastpathT) DecMapUint16Uint8V(v map[uint16]uint8, canChange bool,
25225 d *Decoder) (_ map[uint16]uint8, changed bool) {
25226 dd, esep := d.d, d.hh.hasElemSeparators()
25227 containerLen := dd.ReadMapStart()
25228 if canChange && v == nil {
25229 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
25230 v = make(map[uint16]uint8, xlen)
25231 changed = true
25232 }
25233 if containerLen == 0 {
25234 dd.ReadMapEnd()
25235 return v, changed
25236 }
25237 var mk uint16
25238 var mv uint8
25239 hasLen := containerLen > 0
25240 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25241 if esep {
25242 dd.ReadMapElemKey()
25243 }
25244 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25245 if esep {
25246 dd.ReadMapElemValue()
25247 }
25248 if dd.TryDecodeAsNil() {
25249 if v == nil {
25250 } else if d.h.DeleteOnNilMapValue {
25251 delete(v, mk)
25252 } else {
25253 v[mk] = 0
25254 }
25255 continue
25256 }
25257 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
25258 if v != nil {
25259 v[mk] = mv
25260 }
25261 }
25262 dd.ReadMapEnd()
25263 return v, changed
25264}
25265
25266func (d *Decoder) fastpathDecMapUint16Uint16R(f *codecFnInfo, rv reflect.Value) {
25267 if rv.Kind() == reflect.Ptr {
25268 vp := rv2i(rv).(*map[uint16]uint16)
25269 v, changed := fastpathTV.DecMapUint16Uint16V(*vp, true, d)
25270 if changed {
25271 *vp = v
25272 }
25273 } else {
25274 fastpathTV.DecMapUint16Uint16V(rv2i(rv).(map[uint16]uint16), false, d)
25275 }
25276}
25277func (f fastpathT) DecMapUint16Uint16X(vp *map[uint16]uint16, d *Decoder) {
25278 v, changed := f.DecMapUint16Uint16V(*vp, true, d)
25279 if changed {
25280 *vp = v
25281 }
25282}
25283func (_ fastpathT) DecMapUint16Uint16V(v map[uint16]uint16, canChange bool,
25284 d *Decoder) (_ map[uint16]uint16, changed bool) {
25285 dd, esep := d.d, d.hh.hasElemSeparators()
25286 containerLen := dd.ReadMapStart()
25287 if canChange && v == nil {
25288 xlen := decInferLen(containerLen, d.h.MaxInitLen, 4)
25289 v = make(map[uint16]uint16, xlen)
25290 changed = true
25291 }
25292 if containerLen == 0 {
25293 dd.ReadMapEnd()
25294 return v, changed
25295 }
25296 var mk uint16
25297 var mv uint16
25298 hasLen := containerLen > 0
25299 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25300 if esep {
25301 dd.ReadMapElemKey()
25302 }
25303 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25304 if esep {
25305 dd.ReadMapElemValue()
25306 }
25307 if dd.TryDecodeAsNil() {
25308 if v == nil {
25309 } else if d.h.DeleteOnNilMapValue {
25310 delete(v, mk)
25311 } else {
25312 v[mk] = 0
25313 }
25314 continue
25315 }
25316 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25317 if v != nil {
25318 v[mk] = mv
25319 }
25320 }
25321 dd.ReadMapEnd()
25322 return v, changed
25323}
25324
25325func (d *Decoder) fastpathDecMapUint16Uint32R(f *codecFnInfo, rv reflect.Value) {
25326 if rv.Kind() == reflect.Ptr {
25327 vp := rv2i(rv).(*map[uint16]uint32)
25328 v, changed := fastpathTV.DecMapUint16Uint32V(*vp, true, d)
25329 if changed {
25330 *vp = v
25331 }
25332 } else {
25333 fastpathTV.DecMapUint16Uint32V(rv2i(rv).(map[uint16]uint32), false, d)
25334 }
25335}
25336func (f fastpathT) DecMapUint16Uint32X(vp *map[uint16]uint32, d *Decoder) {
25337 v, changed := f.DecMapUint16Uint32V(*vp, true, d)
25338 if changed {
25339 *vp = v
25340 }
25341}
25342func (_ fastpathT) DecMapUint16Uint32V(v map[uint16]uint32, canChange bool,
25343 d *Decoder) (_ map[uint16]uint32, changed bool) {
25344 dd, esep := d.d, d.hh.hasElemSeparators()
25345 containerLen := dd.ReadMapStart()
25346 if canChange && v == nil {
25347 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
25348 v = make(map[uint16]uint32, xlen)
25349 changed = true
25350 }
25351 if containerLen == 0 {
25352 dd.ReadMapEnd()
25353 return v, changed
25354 }
25355 var mk uint16
25356 var mv uint32
25357 hasLen := containerLen > 0
25358 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25359 if esep {
25360 dd.ReadMapElemKey()
25361 }
25362 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25363 if esep {
25364 dd.ReadMapElemValue()
25365 }
25366 if dd.TryDecodeAsNil() {
25367 if v == nil {
25368 } else if d.h.DeleteOnNilMapValue {
25369 delete(v, mk)
25370 } else {
25371 v[mk] = 0
25372 }
25373 continue
25374 }
25375 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
25376 if v != nil {
25377 v[mk] = mv
25378 }
25379 }
25380 dd.ReadMapEnd()
25381 return v, changed
25382}
25383
25384func (d *Decoder) fastpathDecMapUint16Uint64R(f *codecFnInfo, rv reflect.Value) {
25385 if rv.Kind() == reflect.Ptr {
25386 vp := rv2i(rv).(*map[uint16]uint64)
25387 v, changed := fastpathTV.DecMapUint16Uint64V(*vp, true, d)
25388 if changed {
25389 *vp = v
25390 }
25391 } else {
25392 fastpathTV.DecMapUint16Uint64V(rv2i(rv).(map[uint16]uint64), false, d)
25393 }
25394}
25395func (f fastpathT) DecMapUint16Uint64X(vp *map[uint16]uint64, d *Decoder) {
25396 v, changed := f.DecMapUint16Uint64V(*vp, true, d)
25397 if changed {
25398 *vp = v
25399 }
25400}
25401func (_ fastpathT) DecMapUint16Uint64V(v map[uint16]uint64, canChange bool,
25402 d *Decoder) (_ map[uint16]uint64, changed bool) {
25403 dd, esep := d.d, d.hh.hasElemSeparators()
25404 containerLen := dd.ReadMapStart()
25405 if canChange && v == nil {
25406 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
25407 v = make(map[uint16]uint64, xlen)
25408 changed = true
25409 }
25410 if containerLen == 0 {
25411 dd.ReadMapEnd()
25412 return v, changed
25413 }
25414 var mk uint16
25415 var mv uint64
25416 hasLen := containerLen > 0
25417 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25418 if esep {
25419 dd.ReadMapElemKey()
25420 }
25421 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25422 if esep {
25423 dd.ReadMapElemValue()
25424 }
25425 if dd.TryDecodeAsNil() {
25426 if v == nil {
25427 } else if d.h.DeleteOnNilMapValue {
25428 delete(v, mk)
25429 } else {
25430 v[mk] = 0
25431 }
25432 continue
25433 }
25434 mv = dd.DecodeUint64()
25435 if v != nil {
25436 v[mk] = mv
25437 }
25438 }
25439 dd.ReadMapEnd()
25440 return v, changed
25441}
25442
25443func (d *Decoder) fastpathDecMapUint16UintptrR(f *codecFnInfo, rv reflect.Value) {
25444 if rv.Kind() == reflect.Ptr {
25445 vp := rv2i(rv).(*map[uint16]uintptr)
25446 v, changed := fastpathTV.DecMapUint16UintptrV(*vp, true, d)
25447 if changed {
25448 *vp = v
25449 }
25450 } else {
25451 fastpathTV.DecMapUint16UintptrV(rv2i(rv).(map[uint16]uintptr), false, d)
25452 }
25453}
25454func (f fastpathT) DecMapUint16UintptrX(vp *map[uint16]uintptr, d *Decoder) {
25455 v, changed := f.DecMapUint16UintptrV(*vp, true, d)
25456 if changed {
25457 *vp = v
25458 }
25459}
25460func (_ fastpathT) DecMapUint16UintptrV(v map[uint16]uintptr, canChange bool,
25461 d *Decoder) (_ map[uint16]uintptr, changed bool) {
25462 dd, esep := d.d, d.hh.hasElemSeparators()
25463 containerLen := dd.ReadMapStart()
25464 if canChange && v == nil {
25465 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
25466 v = make(map[uint16]uintptr, xlen)
25467 changed = true
25468 }
25469 if containerLen == 0 {
25470 dd.ReadMapEnd()
25471 return v, changed
25472 }
25473 var mk uint16
25474 var mv uintptr
25475 hasLen := containerLen > 0
25476 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25477 if esep {
25478 dd.ReadMapElemKey()
25479 }
25480 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25481 if esep {
25482 dd.ReadMapElemValue()
25483 }
25484 if dd.TryDecodeAsNil() {
25485 if v == nil {
25486 } else if d.h.DeleteOnNilMapValue {
25487 delete(v, mk)
25488 } else {
25489 v[mk] = 0
25490 }
25491 continue
25492 }
25493 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
25494 if v != nil {
25495 v[mk] = mv
25496 }
25497 }
25498 dd.ReadMapEnd()
25499 return v, changed
25500}
25501
25502func (d *Decoder) fastpathDecMapUint16IntR(f *codecFnInfo, rv reflect.Value) {
25503 if rv.Kind() == reflect.Ptr {
25504 vp := rv2i(rv).(*map[uint16]int)
25505 v, changed := fastpathTV.DecMapUint16IntV(*vp, true, d)
25506 if changed {
25507 *vp = v
25508 }
25509 } else {
25510 fastpathTV.DecMapUint16IntV(rv2i(rv).(map[uint16]int), false, d)
25511 }
25512}
25513func (f fastpathT) DecMapUint16IntX(vp *map[uint16]int, d *Decoder) {
25514 v, changed := f.DecMapUint16IntV(*vp, true, d)
25515 if changed {
25516 *vp = v
25517 }
25518}
25519func (_ fastpathT) DecMapUint16IntV(v map[uint16]int, canChange bool,
25520 d *Decoder) (_ map[uint16]int, changed bool) {
25521 dd, esep := d.d, d.hh.hasElemSeparators()
25522 containerLen := dd.ReadMapStart()
25523 if canChange && v == nil {
25524 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
25525 v = make(map[uint16]int, xlen)
25526 changed = true
25527 }
25528 if containerLen == 0 {
25529 dd.ReadMapEnd()
25530 return v, changed
25531 }
25532 var mk uint16
25533 var mv int
25534 hasLen := containerLen > 0
25535 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25536 if esep {
25537 dd.ReadMapElemKey()
25538 }
25539 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25540 if esep {
25541 dd.ReadMapElemValue()
25542 }
25543 if dd.TryDecodeAsNil() {
25544 if v == nil {
25545 } else if d.h.DeleteOnNilMapValue {
25546 delete(v, mk)
25547 } else {
25548 v[mk] = 0
25549 }
25550 continue
25551 }
25552 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
25553 if v != nil {
25554 v[mk] = mv
25555 }
25556 }
25557 dd.ReadMapEnd()
25558 return v, changed
25559}
25560
25561func (d *Decoder) fastpathDecMapUint16Int8R(f *codecFnInfo, rv reflect.Value) {
25562 if rv.Kind() == reflect.Ptr {
25563 vp := rv2i(rv).(*map[uint16]int8)
25564 v, changed := fastpathTV.DecMapUint16Int8V(*vp, true, d)
25565 if changed {
25566 *vp = v
25567 }
25568 } else {
25569 fastpathTV.DecMapUint16Int8V(rv2i(rv).(map[uint16]int8), false, d)
25570 }
25571}
25572func (f fastpathT) DecMapUint16Int8X(vp *map[uint16]int8, d *Decoder) {
25573 v, changed := f.DecMapUint16Int8V(*vp, true, d)
25574 if changed {
25575 *vp = v
25576 }
25577}
25578func (_ fastpathT) DecMapUint16Int8V(v map[uint16]int8, canChange bool,
25579 d *Decoder) (_ map[uint16]int8, changed bool) {
25580 dd, esep := d.d, d.hh.hasElemSeparators()
25581 containerLen := dd.ReadMapStart()
25582 if canChange && v == nil {
25583 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
25584 v = make(map[uint16]int8, xlen)
25585 changed = true
25586 }
25587 if containerLen == 0 {
25588 dd.ReadMapEnd()
25589 return v, changed
25590 }
25591 var mk uint16
25592 var mv int8
25593 hasLen := containerLen > 0
25594 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25595 if esep {
25596 dd.ReadMapElemKey()
25597 }
25598 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25599 if esep {
25600 dd.ReadMapElemValue()
25601 }
25602 if dd.TryDecodeAsNil() {
25603 if v == nil {
25604 } else if d.h.DeleteOnNilMapValue {
25605 delete(v, mk)
25606 } else {
25607 v[mk] = 0
25608 }
25609 continue
25610 }
25611 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
25612 if v != nil {
25613 v[mk] = mv
25614 }
25615 }
25616 dd.ReadMapEnd()
25617 return v, changed
25618}
25619
25620func (d *Decoder) fastpathDecMapUint16Int16R(f *codecFnInfo, rv reflect.Value) {
25621 if rv.Kind() == reflect.Ptr {
25622 vp := rv2i(rv).(*map[uint16]int16)
25623 v, changed := fastpathTV.DecMapUint16Int16V(*vp, true, d)
25624 if changed {
25625 *vp = v
25626 }
25627 } else {
25628 fastpathTV.DecMapUint16Int16V(rv2i(rv).(map[uint16]int16), false, d)
25629 }
25630}
25631func (f fastpathT) DecMapUint16Int16X(vp *map[uint16]int16, d *Decoder) {
25632 v, changed := f.DecMapUint16Int16V(*vp, true, d)
25633 if changed {
25634 *vp = v
25635 }
25636}
25637func (_ fastpathT) DecMapUint16Int16V(v map[uint16]int16, canChange bool,
25638 d *Decoder) (_ map[uint16]int16, changed bool) {
25639 dd, esep := d.d, d.hh.hasElemSeparators()
25640 containerLen := dd.ReadMapStart()
25641 if canChange && v == nil {
25642 xlen := decInferLen(containerLen, d.h.MaxInitLen, 4)
25643 v = make(map[uint16]int16, xlen)
25644 changed = true
25645 }
25646 if containerLen == 0 {
25647 dd.ReadMapEnd()
25648 return v, changed
25649 }
25650 var mk uint16
25651 var mv int16
25652 hasLen := containerLen > 0
25653 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25654 if esep {
25655 dd.ReadMapElemKey()
25656 }
25657 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25658 if esep {
25659 dd.ReadMapElemValue()
25660 }
25661 if dd.TryDecodeAsNil() {
25662 if v == nil {
25663 } else if d.h.DeleteOnNilMapValue {
25664 delete(v, mk)
25665 } else {
25666 v[mk] = 0
25667 }
25668 continue
25669 }
25670 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
25671 if v != nil {
25672 v[mk] = mv
25673 }
25674 }
25675 dd.ReadMapEnd()
25676 return v, changed
25677}
25678
25679func (d *Decoder) fastpathDecMapUint16Int32R(f *codecFnInfo, rv reflect.Value) {
25680 if rv.Kind() == reflect.Ptr {
25681 vp := rv2i(rv).(*map[uint16]int32)
25682 v, changed := fastpathTV.DecMapUint16Int32V(*vp, true, d)
25683 if changed {
25684 *vp = v
25685 }
25686 } else {
25687 fastpathTV.DecMapUint16Int32V(rv2i(rv).(map[uint16]int32), false, d)
25688 }
25689}
25690func (f fastpathT) DecMapUint16Int32X(vp *map[uint16]int32, d *Decoder) {
25691 v, changed := f.DecMapUint16Int32V(*vp, true, d)
25692 if changed {
25693 *vp = v
25694 }
25695}
25696func (_ fastpathT) DecMapUint16Int32V(v map[uint16]int32, canChange bool,
25697 d *Decoder) (_ map[uint16]int32, changed bool) {
25698 dd, esep := d.d, d.hh.hasElemSeparators()
25699 containerLen := dd.ReadMapStart()
25700 if canChange && v == nil {
25701 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
25702 v = make(map[uint16]int32, xlen)
25703 changed = true
25704 }
25705 if containerLen == 0 {
25706 dd.ReadMapEnd()
25707 return v, changed
25708 }
25709 var mk uint16
25710 var mv int32
25711 hasLen := containerLen > 0
25712 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25713 if esep {
25714 dd.ReadMapElemKey()
25715 }
25716 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25717 if esep {
25718 dd.ReadMapElemValue()
25719 }
25720 if dd.TryDecodeAsNil() {
25721 if v == nil {
25722 } else if d.h.DeleteOnNilMapValue {
25723 delete(v, mk)
25724 } else {
25725 v[mk] = 0
25726 }
25727 continue
25728 }
25729 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
25730 if v != nil {
25731 v[mk] = mv
25732 }
25733 }
25734 dd.ReadMapEnd()
25735 return v, changed
25736}
25737
25738func (d *Decoder) fastpathDecMapUint16Int64R(f *codecFnInfo, rv reflect.Value) {
25739 if rv.Kind() == reflect.Ptr {
25740 vp := rv2i(rv).(*map[uint16]int64)
25741 v, changed := fastpathTV.DecMapUint16Int64V(*vp, true, d)
25742 if changed {
25743 *vp = v
25744 }
25745 } else {
25746 fastpathTV.DecMapUint16Int64V(rv2i(rv).(map[uint16]int64), false, d)
25747 }
25748}
25749func (f fastpathT) DecMapUint16Int64X(vp *map[uint16]int64, d *Decoder) {
25750 v, changed := f.DecMapUint16Int64V(*vp, true, d)
25751 if changed {
25752 *vp = v
25753 }
25754}
25755func (_ fastpathT) DecMapUint16Int64V(v map[uint16]int64, canChange bool,
25756 d *Decoder) (_ map[uint16]int64, changed bool) {
25757 dd, esep := d.d, d.hh.hasElemSeparators()
25758 containerLen := dd.ReadMapStart()
25759 if canChange && v == nil {
25760 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
25761 v = make(map[uint16]int64, xlen)
25762 changed = true
25763 }
25764 if containerLen == 0 {
25765 dd.ReadMapEnd()
25766 return v, changed
25767 }
25768 var mk uint16
25769 var mv int64
25770 hasLen := containerLen > 0
25771 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25772 if esep {
25773 dd.ReadMapElemKey()
25774 }
25775 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25776 if esep {
25777 dd.ReadMapElemValue()
25778 }
25779 if dd.TryDecodeAsNil() {
25780 if v == nil {
25781 } else if d.h.DeleteOnNilMapValue {
25782 delete(v, mk)
25783 } else {
25784 v[mk] = 0
25785 }
25786 continue
25787 }
25788 mv = dd.DecodeInt64()
25789 if v != nil {
25790 v[mk] = mv
25791 }
25792 }
25793 dd.ReadMapEnd()
25794 return v, changed
25795}
25796
25797func (d *Decoder) fastpathDecMapUint16Float32R(f *codecFnInfo, rv reflect.Value) {
25798 if rv.Kind() == reflect.Ptr {
25799 vp := rv2i(rv).(*map[uint16]float32)
25800 v, changed := fastpathTV.DecMapUint16Float32V(*vp, true, d)
25801 if changed {
25802 *vp = v
25803 }
25804 } else {
25805 fastpathTV.DecMapUint16Float32V(rv2i(rv).(map[uint16]float32), false, d)
25806 }
25807}
25808func (f fastpathT) DecMapUint16Float32X(vp *map[uint16]float32, d *Decoder) {
25809 v, changed := f.DecMapUint16Float32V(*vp, true, d)
25810 if changed {
25811 *vp = v
25812 }
25813}
25814func (_ fastpathT) DecMapUint16Float32V(v map[uint16]float32, canChange bool,
25815 d *Decoder) (_ map[uint16]float32, changed bool) {
25816 dd, esep := d.d, d.hh.hasElemSeparators()
25817 containerLen := dd.ReadMapStart()
25818 if canChange && v == nil {
25819 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
25820 v = make(map[uint16]float32, xlen)
25821 changed = true
25822 }
25823 if containerLen == 0 {
25824 dd.ReadMapEnd()
25825 return v, changed
25826 }
25827 var mk uint16
25828 var mv float32
25829 hasLen := containerLen > 0
25830 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25831 if esep {
25832 dd.ReadMapElemKey()
25833 }
25834 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25835 if esep {
25836 dd.ReadMapElemValue()
25837 }
25838 if dd.TryDecodeAsNil() {
25839 if v == nil {
25840 } else if d.h.DeleteOnNilMapValue {
25841 delete(v, mk)
25842 } else {
25843 v[mk] = 0
25844 }
25845 continue
25846 }
25847 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
25848 if v != nil {
25849 v[mk] = mv
25850 }
25851 }
25852 dd.ReadMapEnd()
25853 return v, changed
25854}
25855
25856func (d *Decoder) fastpathDecMapUint16Float64R(f *codecFnInfo, rv reflect.Value) {
25857 if rv.Kind() == reflect.Ptr {
25858 vp := rv2i(rv).(*map[uint16]float64)
25859 v, changed := fastpathTV.DecMapUint16Float64V(*vp, true, d)
25860 if changed {
25861 *vp = v
25862 }
25863 } else {
25864 fastpathTV.DecMapUint16Float64V(rv2i(rv).(map[uint16]float64), false, d)
25865 }
25866}
25867func (f fastpathT) DecMapUint16Float64X(vp *map[uint16]float64, d *Decoder) {
25868 v, changed := f.DecMapUint16Float64V(*vp, true, d)
25869 if changed {
25870 *vp = v
25871 }
25872}
25873func (_ fastpathT) DecMapUint16Float64V(v map[uint16]float64, canChange bool,
25874 d *Decoder) (_ map[uint16]float64, changed bool) {
25875 dd, esep := d.d, d.hh.hasElemSeparators()
25876 containerLen := dd.ReadMapStart()
25877 if canChange && v == nil {
25878 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
25879 v = make(map[uint16]float64, xlen)
25880 changed = true
25881 }
25882 if containerLen == 0 {
25883 dd.ReadMapEnd()
25884 return v, changed
25885 }
25886 var mk uint16
25887 var mv float64
25888 hasLen := containerLen > 0
25889 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25890 if esep {
25891 dd.ReadMapElemKey()
25892 }
25893 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25894 if esep {
25895 dd.ReadMapElemValue()
25896 }
25897 if dd.TryDecodeAsNil() {
25898 if v == nil {
25899 } else if d.h.DeleteOnNilMapValue {
25900 delete(v, mk)
25901 } else {
25902 v[mk] = 0
25903 }
25904 continue
25905 }
25906 mv = dd.DecodeFloat64()
25907 if v != nil {
25908 v[mk] = mv
25909 }
25910 }
25911 dd.ReadMapEnd()
25912 return v, changed
25913}
25914
25915func (d *Decoder) fastpathDecMapUint16BoolR(f *codecFnInfo, rv reflect.Value) {
25916 if rv.Kind() == reflect.Ptr {
25917 vp := rv2i(rv).(*map[uint16]bool)
25918 v, changed := fastpathTV.DecMapUint16BoolV(*vp, true, d)
25919 if changed {
25920 *vp = v
25921 }
25922 } else {
25923 fastpathTV.DecMapUint16BoolV(rv2i(rv).(map[uint16]bool), false, d)
25924 }
25925}
25926func (f fastpathT) DecMapUint16BoolX(vp *map[uint16]bool, d *Decoder) {
25927 v, changed := f.DecMapUint16BoolV(*vp, true, d)
25928 if changed {
25929 *vp = v
25930 }
25931}
25932func (_ fastpathT) DecMapUint16BoolV(v map[uint16]bool, canChange bool,
25933 d *Decoder) (_ map[uint16]bool, changed bool) {
25934 dd, esep := d.d, d.hh.hasElemSeparators()
25935 containerLen := dd.ReadMapStart()
25936 if canChange && v == nil {
25937 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
25938 v = make(map[uint16]bool, xlen)
25939 changed = true
25940 }
25941 if containerLen == 0 {
25942 dd.ReadMapEnd()
25943 return v, changed
25944 }
25945 var mk uint16
25946 var mv bool
25947 hasLen := containerLen > 0
25948 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
25949 if esep {
25950 dd.ReadMapElemKey()
25951 }
25952 mk = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
25953 if esep {
25954 dd.ReadMapElemValue()
25955 }
25956 if dd.TryDecodeAsNil() {
25957 if v == nil {
25958 } else if d.h.DeleteOnNilMapValue {
25959 delete(v, mk)
25960 } else {
25961 v[mk] = false
25962 }
25963 continue
25964 }
25965 mv = dd.DecodeBool()
25966 if v != nil {
25967 v[mk] = mv
25968 }
25969 }
25970 dd.ReadMapEnd()
25971 return v, changed
25972}
25973
25974func (d *Decoder) fastpathDecMapUint32IntfR(f *codecFnInfo, rv reflect.Value) {
25975 if rv.Kind() == reflect.Ptr {
25976 vp := rv2i(rv).(*map[uint32]interface{})
25977 v, changed := fastpathTV.DecMapUint32IntfV(*vp, true, d)
25978 if changed {
25979 *vp = v
25980 }
25981 } else {
25982 fastpathTV.DecMapUint32IntfV(rv2i(rv).(map[uint32]interface{}), false, d)
25983 }
25984}
25985func (f fastpathT) DecMapUint32IntfX(vp *map[uint32]interface{}, d *Decoder) {
25986 v, changed := f.DecMapUint32IntfV(*vp, true, d)
25987 if changed {
25988 *vp = v
25989 }
25990}
25991func (_ fastpathT) DecMapUint32IntfV(v map[uint32]interface{}, canChange bool,
25992 d *Decoder) (_ map[uint32]interface{}, changed bool) {
25993 dd, esep := d.d, d.hh.hasElemSeparators()
25994 containerLen := dd.ReadMapStart()
25995 if canChange && v == nil {
25996 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
25997 v = make(map[uint32]interface{}, xlen)
25998 changed = true
25999 }
26000 if containerLen == 0 {
26001 dd.ReadMapEnd()
26002 return v, changed
26003 }
26004 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
26005 var mk uint32
26006 var mv interface{}
26007 hasLen := containerLen > 0
26008 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26009 if esep {
26010 dd.ReadMapElemKey()
26011 }
26012 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26013 if esep {
26014 dd.ReadMapElemValue()
26015 }
26016 if dd.TryDecodeAsNil() {
26017 if v == nil {
26018 } else if d.h.DeleteOnNilMapValue {
26019 delete(v, mk)
26020 } else {
26021 v[mk] = nil
26022 }
26023 continue
26024 }
26025 if mapGet {
26026 mv = v[mk]
26027 } else {
26028 mv = nil
26029 }
26030 d.decode(&mv)
26031 if v != nil {
26032 v[mk] = mv
26033 }
26034 }
26035 dd.ReadMapEnd()
26036 return v, changed
26037}
26038
26039func (d *Decoder) fastpathDecMapUint32StringR(f *codecFnInfo, rv reflect.Value) {
26040 if rv.Kind() == reflect.Ptr {
26041 vp := rv2i(rv).(*map[uint32]string)
26042 v, changed := fastpathTV.DecMapUint32StringV(*vp, true, d)
26043 if changed {
26044 *vp = v
26045 }
26046 } else {
26047 fastpathTV.DecMapUint32StringV(rv2i(rv).(map[uint32]string), false, d)
26048 }
26049}
26050func (f fastpathT) DecMapUint32StringX(vp *map[uint32]string, d *Decoder) {
26051 v, changed := f.DecMapUint32StringV(*vp, true, d)
26052 if changed {
26053 *vp = v
26054 }
26055}
26056func (_ fastpathT) DecMapUint32StringV(v map[uint32]string, canChange bool,
26057 d *Decoder) (_ map[uint32]string, changed bool) {
26058 dd, esep := d.d, d.hh.hasElemSeparators()
26059 containerLen := dd.ReadMapStart()
26060 if canChange && v == nil {
26061 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
26062 v = make(map[uint32]string, xlen)
26063 changed = true
26064 }
26065 if containerLen == 0 {
26066 dd.ReadMapEnd()
26067 return v, changed
26068 }
26069 var mk uint32
26070 var mv string
26071 hasLen := containerLen > 0
26072 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26073 if esep {
26074 dd.ReadMapElemKey()
26075 }
26076 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26077 if esep {
26078 dd.ReadMapElemValue()
26079 }
26080 if dd.TryDecodeAsNil() {
26081 if v == nil {
26082 } else if d.h.DeleteOnNilMapValue {
26083 delete(v, mk)
26084 } else {
26085 v[mk] = ""
26086 }
26087 continue
26088 }
26089 mv = dd.DecodeString()
26090 if v != nil {
26091 v[mk] = mv
26092 }
26093 }
26094 dd.ReadMapEnd()
26095 return v, changed
26096}
26097
26098func (d *Decoder) fastpathDecMapUint32UintR(f *codecFnInfo, rv reflect.Value) {
26099 if rv.Kind() == reflect.Ptr {
26100 vp := rv2i(rv).(*map[uint32]uint)
26101 v, changed := fastpathTV.DecMapUint32UintV(*vp, true, d)
26102 if changed {
26103 *vp = v
26104 }
26105 } else {
26106 fastpathTV.DecMapUint32UintV(rv2i(rv).(map[uint32]uint), false, d)
26107 }
26108}
26109func (f fastpathT) DecMapUint32UintX(vp *map[uint32]uint, d *Decoder) {
26110 v, changed := f.DecMapUint32UintV(*vp, true, d)
26111 if changed {
26112 *vp = v
26113 }
26114}
26115func (_ fastpathT) DecMapUint32UintV(v map[uint32]uint, canChange bool,
26116 d *Decoder) (_ map[uint32]uint, changed bool) {
26117 dd, esep := d.d, d.hh.hasElemSeparators()
26118 containerLen := dd.ReadMapStart()
26119 if canChange && v == nil {
26120 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
26121 v = make(map[uint32]uint, xlen)
26122 changed = true
26123 }
26124 if containerLen == 0 {
26125 dd.ReadMapEnd()
26126 return v, changed
26127 }
26128 var mk uint32
26129 var mv uint
26130 hasLen := containerLen > 0
26131 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26132 if esep {
26133 dd.ReadMapElemKey()
26134 }
26135 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26136 if esep {
26137 dd.ReadMapElemValue()
26138 }
26139 if dd.TryDecodeAsNil() {
26140 if v == nil {
26141 } else if d.h.DeleteOnNilMapValue {
26142 delete(v, mk)
26143 } else {
26144 v[mk] = 0
26145 }
26146 continue
26147 }
26148 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
26149 if v != nil {
26150 v[mk] = mv
26151 }
26152 }
26153 dd.ReadMapEnd()
26154 return v, changed
26155}
26156
26157func (d *Decoder) fastpathDecMapUint32Uint8R(f *codecFnInfo, rv reflect.Value) {
26158 if rv.Kind() == reflect.Ptr {
26159 vp := rv2i(rv).(*map[uint32]uint8)
26160 v, changed := fastpathTV.DecMapUint32Uint8V(*vp, true, d)
26161 if changed {
26162 *vp = v
26163 }
26164 } else {
26165 fastpathTV.DecMapUint32Uint8V(rv2i(rv).(map[uint32]uint8), false, d)
26166 }
26167}
26168func (f fastpathT) DecMapUint32Uint8X(vp *map[uint32]uint8, d *Decoder) {
26169 v, changed := f.DecMapUint32Uint8V(*vp, true, d)
26170 if changed {
26171 *vp = v
26172 }
26173}
26174func (_ fastpathT) DecMapUint32Uint8V(v map[uint32]uint8, canChange bool,
26175 d *Decoder) (_ map[uint32]uint8, changed bool) {
26176 dd, esep := d.d, d.hh.hasElemSeparators()
26177 containerLen := dd.ReadMapStart()
26178 if canChange && v == nil {
26179 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
26180 v = make(map[uint32]uint8, xlen)
26181 changed = true
26182 }
26183 if containerLen == 0 {
26184 dd.ReadMapEnd()
26185 return v, changed
26186 }
26187 var mk uint32
26188 var mv uint8
26189 hasLen := containerLen > 0
26190 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26191 if esep {
26192 dd.ReadMapElemKey()
26193 }
26194 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26195 if esep {
26196 dd.ReadMapElemValue()
26197 }
26198 if dd.TryDecodeAsNil() {
26199 if v == nil {
26200 } else if d.h.DeleteOnNilMapValue {
26201 delete(v, mk)
26202 } else {
26203 v[mk] = 0
26204 }
26205 continue
26206 }
26207 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
26208 if v != nil {
26209 v[mk] = mv
26210 }
26211 }
26212 dd.ReadMapEnd()
26213 return v, changed
26214}
26215
26216func (d *Decoder) fastpathDecMapUint32Uint16R(f *codecFnInfo, rv reflect.Value) {
26217 if rv.Kind() == reflect.Ptr {
26218 vp := rv2i(rv).(*map[uint32]uint16)
26219 v, changed := fastpathTV.DecMapUint32Uint16V(*vp, true, d)
26220 if changed {
26221 *vp = v
26222 }
26223 } else {
26224 fastpathTV.DecMapUint32Uint16V(rv2i(rv).(map[uint32]uint16), false, d)
26225 }
26226}
26227func (f fastpathT) DecMapUint32Uint16X(vp *map[uint32]uint16, d *Decoder) {
26228 v, changed := f.DecMapUint32Uint16V(*vp, true, d)
26229 if changed {
26230 *vp = v
26231 }
26232}
26233func (_ fastpathT) DecMapUint32Uint16V(v map[uint32]uint16, canChange bool,
26234 d *Decoder) (_ map[uint32]uint16, changed bool) {
26235 dd, esep := d.d, d.hh.hasElemSeparators()
26236 containerLen := dd.ReadMapStart()
26237 if canChange && v == nil {
26238 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
26239 v = make(map[uint32]uint16, xlen)
26240 changed = true
26241 }
26242 if containerLen == 0 {
26243 dd.ReadMapEnd()
26244 return v, changed
26245 }
26246 var mk uint32
26247 var mv uint16
26248 hasLen := containerLen > 0
26249 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26250 if esep {
26251 dd.ReadMapElemKey()
26252 }
26253 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26254 if esep {
26255 dd.ReadMapElemValue()
26256 }
26257 if dd.TryDecodeAsNil() {
26258 if v == nil {
26259 } else if d.h.DeleteOnNilMapValue {
26260 delete(v, mk)
26261 } else {
26262 v[mk] = 0
26263 }
26264 continue
26265 }
26266 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
26267 if v != nil {
26268 v[mk] = mv
26269 }
26270 }
26271 dd.ReadMapEnd()
26272 return v, changed
26273}
26274
26275func (d *Decoder) fastpathDecMapUint32Uint32R(f *codecFnInfo, rv reflect.Value) {
26276 if rv.Kind() == reflect.Ptr {
26277 vp := rv2i(rv).(*map[uint32]uint32)
26278 v, changed := fastpathTV.DecMapUint32Uint32V(*vp, true, d)
26279 if changed {
26280 *vp = v
26281 }
26282 } else {
26283 fastpathTV.DecMapUint32Uint32V(rv2i(rv).(map[uint32]uint32), false, d)
26284 }
26285}
26286func (f fastpathT) DecMapUint32Uint32X(vp *map[uint32]uint32, d *Decoder) {
26287 v, changed := f.DecMapUint32Uint32V(*vp, true, d)
26288 if changed {
26289 *vp = v
26290 }
26291}
26292func (_ fastpathT) DecMapUint32Uint32V(v map[uint32]uint32, canChange bool,
26293 d *Decoder) (_ map[uint32]uint32, changed bool) {
26294 dd, esep := d.d, d.hh.hasElemSeparators()
26295 containerLen := dd.ReadMapStart()
26296 if canChange && v == nil {
26297 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
26298 v = make(map[uint32]uint32, xlen)
26299 changed = true
26300 }
26301 if containerLen == 0 {
26302 dd.ReadMapEnd()
26303 return v, changed
26304 }
26305 var mk uint32
26306 var mv uint32
26307 hasLen := containerLen > 0
26308 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26309 if esep {
26310 dd.ReadMapElemKey()
26311 }
26312 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26313 if esep {
26314 dd.ReadMapElemValue()
26315 }
26316 if dd.TryDecodeAsNil() {
26317 if v == nil {
26318 } else if d.h.DeleteOnNilMapValue {
26319 delete(v, mk)
26320 } else {
26321 v[mk] = 0
26322 }
26323 continue
26324 }
26325 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26326 if v != nil {
26327 v[mk] = mv
26328 }
26329 }
26330 dd.ReadMapEnd()
26331 return v, changed
26332}
26333
26334func (d *Decoder) fastpathDecMapUint32Uint64R(f *codecFnInfo, rv reflect.Value) {
26335 if rv.Kind() == reflect.Ptr {
26336 vp := rv2i(rv).(*map[uint32]uint64)
26337 v, changed := fastpathTV.DecMapUint32Uint64V(*vp, true, d)
26338 if changed {
26339 *vp = v
26340 }
26341 } else {
26342 fastpathTV.DecMapUint32Uint64V(rv2i(rv).(map[uint32]uint64), false, d)
26343 }
26344}
26345func (f fastpathT) DecMapUint32Uint64X(vp *map[uint32]uint64, d *Decoder) {
26346 v, changed := f.DecMapUint32Uint64V(*vp, true, d)
26347 if changed {
26348 *vp = v
26349 }
26350}
26351func (_ fastpathT) DecMapUint32Uint64V(v map[uint32]uint64, canChange bool,
26352 d *Decoder) (_ map[uint32]uint64, changed bool) {
26353 dd, esep := d.d, d.hh.hasElemSeparators()
26354 containerLen := dd.ReadMapStart()
26355 if canChange && v == nil {
26356 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
26357 v = make(map[uint32]uint64, xlen)
26358 changed = true
26359 }
26360 if containerLen == 0 {
26361 dd.ReadMapEnd()
26362 return v, changed
26363 }
26364 var mk uint32
26365 var mv uint64
26366 hasLen := containerLen > 0
26367 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26368 if esep {
26369 dd.ReadMapElemKey()
26370 }
26371 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26372 if esep {
26373 dd.ReadMapElemValue()
26374 }
26375 if dd.TryDecodeAsNil() {
26376 if v == nil {
26377 } else if d.h.DeleteOnNilMapValue {
26378 delete(v, mk)
26379 } else {
26380 v[mk] = 0
26381 }
26382 continue
26383 }
26384 mv = dd.DecodeUint64()
26385 if v != nil {
26386 v[mk] = mv
26387 }
26388 }
26389 dd.ReadMapEnd()
26390 return v, changed
26391}
26392
26393func (d *Decoder) fastpathDecMapUint32UintptrR(f *codecFnInfo, rv reflect.Value) {
26394 if rv.Kind() == reflect.Ptr {
26395 vp := rv2i(rv).(*map[uint32]uintptr)
26396 v, changed := fastpathTV.DecMapUint32UintptrV(*vp, true, d)
26397 if changed {
26398 *vp = v
26399 }
26400 } else {
26401 fastpathTV.DecMapUint32UintptrV(rv2i(rv).(map[uint32]uintptr), false, d)
26402 }
26403}
26404func (f fastpathT) DecMapUint32UintptrX(vp *map[uint32]uintptr, d *Decoder) {
26405 v, changed := f.DecMapUint32UintptrV(*vp, true, d)
26406 if changed {
26407 *vp = v
26408 }
26409}
26410func (_ fastpathT) DecMapUint32UintptrV(v map[uint32]uintptr, canChange bool,
26411 d *Decoder) (_ map[uint32]uintptr, changed bool) {
26412 dd, esep := d.d, d.hh.hasElemSeparators()
26413 containerLen := dd.ReadMapStart()
26414 if canChange && v == nil {
26415 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
26416 v = make(map[uint32]uintptr, xlen)
26417 changed = true
26418 }
26419 if containerLen == 0 {
26420 dd.ReadMapEnd()
26421 return v, changed
26422 }
26423 var mk uint32
26424 var mv uintptr
26425 hasLen := containerLen > 0
26426 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26427 if esep {
26428 dd.ReadMapElemKey()
26429 }
26430 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26431 if esep {
26432 dd.ReadMapElemValue()
26433 }
26434 if dd.TryDecodeAsNil() {
26435 if v == nil {
26436 } else if d.h.DeleteOnNilMapValue {
26437 delete(v, mk)
26438 } else {
26439 v[mk] = 0
26440 }
26441 continue
26442 }
26443 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
26444 if v != nil {
26445 v[mk] = mv
26446 }
26447 }
26448 dd.ReadMapEnd()
26449 return v, changed
26450}
26451
26452func (d *Decoder) fastpathDecMapUint32IntR(f *codecFnInfo, rv reflect.Value) {
26453 if rv.Kind() == reflect.Ptr {
26454 vp := rv2i(rv).(*map[uint32]int)
26455 v, changed := fastpathTV.DecMapUint32IntV(*vp, true, d)
26456 if changed {
26457 *vp = v
26458 }
26459 } else {
26460 fastpathTV.DecMapUint32IntV(rv2i(rv).(map[uint32]int), false, d)
26461 }
26462}
26463func (f fastpathT) DecMapUint32IntX(vp *map[uint32]int, d *Decoder) {
26464 v, changed := f.DecMapUint32IntV(*vp, true, d)
26465 if changed {
26466 *vp = v
26467 }
26468}
26469func (_ fastpathT) DecMapUint32IntV(v map[uint32]int, canChange bool,
26470 d *Decoder) (_ map[uint32]int, changed bool) {
26471 dd, esep := d.d, d.hh.hasElemSeparators()
26472 containerLen := dd.ReadMapStart()
26473 if canChange && v == nil {
26474 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
26475 v = make(map[uint32]int, xlen)
26476 changed = true
26477 }
26478 if containerLen == 0 {
26479 dd.ReadMapEnd()
26480 return v, changed
26481 }
26482 var mk uint32
26483 var mv int
26484 hasLen := containerLen > 0
26485 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26486 if esep {
26487 dd.ReadMapElemKey()
26488 }
26489 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26490 if esep {
26491 dd.ReadMapElemValue()
26492 }
26493 if dd.TryDecodeAsNil() {
26494 if v == nil {
26495 } else if d.h.DeleteOnNilMapValue {
26496 delete(v, mk)
26497 } else {
26498 v[mk] = 0
26499 }
26500 continue
26501 }
26502 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
26503 if v != nil {
26504 v[mk] = mv
26505 }
26506 }
26507 dd.ReadMapEnd()
26508 return v, changed
26509}
26510
26511func (d *Decoder) fastpathDecMapUint32Int8R(f *codecFnInfo, rv reflect.Value) {
26512 if rv.Kind() == reflect.Ptr {
26513 vp := rv2i(rv).(*map[uint32]int8)
26514 v, changed := fastpathTV.DecMapUint32Int8V(*vp, true, d)
26515 if changed {
26516 *vp = v
26517 }
26518 } else {
26519 fastpathTV.DecMapUint32Int8V(rv2i(rv).(map[uint32]int8), false, d)
26520 }
26521}
26522func (f fastpathT) DecMapUint32Int8X(vp *map[uint32]int8, d *Decoder) {
26523 v, changed := f.DecMapUint32Int8V(*vp, true, d)
26524 if changed {
26525 *vp = v
26526 }
26527}
26528func (_ fastpathT) DecMapUint32Int8V(v map[uint32]int8, canChange bool,
26529 d *Decoder) (_ map[uint32]int8, changed bool) {
26530 dd, esep := d.d, d.hh.hasElemSeparators()
26531 containerLen := dd.ReadMapStart()
26532 if canChange && v == nil {
26533 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
26534 v = make(map[uint32]int8, xlen)
26535 changed = true
26536 }
26537 if containerLen == 0 {
26538 dd.ReadMapEnd()
26539 return v, changed
26540 }
26541 var mk uint32
26542 var mv int8
26543 hasLen := containerLen > 0
26544 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26545 if esep {
26546 dd.ReadMapElemKey()
26547 }
26548 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26549 if esep {
26550 dd.ReadMapElemValue()
26551 }
26552 if dd.TryDecodeAsNil() {
26553 if v == nil {
26554 } else if d.h.DeleteOnNilMapValue {
26555 delete(v, mk)
26556 } else {
26557 v[mk] = 0
26558 }
26559 continue
26560 }
26561 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
26562 if v != nil {
26563 v[mk] = mv
26564 }
26565 }
26566 dd.ReadMapEnd()
26567 return v, changed
26568}
26569
26570func (d *Decoder) fastpathDecMapUint32Int16R(f *codecFnInfo, rv reflect.Value) {
26571 if rv.Kind() == reflect.Ptr {
26572 vp := rv2i(rv).(*map[uint32]int16)
26573 v, changed := fastpathTV.DecMapUint32Int16V(*vp, true, d)
26574 if changed {
26575 *vp = v
26576 }
26577 } else {
26578 fastpathTV.DecMapUint32Int16V(rv2i(rv).(map[uint32]int16), false, d)
26579 }
26580}
26581func (f fastpathT) DecMapUint32Int16X(vp *map[uint32]int16, d *Decoder) {
26582 v, changed := f.DecMapUint32Int16V(*vp, true, d)
26583 if changed {
26584 *vp = v
26585 }
26586}
26587func (_ fastpathT) DecMapUint32Int16V(v map[uint32]int16, canChange bool,
26588 d *Decoder) (_ map[uint32]int16, changed bool) {
26589 dd, esep := d.d, d.hh.hasElemSeparators()
26590 containerLen := dd.ReadMapStart()
26591 if canChange && v == nil {
26592 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
26593 v = make(map[uint32]int16, xlen)
26594 changed = true
26595 }
26596 if containerLen == 0 {
26597 dd.ReadMapEnd()
26598 return v, changed
26599 }
26600 var mk uint32
26601 var mv int16
26602 hasLen := containerLen > 0
26603 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26604 if esep {
26605 dd.ReadMapElemKey()
26606 }
26607 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26608 if esep {
26609 dd.ReadMapElemValue()
26610 }
26611 if dd.TryDecodeAsNil() {
26612 if v == nil {
26613 } else if d.h.DeleteOnNilMapValue {
26614 delete(v, mk)
26615 } else {
26616 v[mk] = 0
26617 }
26618 continue
26619 }
26620 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
26621 if v != nil {
26622 v[mk] = mv
26623 }
26624 }
26625 dd.ReadMapEnd()
26626 return v, changed
26627}
26628
26629func (d *Decoder) fastpathDecMapUint32Int32R(f *codecFnInfo, rv reflect.Value) {
26630 if rv.Kind() == reflect.Ptr {
26631 vp := rv2i(rv).(*map[uint32]int32)
26632 v, changed := fastpathTV.DecMapUint32Int32V(*vp, true, d)
26633 if changed {
26634 *vp = v
26635 }
26636 } else {
26637 fastpathTV.DecMapUint32Int32V(rv2i(rv).(map[uint32]int32), false, d)
26638 }
26639}
26640func (f fastpathT) DecMapUint32Int32X(vp *map[uint32]int32, d *Decoder) {
26641 v, changed := f.DecMapUint32Int32V(*vp, true, d)
26642 if changed {
26643 *vp = v
26644 }
26645}
26646func (_ fastpathT) DecMapUint32Int32V(v map[uint32]int32, canChange bool,
26647 d *Decoder) (_ map[uint32]int32, changed bool) {
26648 dd, esep := d.d, d.hh.hasElemSeparators()
26649 containerLen := dd.ReadMapStart()
26650 if canChange && v == nil {
26651 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
26652 v = make(map[uint32]int32, xlen)
26653 changed = true
26654 }
26655 if containerLen == 0 {
26656 dd.ReadMapEnd()
26657 return v, changed
26658 }
26659 var mk uint32
26660 var mv int32
26661 hasLen := containerLen > 0
26662 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26663 if esep {
26664 dd.ReadMapElemKey()
26665 }
26666 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26667 if esep {
26668 dd.ReadMapElemValue()
26669 }
26670 if dd.TryDecodeAsNil() {
26671 if v == nil {
26672 } else if d.h.DeleteOnNilMapValue {
26673 delete(v, mk)
26674 } else {
26675 v[mk] = 0
26676 }
26677 continue
26678 }
26679 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
26680 if v != nil {
26681 v[mk] = mv
26682 }
26683 }
26684 dd.ReadMapEnd()
26685 return v, changed
26686}
26687
26688func (d *Decoder) fastpathDecMapUint32Int64R(f *codecFnInfo, rv reflect.Value) {
26689 if rv.Kind() == reflect.Ptr {
26690 vp := rv2i(rv).(*map[uint32]int64)
26691 v, changed := fastpathTV.DecMapUint32Int64V(*vp, true, d)
26692 if changed {
26693 *vp = v
26694 }
26695 } else {
26696 fastpathTV.DecMapUint32Int64V(rv2i(rv).(map[uint32]int64), false, d)
26697 }
26698}
26699func (f fastpathT) DecMapUint32Int64X(vp *map[uint32]int64, d *Decoder) {
26700 v, changed := f.DecMapUint32Int64V(*vp, true, d)
26701 if changed {
26702 *vp = v
26703 }
26704}
26705func (_ fastpathT) DecMapUint32Int64V(v map[uint32]int64, canChange bool,
26706 d *Decoder) (_ map[uint32]int64, changed bool) {
26707 dd, esep := d.d, d.hh.hasElemSeparators()
26708 containerLen := dd.ReadMapStart()
26709 if canChange && v == nil {
26710 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
26711 v = make(map[uint32]int64, xlen)
26712 changed = true
26713 }
26714 if containerLen == 0 {
26715 dd.ReadMapEnd()
26716 return v, changed
26717 }
26718 var mk uint32
26719 var mv int64
26720 hasLen := containerLen > 0
26721 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26722 if esep {
26723 dd.ReadMapElemKey()
26724 }
26725 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26726 if esep {
26727 dd.ReadMapElemValue()
26728 }
26729 if dd.TryDecodeAsNil() {
26730 if v == nil {
26731 } else if d.h.DeleteOnNilMapValue {
26732 delete(v, mk)
26733 } else {
26734 v[mk] = 0
26735 }
26736 continue
26737 }
26738 mv = dd.DecodeInt64()
26739 if v != nil {
26740 v[mk] = mv
26741 }
26742 }
26743 dd.ReadMapEnd()
26744 return v, changed
26745}
26746
26747func (d *Decoder) fastpathDecMapUint32Float32R(f *codecFnInfo, rv reflect.Value) {
26748 if rv.Kind() == reflect.Ptr {
26749 vp := rv2i(rv).(*map[uint32]float32)
26750 v, changed := fastpathTV.DecMapUint32Float32V(*vp, true, d)
26751 if changed {
26752 *vp = v
26753 }
26754 } else {
26755 fastpathTV.DecMapUint32Float32V(rv2i(rv).(map[uint32]float32), false, d)
26756 }
26757}
26758func (f fastpathT) DecMapUint32Float32X(vp *map[uint32]float32, d *Decoder) {
26759 v, changed := f.DecMapUint32Float32V(*vp, true, d)
26760 if changed {
26761 *vp = v
26762 }
26763}
26764func (_ fastpathT) DecMapUint32Float32V(v map[uint32]float32, canChange bool,
26765 d *Decoder) (_ map[uint32]float32, changed bool) {
26766 dd, esep := d.d, d.hh.hasElemSeparators()
26767 containerLen := dd.ReadMapStart()
26768 if canChange && v == nil {
26769 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
26770 v = make(map[uint32]float32, xlen)
26771 changed = true
26772 }
26773 if containerLen == 0 {
26774 dd.ReadMapEnd()
26775 return v, changed
26776 }
26777 var mk uint32
26778 var mv float32
26779 hasLen := containerLen > 0
26780 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26781 if esep {
26782 dd.ReadMapElemKey()
26783 }
26784 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26785 if esep {
26786 dd.ReadMapElemValue()
26787 }
26788 if dd.TryDecodeAsNil() {
26789 if v == nil {
26790 } else if d.h.DeleteOnNilMapValue {
26791 delete(v, mk)
26792 } else {
26793 v[mk] = 0
26794 }
26795 continue
26796 }
26797 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
26798 if v != nil {
26799 v[mk] = mv
26800 }
26801 }
26802 dd.ReadMapEnd()
26803 return v, changed
26804}
26805
26806func (d *Decoder) fastpathDecMapUint32Float64R(f *codecFnInfo, rv reflect.Value) {
26807 if rv.Kind() == reflect.Ptr {
26808 vp := rv2i(rv).(*map[uint32]float64)
26809 v, changed := fastpathTV.DecMapUint32Float64V(*vp, true, d)
26810 if changed {
26811 *vp = v
26812 }
26813 } else {
26814 fastpathTV.DecMapUint32Float64V(rv2i(rv).(map[uint32]float64), false, d)
26815 }
26816}
26817func (f fastpathT) DecMapUint32Float64X(vp *map[uint32]float64, d *Decoder) {
26818 v, changed := f.DecMapUint32Float64V(*vp, true, d)
26819 if changed {
26820 *vp = v
26821 }
26822}
26823func (_ fastpathT) DecMapUint32Float64V(v map[uint32]float64, canChange bool,
26824 d *Decoder) (_ map[uint32]float64, changed bool) {
26825 dd, esep := d.d, d.hh.hasElemSeparators()
26826 containerLen := dd.ReadMapStart()
26827 if canChange && v == nil {
26828 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
26829 v = make(map[uint32]float64, xlen)
26830 changed = true
26831 }
26832 if containerLen == 0 {
26833 dd.ReadMapEnd()
26834 return v, changed
26835 }
26836 var mk uint32
26837 var mv float64
26838 hasLen := containerLen > 0
26839 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26840 if esep {
26841 dd.ReadMapElemKey()
26842 }
26843 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26844 if esep {
26845 dd.ReadMapElemValue()
26846 }
26847 if dd.TryDecodeAsNil() {
26848 if v == nil {
26849 } else if d.h.DeleteOnNilMapValue {
26850 delete(v, mk)
26851 } else {
26852 v[mk] = 0
26853 }
26854 continue
26855 }
26856 mv = dd.DecodeFloat64()
26857 if v != nil {
26858 v[mk] = mv
26859 }
26860 }
26861 dd.ReadMapEnd()
26862 return v, changed
26863}
26864
26865func (d *Decoder) fastpathDecMapUint32BoolR(f *codecFnInfo, rv reflect.Value) {
26866 if rv.Kind() == reflect.Ptr {
26867 vp := rv2i(rv).(*map[uint32]bool)
26868 v, changed := fastpathTV.DecMapUint32BoolV(*vp, true, d)
26869 if changed {
26870 *vp = v
26871 }
26872 } else {
26873 fastpathTV.DecMapUint32BoolV(rv2i(rv).(map[uint32]bool), false, d)
26874 }
26875}
26876func (f fastpathT) DecMapUint32BoolX(vp *map[uint32]bool, d *Decoder) {
26877 v, changed := f.DecMapUint32BoolV(*vp, true, d)
26878 if changed {
26879 *vp = v
26880 }
26881}
26882func (_ fastpathT) DecMapUint32BoolV(v map[uint32]bool, canChange bool,
26883 d *Decoder) (_ map[uint32]bool, changed bool) {
26884 dd, esep := d.d, d.hh.hasElemSeparators()
26885 containerLen := dd.ReadMapStart()
26886 if canChange && v == nil {
26887 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
26888 v = make(map[uint32]bool, xlen)
26889 changed = true
26890 }
26891 if containerLen == 0 {
26892 dd.ReadMapEnd()
26893 return v, changed
26894 }
26895 var mk uint32
26896 var mv bool
26897 hasLen := containerLen > 0
26898 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26899 if esep {
26900 dd.ReadMapElemKey()
26901 }
26902 mk = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
26903 if esep {
26904 dd.ReadMapElemValue()
26905 }
26906 if dd.TryDecodeAsNil() {
26907 if v == nil {
26908 } else if d.h.DeleteOnNilMapValue {
26909 delete(v, mk)
26910 } else {
26911 v[mk] = false
26912 }
26913 continue
26914 }
26915 mv = dd.DecodeBool()
26916 if v != nil {
26917 v[mk] = mv
26918 }
26919 }
26920 dd.ReadMapEnd()
26921 return v, changed
26922}
26923
26924func (d *Decoder) fastpathDecMapUint64IntfR(f *codecFnInfo, rv reflect.Value) {
26925 if rv.Kind() == reflect.Ptr {
26926 vp := rv2i(rv).(*map[uint64]interface{})
26927 v, changed := fastpathTV.DecMapUint64IntfV(*vp, true, d)
26928 if changed {
26929 *vp = v
26930 }
26931 } else {
26932 fastpathTV.DecMapUint64IntfV(rv2i(rv).(map[uint64]interface{}), false, d)
26933 }
26934}
26935func (f fastpathT) DecMapUint64IntfX(vp *map[uint64]interface{}, d *Decoder) {
26936 v, changed := f.DecMapUint64IntfV(*vp, true, d)
26937 if changed {
26938 *vp = v
26939 }
26940}
26941func (_ fastpathT) DecMapUint64IntfV(v map[uint64]interface{}, canChange bool,
26942 d *Decoder) (_ map[uint64]interface{}, changed bool) {
26943 dd, esep := d.d, d.hh.hasElemSeparators()
26944 containerLen := dd.ReadMapStart()
26945 if canChange && v == nil {
26946 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
26947 v = make(map[uint64]interface{}, xlen)
26948 changed = true
26949 }
26950 if containerLen == 0 {
26951 dd.ReadMapEnd()
26952 return v, changed
26953 }
26954 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
26955 var mk uint64
26956 var mv interface{}
26957 hasLen := containerLen > 0
26958 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
26959 if esep {
26960 dd.ReadMapElemKey()
26961 }
26962 mk = dd.DecodeUint64()
26963 if esep {
26964 dd.ReadMapElemValue()
26965 }
26966 if dd.TryDecodeAsNil() {
26967 if v == nil {
26968 } else if d.h.DeleteOnNilMapValue {
26969 delete(v, mk)
26970 } else {
26971 v[mk] = nil
26972 }
26973 continue
26974 }
26975 if mapGet {
26976 mv = v[mk]
26977 } else {
26978 mv = nil
26979 }
26980 d.decode(&mv)
26981 if v != nil {
26982 v[mk] = mv
26983 }
26984 }
26985 dd.ReadMapEnd()
26986 return v, changed
26987}
26988
26989func (d *Decoder) fastpathDecMapUint64StringR(f *codecFnInfo, rv reflect.Value) {
26990 if rv.Kind() == reflect.Ptr {
26991 vp := rv2i(rv).(*map[uint64]string)
26992 v, changed := fastpathTV.DecMapUint64StringV(*vp, true, d)
26993 if changed {
26994 *vp = v
26995 }
26996 } else {
26997 fastpathTV.DecMapUint64StringV(rv2i(rv).(map[uint64]string), false, d)
26998 }
26999}
27000func (f fastpathT) DecMapUint64StringX(vp *map[uint64]string, d *Decoder) {
27001 v, changed := f.DecMapUint64StringV(*vp, true, d)
27002 if changed {
27003 *vp = v
27004 }
27005}
27006func (_ fastpathT) DecMapUint64StringV(v map[uint64]string, canChange bool,
27007 d *Decoder) (_ map[uint64]string, changed bool) {
27008 dd, esep := d.d, d.hh.hasElemSeparators()
27009 containerLen := dd.ReadMapStart()
27010 if canChange && v == nil {
27011 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
27012 v = make(map[uint64]string, xlen)
27013 changed = true
27014 }
27015 if containerLen == 0 {
27016 dd.ReadMapEnd()
27017 return v, changed
27018 }
27019 var mk uint64
27020 var mv string
27021 hasLen := containerLen > 0
27022 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27023 if esep {
27024 dd.ReadMapElemKey()
27025 }
27026 mk = dd.DecodeUint64()
27027 if esep {
27028 dd.ReadMapElemValue()
27029 }
27030 if dd.TryDecodeAsNil() {
27031 if v == nil {
27032 } else if d.h.DeleteOnNilMapValue {
27033 delete(v, mk)
27034 } else {
27035 v[mk] = ""
27036 }
27037 continue
27038 }
27039 mv = dd.DecodeString()
27040 if v != nil {
27041 v[mk] = mv
27042 }
27043 }
27044 dd.ReadMapEnd()
27045 return v, changed
27046}
27047
27048func (d *Decoder) fastpathDecMapUint64UintR(f *codecFnInfo, rv reflect.Value) {
27049 if rv.Kind() == reflect.Ptr {
27050 vp := rv2i(rv).(*map[uint64]uint)
27051 v, changed := fastpathTV.DecMapUint64UintV(*vp, true, d)
27052 if changed {
27053 *vp = v
27054 }
27055 } else {
27056 fastpathTV.DecMapUint64UintV(rv2i(rv).(map[uint64]uint), false, d)
27057 }
27058}
27059func (f fastpathT) DecMapUint64UintX(vp *map[uint64]uint, d *Decoder) {
27060 v, changed := f.DecMapUint64UintV(*vp, true, d)
27061 if changed {
27062 *vp = v
27063 }
27064}
27065func (_ fastpathT) DecMapUint64UintV(v map[uint64]uint, canChange bool,
27066 d *Decoder) (_ map[uint64]uint, changed bool) {
27067 dd, esep := d.d, d.hh.hasElemSeparators()
27068 containerLen := dd.ReadMapStart()
27069 if canChange && v == nil {
27070 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
27071 v = make(map[uint64]uint, xlen)
27072 changed = true
27073 }
27074 if containerLen == 0 {
27075 dd.ReadMapEnd()
27076 return v, changed
27077 }
27078 var mk uint64
27079 var mv uint
27080 hasLen := containerLen > 0
27081 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27082 if esep {
27083 dd.ReadMapElemKey()
27084 }
27085 mk = dd.DecodeUint64()
27086 if esep {
27087 dd.ReadMapElemValue()
27088 }
27089 if dd.TryDecodeAsNil() {
27090 if v == nil {
27091 } else if d.h.DeleteOnNilMapValue {
27092 delete(v, mk)
27093 } else {
27094 v[mk] = 0
27095 }
27096 continue
27097 }
27098 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
27099 if v != nil {
27100 v[mk] = mv
27101 }
27102 }
27103 dd.ReadMapEnd()
27104 return v, changed
27105}
27106
27107func (d *Decoder) fastpathDecMapUint64Uint8R(f *codecFnInfo, rv reflect.Value) {
27108 if rv.Kind() == reflect.Ptr {
27109 vp := rv2i(rv).(*map[uint64]uint8)
27110 v, changed := fastpathTV.DecMapUint64Uint8V(*vp, true, d)
27111 if changed {
27112 *vp = v
27113 }
27114 } else {
27115 fastpathTV.DecMapUint64Uint8V(rv2i(rv).(map[uint64]uint8), false, d)
27116 }
27117}
27118func (f fastpathT) DecMapUint64Uint8X(vp *map[uint64]uint8, d *Decoder) {
27119 v, changed := f.DecMapUint64Uint8V(*vp, true, d)
27120 if changed {
27121 *vp = v
27122 }
27123}
27124func (_ fastpathT) DecMapUint64Uint8V(v map[uint64]uint8, canChange bool,
27125 d *Decoder) (_ map[uint64]uint8, changed bool) {
27126 dd, esep := d.d, d.hh.hasElemSeparators()
27127 containerLen := dd.ReadMapStart()
27128 if canChange && v == nil {
27129 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
27130 v = make(map[uint64]uint8, xlen)
27131 changed = true
27132 }
27133 if containerLen == 0 {
27134 dd.ReadMapEnd()
27135 return v, changed
27136 }
27137 var mk uint64
27138 var mv uint8
27139 hasLen := containerLen > 0
27140 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27141 if esep {
27142 dd.ReadMapElemKey()
27143 }
27144 mk = dd.DecodeUint64()
27145 if esep {
27146 dd.ReadMapElemValue()
27147 }
27148 if dd.TryDecodeAsNil() {
27149 if v == nil {
27150 } else if d.h.DeleteOnNilMapValue {
27151 delete(v, mk)
27152 } else {
27153 v[mk] = 0
27154 }
27155 continue
27156 }
27157 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
27158 if v != nil {
27159 v[mk] = mv
27160 }
27161 }
27162 dd.ReadMapEnd()
27163 return v, changed
27164}
27165
27166func (d *Decoder) fastpathDecMapUint64Uint16R(f *codecFnInfo, rv reflect.Value) {
27167 if rv.Kind() == reflect.Ptr {
27168 vp := rv2i(rv).(*map[uint64]uint16)
27169 v, changed := fastpathTV.DecMapUint64Uint16V(*vp, true, d)
27170 if changed {
27171 *vp = v
27172 }
27173 } else {
27174 fastpathTV.DecMapUint64Uint16V(rv2i(rv).(map[uint64]uint16), false, d)
27175 }
27176}
27177func (f fastpathT) DecMapUint64Uint16X(vp *map[uint64]uint16, d *Decoder) {
27178 v, changed := f.DecMapUint64Uint16V(*vp, true, d)
27179 if changed {
27180 *vp = v
27181 }
27182}
27183func (_ fastpathT) DecMapUint64Uint16V(v map[uint64]uint16, canChange bool,
27184 d *Decoder) (_ map[uint64]uint16, changed bool) {
27185 dd, esep := d.d, d.hh.hasElemSeparators()
27186 containerLen := dd.ReadMapStart()
27187 if canChange && v == nil {
27188 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
27189 v = make(map[uint64]uint16, xlen)
27190 changed = true
27191 }
27192 if containerLen == 0 {
27193 dd.ReadMapEnd()
27194 return v, changed
27195 }
27196 var mk uint64
27197 var mv uint16
27198 hasLen := containerLen > 0
27199 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27200 if esep {
27201 dd.ReadMapElemKey()
27202 }
27203 mk = dd.DecodeUint64()
27204 if esep {
27205 dd.ReadMapElemValue()
27206 }
27207 if dd.TryDecodeAsNil() {
27208 if v == nil {
27209 } else if d.h.DeleteOnNilMapValue {
27210 delete(v, mk)
27211 } else {
27212 v[mk] = 0
27213 }
27214 continue
27215 }
27216 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
27217 if v != nil {
27218 v[mk] = mv
27219 }
27220 }
27221 dd.ReadMapEnd()
27222 return v, changed
27223}
27224
27225func (d *Decoder) fastpathDecMapUint64Uint32R(f *codecFnInfo, rv reflect.Value) {
27226 if rv.Kind() == reflect.Ptr {
27227 vp := rv2i(rv).(*map[uint64]uint32)
27228 v, changed := fastpathTV.DecMapUint64Uint32V(*vp, true, d)
27229 if changed {
27230 *vp = v
27231 }
27232 } else {
27233 fastpathTV.DecMapUint64Uint32V(rv2i(rv).(map[uint64]uint32), false, d)
27234 }
27235}
27236func (f fastpathT) DecMapUint64Uint32X(vp *map[uint64]uint32, d *Decoder) {
27237 v, changed := f.DecMapUint64Uint32V(*vp, true, d)
27238 if changed {
27239 *vp = v
27240 }
27241}
27242func (_ fastpathT) DecMapUint64Uint32V(v map[uint64]uint32, canChange bool,
27243 d *Decoder) (_ map[uint64]uint32, changed bool) {
27244 dd, esep := d.d, d.hh.hasElemSeparators()
27245 containerLen := dd.ReadMapStart()
27246 if canChange && v == nil {
27247 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
27248 v = make(map[uint64]uint32, xlen)
27249 changed = true
27250 }
27251 if containerLen == 0 {
27252 dd.ReadMapEnd()
27253 return v, changed
27254 }
27255 var mk uint64
27256 var mv uint32
27257 hasLen := containerLen > 0
27258 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27259 if esep {
27260 dd.ReadMapElemKey()
27261 }
27262 mk = dd.DecodeUint64()
27263 if esep {
27264 dd.ReadMapElemValue()
27265 }
27266 if dd.TryDecodeAsNil() {
27267 if v == nil {
27268 } else if d.h.DeleteOnNilMapValue {
27269 delete(v, mk)
27270 } else {
27271 v[mk] = 0
27272 }
27273 continue
27274 }
27275 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
27276 if v != nil {
27277 v[mk] = mv
27278 }
27279 }
27280 dd.ReadMapEnd()
27281 return v, changed
27282}
27283
27284func (d *Decoder) fastpathDecMapUint64Uint64R(f *codecFnInfo, rv reflect.Value) {
27285 if rv.Kind() == reflect.Ptr {
27286 vp := rv2i(rv).(*map[uint64]uint64)
27287 v, changed := fastpathTV.DecMapUint64Uint64V(*vp, true, d)
27288 if changed {
27289 *vp = v
27290 }
27291 } else {
27292 fastpathTV.DecMapUint64Uint64V(rv2i(rv).(map[uint64]uint64), false, d)
27293 }
27294}
27295func (f fastpathT) DecMapUint64Uint64X(vp *map[uint64]uint64, d *Decoder) {
27296 v, changed := f.DecMapUint64Uint64V(*vp, true, d)
27297 if changed {
27298 *vp = v
27299 }
27300}
27301func (_ fastpathT) DecMapUint64Uint64V(v map[uint64]uint64, canChange bool,
27302 d *Decoder) (_ map[uint64]uint64, changed bool) {
27303 dd, esep := d.d, d.hh.hasElemSeparators()
27304 containerLen := dd.ReadMapStart()
27305 if canChange && v == nil {
27306 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
27307 v = make(map[uint64]uint64, xlen)
27308 changed = true
27309 }
27310 if containerLen == 0 {
27311 dd.ReadMapEnd()
27312 return v, changed
27313 }
27314 var mk uint64
27315 var mv uint64
27316 hasLen := containerLen > 0
27317 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27318 if esep {
27319 dd.ReadMapElemKey()
27320 }
27321 mk = dd.DecodeUint64()
27322 if esep {
27323 dd.ReadMapElemValue()
27324 }
27325 if dd.TryDecodeAsNil() {
27326 if v == nil {
27327 } else if d.h.DeleteOnNilMapValue {
27328 delete(v, mk)
27329 } else {
27330 v[mk] = 0
27331 }
27332 continue
27333 }
27334 mv = dd.DecodeUint64()
27335 if v != nil {
27336 v[mk] = mv
27337 }
27338 }
27339 dd.ReadMapEnd()
27340 return v, changed
27341}
27342
27343func (d *Decoder) fastpathDecMapUint64UintptrR(f *codecFnInfo, rv reflect.Value) {
27344 if rv.Kind() == reflect.Ptr {
27345 vp := rv2i(rv).(*map[uint64]uintptr)
27346 v, changed := fastpathTV.DecMapUint64UintptrV(*vp, true, d)
27347 if changed {
27348 *vp = v
27349 }
27350 } else {
27351 fastpathTV.DecMapUint64UintptrV(rv2i(rv).(map[uint64]uintptr), false, d)
27352 }
27353}
27354func (f fastpathT) DecMapUint64UintptrX(vp *map[uint64]uintptr, d *Decoder) {
27355 v, changed := f.DecMapUint64UintptrV(*vp, true, d)
27356 if changed {
27357 *vp = v
27358 }
27359}
27360func (_ fastpathT) DecMapUint64UintptrV(v map[uint64]uintptr, canChange bool,
27361 d *Decoder) (_ map[uint64]uintptr, changed bool) {
27362 dd, esep := d.d, d.hh.hasElemSeparators()
27363 containerLen := dd.ReadMapStart()
27364 if canChange && v == nil {
27365 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
27366 v = make(map[uint64]uintptr, xlen)
27367 changed = true
27368 }
27369 if containerLen == 0 {
27370 dd.ReadMapEnd()
27371 return v, changed
27372 }
27373 var mk uint64
27374 var mv uintptr
27375 hasLen := containerLen > 0
27376 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27377 if esep {
27378 dd.ReadMapElemKey()
27379 }
27380 mk = dd.DecodeUint64()
27381 if esep {
27382 dd.ReadMapElemValue()
27383 }
27384 if dd.TryDecodeAsNil() {
27385 if v == nil {
27386 } else if d.h.DeleteOnNilMapValue {
27387 delete(v, mk)
27388 } else {
27389 v[mk] = 0
27390 }
27391 continue
27392 }
27393 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
27394 if v != nil {
27395 v[mk] = mv
27396 }
27397 }
27398 dd.ReadMapEnd()
27399 return v, changed
27400}
27401
27402func (d *Decoder) fastpathDecMapUint64IntR(f *codecFnInfo, rv reflect.Value) {
27403 if rv.Kind() == reflect.Ptr {
27404 vp := rv2i(rv).(*map[uint64]int)
27405 v, changed := fastpathTV.DecMapUint64IntV(*vp, true, d)
27406 if changed {
27407 *vp = v
27408 }
27409 } else {
27410 fastpathTV.DecMapUint64IntV(rv2i(rv).(map[uint64]int), false, d)
27411 }
27412}
27413func (f fastpathT) DecMapUint64IntX(vp *map[uint64]int, d *Decoder) {
27414 v, changed := f.DecMapUint64IntV(*vp, true, d)
27415 if changed {
27416 *vp = v
27417 }
27418}
27419func (_ fastpathT) DecMapUint64IntV(v map[uint64]int, canChange bool,
27420 d *Decoder) (_ map[uint64]int, changed bool) {
27421 dd, esep := d.d, d.hh.hasElemSeparators()
27422 containerLen := dd.ReadMapStart()
27423 if canChange && v == nil {
27424 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
27425 v = make(map[uint64]int, xlen)
27426 changed = true
27427 }
27428 if containerLen == 0 {
27429 dd.ReadMapEnd()
27430 return v, changed
27431 }
27432 var mk uint64
27433 var mv int
27434 hasLen := containerLen > 0
27435 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27436 if esep {
27437 dd.ReadMapElemKey()
27438 }
27439 mk = dd.DecodeUint64()
27440 if esep {
27441 dd.ReadMapElemValue()
27442 }
27443 if dd.TryDecodeAsNil() {
27444 if v == nil {
27445 } else if d.h.DeleteOnNilMapValue {
27446 delete(v, mk)
27447 } else {
27448 v[mk] = 0
27449 }
27450 continue
27451 }
27452 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
27453 if v != nil {
27454 v[mk] = mv
27455 }
27456 }
27457 dd.ReadMapEnd()
27458 return v, changed
27459}
27460
27461func (d *Decoder) fastpathDecMapUint64Int8R(f *codecFnInfo, rv reflect.Value) {
27462 if rv.Kind() == reflect.Ptr {
27463 vp := rv2i(rv).(*map[uint64]int8)
27464 v, changed := fastpathTV.DecMapUint64Int8V(*vp, true, d)
27465 if changed {
27466 *vp = v
27467 }
27468 } else {
27469 fastpathTV.DecMapUint64Int8V(rv2i(rv).(map[uint64]int8), false, d)
27470 }
27471}
27472func (f fastpathT) DecMapUint64Int8X(vp *map[uint64]int8, d *Decoder) {
27473 v, changed := f.DecMapUint64Int8V(*vp, true, d)
27474 if changed {
27475 *vp = v
27476 }
27477}
27478func (_ fastpathT) DecMapUint64Int8V(v map[uint64]int8, canChange bool,
27479 d *Decoder) (_ map[uint64]int8, changed bool) {
27480 dd, esep := d.d, d.hh.hasElemSeparators()
27481 containerLen := dd.ReadMapStart()
27482 if canChange && v == nil {
27483 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
27484 v = make(map[uint64]int8, xlen)
27485 changed = true
27486 }
27487 if containerLen == 0 {
27488 dd.ReadMapEnd()
27489 return v, changed
27490 }
27491 var mk uint64
27492 var mv int8
27493 hasLen := containerLen > 0
27494 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27495 if esep {
27496 dd.ReadMapElemKey()
27497 }
27498 mk = dd.DecodeUint64()
27499 if esep {
27500 dd.ReadMapElemValue()
27501 }
27502 if dd.TryDecodeAsNil() {
27503 if v == nil {
27504 } else if d.h.DeleteOnNilMapValue {
27505 delete(v, mk)
27506 } else {
27507 v[mk] = 0
27508 }
27509 continue
27510 }
27511 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
27512 if v != nil {
27513 v[mk] = mv
27514 }
27515 }
27516 dd.ReadMapEnd()
27517 return v, changed
27518}
27519
27520func (d *Decoder) fastpathDecMapUint64Int16R(f *codecFnInfo, rv reflect.Value) {
27521 if rv.Kind() == reflect.Ptr {
27522 vp := rv2i(rv).(*map[uint64]int16)
27523 v, changed := fastpathTV.DecMapUint64Int16V(*vp, true, d)
27524 if changed {
27525 *vp = v
27526 }
27527 } else {
27528 fastpathTV.DecMapUint64Int16V(rv2i(rv).(map[uint64]int16), false, d)
27529 }
27530}
27531func (f fastpathT) DecMapUint64Int16X(vp *map[uint64]int16, d *Decoder) {
27532 v, changed := f.DecMapUint64Int16V(*vp, true, d)
27533 if changed {
27534 *vp = v
27535 }
27536}
27537func (_ fastpathT) DecMapUint64Int16V(v map[uint64]int16, canChange bool,
27538 d *Decoder) (_ map[uint64]int16, changed bool) {
27539 dd, esep := d.d, d.hh.hasElemSeparators()
27540 containerLen := dd.ReadMapStart()
27541 if canChange && v == nil {
27542 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
27543 v = make(map[uint64]int16, xlen)
27544 changed = true
27545 }
27546 if containerLen == 0 {
27547 dd.ReadMapEnd()
27548 return v, changed
27549 }
27550 var mk uint64
27551 var mv int16
27552 hasLen := containerLen > 0
27553 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27554 if esep {
27555 dd.ReadMapElemKey()
27556 }
27557 mk = dd.DecodeUint64()
27558 if esep {
27559 dd.ReadMapElemValue()
27560 }
27561 if dd.TryDecodeAsNil() {
27562 if v == nil {
27563 } else if d.h.DeleteOnNilMapValue {
27564 delete(v, mk)
27565 } else {
27566 v[mk] = 0
27567 }
27568 continue
27569 }
27570 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
27571 if v != nil {
27572 v[mk] = mv
27573 }
27574 }
27575 dd.ReadMapEnd()
27576 return v, changed
27577}
27578
27579func (d *Decoder) fastpathDecMapUint64Int32R(f *codecFnInfo, rv reflect.Value) {
27580 if rv.Kind() == reflect.Ptr {
27581 vp := rv2i(rv).(*map[uint64]int32)
27582 v, changed := fastpathTV.DecMapUint64Int32V(*vp, true, d)
27583 if changed {
27584 *vp = v
27585 }
27586 } else {
27587 fastpathTV.DecMapUint64Int32V(rv2i(rv).(map[uint64]int32), false, d)
27588 }
27589}
27590func (f fastpathT) DecMapUint64Int32X(vp *map[uint64]int32, d *Decoder) {
27591 v, changed := f.DecMapUint64Int32V(*vp, true, d)
27592 if changed {
27593 *vp = v
27594 }
27595}
27596func (_ fastpathT) DecMapUint64Int32V(v map[uint64]int32, canChange bool,
27597 d *Decoder) (_ map[uint64]int32, changed bool) {
27598 dd, esep := d.d, d.hh.hasElemSeparators()
27599 containerLen := dd.ReadMapStart()
27600 if canChange && v == nil {
27601 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
27602 v = make(map[uint64]int32, xlen)
27603 changed = true
27604 }
27605 if containerLen == 0 {
27606 dd.ReadMapEnd()
27607 return v, changed
27608 }
27609 var mk uint64
27610 var mv int32
27611 hasLen := containerLen > 0
27612 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27613 if esep {
27614 dd.ReadMapElemKey()
27615 }
27616 mk = dd.DecodeUint64()
27617 if esep {
27618 dd.ReadMapElemValue()
27619 }
27620 if dd.TryDecodeAsNil() {
27621 if v == nil {
27622 } else if d.h.DeleteOnNilMapValue {
27623 delete(v, mk)
27624 } else {
27625 v[mk] = 0
27626 }
27627 continue
27628 }
27629 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
27630 if v != nil {
27631 v[mk] = mv
27632 }
27633 }
27634 dd.ReadMapEnd()
27635 return v, changed
27636}
27637
27638func (d *Decoder) fastpathDecMapUint64Int64R(f *codecFnInfo, rv reflect.Value) {
27639 if rv.Kind() == reflect.Ptr {
27640 vp := rv2i(rv).(*map[uint64]int64)
27641 v, changed := fastpathTV.DecMapUint64Int64V(*vp, true, d)
27642 if changed {
27643 *vp = v
27644 }
27645 } else {
27646 fastpathTV.DecMapUint64Int64V(rv2i(rv).(map[uint64]int64), false, d)
27647 }
27648}
27649func (f fastpathT) DecMapUint64Int64X(vp *map[uint64]int64, d *Decoder) {
27650 v, changed := f.DecMapUint64Int64V(*vp, true, d)
27651 if changed {
27652 *vp = v
27653 }
27654}
27655func (_ fastpathT) DecMapUint64Int64V(v map[uint64]int64, canChange bool,
27656 d *Decoder) (_ map[uint64]int64, changed bool) {
27657 dd, esep := d.d, d.hh.hasElemSeparators()
27658 containerLen := dd.ReadMapStart()
27659 if canChange && v == nil {
27660 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
27661 v = make(map[uint64]int64, xlen)
27662 changed = true
27663 }
27664 if containerLen == 0 {
27665 dd.ReadMapEnd()
27666 return v, changed
27667 }
27668 var mk uint64
27669 var mv int64
27670 hasLen := containerLen > 0
27671 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27672 if esep {
27673 dd.ReadMapElemKey()
27674 }
27675 mk = dd.DecodeUint64()
27676 if esep {
27677 dd.ReadMapElemValue()
27678 }
27679 if dd.TryDecodeAsNil() {
27680 if v == nil {
27681 } else if d.h.DeleteOnNilMapValue {
27682 delete(v, mk)
27683 } else {
27684 v[mk] = 0
27685 }
27686 continue
27687 }
27688 mv = dd.DecodeInt64()
27689 if v != nil {
27690 v[mk] = mv
27691 }
27692 }
27693 dd.ReadMapEnd()
27694 return v, changed
27695}
27696
27697func (d *Decoder) fastpathDecMapUint64Float32R(f *codecFnInfo, rv reflect.Value) {
27698 if rv.Kind() == reflect.Ptr {
27699 vp := rv2i(rv).(*map[uint64]float32)
27700 v, changed := fastpathTV.DecMapUint64Float32V(*vp, true, d)
27701 if changed {
27702 *vp = v
27703 }
27704 } else {
27705 fastpathTV.DecMapUint64Float32V(rv2i(rv).(map[uint64]float32), false, d)
27706 }
27707}
27708func (f fastpathT) DecMapUint64Float32X(vp *map[uint64]float32, d *Decoder) {
27709 v, changed := f.DecMapUint64Float32V(*vp, true, d)
27710 if changed {
27711 *vp = v
27712 }
27713}
27714func (_ fastpathT) DecMapUint64Float32V(v map[uint64]float32, canChange bool,
27715 d *Decoder) (_ map[uint64]float32, changed bool) {
27716 dd, esep := d.d, d.hh.hasElemSeparators()
27717 containerLen := dd.ReadMapStart()
27718 if canChange && v == nil {
27719 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
27720 v = make(map[uint64]float32, xlen)
27721 changed = true
27722 }
27723 if containerLen == 0 {
27724 dd.ReadMapEnd()
27725 return v, changed
27726 }
27727 var mk uint64
27728 var mv float32
27729 hasLen := containerLen > 0
27730 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27731 if esep {
27732 dd.ReadMapElemKey()
27733 }
27734 mk = dd.DecodeUint64()
27735 if esep {
27736 dd.ReadMapElemValue()
27737 }
27738 if dd.TryDecodeAsNil() {
27739 if v == nil {
27740 } else if d.h.DeleteOnNilMapValue {
27741 delete(v, mk)
27742 } else {
27743 v[mk] = 0
27744 }
27745 continue
27746 }
27747 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
27748 if v != nil {
27749 v[mk] = mv
27750 }
27751 }
27752 dd.ReadMapEnd()
27753 return v, changed
27754}
27755
27756func (d *Decoder) fastpathDecMapUint64Float64R(f *codecFnInfo, rv reflect.Value) {
27757 if rv.Kind() == reflect.Ptr {
27758 vp := rv2i(rv).(*map[uint64]float64)
27759 v, changed := fastpathTV.DecMapUint64Float64V(*vp, true, d)
27760 if changed {
27761 *vp = v
27762 }
27763 } else {
27764 fastpathTV.DecMapUint64Float64V(rv2i(rv).(map[uint64]float64), false, d)
27765 }
27766}
27767func (f fastpathT) DecMapUint64Float64X(vp *map[uint64]float64, d *Decoder) {
27768 v, changed := f.DecMapUint64Float64V(*vp, true, d)
27769 if changed {
27770 *vp = v
27771 }
27772}
27773func (_ fastpathT) DecMapUint64Float64V(v map[uint64]float64, canChange bool,
27774 d *Decoder) (_ map[uint64]float64, changed bool) {
27775 dd, esep := d.d, d.hh.hasElemSeparators()
27776 containerLen := dd.ReadMapStart()
27777 if canChange && v == nil {
27778 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
27779 v = make(map[uint64]float64, xlen)
27780 changed = true
27781 }
27782 if containerLen == 0 {
27783 dd.ReadMapEnd()
27784 return v, changed
27785 }
27786 var mk uint64
27787 var mv float64
27788 hasLen := containerLen > 0
27789 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27790 if esep {
27791 dd.ReadMapElemKey()
27792 }
27793 mk = dd.DecodeUint64()
27794 if esep {
27795 dd.ReadMapElemValue()
27796 }
27797 if dd.TryDecodeAsNil() {
27798 if v == nil {
27799 } else if d.h.DeleteOnNilMapValue {
27800 delete(v, mk)
27801 } else {
27802 v[mk] = 0
27803 }
27804 continue
27805 }
27806 mv = dd.DecodeFloat64()
27807 if v != nil {
27808 v[mk] = mv
27809 }
27810 }
27811 dd.ReadMapEnd()
27812 return v, changed
27813}
27814
27815func (d *Decoder) fastpathDecMapUint64BoolR(f *codecFnInfo, rv reflect.Value) {
27816 if rv.Kind() == reflect.Ptr {
27817 vp := rv2i(rv).(*map[uint64]bool)
27818 v, changed := fastpathTV.DecMapUint64BoolV(*vp, true, d)
27819 if changed {
27820 *vp = v
27821 }
27822 } else {
27823 fastpathTV.DecMapUint64BoolV(rv2i(rv).(map[uint64]bool), false, d)
27824 }
27825}
27826func (f fastpathT) DecMapUint64BoolX(vp *map[uint64]bool, d *Decoder) {
27827 v, changed := f.DecMapUint64BoolV(*vp, true, d)
27828 if changed {
27829 *vp = v
27830 }
27831}
27832func (_ fastpathT) DecMapUint64BoolV(v map[uint64]bool, canChange bool,
27833 d *Decoder) (_ map[uint64]bool, changed bool) {
27834 dd, esep := d.d, d.hh.hasElemSeparators()
27835 containerLen := dd.ReadMapStart()
27836 if canChange && v == nil {
27837 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
27838 v = make(map[uint64]bool, xlen)
27839 changed = true
27840 }
27841 if containerLen == 0 {
27842 dd.ReadMapEnd()
27843 return v, changed
27844 }
27845 var mk uint64
27846 var mv bool
27847 hasLen := containerLen > 0
27848 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27849 if esep {
27850 dd.ReadMapElemKey()
27851 }
27852 mk = dd.DecodeUint64()
27853 if esep {
27854 dd.ReadMapElemValue()
27855 }
27856 if dd.TryDecodeAsNil() {
27857 if v == nil {
27858 } else if d.h.DeleteOnNilMapValue {
27859 delete(v, mk)
27860 } else {
27861 v[mk] = false
27862 }
27863 continue
27864 }
27865 mv = dd.DecodeBool()
27866 if v != nil {
27867 v[mk] = mv
27868 }
27869 }
27870 dd.ReadMapEnd()
27871 return v, changed
27872}
27873
27874func (d *Decoder) fastpathDecMapUintptrIntfR(f *codecFnInfo, rv reflect.Value) {
27875 if rv.Kind() == reflect.Ptr {
27876 vp := rv2i(rv).(*map[uintptr]interface{})
27877 v, changed := fastpathTV.DecMapUintptrIntfV(*vp, true, d)
27878 if changed {
27879 *vp = v
27880 }
27881 } else {
27882 fastpathTV.DecMapUintptrIntfV(rv2i(rv).(map[uintptr]interface{}), false, d)
27883 }
27884}
27885func (f fastpathT) DecMapUintptrIntfX(vp *map[uintptr]interface{}, d *Decoder) {
27886 v, changed := f.DecMapUintptrIntfV(*vp, true, d)
27887 if changed {
27888 *vp = v
27889 }
27890}
27891func (_ fastpathT) DecMapUintptrIntfV(v map[uintptr]interface{}, canChange bool,
27892 d *Decoder) (_ map[uintptr]interface{}, changed bool) {
27893 dd, esep := d.d, d.hh.hasElemSeparators()
27894 containerLen := dd.ReadMapStart()
27895 if canChange && v == nil {
27896 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
27897 v = make(map[uintptr]interface{}, xlen)
27898 changed = true
27899 }
27900 if containerLen == 0 {
27901 dd.ReadMapEnd()
27902 return v, changed
27903 }
27904 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
27905 var mk uintptr
27906 var mv interface{}
27907 hasLen := containerLen > 0
27908 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27909 if esep {
27910 dd.ReadMapElemKey()
27911 }
27912 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
27913 if esep {
27914 dd.ReadMapElemValue()
27915 }
27916 if dd.TryDecodeAsNil() {
27917 if v == nil {
27918 } else if d.h.DeleteOnNilMapValue {
27919 delete(v, mk)
27920 } else {
27921 v[mk] = nil
27922 }
27923 continue
27924 }
27925 if mapGet {
27926 mv = v[mk]
27927 } else {
27928 mv = nil
27929 }
27930 d.decode(&mv)
27931 if v != nil {
27932 v[mk] = mv
27933 }
27934 }
27935 dd.ReadMapEnd()
27936 return v, changed
27937}
27938
27939func (d *Decoder) fastpathDecMapUintptrStringR(f *codecFnInfo, rv reflect.Value) {
27940 if rv.Kind() == reflect.Ptr {
27941 vp := rv2i(rv).(*map[uintptr]string)
27942 v, changed := fastpathTV.DecMapUintptrStringV(*vp, true, d)
27943 if changed {
27944 *vp = v
27945 }
27946 } else {
27947 fastpathTV.DecMapUintptrStringV(rv2i(rv).(map[uintptr]string), false, d)
27948 }
27949}
27950func (f fastpathT) DecMapUintptrStringX(vp *map[uintptr]string, d *Decoder) {
27951 v, changed := f.DecMapUintptrStringV(*vp, true, d)
27952 if changed {
27953 *vp = v
27954 }
27955}
27956func (_ fastpathT) DecMapUintptrStringV(v map[uintptr]string, canChange bool,
27957 d *Decoder) (_ map[uintptr]string, changed bool) {
27958 dd, esep := d.d, d.hh.hasElemSeparators()
27959 containerLen := dd.ReadMapStart()
27960 if canChange && v == nil {
27961 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
27962 v = make(map[uintptr]string, xlen)
27963 changed = true
27964 }
27965 if containerLen == 0 {
27966 dd.ReadMapEnd()
27967 return v, changed
27968 }
27969 var mk uintptr
27970 var mv string
27971 hasLen := containerLen > 0
27972 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
27973 if esep {
27974 dd.ReadMapElemKey()
27975 }
27976 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
27977 if esep {
27978 dd.ReadMapElemValue()
27979 }
27980 if dd.TryDecodeAsNil() {
27981 if v == nil {
27982 } else if d.h.DeleteOnNilMapValue {
27983 delete(v, mk)
27984 } else {
27985 v[mk] = ""
27986 }
27987 continue
27988 }
27989 mv = dd.DecodeString()
27990 if v != nil {
27991 v[mk] = mv
27992 }
27993 }
27994 dd.ReadMapEnd()
27995 return v, changed
27996}
27997
27998func (d *Decoder) fastpathDecMapUintptrUintR(f *codecFnInfo, rv reflect.Value) {
27999 if rv.Kind() == reflect.Ptr {
28000 vp := rv2i(rv).(*map[uintptr]uint)
28001 v, changed := fastpathTV.DecMapUintptrUintV(*vp, true, d)
28002 if changed {
28003 *vp = v
28004 }
28005 } else {
28006 fastpathTV.DecMapUintptrUintV(rv2i(rv).(map[uintptr]uint), false, d)
28007 }
28008}
28009func (f fastpathT) DecMapUintptrUintX(vp *map[uintptr]uint, d *Decoder) {
28010 v, changed := f.DecMapUintptrUintV(*vp, true, d)
28011 if changed {
28012 *vp = v
28013 }
28014}
28015func (_ fastpathT) DecMapUintptrUintV(v map[uintptr]uint, canChange bool,
28016 d *Decoder) (_ map[uintptr]uint, changed bool) {
28017 dd, esep := d.d, d.hh.hasElemSeparators()
28018 containerLen := dd.ReadMapStart()
28019 if canChange && v == nil {
28020 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
28021 v = make(map[uintptr]uint, xlen)
28022 changed = true
28023 }
28024 if containerLen == 0 {
28025 dd.ReadMapEnd()
28026 return v, changed
28027 }
28028 var mk uintptr
28029 var mv uint
28030 hasLen := containerLen > 0
28031 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28032 if esep {
28033 dd.ReadMapElemKey()
28034 }
28035 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28036 if esep {
28037 dd.ReadMapElemValue()
28038 }
28039 if dd.TryDecodeAsNil() {
28040 if v == nil {
28041 } else if d.h.DeleteOnNilMapValue {
28042 delete(v, mk)
28043 } else {
28044 v[mk] = 0
28045 }
28046 continue
28047 }
28048 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28049 if v != nil {
28050 v[mk] = mv
28051 }
28052 }
28053 dd.ReadMapEnd()
28054 return v, changed
28055}
28056
28057func (d *Decoder) fastpathDecMapUintptrUint8R(f *codecFnInfo, rv reflect.Value) {
28058 if rv.Kind() == reflect.Ptr {
28059 vp := rv2i(rv).(*map[uintptr]uint8)
28060 v, changed := fastpathTV.DecMapUintptrUint8V(*vp, true, d)
28061 if changed {
28062 *vp = v
28063 }
28064 } else {
28065 fastpathTV.DecMapUintptrUint8V(rv2i(rv).(map[uintptr]uint8), false, d)
28066 }
28067}
28068func (f fastpathT) DecMapUintptrUint8X(vp *map[uintptr]uint8, d *Decoder) {
28069 v, changed := f.DecMapUintptrUint8V(*vp, true, d)
28070 if changed {
28071 *vp = v
28072 }
28073}
28074func (_ fastpathT) DecMapUintptrUint8V(v map[uintptr]uint8, canChange bool,
28075 d *Decoder) (_ map[uintptr]uint8, changed bool) {
28076 dd, esep := d.d, d.hh.hasElemSeparators()
28077 containerLen := dd.ReadMapStart()
28078 if canChange && v == nil {
28079 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
28080 v = make(map[uintptr]uint8, xlen)
28081 changed = true
28082 }
28083 if containerLen == 0 {
28084 dd.ReadMapEnd()
28085 return v, changed
28086 }
28087 var mk uintptr
28088 var mv uint8
28089 hasLen := containerLen > 0
28090 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28091 if esep {
28092 dd.ReadMapElemKey()
28093 }
28094 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28095 if esep {
28096 dd.ReadMapElemValue()
28097 }
28098 if dd.TryDecodeAsNil() {
28099 if v == nil {
28100 } else if d.h.DeleteOnNilMapValue {
28101 delete(v, mk)
28102 } else {
28103 v[mk] = 0
28104 }
28105 continue
28106 }
28107 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
28108 if v != nil {
28109 v[mk] = mv
28110 }
28111 }
28112 dd.ReadMapEnd()
28113 return v, changed
28114}
28115
28116func (d *Decoder) fastpathDecMapUintptrUint16R(f *codecFnInfo, rv reflect.Value) {
28117 if rv.Kind() == reflect.Ptr {
28118 vp := rv2i(rv).(*map[uintptr]uint16)
28119 v, changed := fastpathTV.DecMapUintptrUint16V(*vp, true, d)
28120 if changed {
28121 *vp = v
28122 }
28123 } else {
28124 fastpathTV.DecMapUintptrUint16V(rv2i(rv).(map[uintptr]uint16), false, d)
28125 }
28126}
28127func (f fastpathT) DecMapUintptrUint16X(vp *map[uintptr]uint16, d *Decoder) {
28128 v, changed := f.DecMapUintptrUint16V(*vp, true, d)
28129 if changed {
28130 *vp = v
28131 }
28132}
28133func (_ fastpathT) DecMapUintptrUint16V(v map[uintptr]uint16, canChange bool,
28134 d *Decoder) (_ map[uintptr]uint16, changed bool) {
28135 dd, esep := d.d, d.hh.hasElemSeparators()
28136 containerLen := dd.ReadMapStart()
28137 if canChange && v == nil {
28138 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
28139 v = make(map[uintptr]uint16, xlen)
28140 changed = true
28141 }
28142 if containerLen == 0 {
28143 dd.ReadMapEnd()
28144 return v, changed
28145 }
28146 var mk uintptr
28147 var mv uint16
28148 hasLen := containerLen > 0
28149 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28150 if esep {
28151 dd.ReadMapElemKey()
28152 }
28153 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28154 if esep {
28155 dd.ReadMapElemValue()
28156 }
28157 if dd.TryDecodeAsNil() {
28158 if v == nil {
28159 } else if d.h.DeleteOnNilMapValue {
28160 delete(v, mk)
28161 } else {
28162 v[mk] = 0
28163 }
28164 continue
28165 }
28166 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
28167 if v != nil {
28168 v[mk] = mv
28169 }
28170 }
28171 dd.ReadMapEnd()
28172 return v, changed
28173}
28174
28175func (d *Decoder) fastpathDecMapUintptrUint32R(f *codecFnInfo, rv reflect.Value) {
28176 if rv.Kind() == reflect.Ptr {
28177 vp := rv2i(rv).(*map[uintptr]uint32)
28178 v, changed := fastpathTV.DecMapUintptrUint32V(*vp, true, d)
28179 if changed {
28180 *vp = v
28181 }
28182 } else {
28183 fastpathTV.DecMapUintptrUint32V(rv2i(rv).(map[uintptr]uint32), false, d)
28184 }
28185}
28186func (f fastpathT) DecMapUintptrUint32X(vp *map[uintptr]uint32, d *Decoder) {
28187 v, changed := f.DecMapUintptrUint32V(*vp, true, d)
28188 if changed {
28189 *vp = v
28190 }
28191}
28192func (_ fastpathT) DecMapUintptrUint32V(v map[uintptr]uint32, canChange bool,
28193 d *Decoder) (_ map[uintptr]uint32, changed bool) {
28194 dd, esep := d.d, d.hh.hasElemSeparators()
28195 containerLen := dd.ReadMapStart()
28196 if canChange && v == nil {
28197 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
28198 v = make(map[uintptr]uint32, xlen)
28199 changed = true
28200 }
28201 if containerLen == 0 {
28202 dd.ReadMapEnd()
28203 return v, changed
28204 }
28205 var mk uintptr
28206 var mv uint32
28207 hasLen := containerLen > 0
28208 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28209 if esep {
28210 dd.ReadMapElemKey()
28211 }
28212 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28213 if esep {
28214 dd.ReadMapElemValue()
28215 }
28216 if dd.TryDecodeAsNil() {
28217 if v == nil {
28218 } else if d.h.DeleteOnNilMapValue {
28219 delete(v, mk)
28220 } else {
28221 v[mk] = 0
28222 }
28223 continue
28224 }
28225 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
28226 if v != nil {
28227 v[mk] = mv
28228 }
28229 }
28230 dd.ReadMapEnd()
28231 return v, changed
28232}
28233
28234func (d *Decoder) fastpathDecMapUintptrUint64R(f *codecFnInfo, rv reflect.Value) {
28235 if rv.Kind() == reflect.Ptr {
28236 vp := rv2i(rv).(*map[uintptr]uint64)
28237 v, changed := fastpathTV.DecMapUintptrUint64V(*vp, true, d)
28238 if changed {
28239 *vp = v
28240 }
28241 } else {
28242 fastpathTV.DecMapUintptrUint64V(rv2i(rv).(map[uintptr]uint64), false, d)
28243 }
28244}
28245func (f fastpathT) DecMapUintptrUint64X(vp *map[uintptr]uint64, d *Decoder) {
28246 v, changed := f.DecMapUintptrUint64V(*vp, true, d)
28247 if changed {
28248 *vp = v
28249 }
28250}
28251func (_ fastpathT) DecMapUintptrUint64V(v map[uintptr]uint64, canChange bool,
28252 d *Decoder) (_ map[uintptr]uint64, changed bool) {
28253 dd, esep := d.d, d.hh.hasElemSeparators()
28254 containerLen := dd.ReadMapStart()
28255 if canChange && v == nil {
28256 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
28257 v = make(map[uintptr]uint64, xlen)
28258 changed = true
28259 }
28260 if containerLen == 0 {
28261 dd.ReadMapEnd()
28262 return v, changed
28263 }
28264 var mk uintptr
28265 var mv uint64
28266 hasLen := containerLen > 0
28267 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28268 if esep {
28269 dd.ReadMapElemKey()
28270 }
28271 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28272 if esep {
28273 dd.ReadMapElemValue()
28274 }
28275 if dd.TryDecodeAsNil() {
28276 if v == nil {
28277 } else if d.h.DeleteOnNilMapValue {
28278 delete(v, mk)
28279 } else {
28280 v[mk] = 0
28281 }
28282 continue
28283 }
28284 mv = dd.DecodeUint64()
28285 if v != nil {
28286 v[mk] = mv
28287 }
28288 }
28289 dd.ReadMapEnd()
28290 return v, changed
28291}
28292
28293func (d *Decoder) fastpathDecMapUintptrUintptrR(f *codecFnInfo, rv reflect.Value) {
28294 if rv.Kind() == reflect.Ptr {
28295 vp := rv2i(rv).(*map[uintptr]uintptr)
28296 v, changed := fastpathTV.DecMapUintptrUintptrV(*vp, true, d)
28297 if changed {
28298 *vp = v
28299 }
28300 } else {
28301 fastpathTV.DecMapUintptrUintptrV(rv2i(rv).(map[uintptr]uintptr), false, d)
28302 }
28303}
28304func (f fastpathT) DecMapUintptrUintptrX(vp *map[uintptr]uintptr, d *Decoder) {
28305 v, changed := f.DecMapUintptrUintptrV(*vp, true, d)
28306 if changed {
28307 *vp = v
28308 }
28309}
28310func (_ fastpathT) DecMapUintptrUintptrV(v map[uintptr]uintptr, canChange bool,
28311 d *Decoder) (_ map[uintptr]uintptr, changed bool) {
28312 dd, esep := d.d, d.hh.hasElemSeparators()
28313 containerLen := dd.ReadMapStart()
28314 if canChange && v == nil {
28315 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
28316 v = make(map[uintptr]uintptr, xlen)
28317 changed = true
28318 }
28319 if containerLen == 0 {
28320 dd.ReadMapEnd()
28321 return v, changed
28322 }
28323 var mk uintptr
28324 var mv uintptr
28325 hasLen := containerLen > 0
28326 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28327 if esep {
28328 dd.ReadMapElemKey()
28329 }
28330 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28331 if esep {
28332 dd.ReadMapElemValue()
28333 }
28334 if dd.TryDecodeAsNil() {
28335 if v == nil {
28336 } else if d.h.DeleteOnNilMapValue {
28337 delete(v, mk)
28338 } else {
28339 v[mk] = 0
28340 }
28341 continue
28342 }
28343 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28344 if v != nil {
28345 v[mk] = mv
28346 }
28347 }
28348 dd.ReadMapEnd()
28349 return v, changed
28350}
28351
28352func (d *Decoder) fastpathDecMapUintptrIntR(f *codecFnInfo, rv reflect.Value) {
28353 if rv.Kind() == reflect.Ptr {
28354 vp := rv2i(rv).(*map[uintptr]int)
28355 v, changed := fastpathTV.DecMapUintptrIntV(*vp, true, d)
28356 if changed {
28357 *vp = v
28358 }
28359 } else {
28360 fastpathTV.DecMapUintptrIntV(rv2i(rv).(map[uintptr]int), false, d)
28361 }
28362}
28363func (f fastpathT) DecMapUintptrIntX(vp *map[uintptr]int, d *Decoder) {
28364 v, changed := f.DecMapUintptrIntV(*vp, true, d)
28365 if changed {
28366 *vp = v
28367 }
28368}
28369func (_ fastpathT) DecMapUintptrIntV(v map[uintptr]int, canChange bool,
28370 d *Decoder) (_ map[uintptr]int, changed bool) {
28371 dd, esep := d.d, d.hh.hasElemSeparators()
28372 containerLen := dd.ReadMapStart()
28373 if canChange && v == nil {
28374 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
28375 v = make(map[uintptr]int, xlen)
28376 changed = true
28377 }
28378 if containerLen == 0 {
28379 dd.ReadMapEnd()
28380 return v, changed
28381 }
28382 var mk uintptr
28383 var mv int
28384 hasLen := containerLen > 0
28385 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28386 if esep {
28387 dd.ReadMapElemKey()
28388 }
28389 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28390 if esep {
28391 dd.ReadMapElemValue()
28392 }
28393 if dd.TryDecodeAsNil() {
28394 if v == nil {
28395 } else if d.h.DeleteOnNilMapValue {
28396 delete(v, mk)
28397 } else {
28398 v[mk] = 0
28399 }
28400 continue
28401 }
28402 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
28403 if v != nil {
28404 v[mk] = mv
28405 }
28406 }
28407 dd.ReadMapEnd()
28408 return v, changed
28409}
28410
28411func (d *Decoder) fastpathDecMapUintptrInt8R(f *codecFnInfo, rv reflect.Value) {
28412 if rv.Kind() == reflect.Ptr {
28413 vp := rv2i(rv).(*map[uintptr]int8)
28414 v, changed := fastpathTV.DecMapUintptrInt8V(*vp, true, d)
28415 if changed {
28416 *vp = v
28417 }
28418 } else {
28419 fastpathTV.DecMapUintptrInt8V(rv2i(rv).(map[uintptr]int8), false, d)
28420 }
28421}
28422func (f fastpathT) DecMapUintptrInt8X(vp *map[uintptr]int8, d *Decoder) {
28423 v, changed := f.DecMapUintptrInt8V(*vp, true, d)
28424 if changed {
28425 *vp = v
28426 }
28427}
28428func (_ fastpathT) DecMapUintptrInt8V(v map[uintptr]int8, canChange bool,
28429 d *Decoder) (_ map[uintptr]int8, changed bool) {
28430 dd, esep := d.d, d.hh.hasElemSeparators()
28431 containerLen := dd.ReadMapStart()
28432 if canChange && v == nil {
28433 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
28434 v = make(map[uintptr]int8, xlen)
28435 changed = true
28436 }
28437 if containerLen == 0 {
28438 dd.ReadMapEnd()
28439 return v, changed
28440 }
28441 var mk uintptr
28442 var mv int8
28443 hasLen := containerLen > 0
28444 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28445 if esep {
28446 dd.ReadMapElemKey()
28447 }
28448 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28449 if esep {
28450 dd.ReadMapElemValue()
28451 }
28452 if dd.TryDecodeAsNil() {
28453 if v == nil {
28454 } else if d.h.DeleteOnNilMapValue {
28455 delete(v, mk)
28456 } else {
28457 v[mk] = 0
28458 }
28459 continue
28460 }
28461 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
28462 if v != nil {
28463 v[mk] = mv
28464 }
28465 }
28466 dd.ReadMapEnd()
28467 return v, changed
28468}
28469
28470func (d *Decoder) fastpathDecMapUintptrInt16R(f *codecFnInfo, rv reflect.Value) {
28471 if rv.Kind() == reflect.Ptr {
28472 vp := rv2i(rv).(*map[uintptr]int16)
28473 v, changed := fastpathTV.DecMapUintptrInt16V(*vp, true, d)
28474 if changed {
28475 *vp = v
28476 }
28477 } else {
28478 fastpathTV.DecMapUintptrInt16V(rv2i(rv).(map[uintptr]int16), false, d)
28479 }
28480}
28481func (f fastpathT) DecMapUintptrInt16X(vp *map[uintptr]int16, d *Decoder) {
28482 v, changed := f.DecMapUintptrInt16V(*vp, true, d)
28483 if changed {
28484 *vp = v
28485 }
28486}
28487func (_ fastpathT) DecMapUintptrInt16V(v map[uintptr]int16, canChange bool,
28488 d *Decoder) (_ map[uintptr]int16, changed bool) {
28489 dd, esep := d.d, d.hh.hasElemSeparators()
28490 containerLen := dd.ReadMapStart()
28491 if canChange && v == nil {
28492 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
28493 v = make(map[uintptr]int16, xlen)
28494 changed = true
28495 }
28496 if containerLen == 0 {
28497 dd.ReadMapEnd()
28498 return v, changed
28499 }
28500 var mk uintptr
28501 var mv int16
28502 hasLen := containerLen > 0
28503 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28504 if esep {
28505 dd.ReadMapElemKey()
28506 }
28507 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28508 if esep {
28509 dd.ReadMapElemValue()
28510 }
28511 if dd.TryDecodeAsNil() {
28512 if v == nil {
28513 } else if d.h.DeleteOnNilMapValue {
28514 delete(v, mk)
28515 } else {
28516 v[mk] = 0
28517 }
28518 continue
28519 }
28520 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
28521 if v != nil {
28522 v[mk] = mv
28523 }
28524 }
28525 dd.ReadMapEnd()
28526 return v, changed
28527}
28528
28529func (d *Decoder) fastpathDecMapUintptrInt32R(f *codecFnInfo, rv reflect.Value) {
28530 if rv.Kind() == reflect.Ptr {
28531 vp := rv2i(rv).(*map[uintptr]int32)
28532 v, changed := fastpathTV.DecMapUintptrInt32V(*vp, true, d)
28533 if changed {
28534 *vp = v
28535 }
28536 } else {
28537 fastpathTV.DecMapUintptrInt32V(rv2i(rv).(map[uintptr]int32), false, d)
28538 }
28539}
28540func (f fastpathT) DecMapUintptrInt32X(vp *map[uintptr]int32, d *Decoder) {
28541 v, changed := f.DecMapUintptrInt32V(*vp, true, d)
28542 if changed {
28543 *vp = v
28544 }
28545}
28546func (_ fastpathT) DecMapUintptrInt32V(v map[uintptr]int32, canChange bool,
28547 d *Decoder) (_ map[uintptr]int32, changed bool) {
28548 dd, esep := d.d, d.hh.hasElemSeparators()
28549 containerLen := dd.ReadMapStart()
28550 if canChange && v == nil {
28551 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
28552 v = make(map[uintptr]int32, xlen)
28553 changed = true
28554 }
28555 if containerLen == 0 {
28556 dd.ReadMapEnd()
28557 return v, changed
28558 }
28559 var mk uintptr
28560 var mv int32
28561 hasLen := containerLen > 0
28562 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28563 if esep {
28564 dd.ReadMapElemKey()
28565 }
28566 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28567 if esep {
28568 dd.ReadMapElemValue()
28569 }
28570 if dd.TryDecodeAsNil() {
28571 if v == nil {
28572 } else if d.h.DeleteOnNilMapValue {
28573 delete(v, mk)
28574 } else {
28575 v[mk] = 0
28576 }
28577 continue
28578 }
28579 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
28580 if v != nil {
28581 v[mk] = mv
28582 }
28583 }
28584 dd.ReadMapEnd()
28585 return v, changed
28586}
28587
28588func (d *Decoder) fastpathDecMapUintptrInt64R(f *codecFnInfo, rv reflect.Value) {
28589 if rv.Kind() == reflect.Ptr {
28590 vp := rv2i(rv).(*map[uintptr]int64)
28591 v, changed := fastpathTV.DecMapUintptrInt64V(*vp, true, d)
28592 if changed {
28593 *vp = v
28594 }
28595 } else {
28596 fastpathTV.DecMapUintptrInt64V(rv2i(rv).(map[uintptr]int64), false, d)
28597 }
28598}
28599func (f fastpathT) DecMapUintptrInt64X(vp *map[uintptr]int64, d *Decoder) {
28600 v, changed := f.DecMapUintptrInt64V(*vp, true, d)
28601 if changed {
28602 *vp = v
28603 }
28604}
28605func (_ fastpathT) DecMapUintptrInt64V(v map[uintptr]int64, canChange bool,
28606 d *Decoder) (_ map[uintptr]int64, changed bool) {
28607 dd, esep := d.d, d.hh.hasElemSeparators()
28608 containerLen := dd.ReadMapStart()
28609 if canChange && v == nil {
28610 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
28611 v = make(map[uintptr]int64, xlen)
28612 changed = true
28613 }
28614 if containerLen == 0 {
28615 dd.ReadMapEnd()
28616 return v, changed
28617 }
28618 var mk uintptr
28619 var mv int64
28620 hasLen := containerLen > 0
28621 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28622 if esep {
28623 dd.ReadMapElemKey()
28624 }
28625 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28626 if esep {
28627 dd.ReadMapElemValue()
28628 }
28629 if dd.TryDecodeAsNil() {
28630 if v == nil {
28631 } else if d.h.DeleteOnNilMapValue {
28632 delete(v, mk)
28633 } else {
28634 v[mk] = 0
28635 }
28636 continue
28637 }
28638 mv = dd.DecodeInt64()
28639 if v != nil {
28640 v[mk] = mv
28641 }
28642 }
28643 dd.ReadMapEnd()
28644 return v, changed
28645}
28646
28647func (d *Decoder) fastpathDecMapUintptrFloat32R(f *codecFnInfo, rv reflect.Value) {
28648 if rv.Kind() == reflect.Ptr {
28649 vp := rv2i(rv).(*map[uintptr]float32)
28650 v, changed := fastpathTV.DecMapUintptrFloat32V(*vp, true, d)
28651 if changed {
28652 *vp = v
28653 }
28654 } else {
28655 fastpathTV.DecMapUintptrFloat32V(rv2i(rv).(map[uintptr]float32), false, d)
28656 }
28657}
28658func (f fastpathT) DecMapUintptrFloat32X(vp *map[uintptr]float32, d *Decoder) {
28659 v, changed := f.DecMapUintptrFloat32V(*vp, true, d)
28660 if changed {
28661 *vp = v
28662 }
28663}
28664func (_ fastpathT) DecMapUintptrFloat32V(v map[uintptr]float32, canChange bool,
28665 d *Decoder) (_ map[uintptr]float32, changed bool) {
28666 dd, esep := d.d, d.hh.hasElemSeparators()
28667 containerLen := dd.ReadMapStart()
28668 if canChange && v == nil {
28669 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
28670 v = make(map[uintptr]float32, xlen)
28671 changed = true
28672 }
28673 if containerLen == 0 {
28674 dd.ReadMapEnd()
28675 return v, changed
28676 }
28677 var mk uintptr
28678 var mv float32
28679 hasLen := containerLen > 0
28680 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28681 if esep {
28682 dd.ReadMapElemKey()
28683 }
28684 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28685 if esep {
28686 dd.ReadMapElemValue()
28687 }
28688 if dd.TryDecodeAsNil() {
28689 if v == nil {
28690 } else if d.h.DeleteOnNilMapValue {
28691 delete(v, mk)
28692 } else {
28693 v[mk] = 0
28694 }
28695 continue
28696 }
28697 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
28698 if v != nil {
28699 v[mk] = mv
28700 }
28701 }
28702 dd.ReadMapEnd()
28703 return v, changed
28704}
28705
28706func (d *Decoder) fastpathDecMapUintptrFloat64R(f *codecFnInfo, rv reflect.Value) {
28707 if rv.Kind() == reflect.Ptr {
28708 vp := rv2i(rv).(*map[uintptr]float64)
28709 v, changed := fastpathTV.DecMapUintptrFloat64V(*vp, true, d)
28710 if changed {
28711 *vp = v
28712 }
28713 } else {
28714 fastpathTV.DecMapUintptrFloat64V(rv2i(rv).(map[uintptr]float64), false, d)
28715 }
28716}
28717func (f fastpathT) DecMapUintptrFloat64X(vp *map[uintptr]float64, d *Decoder) {
28718 v, changed := f.DecMapUintptrFloat64V(*vp, true, d)
28719 if changed {
28720 *vp = v
28721 }
28722}
28723func (_ fastpathT) DecMapUintptrFloat64V(v map[uintptr]float64, canChange bool,
28724 d *Decoder) (_ map[uintptr]float64, changed bool) {
28725 dd, esep := d.d, d.hh.hasElemSeparators()
28726 containerLen := dd.ReadMapStart()
28727 if canChange && v == nil {
28728 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
28729 v = make(map[uintptr]float64, xlen)
28730 changed = true
28731 }
28732 if containerLen == 0 {
28733 dd.ReadMapEnd()
28734 return v, changed
28735 }
28736 var mk uintptr
28737 var mv float64
28738 hasLen := containerLen > 0
28739 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28740 if esep {
28741 dd.ReadMapElemKey()
28742 }
28743 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28744 if esep {
28745 dd.ReadMapElemValue()
28746 }
28747 if dd.TryDecodeAsNil() {
28748 if v == nil {
28749 } else if d.h.DeleteOnNilMapValue {
28750 delete(v, mk)
28751 } else {
28752 v[mk] = 0
28753 }
28754 continue
28755 }
28756 mv = dd.DecodeFloat64()
28757 if v != nil {
28758 v[mk] = mv
28759 }
28760 }
28761 dd.ReadMapEnd()
28762 return v, changed
28763}
28764
28765func (d *Decoder) fastpathDecMapUintptrBoolR(f *codecFnInfo, rv reflect.Value) {
28766 if rv.Kind() == reflect.Ptr {
28767 vp := rv2i(rv).(*map[uintptr]bool)
28768 v, changed := fastpathTV.DecMapUintptrBoolV(*vp, true, d)
28769 if changed {
28770 *vp = v
28771 }
28772 } else {
28773 fastpathTV.DecMapUintptrBoolV(rv2i(rv).(map[uintptr]bool), false, d)
28774 }
28775}
28776func (f fastpathT) DecMapUintptrBoolX(vp *map[uintptr]bool, d *Decoder) {
28777 v, changed := f.DecMapUintptrBoolV(*vp, true, d)
28778 if changed {
28779 *vp = v
28780 }
28781}
28782func (_ fastpathT) DecMapUintptrBoolV(v map[uintptr]bool, canChange bool,
28783 d *Decoder) (_ map[uintptr]bool, changed bool) {
28784 dd, esep := d.d, d.hh.hasElemSeparators()
28785 containerLen := dd.ReadMapStart()
28786 if canChange && v == nil {
28787 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
28788 v = make(map[uintptr]bool, xlen)
28789 changed = true
28790 }
28791 if containerLen == 0 {
28792 dd.ReadMapEnd()
28793 return v, changed
28794 }
28795 var mk uintptr
28796 var mv bool
28797 hasLen := containerLen > 0
28798 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28799 if esep {
28800 dd.ReadMapElemKey()
28801 }
28802 mk = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28803 if esep {
28804 dd.ReadMapElemValue()
28805 }
28806 if dd.TryDecodeAsNil() {
28807 if v == nil {
28808 } else if d.h.DeleteOnNilMapValue {
28809 delete(v, mk)
28810 } else {
28811 v[mk] = false
28812 }
28813 continue
28814 }
28815 mv = dd.DecodeBool()
28816 if v != nil {
28817 v[mk] = mv
28818 }
28819 }
28820 dd.ReadMapEnd()
28821 return v, changed
28822}
28823
28824func (d *Decoder) fastpathDecMapIntIntfR(f *codecFnInfo, rv reflect.Value) {
28825 if rv.Kind() == reflect.Ptr {
28826 vp := rv2i(rv).(*map[int]interface{})
28827 v, changed := fastpathTV.DecMapIntIntfV(*vp, true, d)
28828 if changed {
28829 *vp = v
28830 }
28831 } else {
28832 fastpathTV.DecMapIntIntfV(rv2i(rv).(map[int]interface{}), false, d)
28833 }
28834}
28835func (f fastpathT) DecMapIntIntfX(vp *map[int]interface{}, d *Decoder) {
28836 v, changed := f.DecMapIntIntfV(*vp, true, d)
28837 if changed {
28838 *vp = v
28839 }
28840}
28841func (_ fastpathT) DecMapIntIntfV(v map[int]interface{}, canChange bool,
28842 d *Decoder) (_ map[int]interface{}, changed bool) {
28843 dd, esep := d.d, d.hh.hasElemSeparators()
28844 containerLen := dd.ReadMapStart()
28845 if canChange && v == nil {
28846 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
28847 v = make(map[int]interface{}, xlen)
28848 changed = true
28849 }
28850 if containerLen == 0 {
28851 dd.ReadMapEnd()
28852 return v, changed
28853 }
28854 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
28855 var mk int
28856 var mv interface{}
28857 hasLen := containerLen > 0
28858 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28859 if esep {
28860 dd.ReadMapElemKey()
28861 }
28862 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
28863 if esep {
28864 dd.ReadMapElemValue()
28865 }
28866 if dd.TryDecodeAsNil() {
28867 if v == nil {
28868 } else if d.h.DeleteOnNilMapValue {
28869 delete(v, mk)
28870 } else {
28871 v[mk] = nil
28872 }
28873 continue
28874 }
28875 if mapGet {
28876 mv = v[mk]
28877 } else {
28878 mv = nil
28879 }
28880 d.decode(&mv)
28881 if v != nil {
28882 v[mk] = mv
28883 }
28884 }
28885 dd.ReadMapEnd()
28886 return v, changed
28887}
28888
28889func (d *Decoder) fastpathDecMapIntStringR(f *codecFnInfo, rv reflect.Value) {
28890 if rv.Kind() == reflect.Ptr {
28891 vp := rv2i(rv).(*map[int]string)
28892 v, changed := fastpathTV.DecMapIntStringV(*vp, true, d)
28893 if changed {
28894 *vp = v
28895 }
28896 } else {
28897 fastpathTV.DecMapIntStringV(rv2i(rv).(map[int]string), false, d)
28898 }
28899}
28900func (f fastpathT) DecMapIntStringX(vp *map[int]string, d *Decoder) {
28901 v, changed := f.DecMapIntStringV(*vp, true, d)
28902 if changed {
28903 *vp = v
28904 }
28905}
28906func (_ fastpathT) DecMapIntStringV(v map[int]string, canChange bool,
28907 d *Decoder) (_ map[int]string, changed bool) {
28908 dd, esep := d.d, d.hh.hasElemSeparators()
28909 containerLen := dd.ReadMapStart()
28910 if canChange && v == nil {
28911 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
28912 v = make(map[int]string, xlen)
28913 changed = true
28914 }
28915 if containerLen == 0 {
28916 dd.ReadMapEnd()
28917 return v, changed
28918 }
28919 var mk int
28920 var mv string
28921 hasLen := containerLen > 0
28922 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28923 if esep {
28924 dd.ReadMapElemKey()
28925 }
28926 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
28927 if esep {
28928 dd.ReadMapElemValue()
28929 }
28930 if dd.TryDecodeAsNil() {
28931 if v == nil {
28932 } else if d.h.DeleteOnNilMapValue {
28933 delete(v, mk)
28934 } else {
28935 v[mk] = ""
28936 }
28937 continue
28938 }
28939 mv = dd.DecodeString()
28940 if v != nil {
28941 v[mk] = mv
28942 }
28943 }
28944 dd.ReadMapEnd()
28945 return v, changed
28946}
28947
28948func (d *Decoder) fastpathDecMapIntUintR(f *codecFnInfo, rv reflect.Value) {
28949 if rv.Kind() == reflect.Ptr {
28950 vp := rv2i(rv).(*map[int]uint)
28951 v, changed := fastpathTV.DecMapIntUintV(*vp, true, d)
28952 if changed {
28953 *vp = v
28954 }
28955 } else {
28956 fastpathTV.DecMapIntUintV(rv2i(rv).(map[int]uint), false, d)
28957 }
28958}
28959func (f fastpathT) DecMapIntUintX(vp *map[int]uint, d *Decoder) {
28960 v, changed := f.DecMapIntUintV(*vp, true, d)
28961 if changed {
28962 *vp = v
28963 }
28964}
28965func (_ fastpathT) DecMapIntUintV(v map[int]uint, canChange bool,
28966 d *Decoder) (_ map[int]uint, changed bool) {
28967 dd, esep := d.d, d.hh.hasElemSeparators()
28968 containerLen := dd.ReadMapStart()
28969 if canChange && v == nil {
28970 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
28971 v = make(map[int]uint, xlen)
28972 changed = true
28973 }
28974 if containerLen == 0 {
28975 dd.ReadMapEnd()
28976 return v, changed
28977 }
28978 var mk int
28979 var mv uint
28980 hasLen := containerLen > 0
28981 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
28982 if esep {
28983 dd.ReadMapElemKey()
28984 }
28985 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
28986 if esep {
28987 dd.ReadMapElemValue()
28988 }
28989 if dd.TryDecodeAsNil() {
28990 if v == nil {
28991 } else if d.h.DeleteOnNilMapValue {
28992 delete(v, mk)
28993 } else {
28994 v[mk] = 0
28995 }
28996 continue
28997 }
28998 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
28999 if v != nil {
29000 v[mk] = mv
29001 }
29002 }
29003 dd.ReadMapEnd()
29004 return v, changed
29005}
29006
29007func (d *Decoder) fastpathDecMapIntUint8R(f *codecFnInfo, rv reflect.Value) {
29008 if rv.Kind() == reflect.Ptr {
29009 vp := rv2i(rv).(*map[int]uint8)
29010 v, changed := fastpathTV.DecMapIntUint8V(*vp, true, d)
29011 if changed {
29012 *vp = v
29013 }
29014 } else {
29015 fastpathTV.DecMapIntUint8V(rv2i(rv).(map[int]uint8), false, d)
29016 }
29017}
29018func (f fastpathT) DecMapIntUint8X(vp *map[int]uint8, d *Decoder) {
29019 v, changed := f.DecMapIntUint8V(*vp, true, d)
29020 if changed {
29021 *vp = v
29022 }
29023}
29024func (_ fastpathT) DecMapIntUint8V(v map[int]uint8, canChange bool,
29025 d *Decoder) (_ map[int]uint8, changed bool) {
29026 dd, esep := d.d, d.hh.hasElemSeparators()
29027 containerLen := dd.ReadMapStart()
29028 if canChange && v == nil {
29029 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
29030 v = make(map[int]uint8, xlen)
29031 changed = true
29032 }
29033 if containerLen == 0 {
29034 dd.ReadMapEnd()
29035 return v, changed
29036 }
29037 var mk int
29038 var mv uint8
29039 hasLen := containerLen > 0
29040 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29041 if esep {
29042 dd.ReadMapElemKey()
29043 }
29044 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29045 if esep {
29046 dd.ReadMapElemValue()
29047 }
29048 if dd.TryDecodeAsNil() {
29049 if v == nil {
29050 } else if d.h.DeleteOnNilMapValue {
29051 delete(v, mk)
29052 } else {
29053 v[mk] = 0
29054 }
29055 continue
29056 }
29057 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
29058 if v != nil {
29059 v[mk] = mv
29060 }
29061 }
29062 dd.ReadMapEnd()
29063 return v, changed
29064}
29065
29066func (d *Decoder) fastpathDecMapIntUint16R(f *codecFnInfo, rv reflect.Value) {
29067 if rv.Kind() == reflect.Ptr {
29068 vp := rv2i(rv).(*map[int]uint16)
29069 v, changed := fastpathTV.DecMapIntUint16V(*vp, true, d)
29070 if changed {
29071 *vp = v
29072 }
29073 } else {
29074 fastpathTV.DecMapIntUint16V(rv2i(rv).(map[int]uint16), false, d)
29075 }
29076}
29077func (f fastpathT) DecMapIntUint16X(vp *map[int]uint16, d *Decoder) {
29078 v, changed := f.DecMapIntUint16V(*vp, true, d)
29079 if changed {
29080 *vp = v
29081 }
29082}
29083func (_ fastpathT) DecMapIntUint16V(v map[int]uint16, canChange bool,
29084 d *Decoder) (_ map[int]uint16, changed bool) {
29085 dd, esep := d.d, d.hh.hasElemSeparators()
29086 containerLen := dd.ReadMapStart()
29087 if canChange && v == nil {
29088 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
29089 v = make(map[int]uint16, xlen)
29090 changed = true
29091 }
29092 if containerLen == 0 {
29093 dd.ReadMapEnd()
29094 return v, changed
29095 }
29096 var mk int
29097 var mv uint16
29098 hasLen := containerLen > 0
29099 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29100 if esep {
29101 dd.ReadMapElemKey()
29102 }
29103 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29104 if esep {
29105 dd.ReadMapElemValue()
29106 }
29107 if dd.TryDecodeAsNil() {
29108 if v == nil {
29109 } else if d.h.DeleteOnNilMapValue {
29110 delete(v, mk)
29111 } else {
29112 v[mk] = 0
29113 }
29114 continue
29115 }
29116 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
29117 if v != nil {
29118 v[mk] = mv
29119 }
29120 }
29121 dd.ReadMapEnd()
29122 return v, changed
29123}
29124
29125func (d *Decoder) fastpathDecMapIntUint32R(f *codecFnInfo, rv reflect.Value) {
29126 if rv.Kind() == reflect.Ptr {
29127 vp := rv2i(rv).(*map[int]uint32)
29128 v, changed := fastpathTV.DecMapIntUint32V(*vp, true, d)
29129 if changed {
29130 *vp = v
29131 }
29132 } else {
29133 fastpathTV.DecMapIntUint32V(rv2i(rv).(map[int]uint32), false, d)
29134 }
29135}
29136func (f fastpathT) DecMapIntUint32X(vp *map[int]uint32, d *Decoder) {
29137 v, changed := f.DecMapIntUint32V(*vp, true, d)
29138 if changed {
29139 *vp = v
29140 }
29141}
29142func (_ fastpathT) DecMapIntUint32V(v map[int]uint32, canChange bool,
29143 d *Decoder) (_ map[int]uint32, changed bool) {
29144 dd, esep := d.d, d.hh.hasElemSeparators()
29145 containerLen := dd.ReadMapStart()
29146 if canChange && v == nil {
29147 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
29148 v = make(map[int]uint32, xlen)
29149 changed = true
29150 }
29151 if containerLen == 0 {
29152 dd.ReadMapEnd()
29153 return v, changed
29154 }
29155 var mk int
29156 var mv uint32
29157 hasLen := containerLen > 0
29158 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29159 if esep {
29160 dd.ReadMapElemKey()
29161 }
29162 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29163 if esep {
29164 dd.ReadMapElemValue()
29165 }
29166 if dd.TryDecodeAsNil() {
29167 if v == nil {
29168 } else if d.h.DeleteOnNilMapValue {
29169 delete(v, mk)
29170 } else {
29171 v[mk] = 0
29172 }
29173 continue
29174 }
29175 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
29176 if v != nil {
29177 v[mk] = mv
29178 }
29179 }
29180 dd.ReadMapEnd()
29181 return v, changed
29182}
29183
29184func (d *Decoder) fastpathDecMapIntUint64R(f *codecFnInfo, rv reflect.Value) {
29185 if rv.Kind() == reflect.Ptr {
29186 vp := rv2i(rv).(*map[int]uint64)
29187 v, changed := fastpathTV.DecMapIntUint64V(*vp, true, d)
29188 if changed {
29189 *vp = v
29190 }
29191 } else {
29192 fastpathTV.DecMapIntUint64V(rv2i(rv).(map[int]uint64), false, d)
29193 }
29194}
29195func (f fastpathT) DecMapIntUint64X(vp *map[int]uint64, d *Decoder) {
29196 v, changed := f.DecMapIntUint64V(*vp, true, d)
29197 if changed {
29198 *vp = v
29199 }
29200}
29201func (_ fastpathT) DecMapIntUint64V(v map[int]uint64, canChange bool,
29202 d *Decoder) (_ map[int]uint64, changed bool) {
29203 dd, esep := d.d, d.hh.hasElemSeparators()
29204 containerLen := dd.ReadMapStart()
29205 if canChange && v == nil {
29206 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
29207 v = make(map[int]uint64, xlen)
29208 changed = true
29209 }
29210 if containerLen == 0 {
29211 dd.ReadMapEnd()
29212 return v, changed
29213 }
29214 var mk int
29215 var mv uint64
29216 hasLen := containerLen > 0
29217 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29218 if esep {
29219 dd.ReadMapElemKey()
29220 }
29221 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29222 if esep {
29223 dd.ReadMapElemValue()
29224 }
29225 if dd.TryDecodeAsNil() {
29226 if v == nil {
29227 } else if d.h.DeleteOnNilMapValue {
29228 delete(v, mk)
29229 } else {
29230 v[mk] = 0
29231 }
29232 continue
29233 }
29234 mv = dd.DecodeUint64()
29235 if v != nil {
29236 v[mk] = mv
29237 }
29238 }
29239 dd.ReadMapEnd()
29240 return v, changed
29241}
29242
29243func (d *Decoder) fastpathDecMapIntUintptrR(f *codecFnInfo, rv reflect.Value) {
29244 if rv.Kind() == reflect.Ptr {
29245 vp := rv2i(rv).(*map[int]uintptr)
29246 v, changed := fastpathTV.DecMapIntUintptrV(*vp, true, d)
29247 if changed {
29248 *vp = v
29249 }
29250 } else {
29251 fastpathTV.DecMapIntUintptrV(rv2i(rv).(map[int]uintptr), false, d)
29252 }
29253}
29254func (f fastpathT) DecMapIntUintptrX(vp *map[int]uintptr, d *Decoder) {
29255 v, changed := f.DecMapIntUintptrV(*vp, true, d)
29256 if changed {
29257 *vp = v
29258 }
29259}
29260func (_ fastpathT) DecMapIntUintptrV(v map[int]uintptr, canChange bool,
29261 d *Decoder) (_ map[int]uintptr, changed bool) {
29262 dd, esep := d.d, d.hh.hasElemSeparators()
29263 containerLen := dd.ReadMapStart()
29264 if canChange && v == nil {
29265 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
29266 v = make(map[int]uintptr, xlen)
29267 changed = true
29268 }
29269 if containerLen == 0 {
29270 dd.ReadMapEnd()
29271 return v, changed
29272 }
29273 var mk int
29274 var mv uintptr
29275 hasLen := containerLen > 0
29276 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29277 if esep {
29278 dd.ReadMapElemKey()
29279 }
29280 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29281 if esep {
29282 dd.ReadMapElemValue()
29283 }
29284 if dd.TryDecodeAsNil() {
29285 if v == nil {
29286 } else if d.h.DeleteOnNilMapValue {
29287 delete(v, mk)
29288 } else {
29289 v[mk] = 0
29290 }
29291 continue
29292 }
29293 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
29294 if v != nil {
29295 v[mk] = mv
29296 }
29297 }
29298 dd.ReadMapEnd()
29299 return v, changed
29300}
29301
29302func (d *Decoder) fastpathDecMapIntIntR(f *codecFnInfo, rv reflect.Value) {
29303 if rv.Kind() == reflect.Ptr {
29304 vp := rv2i(rv).(*map[int]int)
29305 v, changed := fastpathTV.DecMapIntIntV(*vp, true, d)
29306 if changed {
29307 *vp = v
29308 }
29309 } else {
29310 fastpathTV.DecMapIntIntV(rv2i(rv).(map[int]int), false, d)
29311 }
29312}
29313func (f fastpathT) DecMapIntIntX(vp *map[int]int, d *Decoder) {
29314 v, changed := f.DecMapIntIntV(*vp, true, d)
29315 if changed {
29316 *vp = v
29317 }
29318}
29319func (_ fastpathT) DecMapIntIntV(v map[int]int, canChange bool,
29320 d *Decoder) (_ map[int]int, changed bool) {
29321 dd, esep := d.d, d.hh.hasElemSeparators()
29322 containerLen := dd.ReadMapStart()
29323 if canChange && v == nil {
29324 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
29325 v = make(map[int]int, xlen)
29326 changed = true
29327 }
29328 if containerLen == 0 {
29329 dd.ReadMapEnd()
29330 return v, changed
29331 }
29332 var mk int
29333 var mv int
29334 hasLen := containerLen > 0
29335 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29336 if esep {
29337 dd.ReadMapElemKey()
29338 }
29339 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29340 if esep {
29341 dd.ReadMapElemValue()
29342 }
29343 if dd.TryDecodeAsNil() {
29344 if v == nil {
29345 } else if d.h.DeleteOnNilMapValue {
29346 delete(v, mk)
29347 } else {
29348 v[mk] = 0
29349 }
29350 continue
29351 }
29352 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29353 if v != nil {
29354 v[mk] = mv
29355 }
29356 }
29357 dd.ReadMapEnd()
29358 return v, changed
29359}
29360
29361func (d *Decoder) fastpathDecMapIntInt8R(f *codecFnInfo, rv reflect.Value) {
29362 if rv.Kind() == reflect.Ptr {
29363 vp := rv2i(rv).(*map[int]int8)
29364 v, changed := fastpathTV.DecMapIntInt8V(*vp, true, d)
29365 if changed {
29366 *vp = v
29367 }
29368 } else {
29369 fastpathTV.DecMapIntInt8V(rv2i(rv).(map[int]int8), false, d)
29370 }
29371}
29372func (f fastpathT) DecMapIntInt8X(vp *map[int]int8, d *Decoder) {
29373 v, changed := f.DecMapIntInt8V(*vp, true, d)
29374 if changed {
29375 *vp = v
29376 }
29377}
29378func (_ fastpathT) DecMapIntInt8V(v map[int]int8, canChange bool,
29379 d *Decoder) (_ map[int]int8, changed bool) {
29380 dd, esep := d.d, d.hh.hasElemSeparators()
29381 containerLen := dd.ReadMapStart()
29382 if canChange && v == nil {
29383 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
29384 v = make(map[int]int8, xlen)
29385 changed = true
29386 }
29387 if containerLen == 0 {
29388 dd.ReadMapEnd()
29389 return v, changed
29390 }
29391 var mk int
29392 var mv int8
29393 hasLen := containerLen > 0
29394 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29395 if esep {
29396 dd.ReadMapElemKey()
29397 }
29398 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29399 if esep {
29400 dd.ReadMapElemValue()
29401 }
29402 if dd.TryDecodeAsNil() {
29403 if v == nil {
29404 } else if d.h.DeleteOnNilMapValue {
29405 delete(v, mk)
29406 } else {
29407 v[mk] = 0
29408 }
29409 continue
29410 }
29411 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
29412 if v != nil {
29413 v[mk] = mv
29414 }
29415 }
29416 dd.ReadMapEnd()
29417 return v, changed
29418}
29419
29420func (d *Decoder) fastpathDecMapIntInt16R(f *codecFnInfo, rv reflect.Value) {
29421 if rv.Kind() == reflect.Ptr {
29422 vp := rv2i(rv).(*map[int]int16)
29423 v, changed := fastpathTV.DecMapIntInt16V(*vp, true, d)
29424 if changed {
29425 *vp = v
29426 }
29427 } else {
29428 fastpathTV.DecMapIntInt16V(rv2i(rv).(map[int]int16), false, d)
29429 }
29430}
29431func (f fastpathT) DecMapIntInt16X(vp *map[int]int16, d *Decoder) {
29432 v, changed := f.DecMapIntInt16V(*vp, true, d)
29433 if changed {
29434 *vp = v
29435 }
29436}
29437func (_ fastpathT) DecMapIntInt16V(v map[int]int16, canChange bool,
29438 d *Decoder) (_ map[int]int16, changed bool) {
29439 dd, esep := d.d, d.hh.hasElemSeparators()
29440 containerLen := dd.ReadMapStart()
29441 if canChange && v == nil {
29442 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
29443 v = make(map[int]int16, xlen)
29444 changed = true
29445 }
29446 if containerLen == 0 {
29447 dd.ReadMapEnd()
29448 return v, changed
29449 }
29450 var mk int
29451 var mv int16
29452 hasLen := containerLen > 0
29453 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29454 if esep {
29455 dd.ReadMapElemKey()
29456 }
29457 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29458 if esep {
29459 dd.ReadMapElemValue()
29460 }
29461 if dd.TryDecodeAsNil() {
29462 if v == nil {
29463 } else if d.h.DeleteOnNilMapValue {
29464 delete(v, mk)
29465 } else {
29466 v[mk] = 0
29467 }
29468 continue
29469 }
29470 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
29471 if v != nil {
29472 v[mk] = mv
29473 }
29474 }
29475 dd.ReadMapEnd()
29476 return v, changed
29477}
29478
29479func (d *Decoder) fastpathDecMapIntInt32R(f *codecFnInfo, rv reflect.Value) {
29480 if rv.Kind() == reflect.Ptr {
29481 vp := rv2i(rv).(*map[int]int32)
29482 v, changed := fastpathTV.DecMapIntInt32V(*vp, true, d)
29483 if changed {
29484 *vp = v
29485 }
29486 } else {
29487 fastpathTV.DecMapIntInt32V(rv2i(rv).(map[int]int32), false, d)
29488 }
29489}
29490func (f fastpathT) DecMapIntInt32X(vp *map[int]int32, d *Decoder) {
29491 v, changed := f.DecMapIntInt32V(*vp, true, d)
29492 if changed {
29493 *vp = v
29494 }
29495}
29496func (_ fastpathT) DecMapIntInt32V(v map[int]int32, canChange bool,
29497 d *Decoder) (_ map[int]int32, changed bool) {
29498 dd, esep := d.d, d.hh.hasElemSeparators()
29499 containerLen := dd.ReadMapStart()
29500 if canChange && v == nil {
29501 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
29502 v = make(map[int]int32, xlen)
29503 changed = true
29504 }
29505 if containerLen == 0 {
29506 dd.ReadMapEnd()
29507 return v, changed
29508 }
29509 var mk int
29510 var mv int32
29511 hasLen := containerLen > 0
29512 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29513 if esep {
29514 dd.ReadMapElemKey()
29515 }
29516 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29517 if esep {
29518 dd.ReadMapElemValue()
29519 }
29520 if dd.TryDecodeAsNil() {
29521 if v == nil {
29522 } else if d.h.DeleteOnNilMapValue {
29523 delete(v, mk)
29524 } else {
29525 v[mk] = 0
29526 }
29527 continue
29528 }
29529 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
29530 if v != nil {
29531 v[mk] = mv
29532 }
29533 }
29534 dd.ReadMapEnd()
29535 return v, changed
29536}
29537
29538func (d *Decoder) fastpathDecMapIntInt64R(f *codecFnInfo, rv reflect.Value) {
29539 if rv.Kind() == reflect.Ptr {
29540 vp := rv2i(rv).(*map[int]int64)
29541 v, changed := fastpathTV.DecMapIntInt64V(*vp, true, d)
29542 if changed {
29543 *vp = v
29544 }
29545 } else {
29546 fastpathTV.DecMapIntInt64V(rv2i(rv).(map[int]int64), false, d)
29547 }
29548}
29549func (f fastpathT) DecMapIntInt64X(vp *map[int]int64, d *Decoder) {
29550 v, changed := f.DecMapIntInt64V(*vp, true, d)
29551 if changed {
29552 *vp = v
29553 }
29554}
29555func (_ fastpathT) DecMapIntInt64V(v map[int]int64, canChange bool,
29556 d *Decoder) (_ map[int]int64, changed bool) {
29557 dd, esep := d.d, d.hh.hasElemSeparators()
29558 containerLen := dd.ReadMapStart()
29559 if canChange && v == nil {
29560 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
29561 v = make(map[int]int64, xlen)
29562 changed = true
29563 }
29564 if containerLen == 0 {
29565 dd.ReadMapEnd()
29566 return v, changed
29567 }
29568 var mk int
29569 var mv int64
29570 hasLen := containerLen > 0
29571 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29572 if esep {
29573 dd.ReadMapElemKey()
29574 }
29575 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29576 if esep {
29577 dd.ReadMapElemValue()
29578 }
29579 if dd.TryDecodeAsNil() {
29580 if v == nil {
29581 } else if d.h.DeleteOnNilMapValue {
29582 delete(v, mk)
29583 } else {
29584 v[mk] = 0
29585 }
29586 continue
29587 }
29588 mv = dd.DecodeInt64()
29589 if v != nil {
29590 v[mk] = mv
29591 }
29592 }
29593 dd.ReadMapEnd()
29594 return v, changed
29595}
29596
29597func (d *Decoder) fastpathDecMapIntFloat32R(f *codecFnInfo, rv reflect.Value) {
29598 if rv.Kind() == reflect.Ptr {
29599 vp := rv2i(rv).(*map[int]float32)
29600 v, changed := fastpathTV.DecMapIntFloat32V(*vp, true, d)
29601 if changed {
29602 *vp = v
29603 }
29604 } else {
29605 fastpathTV.DecMapIntFloat32V(rv2i(rv).(map[int]float32), false, d)
29606 }
29607}
29608func (f fastpathT) DecMapIntFloat32X(vp *map[int]float32, d *Decoder) {
29609 v, changed := f.DecMapIntFloat32V(*vp, true, d)
29610 if changed {
29611 *vp = v
29612 }
29613}
29614func (_ fastpathT) DecMapIntFloat32V(v map[int]float32, canChange bool,
29615 d *Decoder) (_ map[int]float32, changed bool) {
29616 dd, esep := d.d, d.hh.hasElemSeparators()
29617 containerLen := dd.ReadMapStart()
29618 if canChange && v == nil {
29619 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
29620 v = make(map[int]float32, xlen)
29621 changed = true
29622 }
29623 if containerLen == 0 {
29624 dd.ReadMapEnd()
29625 return v, changed
29626 }
29627 var mk int
29628 var mv float32
29629 hasLen := containerLen > 0
29630 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29631 if esep {
29632 dd.ReadMapElemKey()
29633 }
29634 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29635 if esep {
29636 dd.ReadMapElemValue()
29637 }
29638 if dd.TryDecodeAsNil() {
29639 if v == nil {
29640 } else if d.h.DeleteOnNilMapValue {
29641 delete(v, mk)
29642 } else {
29643 v[mk] = 0
29644 }
29645 continue
29646 }
29647 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
29648 if v != nil {
29649 v[mk] = mv
29650 }
29651 }
29652 dd.ReadMapEnd()
29653 return v, changed
29654}
29655
29656func (d *Decoder) fastpathDecMapIntFloat64R(f *codecFnInfo, rv reflect.Value) {
29657 if rv.Kind() == reflect.Ptr {
29658 vp := rv2i(rv).(*map[int]float64)
29659 v, changed := fastpathTV.DecMapIntFloat64V(*vp, true, d)
29660 if changed {
29661 *vp = v
29662 }
29663 } else {
29664 fastpathTV.DecMapIntFloat64V(rv2i(rv).(map[int]float64), false, d)
29665 }
29666}
29667func (f fastpathT) DecMapIntFloat64X(vp *map[int]float64, d *Decoder) {
29668 v, changed := f.DecMapIntFloat64V(*vp, true, d)
29669 if changed {
29670 *vp = v
29671 }
29672}
29673func (_ fastpathT) DecMapIntFloat64V(v map[int]float64, canChange bool,
29674 d *Decoder) (_ map[int]float64, changed bool) {
29675 dd, esep := d.d, d.hh.hasElemSeparators()
29676 containerLen := dd.ReadMapStart()
29677 if canChange && v == nil {
29678 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
29679 v = make(map[int]float64, xlen)
29680 changed = true
29681 }
29682 if containerLen == 0 {
29683 dd.ReadMapEnd()
29684 return v, changed
29685 }
29686 var mk int
29687 var mv float64
29688 hasLen := containerLen > 0
29689 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29690 if esep {
29691 dd.ReadMapElemKey()
29692 }
29693 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29694 if esep {
29695 dd.ReadMapElemValue()
29696 }
29697 if dd.TryDecodeAsNil() {
29698 if v == nil {
29699 } else if d.h.DeleteOnNilMapValue {
29700 delete(v, mk)
29701 } else {
29702 v[mk] = 0
29703 }
29704 continue
29705 }
29706 mv = dd.DecodeFloat64()
29707 if v != nil {
29708 v[mk] = mv
29709 }
29710 }
29711 dd.ReadMapEnd()
29712 return v, changed
29713}
29714
29715func (d *Decoder) fastpathDecMapIntBoolR(f *codecFnInfo, rv reflect.Value) {
29716 if rv.Kind() == reflect.Ptr {
29717 vp := rv2i(rv).(*map[int]bool)
29718 v, changed := fastpathTV.DecMapIntBoolV(*vp, true, d)
29719 if changed {
29720 *vp = v
29721 }
29722 } else {
29723 fastpathTV.DecMapIntBoolV(rv2i(rv).(map[int]bool), false, d)
29724 }
29725}
29726func (f fastpathT) DecMapIntBoolX(vp *map[int]bool, d *Decoder) {
29727 v, changed := f.DecMapIntBoolV(*vp, true, d)
29728 if changed {
29729 *vp = v
29730 }
29731}
29732func (_ fastpathT) DecMapIntBoolV(v map[int]bool, canChange bool,
29733 d *Decoder) (_ map[int]bool, changed bool) {
29734 dd, esep := d.d, d.hh.hasElemSeparators()
29735 containerLen := dd.ReadMapStart()
29736 if canChange && v == nil {
29737 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
29738 v = make(map[int]bool, xlen)
29739 changed = true
29740 }
29741 if containerLen == 0 {
29742 dd.ReadMapEnd()
29743 return v, changed
29744 }
29745 var mk int
29746 var mv bool
29747 hasLen := containerLen > 0
29748 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29749 if esep {
29750 dd.ReadMapElemKey()
29751 }
29752 mk = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
29753 if esep {
29754 dd.ReadMapElemValue()
29755 }
29756 if dd.TryDecodeAsNil() {
29757 if v == nil {
29758 } else if d.h.DeleteOnNilMapValue {
29759 delete(v, mk)
29760 } else {
29761 v[mk] = false
29762 }
29763 continue
29764 }
29765 mv = dd.DecodeBool()
29766 if v != nil {
29767 v[mk] = mv
29768 }
29769 }
29770 dd.ReadMapEnd()
29771 return v, changed
29772}
29773
29774func (d *Decoder) fastpathDecMapInt8IntfR(f *codecFnInfo, rv reflect.Value) {
29775 if rv.Kind() == reflect.Ptr {
29776 vp := rv2i(rv).(*map[int8]interface{})
29777 v, changed := fastpathTV.DecMapInt8IntfV(*vp, true, d)
29778 if changed {
29779 *vp = v
29780 }
29781 } else {
29782 fastpathTV.DecMapInt8IntfV(rv2i(rv).(map[int8]interface{}), false, d)
29783 }
29784}
29785func (f fastpathT) DecMapInt8IntfX(vp *map[int8]interface{}, d *Decoder) {
29786 v, changed := f.DecMapInt8IntfV(*vp, true, d)
29787 if changed {
29788 *vp = v
29789 }
29790}
29791func (_ fastpathT) DecMapInt8IntfV(v map[int8]interface{}, canChange bool,
29792 d *Decoder) (_ map[int8]interface{}, changed bool) {
29793 dd, esep := d.d, d.hh.hasElemSeparators()
29794 containerLen := dd.ReadMapStart()
29795 if canChange && v == nil {
29796 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
29797 v = make(map[int8]interface{}, xlen)
29798 changed = true
29799 }
29800 if containerLen == 0 {
29801 dd.ReadMapEnd()
29802 return v, changed
29803 }
29804 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
29805 var mk int8
29806 var mv interface{}
29807 hasLen := containerLen > 0
29808 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29809 if esep {
29810 dd.ReadMapElemKey()
29811 }
29812 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
29813 if esep {
29814 dd.ReadMapElemValue()
29815 }
29816 if dd.TryDecodeAsNil() {
29817 if v == nil {
29818 } else if d.h.DeleteOnNilMapValue {
29819 delete(v, mk)
29820 } else {
29821 v[mk] = nil
29822 }
29823 continue
29824 }
29825 if mapGet {
29826 mv = v[mk]
29827 } else {
29828 mv = nil
29829 }
29830 d.decode(&mv)
29831 if v != nil {
29832 v[mk] = mv
29833 }
29834 }
29835 dd.ReadMapEnd()
29836 return v, changed
29837}
29838
29839func (d *Decoder) fastpathDecMapInt8StringR(f *codecFnInfo, rv reflect.Value) {
29840 if rv.Kind() == reflect.Ptr {
29841 vp := rv2i(rv).(*map[int8]string)
29842 v, changed := fastpathTV.DecMapInt8StringV(*vp, true, d)
29843 if changed {
29844 *vp = v
29845 }
29846 } else {
29847 fastpathTV.DecMapInt8StringV(rv2i(rv).(map[int8]string), false, d)
29848 }
29849}
29850func (f fastpathT) DecMapInt8StringX(vp *map[int8]string, d *Decoder) {
29851 v, changed := f.DecMapInt8StringV(*vp, true, d)
29852 if changed {
29853 *vp = v
29854 }
29855}
29856func (_ fastpathT) DecMapInt8StringV(v map[int8]string, canChange bool,
29857 d *Decoder) (_ map[int8]string, changed bool) {
29858 dd, esep := d.d, d.hh.hasElemSeparators()
29859 containerLen := dd.ReadMapStart()
29860 if canChange && v == nil {
29861 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
29862 v = make(map[int8]string, xlen)
29863 changed = true
29864 }
29865 if containerLen == 0 {
29866 dd.ReadMapEnd()
29867 return v, changed
29868 }
29869 var mk int8
29870 var mv string
29871 hasLen := containerLen > 0
29872 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29873 if esep {
29874 dd.ReadMapElemKey()
29875 }
29876 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
29877 if esep {
29878 dd.ReadMapElemValue()
29879 }
29880 if dd.TryDecodeAsNil() {
29881 if v == nil {
29882 } else if d.h.DeleteOnNilMapValue {
29883 delete(v, mk)
29884 } else {
29885 v[mk] = ""
29886 }
29887 continue
29888 }
29889 mv = dd.DecodeString()
29890 if v != nil {
29891 v[mk] = mv
29892 }
29893 }
29894 dd.ReadMapEnd()
29895 return v, changed
29896}
29897
29898func (d *Decoder) fastpathDecMapInt8UintR(f *codecFnInfo, rv reflect.Value) {
29899 if rv.Kind() == reflect.Ptr {
29900 vp := rv2i(rv).(*map[int8]uint)
29901 v, changed := fastpathTV.DecMapInt8UintV(*vp, true, d)
29902 if changed {
29903 *vp = v
29904 }
29905 } else {
29906 fastpathTV.DecMapInt8UintV(rv2i(rv).(map[int8]uint), false, d)
29907 }
29908}
29909func (f fastpathT) DecMapInt8UintX(vp *map[int8]uint, d *Decoder) {
29910 v, changed := f.DecMapInt8UintV(*vp, true, d)
29911 if changed {
29912 *vp = v
29913 }
29914}
29915func (_ fastpathT) DecMapInt8UintV(v map[int8]uint, canChange bool,
29916 d *Decoder) (_ map[int8]uint, changed bool) {
29917 dd, esep := d.d, d.hh.hasElemSeparators()
29918 containerLen := dd.ReadMapStart()
29919 if canChange && v == nil {
29920 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
29921 v = make(map[int8]uint, xlen)
29922 changed = true
29923 }
29924 if containerLen == 0 {
29925 dd.ReadMapEnd()
29926 return v, changed
29927 }
29928 var mk int8
29929 var mv uint
29930 hasLen := containerLen > 0
29931 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29932 if esep {
29933 dd.ReadMapElemKey()
29934 }
29935 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
29936 if esep {
29937 dd.ReadMapElemValue()
29938 }
29939 if dd.TryDecodeAsNil() {
29940 if v == nil {
29941 } else if d.h.DeleteOnNilMapValue {
29942 delete(v, mk)
29943 } else {
29944 v[mk] = 0
29945 }
29946 continue
29947 }
29948 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
29949 if v != nil {
29950 v[mk] = mv
29951 }
29952 }
29953 dd.ReadMapEnd()
29954 return v, changed
29955}
29956
29957func (d *Decoder) fastpathDecMapInt8Uint8R(f *codecFnInfo, rv reflect.Value) {
29958 if rv.Kind() == reflect.Ptr {
29959 vp := rv2i(rv).(*map[int8]uint8)
29960 v, changed := fastpathTV.DecMapInt8Uint8V(*vp, true, d)
29961 if changed {
29962 *vp = v
29963 }
29964 } else {
29965 fastpathTV.DecMapInt8Uint8V(rv2i(rv).(map[int8]uint8), false, d)
29966 }
29967}
29968func (f fastpathT) DecMapInt8Uint8X(vp *map[int8]uint8, d *Decoder) {
29969 v, changed := f.DecMapInt8Uint8V(*vp, true, d)
29970 if changed {
29971 *vp = v
29972 }
29973}
29974func (_ fastpathT) DecMapInt8Uint8V(v map[int8]uint8, canChange bool,
29975 d *Decoder) (_ map[int8]uint8, changed bool) {
29976 dd, esep := d.d, d.hh.hasElemSeparators()
29977 containerLen := dd.ReadMapStart()
29978 if canChange && v == nil {
29979 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
29980 v = make(map[int8]uint8, xlen)
29981 changed = true
29982 }
29983 if containerLen == 0 {
29984 dd.ReadMapEnd()
29985 return v, changed
29986 }
29987 var mk int8
29988 var mv uint8
29989 hasLen := containerLen > 0
29990 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
29991 if esep {
29992 dd.ReadMapElemKey()
29993 }
29994 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
29995 if esep {
29996 dd.ReadMapElemValue()
29997 }
29998 if dd.TryDecodeAsNil() {
29999 if v == nil {
30000 } else if d.h.DeleteOnNilMapValue {
30001 delete(v, mk)
30002 } else {
30003 v[mk] = 0
30004 }
30005 continue
30006 }
30007 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
30008 if v != nil {
30009 v[mk] = mv
30010 }
30011 }
30012 dd.ReadMapEnd()
30013 return v, changed
30014}
30015
30016func (d *Decoder) fastpathDecMapInt8Uint16R(f *codecFnInfo, rv reflect.Value) {
30017 if rv.Kind() == reflect.Ptr {
30018 vp := rv2i(rv).(*map[int8]uint16)
30019 v, changed := fastpathTV.DecMapInt8Uint16V(*vp, true, d)
30020 if changed {
30021 *vp = v
30022 }
30023 } else {
30024 fastpathTV.DecMapInt8Uint16V(rv2i(rv).(map[int8]uint16), false, d)
30025 }
30026}
30027func (f fastpathT) DecMapInt8Uint16X(vp *map[int8]uint16, d *Decoder) {
30028 v, changed := f.DecMapInt8Uint16V(*vp, true, d)
30029 if changed {
30030 *vp = v
30031 }
30032}
30033func (_ fastpathT) DecMapInt8Uint16V(v map[int8]uint16, canChange bool,
30034 d *Decoder) (_ map[int8]uint16, changed bool) {
30035 dd, esep := d.d, d.hh.hasElemSeparators()
30036 containerLen := dd.ReadMapStart()
30037 if canChange && v == nil {
30038 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
30039 v = make(map[int8]uint16, xlen)
30040 changed = true
30041 }
30042 if containerLen == 0 {
30043 dd.ReadMapEnd()
30044 return v, changed
30045 }
30046 var mk int8
30047 var mv uint16
30048 hasLen := containerLen > 0
30049 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30050 if esep {
30051 dd.ReadMapElemKey()
30052 }
30053 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30054 if esep {
30055 dd.ReadMapElemValue()
30056 }
30057 if dd.TryDecodeAsNil() {
30058 if v == nil {
30059 } else if d.h.DeleteOnNilMapValue {
30060 delete(v, mk)
30061 } else {
30062 v[mk] = 0
30063 }
30064 continue
30065 }
30066 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
30067 if v != nil {
30068 v[mk] = mv
30069 }
30070 }
30071 dd.ReadMapEnd()
30072 return v, changed
30073}
30074
30075func (d *Decoder) fastpathDecMapInt8Uint32R(f *codecFnInfo, rv reflect.Value) {
30076 if rv.Kind() == reflect.Ptr {
30077 vp := rv2i(rv).(*map[int8]uint32)
30078 v, changed := fastpathTV.DecMapInt8Uint32V(*vp, true, d)
30079 if changed {
30080 *vp = v
30081 }
30082 } else {
30083 fastpathTV.DecMapInt8Uint32V(rv2i(rv).(map[int8]uint32), false, d)
30084 }
30085}
30086func (f fastpathT) DecMapInt8Uint32X(vp *map[int8]uint32, d *Decoder) {
30087 v, changed := f.DecMapInt8Uint32V(*vp, true, d)
30088 if changed {
30089 *vp = v
30090 }
30091}
30092func (_ fastpathT) DecMapInt8Uint32V(v map[int8]uint32, canChange bool,
30093 d *Decoder) (_ map[int8]uint32, changed bool) {
30094 dd, esep := d.d, d.hh.hasElemSeparators()
30095 containerLen := dd.ReadMapStart()
30096 if canChange && v == nil {
30097 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
30098 v = make(map[int8]uint32, xlen)
30099 changed = true
30100 }
30101 if containerLen == 0 {
30102 dd.ReadMapEnd()
30103 return v, changed
30104 }
30105 var mk int8
30106 var mv uint32
30107 hasLen := containerLen > 0
30108 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30109 if esep {
30110 dd.ReadMapElemKey()
30111 }
30112 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30113 if esep {
30114 dd.ReadMapElemValue()
30115 }
30116 if dd.TryDecodeAsNil() {
30117 if v == nil {
30118 } else if d.h.DeleteOnNilMapValue {
30119 delete(v, mk)
30120 } else {
30121 v[mk] = 0
30122 }
30123 continue
30124 }
30125 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
30126 if v != nil {
30127 v[mk] = mv
30128 }
30129 }
30130 dd.ReadMapEnd()
30131 return v, changed
30132}
30133
30134func (d *Decoder) fastpathDecMapInt8Uint64R(f *codecFnInfo, rv reflect.Value) {
30135 if rv.Kind() == reflect.Ptr {
30136 vp := rv2i(rv).(*map[int8]uint64)
30137 v, changed := fastpathTV.DecMapInt8Uint64V(*vp, true, d)
30138 if changed {
30139 *vp = v
30140 }
30141 } else {
30142 fastpathTV.DecMapInt8Uint64V(rv2i(rv).(map[int8]uint64), false, d)
30143 }
30144}
30145func (f fastpathT) DecMapInt8Uint64X(vp *map[int8]uint64, d *Decoder) {
30146 v, changed := f.DecMapInt8Uint64V(*vp, true, d)
30147 if changed {
30148 *vp = v
30149 }
30150}
30151func (_ fastpathT) DecMapInt8Uint64V(v map[int8]uint64, canChange bool,
30152 d *Decoder) (_ map[int8]uint64, changed bool) {
30153 dd, esep := d.d, d.hh.hasElemSeparators()
30154 containerLen := dd.ReadMapStart()
30155 if canChange && v == nil {
30156 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
30157 v = make(map[int8]uint64, xlen)
30158 changed = true
30159 }
30160 if containerLen == 0 {
30161 dd.ReadMapEnd()
30162 return v, changed
30163 }
30164 var mk int8
30165 var mv uint64
30166 hasLen := containerLen > 0
30167 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30168 if esep {
30169 dd.ReadMapElemKey()
30170 }
30171 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30172 if esep {
30173 dd.ReadMapElemValue()
30174 }
30175 if dd.TryDecodeAsNil() {
30176 if v == nil {
30177 } else if d.h.DeleteOnNilMapValue {
30178 delete(v, mk)
30179 } else {
30180 v[mk] = 0
30181 }
30182 continue
30183 }
30184 mv = dd.DecodeUint64()
30185 if v != nil {
30186 v[mk] = mv
30187 }
30188 }
30189 dd.ReadMapEnd()
30190 return v, changed
30191}
30192
30193func (d *Decoder) fastpathDecMapInt8UintptrR(f *codecFnInfo, rv reflect.Value) {
30194 if rv.Kind() == reflect.Ptr {
30195 vp := rv2i(rv).(*map[int8]uintptr)
30196 v, changed := fastpathTV.DecMapInt8UintptrV(*vp, true, d)
30197 if changed {
30198 *vp = v
30199 }
30200 } else {
30201 fastpathTV.DecMapInt8UintptrV(rv2i(rv).(map[int8]uintptr), false, d)
30202 }
30203}
30204func (f fastpathT) DecMapInt8UintptrX(vp *map[int8]uintptr, d *Decoder) {
30205 v, changed := f.DecMapInt8UintptrV(*vp, true, d)
30206 if changed {
30207 *vp = v
30208 }
30209}
30210func (_ fastpathT) DecMapInt8UintptrV(v map[int8]uintptr, canChange bool,
30211 d *Decoder) (_ map[int8]uintptr, changed bool) {
30212 dd, esep := d.d, d.hh.hasElemSeparators()
30213 containerLen := dd.ReadMapStart()
30214 if canChange && v == nil {
30215 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
30216 v = make(map[int8]uintptr, xlen)
30217 changed = true
30218 }
30219 if containerLen == 0 {
30220 dd.ReadMapEnd()
30221 return v, changed
30222 }
30223 var mk int8
30224 var mv uintptr
30225 hasLen := containerLen > 0
30226 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30227 if esep {
30228 dd.ReadMapElemKey()
30229 }
30230 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30231 if esep {
30232 dd.ReadMapElemValue()
30233 }
30234 if dd.TryDecodeAsNil() {
30235 if v == nil {
30236 } else if d.h.DeleteOnNilMapValue {
30237 delete(v, mk)
30238 } else {
30239 v[mk] = 0
30240 }
30241 continue
30242 }
30243 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
30244 if v != nil {
30245 v[mk] = mv
30246 }
30247 }
30248 dd.ReadMapEnd()
30249 return v, changed
30250}
30251
30252func (d *Decoder) fastpathDecMapInt8IntR(f *codecFnInfo, rv reflect.Value) {
30253 if rv.Kind() == reflect.Ptr {
30254 vp := rv2i(rv).(*map[int8]int)
30255 v, changed := fastpathTV.DecMapInt8IntV(*vp, true, d)
30256 if changed {
30257 *vp = v
30258 }
30259 } else {
30260 fastpathTV.DecMapInt8IntV(rv2i(rv).(map[int8]int), false, d)
30261 }
30262}
30263func (f fastpathT) DecMapInt8IntX(vp *map[int8]int, d *Decoder) {
30264 v, changed := f.DecMapInt8IntV(*vp, true, d)
30265 if changed {
30266 *vp = v
30267 }
30268}
30269func (_ fastpathT) DecMapInt8IntV(v map[int8]int, canChange bool,
30270 d *Decoder) (_ map[int8]int, changed bool) {
30271 dd, esep := d.d, d.hh.hasElemSeparators()
30272 containerLen := dd.ReadMapStart()
30273 if canChange && v == nil {
30274 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
30275 v = make(map[int8]int, xlen)
30276 changed = true
30277 }
30278 if containerLen == 0 {
30279 dd.ReadMapEnd()
30280 return v, changed
30281 }
30282 var mk int8
30283 var mv int
30284 hasLen := containerLen > 0
30285 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30286 if esep {
30287 dd.ReadMapElemKey()
30288 }
30289 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30290 if esep {
30291 dd.ReadMapElemValue()
30292 }
30293 if dd.TryDecodeAsNil() {
30294 if v == nil {
30295 } else if d.h.DeleteOnNilMapValue {
30296 delete(v, mk)
30297 } else {
30298 v[mk] = 0
30299 }
30300 continue
30301 }
30302 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
30303 if v != nil {
30304 v[mk] = mv
30305 }
30306 }
30307 dd.ReadMapEnd()
30308 return v, changed
30309}
30310
30311func (d *Decoder) fastpathDecMapInt8Int8R(f *codecFnInfo, rv reflect.Value) {
30312 if rv.Kind() == reflect.Ptr {
30313 vp := rv2i(rv).(*map[int8]int8)
30314 v, changed := fastpathTV.DecMapInt8Int8V(*vp, true, d)
30315 if changed {
30316 *vp = v
30317 }
30318 } else {
30319 fastpathTV.DecMapInt8Int8V(rv2i(rv).(map[int8]int8), false, d)
30320 }
30321}
30322func (f fastpathT) DecMapInt8Int8X(vp *map[int8]int8, d *Decoder) {
30323 v, changed := f.DecMapInt8Int8V(*vp, true, d)
30324 if changed {
30325 *vp = v
30326 }
30327}
30328func (_ fastpathT) DecMapInt8Int8V(v map[int8]int8, canChange bool,
30329 d *Decoder) (_ map[int8]int8, changed bool) {
30330 dd, esep := d.d, d.hh.hasElemSeparators()
30331 containerLen := dd.ReadMapStart()
30332 if canChange && v == nil {
30333 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
30334 v = make(map[int8]int8, xlen)
30335 changed = true
30336 }
30337 if containerLen == 0 {
30338 dd.ReadMapEnd()
30339 return v, changed
30340 }
30341 var mk int8
30342 var mv int8
30343 hasLen := containerLen > 0
30344 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30345 if esep {
30346 dd.ReadMapElemKey()
30347 }
30348 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30349 if esep {
30350 dd.ReadMapElemValue()
30351 }
30352 if dd.TryDecodeAsNil() {
30353 if v == nil {
30354 } else if d.h.DeleteOnNilMapValue {
30355 delete(v, mk)
30356 } else {
30357 v[mk] = 0
30358 }
30359 continue
30360 }
30361 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30362 if v != nil {
30363 v[mk] = mv
30364 }
30365 }
30366 dd.ReadMapEnd()
30367 return v, changed
30368}
30369
30370func (d *Decoder) fastpathDecMapInt8Int16R(f *codecFnInfo, rv reflect.Value) {
30371 if rv.Kind() == reflect.Ptr {
30372 vp := rv2i(rv).(*map[int8]int16)
30373 v, changed := fastpathTV.DecMapInt8Int16V(*vp, true, d)
30374 if changed {
30375 *vp = v
30376 }
30377 } else {
30378 fastpathTV.DecMapInt8Int16V(rv2i(rv).(map[int8]int16), false, d)
30379 }
30380}
30381func (f fastpathT) DecMapInt8Int16X(vp *map[int8]int16, d *Decoder) {
30382 v, changed := f.DecMapInt8Int16V(*vp, true, d)
30383 if changed {
30384 *vp = v
30385 }
30386}
30387func (_ fastpathT) DecMapInt8Int16V(v map[int8]int16, canChange bool,
30388 d *Decoder) (_ map[int8]int16, changed bool) {
30389 dd, esep := d.d, d.hh.hasElemSeparators()
30390 containerLen := dd.ReadMapStart()
30391 if canChange && v == nil {
30392 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
30393 v = make(map[int8]int16, xlen)
30394 changed = true
30395 }
30396 if containerLen == 0 {
30397 dd.ReadMapEnd()
30398 return v, changed
30399 }
30400 var mk int8
30401 var mv int16
30402 hasLen := containerLen > 0
30403 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30404 if esep {
30405 dd.ReadMapElemKey()
30406 }
30407 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30408 if esep {
30409 dd.ReadMapElemValue()
30410 }
30411 if dd.TryDecodeAsNil() {
30412 if v == nil {
30413 } else if d.h.DeleteOnNilMapValue {
30414 delete(v, mk)
30415 } else {
30416 v[mk] = 0
30417 }
30418 continue
30419 }
30420 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
30421 if v != nil {
30422 v[mk] = mv
30423 }
30424 }
30425 dd.ReadMapEnd()
30426 return v, changed
30427}
30428
30429func (d *Decoder) fastpathDecMapInt8Int32R(f *codecFnInfo, rv reflect.Value) {
30430 if rv.Kind() == reflect.Ptr {
30431 vp := rv2i(rv).(*map[int8]int32)
30432 v, changed := fastpathTV.DecMapInt8Int32V(*vp, true, d)
30433 if changed {
30434 *vp = v
30435 }
30436 } else {
30437 fastpathTV.DecMapInt8Int32V(rv2i(rv).(map[int8]int32), false, d)
30438 }
30439}
30440func (f fastpathT) DecMapInt8Int32X(vp *map[int8]int32, d *Decoder) {
30441 v, changed := f.DecMapInt8Int32V(*vp, true, d)
30442 if changed {
30443 *vp = v
30444 }
30445}
30446func (_ fastpathT) DecMapInt8Int32V(v map[int8]int32, canChange bool,
30447 d *Decoder) (_ map[int8]int32, changed bool) {
30448 dd, esep := d.d, d.hh.hasElemSeparators()
30449 containerLen := dd.ReadMapStart()
30450 if canChange && v == nil {
30451 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
30452 v = make(map[int8]int32, xlen)
30453 changed = true
30454 }
30455 if containerLen == 0 {
30456 dd.ReadMapEnd()
30457 return v, changed
30458 }
30459 var mk int8
30460 var mv int32
30461 hasLen := containerLen > 0
30462 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30463 if esep {
30464 dd.ReadMapElemKey()
30465 }
30466 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30467 if esep {
30468 dd.ReadMapElemValue()
30469 }
30470 if dd.TryDecodeAsNil() {
30471 if v == nil {
30472 } else if d.h.DeleteOnNilMapValue {
30473 delete(v, mk)
30474 } else {
30475 v[mk] = 0
30476 }
30477 continue
30478 }
30479 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
30480 if v != nil {
30481 v[mk] = mv
30482 }
30483 }
30484 dd.ReadMapEnd()
30485 return v, changed
30486}
30487
30488func (d *Decoder) fastpathDecMapInt8Int64R(f *codecFnInfo, rv reflect.Value) {
30489 if rv.Kind() == reflect.Ptr {
30490 vp := rv2i(rv).(*map[int8]int64)
30491 v, changed := fastpathTV.DecMapInt8Int64V(*vp, true, d)
30492 if changed {
30493 *vp = v
30494 }
30495 } else {
30496 fastpathTV.DecMapInt8Int64V(rv2i(rv).(map[int8]int64), false, d)
30497 }
30498}
30499func (f fastpathT) DecMapInt8Int64X(vp *map[int8]int64, d *Decoder) {
30500 v, changed := f.DecMapInt8Int64V(*vp, true, d)
30501 if changed {
30502 *vp = v
30503 }
30504}
30505func (_ fastpathT) DecMapInt8Int64V(v map[int8]int64, canChange bool,
30506 d *Decoder) (_ map[int8]int64, changed bool) {
30507 dd, esep := d.d, d.hh.hasElemSeparators()
30508 containerLen := dd.ReadMapStart()
30509 if canChange && v == nil {
30510 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
30511 v = make(map[int8]int64, xlen)
30512 changed = true
30513 }
30514 if containerLen == 0 {
30515 dd.ReadMapEnd()
30516 return v, changed
30517 }
30518 var mk int8
30519 var mv int64
30520 hasLen := containerLen > 0
30521 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30522 if esep {
30523 dd.ReadMapElemKey()
30524 }
30525 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30526 if esep {
30527 dd.ReadMapElemValue()
30528 }
30529 if dd.TryDecodeAsNil() {
30530 if v == nil {
30531 } else if d.h.DeleteOnNilMapValue {
30532 delete(v, mk)
30533 } else {
30534 v[mk] = 0
30535 }
30536 continue
30537 }
30538 mv = dd.DecodeInt64()
30539 if v != nil {
30540 v[mk] = mv
30541 }
30542 }
30543 dd.ReadMapEnd()
30544 return v, changed
30545}
30546
30547func (d *Decoder) fastpathDecMapInt8Float32R(f *codecFnInfo, rv reflect.Value) {
30548 if rv.Kind() == reflect.Ptr {
30549 vp := rv2i(rv).(*map[int8]float32)
30550 v, changed := fastpathTV.DecMapInt8Float32V(*vp, true, d)
30551 if changed {
30552 *vp = v
30553 }
30554 } else {
30555 fastpathTV.DecMapInt8Float32V(rv2i(rv).(map[int8]float32), false, d)
30556 }
30557}
30558func (f fastpathT) DecMapInt8Float32X(vp *map[int8]float32, d *Decoder) {
30559 v, changed := f.DecMapInt8Float32V(*vp, true, d)
30560 if changed {
30561 *vp = v
30562 }
30563}
30564func (_ fastpathT) DecMapInt8Float32V(v map[int8]float32, canChange bool,
30565 d *Decoder) (_ map[int8]float32, changed bool) {
30566 dd, esep := d.d, d.hh.hasElemSeparators()
30567 containerLen := dd.ReadMapStart()
30568 if canChange && v == nil {
30569 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
30570 v = make(map[int8]float32, xlen)
30571 changed = true
30572 }
30573 if containerLen == 0 {
30574 dd.ReadMapEnd()
30575 return v, changed
30576 }
30577 var mk int8
30578 var mv float32
30579 hasLen := containerLen > 0
30580 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30581 if esep {
30582 dd.ReadMapElemKey()
30583 }
30584 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30585 if esep {
30586 dd.ReadMapElemValue()
30587 }
30588 if dd.TryDecodeAsNil() {
30589 if v == nil {
30590 } else if d.h.DeleteOnNilMapValue {
30591 delete(v, mk)
30592 } else {
30593 v[mk] = 0
30594 }
30595 continue
30596 }
30597 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
30598 if v != nil {
30599 v[mk] = mv
30600 }
30601 }
30602 dd.ReadMapEnd()
30603 return v, changed
30604}
30605
30606func (d *Decoder) fastpathDecMapInt8Float64R(f *codecFnInfo, rv reflect.Value) {
30607 if rv.Kind() == reflect.Ptr {
30608 vp := rv2i(rv).(*map[int8]float64)
30609 v, changed := fastpathTV.DecMapInt8Float64V(*vp, true, d)
30610 if changed {
30611 *vp = v
30612 }
30613 } else {
30614 fastpathTV.DecMapInt8Float64V(rv2i(rv).(map[int8]float64), false, d)
30615 }
30616}
30617func (f fastpathT) DecMapInt8Float64X(vp *map[int8]float64, d *Decoder) {
30618 v, changed := f.DecMapInt8Float64V(*vp, true, d)
30619 if changed {
30620 *vp = v
30621 }
30622}
30623func (_ fastpathT) DecMapInt8Float64V(v map[int8]float64, canChange bool,
30624 d *Decoder) (_ map[int8]float64, changed bool) {
30625 dd, esep := d.d, d.hh.hasElemSeparators()
30626 containerLen := dd.ReadMapStart()
30627 if canChange && v == nil {
30628 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
30629 v = make(map[int8]float64, xlen)
30630 changed = true
30631 }
30632 if containerLen == 0 {
30633 dd.ReadMapEnd()
30634 return v, changed
30635 }
30636 var mk int8
30637 var mv float64
30638 hasLen := containerLen > 0
30639 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30640 if esep {
30641 dd.ReadMapElemKey()
30642 }
30643 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30644 if esep {
30645 dd.ReadMapElemValue()
30646 }
30647 if dd.TryDecodeAsNil() {
30648 if v == nil {
30649 } else if d.h.DeleteOnNilMapValue {
30650 delete(v, mk)
30651 } else {
30652 v[mk] = 0
30653 }
30654 continue
30655 }
30656 mv = dd.DecodeFloat64()
30657 if v != nil {
30658 v[mk] = mv
30659 }
30660 }
30661 dd.ReadMapEnd()
30662 return v, changed
30663}
30664
30665func (d *Decoder) fastpathDecMapInt8BoolR(f *codecFnInfo, rv reflect.Value) {
30666 if rv.Kind() == reflect.Ptr {
30667 vp := rv2i(rv).(*map[int8]bool)
30668 v, changed := fastpathTV.DecMapInt8BoolV(*vp, true, d)
30669 if changed {
30670 *vp = v
30671 }
30672 } else {
30673 fastpathTV.DecMapInt8BoolV(rv2i(rv).(map[int8]bool), false, d)
30674 }
30675}
30676func (f fastpathT) DecMapInt8BoolX(vp *map[int8]bool, d *Decoder) {
30677 v, changed := f.DecMapInt8BoolV(*vp, true, d)
30678 if changed {
30679 *vp = v
30680 }
30681}
30682func (_ fastpathT) DecMapInt8BoolV(v map[int8]bool, canChange bool,
30683 d *Decoder) (_ map[int8]bool, changed bool) {
30684 dd, esep := d.d, d.hh.hasElemSeparators()
30685 containerLen := dd.ReadMapStart()
30686 if canChange && v == nil {
30687 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
30688 v = make(map[int8]bool, xlen)
30689 changed = true
30690 }
30691 if containerLen == 0 {
30692 dd.ReadMapEnd()
30693 return v, changed
30694 }
30695 var mk int8
30696 var mv bool
30697 hasLen := containerLen > 0
30698 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30699 if esep {
30700 dd.ReadMapElemKey()
30701 }
30702 mk = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
30703 if esep {
30704 dd.ReadMapElemValue()
30705 }
30706 if dd.TryDecodeAsNil() {
30707 if v == nil {
30708 } else if d.h.DeleteOnNilMapValue {
30709 delete(v, mk)
30710 } else {
30711 v[mk] = false
30712 }
30713 continue
30714 }
30715 mv = dd.DecodeBool()
30716 if v != nil {
30717 v[mk] = mv
30718 }
30719 }
30720 dd.ReadMapEnd()
30721 return v, changed
30722}
30723
30724func (d *Decoder) fastpathDecMapInt16IntfR(f *codecFnInfo, rv reflect.Value) {
30725 if rv.Kind() == reflect.Ptr {
30726 vp := rv2i(rv).(*map[int16]interface{})
30727 v, changed := fastpathTV.DecMapInt16IntfV(*vp, true, d)
30728 if changed {
30729 *vp = v
30730 }
30731 } else {
30732 fastpathTV.DecMapInt16IntfV(rv2i(rv).(map[int16]interface{}), false, d)
30733 }
30734}
30735func (f fastpathT) DecMapInt16IntfX(vp *map[int16]interface{}, d *Decoder) {
30736 v, changed := f.DecMapInt16IntfV(*vp, true, d)
30737 if changed {
30738 *vp = v
30739 }
30740}
30741func (_ fastpathT) DecMapInt16IntfV(v map[int16]interface{}, canChange bool,
30742 d *Decoder) (_ map[int16]interface{}, changed bool) {
30743 dd, esep := d.d, d.hh.hasElemSeparators()
30744 containerLen := dd.ReadMapStart()
30745 if canChange && v == nil {
30746 xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
30747 v = make(map[int16]interface{}, xlen)
30748 changed = true
30749 }
30750 if containerLen == 0 {
30751 dd.ReadMapEnd()
30752 return v, changed
30753 }
30754 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
30755 var mk int16
30756 var mv interface{}
30757 hasLen := containerLen > 0
30758 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30759 if esep {
30760 dd.ReadMapElemKey()
30761 }
30762 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
30763 if esep {
30764 dd.ReadMapElemValue()
30765 }
30766 if dd.TryDecodeAsNil() {
30767 if v == nil {
30768 } else if d.h.DeleteOnNilMapValue {
30769 delete(v, mk)
30770 } else {
30771 v[mk] = nil
30772 }
30773 continue
30774 }
30775 if mapGet {
30776 mv = v[mk]
30777 } else {
30778 mv = nil
30779 }
30780 d.decode(&mv)
30781 if v != nil {
30782 v[mk] = mv
30783 }
30784 }
30785 dd.ReadMapEnd()
30786 return v, changed
30787}
30788
30789func (d *Decoder) fastpathDecMapInt16StringR(f *codecFnInfo, rv reflect.Value) {
30790 if rv.Kind() == reflect.Ptr {
30791 vp := rv2i(rv).(*map[int16]string)
30792 v, changed := fastpathTV.DecMapInt16StringV(*vp, true, d)
30793 if changed {
30794 *vp = v
30795 }
30796 } else {
30797 fastpathTV.DecMapInt16StringV(rv2i(rv).(map[int16]string), false, d)
30798 }
30799}
30800func (f fastpathT) DecMapInt16StringX(vp *map[int16]string, d *Decoder) {
30801 v, changed := f.DecMapInt16StringV(*vp, true, d)
30802 if changed {
30803 *vp = v
30804 }
30805}
30806func (_ fastpathT) DecMapInt16StringV(v map[int16]string, canChange bool,
30807 d *Decoder) (_ map[int16]string, changed bool) {
30808 dd, esep := d.d, d.hh.hasElemSeparators()
30809 containerLen := dd.ReadMapStart()
30810 if canChange && v == nil {
30811 xlen := decInferLen(containerLen, d.h.MaxInitLen, 18)
30812 v = make(map[int16]string, xlen)
30813 changed = true
30814 }
30815 if containerLen == 0 {
30816 dd.ReadMapEnd()
30817 return v, changed
30818 }
30819 var mk int16
30820 var mv string
30821 hasLen := containerLen > 0
30822 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30823 if esep {
30824 dd.ReadMapElemKey()
30825 }
30826 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
30827 if esep {
30828 dd.ReadMapElemValue()
30829 }
30830 if dd.TryDecodeAsNil() {
30831 if v == nil {
30832 } else if d.h.DeleteOnNilMapValue {
30833 delete(v, mk)
30834 } else {
30835 v[mk] = ""
30836 }
30837 continue
30838 }
30839 mv = dd.DecodeString()
30840 if v != nil {
30841 v[mk] = mv
30842 }
30843 }
30844 dd.ReadMapEnd()
30845 return v, changed
30846}
30847
30848func (d *Decoder) fastpathDecMapInt16UintR(f *codecFnInfo, rv reflect.Value) {
30849 if rv.Kind() == reflect.Ptr {
30850 vp := rv2i(rv).(*map[int16]uint)
30851 v, changed := fastpathTV.DecMapInt16UintV(*vp, true, d)
30852 if changed {
30853 *vp = v
30854 }
30855 } else {
30856 fastpathTV.DecMapInt16UintV(rv2i(rv).(map[int16]uint), false, d)
30857 }
30858}
30859func (f fastpathT) DecMapInt16UintX(vp *map[int16]uint, d *Decoder) {
30860 v, changed := f.DecMapInt16UintV(*vp, true, d)
30861 if changed {
30862 *vp = v
30863 }
30864}
30865func (_ fastpathT) DecMapInt16UintV(v map[int16]uint, canChange bool,
30866 d *Decoder) (_ map[int16]uint, changed bool) {
30867 dd, esep := d.d, d.hh.hasElemSeparators()
30868 containerLen := dd.ReadMapStart()
30869 if canChange && v == nil {
30870 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
30871 v = make(map[int16]uint, xlen)
30872 changed = true
30873 }
30874 if containerLen == 0 {
30875 dd.ReadMapEnd()
30876 return v, changed
30877 }
30878 var mk int16
30879 var mv uint
30880 hasLen := containerLen > 0
30881 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30882 if esep {
30883 dd.ReadMapElemKey()
30884 }
30885 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
30886 if esep {
30887 dd.ReadMapElemValue()
30888 }
30889 if dd.TryDecodeAsNil() {
30890 if v == nil {
30891 } else if d.h.DeleteOnNilMapValue {
30892 delete(v, mk)
30893 } else {
30894 v[mk] = 0
30895 }
30896 continue
30897 }
30898 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
30899 if v != nil {
30900 v[mk] = mv
30901 }
30902 }
30903 dd.ReadMapEnd()
30904 return v, changed
30905}
30906
30907func (d *Decoder) fastpathDecMapInt16Uint8R(f *codecFnInfo, rv reflect.Value) {
30908 if rv.Kind() == reflect.Ptr {
30909 vp := rv2i(rv).(*map[int16]uint8)
30910 v, changed := fastpathTV.DecMapInt16Uint8V(*vp, true, d)
30911 if changed {
30912 *vp = v
30913 }
30914 } else {
30915 fastpathTV.DecMapInt16Uint8V(rv2i(rv).(map[int16]uint8), false, d)
30916 }
30917}
30918func (f fastpathT) DecMapInt16Uint8X(vp *map[int16]uint8, d *Decoder) {
30919 v, changed := f.DecMapInt16Uint8V(*vp, true, d)
30920 if changed {
30921 *vp = v
30922 }
30923}
30924func (_ fastpathT) DecMapInt16Uint8V(v map[int16]uint8, canChange bool,
30925 d *Decoder) (_ map[int16]uint8, changed bool) {
30926 dd, esep := d.d, d.hh.hasElemSeparators()
30927 containerLen := dd.ReadMapStart()
30928 if canChange && v == nil {
30929 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
30930 v = make(map[int16]uint8, xlen)
30931 changed = true
30932 }
30933 if containerLen == 0 {
30934 dd.ReadMapEnd()
30935 return v, changed
30936 }
30937 var mk int16
30938 var mv uint8
30939 hasLen := containerLen > 0
30940 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
30941 if esep {
30942 dd.ReadMapElemKey()
30943 }
30944 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
30945 if esep {
30946 dd.ReadMapElemValue()
30947 }
30948 if dd.TryDecodeAsNil() {
30949 if v == nil {
30950 } else if d.h.DeleteOnNilMapValue {
30951 delete(v, mk)
30952 } else {
30953 v[mk] = 0
30954 }
30955 continue
30956 }
30957 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
30958 if v != nil {
30959 v[mk] = mv
30960 }
30961 }
30962 dd.ReadMapEnd()
30963 return v, changed
30964}
30965
30966func (d *Decoder) fastpathDecMapInt16Uint16R(f *codecFnInfo, rv reflect.Value) {
30967 if rv.Kind() == reflect.Ptr {
30968 vp := rv2i(rv).(*map[int16]uint16)
30969 v, changed := fastpathTV.DecMapInt16Uint16V(*vp, true, d)
30970 if changed {
30971 *vp = v
30972 }
30973 } else {
30974 fastpathTV.DecMapInt16Uint16V(rv2i(rv).(map[int16]uint16), false, d)
30975 }
30976}
30977func (f fastpathT) DecMapInt16Uint16X(vp *map[int16]uint16, d *Decoder) {
30978 v, changed := f.DecMapInt16Uint16V(*vp, true, d)
30979 if changed {
30980 *vp = v
30981 }
30982}
30983func (_ fastpathT) DecMapInt16Uint16V(v map[int16]uint16, canChange bool,
30984 d *Decoder) (_ map[int16]uint16, changed bool) {
30985 dd, esep := d.d, d.hh.hasElemSeparators()
30986 containerLen := dd.ReadMapStart()
30987 if canChange && v == nil {
30988 xlen := decInferLen(containerLen, d.h.MaxInitLen, 4)
30989 v = make(map[int16]uint16, xlen)
30990 changed = true
30991 }
30992 if containerLen == 0 {
30993 dd.ReadMapEnd()
30994 return v, changed
30995 }
30996 var mk int16
30997 var mv uint16
30998 hasLen := containerLen > 0
30999 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31000 if esep {
31001 dd.ReadMapElemKey()
31002 }
31003 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31004 if esep {
31005 dd.ReadMapElemValue()
31006 }
31007 if dd.TryDecodeAsNil() {
31008 if v == nil {
31009 } else if d.h.DeleteOnNilMapValue {
31010 delete(v, mk)
31011 } else {
31012 v[mk] = 0
31013 }
31014 continue
31015 }
31016 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
31017 if v != nil {
31018 v[mk] = mv
31019 }
31020 }
31021 dd.ReadMapEnd()
31022 return v, changed
31023}
31024
31025func (d *Decoder) fastpathDecMapInt16Uint32R(f *codecFnInfo, rv reflect.Value) {
31026 if rv.Kind() == reflect.Ptr {
31027 vp := rv2i(rv).(*map[int16]uint32)
31028 v, changed := fastpathTV.DecMapInt16Uint32V(*vp, true, d)
31029 if changed {
31030 *vp = v
31031 }
31032 } else {
31033 fastpathTV.DecMapInt16Uint32V(rv2i(rv).(map[int16]uint32), false, d)
31034 }
31035}
31036func (f fastpathT) DecMapInt16Uint32X(vp *map[int16]uint32, d *Decoder) {
31037 v, changed := f.DecMapInt16Uint32V(*vp, true, d)
31038 if changed {
31039 *vp = v
31040 }
31041}
31042func (_ fastpathT) DecMapInt16Uint32V(v map[int16]uint32, canChange bool,
31043 d *Decoder) (_ map[int16]uint32, changed bool) {
31044 dd, esep := d.d, d.hh.hasElemSeparators()
31045 containerLen := dd.ReadMapStart()
31046 if canChange && v == nil {
31047 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
31048 v = make(map[int16]uint32, xlen)
31049 changed = true
31050 }
31051 if containerLen == 0 {
31052 dd.ReadMapEnd()
31053 return v, changed
31054 }
31055 var mk int16
31056 var mv uint32
31057 hasLen := containerLen > 0
31058 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31059 if esep {
31060 dd.ReadMapElemKey()
31061 }
31062 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31063 if esep {
31064 dd.ReadMapElemValue()
31065 }
31066 if dd.TryDecodeAsNil() {
31067 if v == nil {
31068 } else if d.h.DeleteOnNilMapValue {
31069 delete(v, mk)
31070 } else {
31071 v[mk] = 0
31072 }
31073 continue
31074 }
31075 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
31076 if v != nil {
31077 v[mk] = mv
31078 }
31079 }
31080 dd.ReadMapEnd()
31081 return v, changed
31082}
31083
31084func (d *Decoder) fastpathDecMapInt16Uint64R(f *codecFnInfo, rv reflect.Value) {
31085 if rv.Kind() == reflect.Ptr {
31086 vp := rv2i(rv).(*map[int16]uint64)
31087 v, changed := fastpathTV.DecMapInt16Uint64V(*vp, true, d)
31088 if changed {
31089 *vp = v
31090 }
31091 } else {
31092 fastpathTV.DecMapInt16Uint64V(rv2i(rv).(map[int16]uint64), false, d)
31093 }
31094}
31095func (f fastpathT) DecMapInt16Uint64X(vp *map[int16]uint64, d *Decoder) {
31096 v, changed := f.DecMapInt16Uint64V(*vp, true, d)
31097 if changed {
31098 *vp = v
31099 }
31100}
31101func (_ fastpathT) DecMapInt16Uint64V(v map[int16]uint64, canChange bool,
31102 d *Decoder) (_ map[int16]uint64, changed bool) {
31103 dd, esep := d.d, d.hh.hasElemSeparators()
31104 containerLen := dd.ReadMapStart()
31105 if canChange && v == nil {
31106 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
31107 v = make(map[int16]uint64, xlen)
31108 changed = true
31109 }
31110 if containerLen == 0 {
31111 dd.ReadMapEnd()
31112 return v, changed
31113 }
31114 var mk int16
31115 var mv uint64
31116 hasLen := containerLen > 0
31117 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31118 if esep {
31119 dd.ReadMapElemKey()
31120 }
31121 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31122 if esep {
31123 dd.ReadMapElemValue()
31124 }
31125 if dd.TryDecodeAsNil() {
31126 if v == nil {
31127 } else if d.h.DeleteOnNilMapValue {
31128 delete(v, mk)
31129 } else {
31130 v[mk] = 0
31131 }
31132 continue
31133 }
31134 mv = dd.DecodeUint64()
31135 if v != nil {
31136 v[mk] = mv
31137 }
31138 }
31139 dd.ReadMapEnd()
31140 return v, changed
31141}
31142
31143func (d *Decoder) fastpathDecMapInt16UintptrR(f *codecFnInfo, rv reflect.Value) {
31144 if rv.Kind() == reflect.Ptr {
31145 vp := rv2i(rv).(*map[int16]uintptr)
31146 v, changed := fastpathTV.DecMapInt16UintptrV(*vp, true, d)
31147 if changed {
31148 *vp = v
31149 }
31150 } else {
31151 fastpathTV.DecMapInt16UintptrV(rv2i(rv).(map[int16]uintptr), false, d)
31152 }
31153}
31154func (f fastpathT) DecMapInt16UintptrX(vp *map[int16]uintptr, d *Decoder) {
31155 v, changed := f.DecMapInt16UintptrV(*vp, true, d)
31156 if changed {
31157 *vp = v
31158 }
31159}
31160func (_ fastpathT) DecMapInt16UintptrV(v map[int16]uintptr, canChange bool,
31161 d *Decoder) (_ map[int16]uintptr, changed bool) {
31162 dd, esep := d.d, d.hh.hasElemSeparators()
31163 containerLen := dd.ReadMapStart()
31164 if canChange && v == nil {
31165 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
31166 v = make(map[int16]uintptr, xlen)
31167 changed = true
31168 }
31169 if containerLen == 0 {
31170 dd.ReadMapEnd()
31171 return v, changed
31172 }
31173 var mk int16
31174 var mv uintptr
31175 hasLen := containerLen > 0
31176 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31177 if esep {
31178 dd.ReadMapElemKey()
31179 }
31180 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31181 if esep {
31182 dd.ReadMapElemValue()
31183 }
31184 if dd.TryDecodeAsNil() {
31185 if v == nil {
31186 } else if d.h.DeleteOnNilMapValue {
31187 delete(v, mk)
31188 } else {
31189 v[mk] = 0
31190 }
31191 continue
31192 }
31193 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
31194 if v != nil {
31195 v[mk] = mv
31196 }
31197 }
31198 dd.ReadMapEnd()
31199 return v, changed
31200}
31201
31202func (d *Decoder) fastpathDecMapInt16IntR(f *codecFnInfo, rv reflect.Value) {
31203 if rv.Kind() == reflect.Ptr {
31204 vp := rv2i(rv).(*map[int16]int)
31205 v, changed := fastpathTV.DecMapInt16IntV(*vp, true, d)
31206 if changed {
31207 *vp = v
31208 }
31209 } else {
31210 fastpathTV.DecMapInt16IntV(rv2i(rv).(map[int16]int), false, d)
31211 }
31212}
31213func (f fastpathT) DecMapInt16IntX(vp *map[int16]int, d *Decoder) {
31214 v, changed := f.DecMapInt16IntV(*vp, true, d)
31215 if changed {
31216 *vp = v
31217 }
31218}
31219func (_ fastpathT) DecMapInt16IntV(v map[int16]int, canChange bool,
31220 d *Decoder) (_ map[int16]int, changed bool) {
31221 dd, esep := d.d, d.hh.hasElemSeparators()
31222 containerLen := dd.ReadMapStart()
31223 if canChange && v == nil {
31224 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
31225 v = make(map[int16]int, xlen)
31226 changed = true
31227 }
31228 if containerLen == 0 {
31229 dd.ReadMapEnd()
31230 return v, changed
31231 }
31232 var mk int16
31233 var mv int
31234 hasLen := containerLen > 0
31235 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31236 if esep {
31237 dd.ReadMapElemKey()
31238 }
31239 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31240 if esep {
31241 dd.ReadMapElemValue()
31242 }
31243 if dd.TryDecodeAsNil() {
31244 if v == nil {
31245 } else if d.h.DeleteOnNilMapValue {
31246 delete(v, mk)
31247 } else {
31248 v[mk] = 0
31249 }
31250 continue
31251 }
31252 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
31253 if v != nil {
31254 v[mk] = mv
31255 }
31256 }
31257 dd.ReadMapEnd()
31258 return v, changed
31259}
31260
31261func (d *Decoder) fastpathDecMapInt16Int8R(f *codecFnInfo, rv reflect.Value) {
31262 if rv.Kind() == reflect.Ptr {
31263 vp := rv2i(rv).(*map[int16]int8)
31264 v, changed := fastpathTV.DecMapInt16Int8V(*vp, true, d)
31265 if changed {
31266 *vp = v
31267 }
31268 } else {
31269 fastpathTV.DecMapInt16Int8V(rv2i(rv).(map[int16]int8), false, d)
31270 }
31271}
31272func (f fastpathT) DecMapInt16Int8X(vp *map[int16]int8, d *Decoder) {
31273 v, changed := f.DecMapInt16Int8V(*vp, true, d)
31274 if changed {
31275 *vp = v
31276 }
31277}
31278func (_ fastpathT) DecMapInt16Int8V(v map[int16]int8, canChange bool,
31279 d *Decoder) (_ map[int16]int8, changed bool) {
31280 dd, esep := d.d, d.hh.hasElemSeparators()
31281 containerLen := dd.ReadMapStart()
31282 if canChange && v == nil {
31283 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
31284 v = make(map[int16]int8, xlen)
31285 changed = true
31286 }
31287 if containerLen == 0 {
31288 dd.ReadMapEnd()
31289 return v, changed
31290 }
31291 var mk int16
31292 var mv int8
31293 hasLen := containerLen > 0
31294 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31295 if esep {
31296 dd.ReadMapElemKey()
31297 }
31298 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31299 if esep {
31300 dd.ReadMapElemValue()
31301 }
31302 if dd.TryDecodeAsNil() {
31303 if v == nil {
31304 } else if d.h.DeleteOnNilMapValue {
31305 delete(v, mk)
31306 } else {
31307 v[mk] = 0
31308 }
31309 continue
31310 }
31311 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
31312 if v != nil {
31313 v[mk] = mv
31314 }
31315 }
31316 dd.ReadMapEnd()
31317 return v, changed
31318}
31319
31320func (d *Decoder) fastpathDecMapInt16Int16R(f *codecFnInfo, rv reflect.Value) {
31321 if rv.Kind() == reflect.Ptr {
31322 vp := rv2i(rv).(*map[int16]int16)
31323 v, changed := fastpathTV.DecMapInt16Int16V(*vp, true, d)
31324 if changed {
31325 *vp = v
31326 }
31327 } else {
31328 fastpathTV.DecMapInt16Int16V(rv2i(rv).(map[int16]int16), false, d)
31329 }
31330}
31331func (f fastpathT) DecMapInt16Int16X(vp *map[int16]int16, d *Decoder) {
31332 v, changed := f.DecMapInt16Int16V(*vp, true, d)
31333 if changed {
31334 *vp = v
31335 }
31336}
31337func (_ fastpathT) DecMapInt16Int16V(v map[int16]int16, canChange bool,
31338 d *Decoder) (_ map[int16]int16, changed bool) {
31339 dd, esep := d.d, d.hh.hasElemSeparators()
31340 containerLen := dd.ReadMapStart()
31341 if canChange && v == nil {
31342 xlen := decInferLen(containerLen, d.h.MaxInitLen, 4)
31343 v = make(map[int16]int16, xlen)
31344 changed = true
31345 }
31346 if containerLen == 0 {
31347 dd.ReadMapEnd()
31348 return v, changed
31349 }
31350 var mk int16
31351 var mv int16
31352 hasLen := containerLen > 0
31353 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31354 if esep {
31355 dd.ReadMapElemKey()
31356 }
31357 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31358 if esep {
31359 dd.ReadMapElemValue()
31360 }
31361 if dd.TryDecodeAsNil() {
31362 if v == nil {
31363 } else if d.h.DeleteOnNilMapValue {
31364 delete(v, mk)
31365 } else {
31366 v[mk] = 0
31367 }
31368 continue
31369 }
31370 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31371 if v != nil {
31372 v[mk] = mv
31373 }
31374 }
31375 dd.ReadMapEnd()
31376 return v, changed
31377}
31378
31379func (d *Decoder) fastpathDecMapInt16Int32R(f *codecFnInfo, rv reflect.Value) {
31380 if rv.Kind() == reflect.Ptr {
31381 vp := rv2i(rv).(*map[int16]int32)
31382 v, changed := fastpathTV.DecMapInt16Int32V(*vp, true, d)
31383 if changed {
31384 *vp = v
31385 }
31386 } else {
31387 fastpathTV.DecMapInt16Int32V(rv2i(rv).(map[int16]int32), false, d)
31388 }
31389}
31390func (f fastpathT) DecMapInt16Int32X(vp *map[int16]int32, d *Decoder) {
31391 v, changed := f.DecMapInt16Int32V(*vp, true, d)
31392 if changed {
31393 *vp = v
31394 }
31395}
31396func (_ fastpathT) DecMapInt16Int32V(v map[int16]int32, canChange bool,
31397 d *Decoder) (_ map[int16]int32, changed bool) {
31398 dd, esep := d.d, d.hh.hasElemSeparators()
31399 containerLen := dd.ReadMapStart()
31400 if canChange && v == nil {
31401 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
31402 v = make(map[int16]int32, xlen)
31403 changed = true
31404 }
31405 if containerLen == 0 {
31406 dd.ReadMapEnd()
31407 return v, changed
31408 }
31409 var mk int16
31410 var mv int32
31411 hasLen := containerLen > 0
31412 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31413 if esep {
31414 dd.ReadMapElemKey()
31415 }
31416 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31417 if esep {
31418 dd.ReadMapElemValue()
31419 }
31420 if dd.TryDecodeAsNil() {
31421 if v == nil {
31422 } else if d.h.DeleteOnNilMapValue {
31423 delete(v, mk)
31424 } else {
31425 v[mk] = 0
31426 }
31427 continue
31428 }
31429 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
31430 if v != nil {
31431 v[mk] = mv
31432 }
31433 }
31434 dd.ReadMapEnd()
31435 return v, changed
31436}
31437
31438func (d *Decoder) fastpathDecMapInt16Int64R(f *codecFnInfo, rv reflect.Value) {
31439 if rv.Kind() == reflect.Ptr {
31440 vp := rv2i(rv).(*map[int16]int64)
31441 v, changed := fastpathTV.DecMapInt16Int64V(*vp, true, d)
31442 if changed {
31443 *vp = v
31444 }
31445 } else {
31446 fastpathTV.DecMapInt16Int64V(rv2i(rv).(map[int16]int64), false, d)
31447 }
31448}
31449func (f fastpathT) DecMapInt16Int64X(vp *map[int16]int64, d *Decoder) {
31450 v, changed := f.DecMapInt16Int64V(*vp, true, d)
31451 if changed {
31452 *vp = v
31453 }
31454}
31455func (_ fastpathT) DecMapInt16Int64V(v map[int16]int64, canChange bool,
31456 d *Decoder) (_ map[int16]int64, changed bool) {
31457 dd, esep := d.d, d.hh.hasElemSeparators()
31458 containerLen := dd.ReadMapStart()
31459 if canChange && v == nil {
31460 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
31461 v = make(map[int16]int64, xlen)
31462 changed = true
31463 }
31464 if containerLen == 0 {
31465 dd.ReadMapEnd()
31466 return v, changed
31467 }
31468 var mk int16
31469 var mv int64
31470 hasLen := containerLen > 0
31471 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31472 if esep {
31473 dd.ReadMapElemKey()
31474 }
31475 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31476 if esep {
31477 dd.ReadMapElemValue()
31478 }
31479 if dd.TryDecodeAsNil() {
31480 if v == nil {
31481 } else if d.h.DeleteOnNilMapValue {
31482 delete(v, mk)
31483 } else {
31484 v[mk] = 0
31485 }
31486 continue
31487 }
31488 mv = dd.DecodeInt64()
31489 if v != nil {
31490 v[mk] = mv
31491 }
31492 }
31493 dd.ReadMapEnd()
31494 return v, changed
31495}
31496
31497func (d *Decoder) fastpathDecMapInt16Float32R(f *codecFnInfo, rv reflect.Value) {
31498 if rv.Kind() == reflect.Ptr {
31499 vp := rv2i(rv).(*map[int16]float32)
31500 v, changed := fastpathTV.DecMapInt16Float32V(*vp, true, d)
31501 if changed {
31502 *vp = v
31503 }
31504 } else {
31505 fastpathTV.DecMapInt16Float32V(rv2i(rv).(map[int16]float32), false, d)
31506 }
31507}
31508func (f fastpathT) DecMapInt16Float32X(vp *map[int16]float32, d *Decoder) {
31509 v, changed := f.DecMapInt16Float32V(*vp, true, d)
31510 if changed {
31511 *vp = v
31512 }
31513}
31514func (_ fastpathT) DecMapInt16Float32V(v map[int16]float32, canChange bool,
31515 d *Decoder) (_ map[int16]float32, changed bool) {
31516 dd, esep := d.d, d.hh.hasElemSeparators()
31517 containerLen := dd.ReadMapStart()
31518 if canChange && v == nil {
31519 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
31520 v = make(map[int16]float32, xlen)
31521 changed = true
31522 }
31523 if containerLen == 0 {
31524 dd.ReadMapEnd()
31525 return v, changed
31526 }
31527 var mk int16
31528 var mv float32
31529 hasLen := containerLen > 0
31530 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31531 if esep {
31532 dd.ReadMapElemKey()
31533 }
31534 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31535 if esep {
31536 dd.ReadMapElemValue()
31537 }
31538 if dd.TryDecodeAsNil() {
31539 if v == nil {
31540 } else if d.h.DeleteOnNilMapValue {
31541 delete(v, mk)
31542 } else {
31543 v[mk] = 0
31544 }
31545 continue
31546 }
31547 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
31548 if v != nil {
31549 v[mk] = mv
31550 }
31551 }
31552 dd.ReadMapEnd()
31553 return v, changed
31554}
31555
31556func (d *Decoder) fastpathDecMapInt16Float64R(f *codecFnInfo, rv reflect.Value) {
31557 if rv.Kind() == reflect.Ptr {
31558 vp := rv2i(rv).(*map[int16]float64)
31559 v, changed := fastpathTV.DecMapInt16Float64V(*vp, true, d)
31560 if changed {
31561 *vp = v
31562 }
31563 } else {
31564 fastpathTV.DecMapInt16Float64V(rv2i(rv).(map[int16]float64), false, d)
31565 }
31566}
31567func (f fastpathT) DecMapInt16Float64X(vp *map[int16]float64, d *Decoder) {
31568 v, changed := f.DecMapInt16Float64V(*vp, true, d)
31569 if changed {
31570 *vp = v
31571 }
31572}
31573func (_ fastpathT) DecMapInt16Float64V(v map[int16]float64, canChange bool,
31574 d *Decoder) (_ map[int16]float64, changed bool) {
31575 dd, esep := d.d, d.hh.hasElemSeparators()
31576 containerLen := dd.ReadMapStart()
31577 if canChange && v == nil {
31578 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
31579 v = make(map[int16]float64, xlen)
31580 changed = true
31581 }
31582 if containerLen == 0 {
31583 dd.ReadMapEnd()
31584 return v, changed
31585 }
31586 var mk int16
31587 var mv float64
31588 hasLen := containerLen > 0
31589 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31590 if esep {
31591 dd.ReadMapElemKey()
31592 }
31593 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31594 if esep {
31595 dd.ReadMapElemValue()
31596 }
31597 if dd.TryDecodeAsNil() {
31598 if v == nil {
31599 } else if d.h.DeleteOnNilMapValue {
31600 delete(v, mk)
31601 } else {
31602 v[mk] = 0
31603 }
31604 continue
31605 }
31606 mv = dd.DecodeFloat64()
31607 if v != nil {
31608 v[mk] = mv
31609 }
31610 }
31611 dd.ReadMapEnd()
31612 return v, changed
31613}
31614
31615func (d *Decoder) fastpathDecMapInt16BoolR(f *codecFnInfo, rv reflect.Value) {
31616 if rv.Kind() == reflect.Ptr {
31617 vp := rv2i(rv).(*map[int16]bool)
31618 v, changed := fastpathTV.DecMapInt16BoolV(*vp, true, d)
31619 if changed {
31620 *vp = v
31621 }
31622 } else {
31623 fastpathTV.DecMapInt16BoolV(rv2i(rv).(map[int16]bool), false, d)
31624 }
31625}
31626func (f fastpathT) DecMapInt16BoolX(vp *map[int16]bool, d *Decoder) {
31627 v, changed := f.DecMapInt16BoolV(*vp, true, d)
31628 if changed {
31629 *vp = v
31630 }
31631}
31632func (_ fastpathT) DecMapInt16BoolV(v map[int16]bool, canChange bool,
31633 d *Decoder) (_ map[int16]bool, changed bool) {
31634 dd, esep := d.d, d.hh.hasElemSeparators()
31635 containerLen := dd.ReadMapStart()
31636 if canChange && v == nil {
31637 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
31638 v = make(map[int16]bool, xlen)
31639 changed = true
31640 }
31641 if containerLen == 0 {
31642 dd.ReadMapEnd()
31643 return v, changed
31644 }
31645 var mk int16
31646 var mv bool
31647 hasLen := containerLen > 0
31648 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31649 if esep {
31650 dd.ReadMapElemKey()
31651 }
31652 mk = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
31653 if esep {
31654 dd.ReadMapElemValue()
31655 }
31656 if dd.TryDecodeAsNil() {
31657 if v == nil {
31658 } else if d.h.DeleteOnNilMapValue {
31659 delete(v, mk)
31660 } else {
31661 v[mk] = false
31662 }
31663 continue
31664 }
31665 mv = dd.DecodeBool()
31666 if v != nil {
31667 v[mk] = mv
31668 }
31669 }
31670 dd.ReadMapEnd()
31671 return v, changed
31672}
31673
31674func (d *Decoder) fastpathDecMapInt32IntfR(f *codecFnInfo, rv reflect.Value) {
31675 if rv.Kind() == reflect.Ptr {
31676 vp := rv2i(rv).(*map[int32]interface{})
31677 v, changed := fastpathTV.DecMapInt32IntfV(*vp, true, d)
31678 if changed {
31679 *vp = v
31680 }
31681 } else {
31682 fastpathTV.DecMapInt32IntfV(rv2i(rv).(map[int32]interface{}), false, d)
31683 }
31684}
31685func (f fastpathT) DecMapInt32IntfX(vp *map[int32]interface{}, d *Decoder) {
31686 v, changed := f.DecMapInt32IntfV(*vp, true, d)
31687 if changed {
31688 *vp = v
31689 }
31690}
31691func (_ fastpathT) DecMapInt32IntfV(v map[int32]interface{}, canChange bool,
31692 d *Decoder) (_ map[int32]interface{}, changed bool) {
31693 dd, esep := d.d, d.hh.hasElemSeparators()
31694 containerLen := dd.ReadMapStart()
31695 if canChange && v == nil {
31696 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
31697 v = make(map[int32]interface{}, xlen)
31698 changed = true
31699 }
31700 if containerLen == 0 {
31701 dd.ReadMapEnd()
31702 return v, changed
31703 }
31704 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
31705 var mk int32
31706 var mv interface{}
31707 hasLen := containerLen > 0
31708 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31709 if esep {
31710 dd.ReadMapElemKey()
31711 }
31712 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
31713 if esep {
31714 dd.ReadMapElemValue()
31715 }
31716 if dd.TryDecodeAsNil() {
31717 if v == nil {
31718 } else if d.h.DeleteOnNilMapValue {
31719 delete(v, mk)
31720 } else {
31721 v[mk] = nil
31722 }
31723 continue
31724 }
31725 if mapGet {
31726 mv = v[mk]
31727 } else {
31728 mv = nil
31729 }
31730 d.decode(&mv)
31731 if v != nil {
31732 v[mk] = mv
31733 }
31734 }
31735 dd.ReadMapEnd()
31736 return v, changed
31737}
31738
31739func (d *Decoder) fastpathDecMapInt32StringR(f *codecFnInfo, rv reflect.Value) {
31740 if rv.Kind() == reflect.Ptr {
31741 vp := rv2i(rv).(*map[int32]string)
31742 v, changed := fastpathTV.DecMapInt32StringV(*vp, true, d)
31743 if changed {
31744 *vp = v
31745 }
31746 } else {
31747 fastpathTV.DecMapInt32StringV(rv2i(rv).(map[int32]string), false, d)
31748 }
31749}
31750func (f fastpathT) DecMapInt32StringX(vp *map[int32]string, d *Decoder) {
31751 v, changed := f.DecMapInt32StringV(*vp, true, d)
31752 if changed {
31753 *vp = v
31754 }
31755}
31756func (_ fastpathT) DecMapInt32StringV(v map[int32]string, canChange bool,
31757 d *Decoder) (_ map[int32]string, changed bool) {
31758 dd, esep := d.d, d.hh.hasElemSeparators()
31759 containerLen := dd.ReadMapStart()
31760 if canChange && v == nil {
31761 xlen := decInferLen(containerLen, d.h.MaxInitLen, 20)
31762 v = make(map[int32]string, xlen)
31763 changed = true
31764 }
31765 if containerLen == 0 {
31766 dd.ReadMapEnd()
31767 return v, changed
31768 }
31769 var mk int32
31770 var mv string
31771 hasLen := containerLen > 0
31772 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31773 if esep {
31774 dd.ReadMapElemKey()
31775 }
31776 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
31777 if esep {
31778 dd.ReadMapElemValue()
31779 }
31780 if dd.TryDecodeAsNil() {
31781 if v == nil {
31782 } else if d.h.DeleteOnNilMapValue {
31783 delete(v, mk)
31784 } else {
31785 v[mk] = ""
31786 }
31787 continue
31788 }
31789 mv = dd.DecodeString()
31790 if v != nil {
31791 v[mk] = mv
31792 }
31793 }
31794 dd.ReadMapEnd()
31795 return v, changed
31796}
31797
31798func (d *Decoder) fastpathDecMapInt32UintR(f *codecFnInfo, rv reflect.Value) {
31799 if rv.Kind() == reflect.Ptr {
31800 vp := rv2i(rv).(*map[int32]uint)
31801 v, changed := fastpathTV.DecMapInt32UintV(*vp, true, d)
31802 if changed {
31803 *vp = v
31804 }
31805 } else {
31806 fastpathTV.DecMapInt32UintV(rv2i(rv).(map[int32]uint), false, d)
31807 }
31808}
31809func (f fastpathT) DecMapInt32UintX(vp *map[int32]uint, d *Decoder) {
31810 v, changed := f.DecMapInt32UintV(*vp, true, d)
31811 if changed {
31812 *vp = v
31813 }
31814}
31815func (_ fastpathT) DecMapInt32UintV(v map[int32]uint, canChange bool,
31816 d *Decoder) (_ map[int32]uint, changed bool) {
31817 dd, esep := d.d, d.hh.hasElemSeparators()
31818 containerLen := dd.ReadMapStart()
31819 if canChange && v == nil {
31820 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
31821 v = make(map[int32]uint, xlen)
31822 changed = true
31823 }
31824 if containerLen == 0 {
31825 dd.ReadMapEnd()
31826 return v, changed
31827 }
31828 var mk int32
31829 var mv uint
31830 hasLen := containerLen > 0
31831 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31832 if esep {
31833 dd.ReadMapElemKey()
31834 }
31835 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
31836 if esep {
31837 dd.ReadMapElemValue()
31838 }
31839 if dd.TryDecodeAsNil() {
31840 if v == nil {
31841 } else if d.h.DeleteOnNilMapValue {
31842 delete(v, mk)
31843 } else {
31844 v[mk] = 0
31845 }
31846 continue
31847 }
31848 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
31849 if v != nil {
31850 v[mk] = mv
31851 }
31852 }
31853 dd.ReadMapEnd()
31854 return v, changed
31855}
31856
31857func (d *Decoder) fastpathDecMapInt32Uint8R(f *codecFnInfo, rv reflect.Value) {
31858 if rv.Kind() == reflect.Ptr {
31859 vp := rv2i(rv).(*map[int32]uint8)
31860 v, changed := fastpathTV.DecMapInt32Uint8V(*vp, true, d)
31861 if changed {
31862 *vp = v
31863 }
31864 } else {
31865 fastpathTV.DecMapInt32Uint8V(rv2i(rv).(map[int32]uint8), false, d)
31866 }
31867}
31868func (f fastpathT) DecMapInt32Uint8X(vp *map[int32]uint8, d *Decoder) {
31869 v, changed := f.DecMapInt32Uint8V(*vp, true, d)
31870 if changed {
31871 *vp = v
31872 }
31873}
31874func (_ fastpathT) DecMapInt32Uint8V(v map[int32]uint8, canChange bool,
31875 d *Decoder) (_ map[int32]uint8, changed bool) {
31876 dd, esep := d.d, d.hh.hasElemSeparators()
31877 containerLen := dd.ReadMapStart()
31878 if canChange && v == nil {
31879 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
31880 v = make(map[int32]uint8, xlen)
31881 changed = true
31882 }
31883 if containerLen == 0 {
31884 dd.ReadMapEnd()
31885 return v, changed
31886 }
31887 var mk int32
31888 var mv uint8
31889 hasLen := containerLen > 0
31890 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31891 if esep {
31892 dd.ReadMapElemKey()
31893 }
31894 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
31895 if esep {
31896 dd.ReadMapElemValue()
31897 }
31898 if dd.TryDecodeAsNil() {
31899 if v == nil {
31900 } else if d.h.DeleteOnNilMapValue {
31901 delete(v, mk)
31902 } else {
31903 v[mk] = 0
31904 }
31905 continue
31906 }
31907 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
31908 if v != nil {
31909 v[mk] = mv
31910 }
31911 }
31912 dd.ReadMapEnd()
31913 return v, changed
31914}
31915
31916func (d *Decoder) fastpathDecMapInt32Uint16R(f *codecFnInfo, rv reflect.Value) {
31917 if rv.Kind() == reflect.Ptr {
31918 vp := rv2i(rv).(*map[int32]uint16)
31919 v, changed := fastpathTV.DecMapInt32Uint16V(*vp, true, d)
31920 if changed {
31921 *vp = v
31922 }
31923 } else {
31924 fastpathTV.DecMapInt32Uint16V(rv2i(rv).(map[int32]uint16), false, d)
31925 }
31926}
31927func (f fastpathT) DecMapInt32Uint16X(vp *map[int32]uint16, d *Decoder) {
31928 v, changed := f.DecMapInt32Uint16V(*vp, true, d)
31929 if changed {
31930 *vp = v
31931 }
31932}
31933func (_ fastpathT) DecMapInt32Uint16V(v map[int32]uint16, canChange bool,
31934 d *Decoder) (_ map[int32]uint16, changed bool) {
31935 dd, esep := d.d, d.hh.hasElemSeparators()
31936 containerLen := dd.ReadMapStart()
31937 if canChange && v == nil {
31938 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
31939 v = make(map[int32]uint16, xlen)
31940 changed = true
31941 }
31942 if containerLen == 0 {
31943 dd.ReadMapEnd()
31944 return v, changed
31945 }
31946 var mk int32
31947 var mv uint16
31948 hasLen := containerLen > 0
31949 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
31950 if esep {
31951 dd.ReadMapElemKey()
31952 }
31953 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
31954 if esep {
31955 dd.ReadMapElemValue()
31956 }
31957 if dd.TryDecodeAsNil() {
31958 if v == nil {
31959 } else if d.h.DeleteOnNilMapValue {
31960 delete(v, mk)
31961 } else {
31962 v[mk] = 0
31963 }
31964 continue
31965 }
31966 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
31967 if v != nil {
31968 v[mk] = mv
31969 }
31970 }
31971 dd.ReadMapEnd()
31972 return v, changed
31973}
31974
31975func (d *Decoder) fastpathDecMapInt32Uint32R(f *codecFnInfo, rv reflect.Value) {
31976 if rv.Kind() == reflect.Ptr {
31977 vp := rv2i(rv).(*map[int32]uint32)
31978 v, changed := fastpathTV.DecMapInt32Uint32V(*vp, true, d)
31979 if changed {
31980 *vp = v
31981 }
31982 } else {
31983 fastpathTV.DecMapInt32Uint32V(rv2i(rv).(map[int32]uint32), false, d)
31984 }
31985}
31986func (f fastpathT) DecMapInt32Uint32X(vp *map[int32]uint32, d *Decoder) {
31987 v, changed := f.DecMapInt32Uint32V(*vp, true, d)
31988 if changed {
31989 *vp = v
31990 }
31991}
31992func (_ fastpathT) DecMapInt32Uint32V(v map[int32]uint32, canChange bool,
31993 d *Decoder) (_ map[int32]uint32, changed bool) {
31994 dd, esep := d.d, d.hh.hasElemSeparators()
31995 containerLen := dd.ReadMapStart()
31996 if canChange && v == nil {
31997 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
31998 v = make(map[int32]uint32, xlen)
31999 changed = true
32000 }
32001 if containerLen == 0 {
32002 dd.ReadMapEnd()
32003 return v, changed
32004 }
32005 var mk int32
32006 var mv uint32
32007 hasLen := containerLen > 0
32008 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32009 if esep {
32010 dd.ReadMapElemKey()
32011 }
32012 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32013 if esep {
32014 dd.ReadMapElemValue()
32015 }
32016 if dd.TryDecodeAsNil() {
32017 if v == nil {
32018 } else if d.h.DeleteOnNilMapValue {
32019 delete(v, mk)
32020 } else {
32021 v[mk] = 0
32022 }
32023 continue
32024 }
32025 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
32026 if v != nil {
32027 v[mk] = mv
32028 }
32029 }
32030 dd.ReadMapEnd()
32031 return v, changed
32032}
32033
32034func (d *Decoder) fastpathDecMapInt32Uint64R(f *codecFnInfo, rv reflect.Value) {
32035 if rv.Kind() == reflect.Ptr {
32036 vp := rv2i(rv).(*map[int32]uint64)
32037 v, changed := fastpathTV.DecMapInt32Uint64V(*vp, true, d)
32038 if changed {
32039 *vp = v
32040 }
32041 } else {
32042 fastpathTV.DecMapInt32Uint64V(rv2i(rv).(map[int32]uint64), false, d)
32043 }
32044}
32045func (f fastpathT) DecMapInt32Uint64X(vp *map[int32]uint64, d *Decoder) {
32046 v, changed := f.DecMapInt32Uint64V(*vp, true, d)
32047 if changed {
32048 *vp = v
32049 }
32050}
32051func (_ fastpathT) DecMapInt32Uint64V(v map[int32]uint64, canChange bool,
32052 d *Decoder) (_ map[int32]uint64, changed bool) {
32053 dd, esep := d.d, d.hh.hasElemSeparators()
32054 containerLen := dd.ReadMapStart()
32055 if canChange && v == nil {
32056 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
32057 v = make(map[int32]uint64, xlen)
32058 changed = true
32059 }
32060 if containerLen == 0 {
32061 dd.ReadMapEnd()
32062 return v, changed
32063 }
32064 var mk int32
32065 var mv uint64
32066 hasLen := containerLen > 0
32067 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32068 if esep {
32069 dd.ReadMapElemKey()
32070 }
32071 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32072 if esep {
32073 dd.ReadMapElemValue()
32074 }
32075 if dd.TryDecodeAsNil() {
32076 if v == nil {
32077 } else if d.h.DeleteOnNilMapValue {
32078 delete(v, mk)
32079 } else {
32080 v[mk] = 0
32081 }
32082 continue
32083 }
32084 mv = dd.DecodeUint64()
32085 if v != nil {
32086 v[mk] = mv
32087 }
32088 }
32089 dd.ReadMapEnd()
32090 return v, changed
32091}
32092
32093func (d *Decoder) fastpathDecMapInt32UintptrR(f *codecFnInfo, rv reflect.Value) {
32094 if rv.Kind() == reflect.Ptr {
32095 vp := rv2i(rv).(*map[int32]uintptr)
32096 v, changed := fastpathTV.DecMapInt32UintptrV(*vp, true, d)
32097 if changed {
32098 *vp = v
32099 }
32100 } else {
32101 fastpathTV.DecMapInt32UintptrV(rv2i(rv).(map[int32]uintptr), false, d)
32102 }
32103}
32104func (f fastpathT) DecMapInt32UintptrX(vp *map[int32]uintptr, d *Decoder) {
32105 v, changed := f.DecMapInt32UintptrV(*vp, true, d)
32106 if changed {
32107 *vp = v
32108 }
32109}
32110func (_ fastpathT) DecMapInt32UintptrV(v map[int32]uintptr, canChange bool,
32111 d *Decoder) (_ map[int32]uintptr, changed bool) {
32112 dd, esep := d.d, d.hh.hasElemSeparators()
32113 containerLen := dd.ReadMapStart()
32114 if canChange && v == nil {
32115 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
32116 v = make(map[int32]uintptr, xlen)
32117 changed = true
32118 }
32119 if containerLen == 0 {
32120 dd.ReadMapEnd()
32121 return v, changed
32122 }
32123 var mk int32
32124 var mv uintptr
32125 hasLen := containerLen > 0
32126 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32127 if esep {
32128 dd.ReadMapElemKey()
32129 }
32130 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32131 if esep {
32132 dd.ReadMapElemValue()
32133 }
32134 if dd.TryDecodeAsNil() {
32135 if v == nil {
32136 } else if d.h.DeleteOnNilMapValue {
32137 delete(v, mk)
32138 } else {
32139 v[mk] = 0
32140 }
32141 continue
32142 }
32143 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
32144 if v != nil {
32145 v[mk] = mv
32146 }
32147 }
32148 dd.ReadMapEnd()
32149 return v, changed
32150}
32151
32152func (d *Decoder) fastpathDecMapInt32IntR(f *codecFnInfo, rv reflect.Value) {
32153 if rv.Kind() == reflect.Ptr {
32154 vp := rv2i(rv).(*map[int32]int)
32155 v, changed := fastpathTV.DecMapInt32IntV(*vp, true, d)
32156 if changed {
32157 *vp = v
32158 }
32159 } else {
32160 fastpathTV.DecMapInt32IntV(rv2i(rv).(map[int32]int), false, d)
32161 }
32162}
32163func (f fastpathT) DecMapInt32IntX(vp *map[int32]int, d *Decoder) {
32164 v, changed := f.DecMapInt32IntV(*vp, true, d)
32165 if changed {
32166 *vp = v
32167 }
32168}
32169func (_ fastpathT) DecMapInt32IntV(v map[int32]int, canChange bool,
32170 d *Decoder) (_ map[int32]int, changed bool) {
32171 dd, esep := d.d, d.hh.hasElemSeparators()
32172 containerLen := dd.ReadMapStart()
32173 if canChange && v == nil {
32174 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
32175 v = make(map[int32]int, xlen)
32176 changed = true
32177 }
32178 if containerLen == 0 {
32179 dd.ReadMapEnd()
32180 return v, changed
32181 }
32182 var mk int32
32183 var mv int
32184 hasLen := containerLen > 0
32185 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32186 if esep {
32187 dd.ReadMapElemKey()
32188 }
32189 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32190 if esep {
32191 dd.ReadMapElemValue()
32192 }
32193 if dd.TryDecodeAsNil() {
32194 if v == nil {
32195 } else if d.h.DeleteOnNilMapValue {
32196 delete(v, mk)
32197 } else {
32198 v[mk] = 0
32199 }
32200 continue
32201 }
32202 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
32203 if v != nil {
32204 v[mk] = mv
32205 }
32206 }
32207 dd.ReadMapEnd()
32208 return v, changed
32209}
32210
32211func (d *Decoder) fastpathDecMapInt32Int8R(f *codecFnInfo, rv reflect.Value) {
32212 if rv.Kind() == reflect.Ptr {
32213 vp := rv2i(rv).(*map[int32]int8)
32214 v, changed := fastpathTV.DecMapInt32Int8V(*vp, true, d)
32215 if changed {
32216 *vp = v
32217 }
32218 } else {
32219 fastpathTV.DecMapInt32Int8V(rv2i(rv).(map[int32]int8), false, d)
32220 }
32221}
32222func (f fastpathT) DecMapInt32Int8X(vp *map[int32]int8, d *Decoder) {
32223 v, changed := f.DecMapInt32Int8V(*vp, true, d)
32224 if changed {
32225 *vp = v
32226 }
32227}
32228func (_ fastpathT) DecMapInt32Int8V(v map[int32]int8, canChange bool,
32229 d *Decoder) (_ map[int32]int8, changed bool) {
32230 dd, esep := d.d, d.hh.hasElemSeparators()
32231 containerLen := dd.ReadMapStart()
32232 if canChange && v == nil {
32233 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
32234 v = make(map[int32]int8, xlen)
32235 changed = true
32236 }
32237 if containerLen == 0 {
32238 dd.ReadMapEnd()
32239 return v, changed
32240 }
32241 var mk int32
32242 var mv int8
32243 hasLen := containerLen > 0
32244 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32245 if esep {
32246 dd.ReadMapElemKey()
32247 }
32248 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32249 if esep {
32250 dd.ReadMapElemValue()
32251 }
32252 if dd.TryDecodeAsNil() {
32253 if v == nil {
32254 } else if d.h.DeleteOnNilMapValue {
32255 delete(v, mk)
32256 } else {
32257 v[mk] = 0
32258 }
32259 continue
32260 }
32261 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
32262 if v != nil {
32263 v[mk] = mv
32264 }
32265 }
32266 dd.ReadMapEnd()
32267 return v, changed
32268}
32269
32270func (d *Decoder) fastpathDecMapInt32Int16R(f *codecFnInfo, rv reflect.Value) {
32271 if rv.Kind() == reflect.Ptr {
32272 vp := rv2i(rv).(*map[int32]int16)
32273 v, changed := fastpathTV.DecMapInt32Int16V(*vp, true, d)
32274 if changed {
32275 *vp = v
32276 }
32277 } else {
32278 fastpathTV.DecMapInt32Int16V(rv2i(rv).(map[int32]int16), false, d)
32279 }
32280}
32281func (f fastpathT) DecMapInt32Int16X(vp *map[int32]int16, d *Decoder) {
32282 v, changed := f.DecMapInt32Int16V(*vp, true, d)
32283 if changed {
32284 *vp = v
32285 }
32286}
32287func (_ fastpathT) DecMapInt32Int16V(v map[int32]int16, canChange bool,
32288 d *Decoder) (_ map[int32]int16, changed bool) {
32289 dd, esep := d.d, d.hh.hasElemSeparators()
32290 containerLen := dd.ReadMapStart()
32291 if canChange && v == nil {
32292 xlen := decInferLen(containerLen, d.h.MaxInitLen, 6)
32293 v = make(map[int32]int16, xlen)
32294 changed = true
32295 }
32296 if containerLen == 0 {
32297 dd.ReadMapEnd()
32298 return v, changed
32299 }
32300 var mk int32
32301 var mv int16
32302 hasLen := containerLen > 0
32303 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32304 if esep {
32305 dd.ReadMapElemKey()
32306 }
32307 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32308 if esep {
32309 dd.ReadMapElemValue()
32310 }
32311 if dd.TryDecodeAsNil() {
32312 if v == nil {
32313 } else if d.h.DeleteOnNilMapValue {
32314 delete(v, mk)
32315 } else {
32316 v[mk] = 0
32317 }
32318 continue
32319 }
32320 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
32321 if v != nil {
32322 v[mk] = mv
32323 }
32324 }
32325 dd.ReadMapEnd()
32326 return v, changed
32327}
32328
32329func (d *Decoder) fastpathDecMapInt32Int32R(f *codecFnInfo, rv reflect.Value) {
32330 if rv.Kind() == reflect.Ptr {
32331 vp := rv2i(rv).(*map[int32]int32)
32332 v, changed := fastpathTV.DecMapInt32Int32V(*vp, true, d)
32333 if changed {
32334 *vp = v
32335 }
32336 } else {
32337 fastpathTV.DecMapInt32Int32V(rv2i(rv).(map[int32]int32), false, d)
32338 }
32339}
32340func (f fastpathT) DecMapInt32Int32X(vp *map[int32]int32, d *Decoder) {
32341 v, changed := f.DecMapInt32Int32V(*vp, true, d)
32342 if changed {
32343 *vp = v
32344 }
32345}
32346func (_ fastpathT) DecMapInt32Int32V(v map[int32]int32, canChange bool,
32347 d *Decoder) (_ map[int32]int32, changed bool) {
32348 dd, esep := d.d, d.hh.hasElemSeparators()
32349 containerLen := dd.ReadMapStart()
32350 if canChange && v == nil {
32351 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
32352 v = make(map[int32]int32, xlen)
32353 changed = true
32354 }
32355 if containerLen == 0 {
32356 dd.ReadMapEnd()
32357 return v, changed
32358 }
32359 var mk int32
32360 var mv int32
32361 hasLen := containerLen > 0
32362 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32363 if esep {
32364 dd.ReadMapElemKey()
32365 }
32366 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32367 if esep {
32368 dd.ReadMapElemValue()
32369 }
32370 if dd.TryDecodeAsNil() {
32371 if v == nil {
32372 } else if d.h.DeleteOnNilMapValue {
32373 delete(v, mk)
32374 } else {
32375 v[mk] = 0
32376 }
32377 continue
32378 }
32379 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32380 if v != nil {
32381 v[mk] = mv
32382 }
32383 }
32384 dd.ReadMapEnd()
32385 return v, changed
32386}
32387
32388func (d *Decoder) fastpathDecMapInt32Int64R(f *codecFnInfo, rv reflect.Value) {
32389 if rv.Kind() == reflect.Ptr {
32390 vp := rv2i(rv).(*map[int32]int64)
32391 v, changed := fastpathTV.DecMapInt32Int64V(*vp, true, d)
32392 if changed {
32393 *vp = v
32394 }
32395 } else {
32396 fastpathTV.DecMapInt32Int64V(rv2i(rv).(map[int32]int64), false, d)
32397 }
32398}
32399func (f fastpathT) DecMapInt32Int64X(vp *map[int32]int64, d *Decoder) {
32400 v, changed := f.DecMapInt32Int64V(*vp, true, d)
32401 if changed {
32402 *vp = v
32403 }
32404}
32405func (_ fastpathT) DecMapInt32Int64V(v map[int32]int64, canChange bool,
32406 d *Decoder) (_ map[int32]int64, changed bool) {
32407 dd, esep := d.d, d.hh.hasElemSeparators()
32408 containerLen := dd.ReadMapStart()
32409 if canChange && v == nil {
32410 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
32411 v = make(map[int32]int64, xlen)
32412 changed = true
32413 }
32414 if containerLen == 0 {
32415 dd.ReadMapEnd()
32416 return v, changed
32417 }
32418 var mk int32
32419 var mv int64
32420 hasLen := containerLen > 0
32421 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32422 if esep {
32423 dd.ReadMapElemKey()
32424 }
32425 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32426 if esep {
32427 dd.ReadMapElemValue()
32428 }
32429 if dd.TryDecodeAsNil() {
32430 if v == nil {
32431 } else if d.h.DeleteOnNilMapValue {
32432 delete(v, mk)
32433 } else {
32434 v[mk] = 0
32435 }
32436 continue
32437 }
32438 mv = dd.DecodeInt64()
32439 if v != nil {
32440 v[mk] = mv
32441 }
32442 }
32443 dd.ReadMapEnd()
32444 return v, changed
32445}
32446
32447func (d *Decoder) fastpathDecMapInt32Float32R(f *codecFnInfo, rv reflect.Value) {
32448 if rv.Kind() == reflect.Ptr {
32449 vp := rv2i(rv).(*map[int32]float32)
32450 v, changed := fastpathTV.DecMapInt32Float32V(*vp, true, d)
32451 if changed {
32452 *vp = v
32453 }
32454 } else {
32455 fastpathTV.DecMapInt32Float32V(rv2i(rv).(map[int32]float32), false, d)
32456 }
32457}
32458func (f fastpathT) DecMapInt32Float32X(vp *map[int32]float32, d *Decoder) {
32459 v, changed := f.DecMapInt32Float32V(*vp, true, d)
32460 if changed {
32461 *vp = v
32462 }
32463}
32464func (_ fastpathT) DecMapInt32Float32V(v map[int32]float32, canChange bool,
32465 d *Decoder) (_ map[int32]float32, changed bool) {
32466 dd, esep := d.d, d.hh.hasElemSeparators()
32467 containerLen := dd.ReadMapStart()
32468 if canChange && v == nil {
32469 xlen := decInferLen(containerLen, d.h.MaxInitLen, 8)
32470 v = make(map[int32]float32, xlen)
32471 changed = true
32472 }
32473 if containerLen == 0 {
32474 dd.ReadMapEnd()
32475 return v, changed
32476 }
32477 var mk int32
32478 var mv float32
32479 hasLen := containerLen > 0
32480 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32481 if esep {
32482 dd.ReadMapElemKey()
32483 }
32484 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32485 if esep {
32486 dd.ReadMapElemValue()
32487 }
32488 if dd.TryDecodeAsNil() {
32489 if v == nil {
32490 } else if d.h.DeleteOnNilMapValue {
32491 delete(v, mk)
32492 } else {
32493 v[mk] = 0
32494 }
32495 continue
32496 }
32497 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
32498 if v != nil {
32499 v[mk] = mv
32500 }
32501 }
32502 dd.ReadMapEnd()
32503 return v, changed
32504}
32505
32506func (d *Decoder) fastpathDecMapInt32Float64R(f *codecFnInfo, rv reflect.Value) {
32507 if rv.Kind() == reflect.Ptr {
32508 vp := rv2i(rv).(*map[int32]float64)
32509 v, changed := fastpathTV.DecMapInt32Float64V(*vp, true, d)
32510 if changed {
32511 *vp = v
32512 }
32513 } else {
32514 fastpathTV.DecMapInt32Float64V(rv2i(rv).(map[int32]float64), false, d)
32515 }
32516}
32517func (f fastpathT) DecMapInt32Float64X(vp *map[int32]float64, d *Decoder) {
32518 v, changed := f.DecMapInt32Float64V(*vp, true, d)
32519 if changed {
32520 *vp = v
32521 }
32522}
32523func (_ fastpathT) DecMapInt32Float64V(v map[int32]float64, canChange bool,
32524 d *Decoder) (_ map[int32]float64, changed bool) {
32525 dd, esep := d.d, d.hh.hasElemSeparators()
32526 containerLen := dd.ReadMapStart()
32527 if canChange && v == nil {
32528 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
32529 v = make(map[int32]float64, xlen)
32530 changed = true
32531 }
32532 if containerLen == 0 {
32533 dd.ReadMapEnd()
32534 return v, changed
32535 }
32536 var mk int32
32537 var mv float64
32538 hasLen := containerLen > 0
32539 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32540 if esep {
32541 dd.ReadMapElemKey()
32542 }
32543 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32544 if esep {
32545 dd.ReadMapElemValue()
32546 }
32547 if dd.TryDecodeAsNil() {
32548 if v == nil {
32549 } else if d.h.DeleteOnNilMapValue {
32550 delete(v, mk)
32551 } else {
32552 v[mk] = 0
32553 }
32554 continue
32555 }
32556 mv = dd.DecodeFloat64()
32557 if v != nil {
32558 v[mk] = mv
32559 }
32560 }
32561 dd.ReadMapEnd()
32562 return v, changed
32563}
32564
32565func (d *Decoder) fastpathDecMapInt32BoolR(f *codecFnInfo, rv reflect.Value) {
32566 if rv.Kind() == reflect.Ptr {
32567 vp := rv2i(rv).(*map[int32]bool)
32568 v, changed := fastpathTV.DecMapInt32BoolV(*vp, true, d)
32569 if changed {
32570 *vp = v
32571 }
32572 } else {
32573 fastpathTV.DecMapInt32BoolV(rv2i(rv).(map[int32]bool), false, d)
32574 }
32575}
32576func (f fastpathT) DecMapInt32BoolX(vp *map[int32]bool, d *Decoder) {
32577 v, changed := f.DecMapInt32BoolV(*vp, true, d)
32578 if changed {
32579 *vp = v
32580 }
32581}
32582func (_ fastpathT) DecMapInt32BoolV(v map[int32]bool, canChange bool,
32583 d *Decoder) (_ map[int32]bool, changed bool) {
32584 dd, esep := d.d, d.hh.hasElemSeparators()
32585 containerLen := dd.ReadMapStart()
32586 if canChange && v == nil {
32587 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
32588 v = make(map[int32]bool, xlen)
32589 changed = true
32590 }
32591 if containerLen == 0 {
32592 dd.ReadMapEnd()
32593 return v, changed
32594 }
32595 var mk int32
32596 var mv bool
32597 hasLen := containerLen > 0
32598 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32599 if esep {
32600 dd.ReadMapElemKey()
32601 }
32602 mk = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
32603 if esep {
32604 dd.ReadMapElemValue()
32605 }
32606 if dd.TryDecodeAsNil() {
32607 if v == nil {
32608 } else if d.h.DeleteOnNilMapValue {
32609 delete(v, mk)
32610 } else {
32611 v[mk] = false
32612 }
32613 continue
32614 }
32615 mv = dd.DecodeBool()
32616 if v != nil {
32617 v[mk] = mv
32618 }
32619 }
32620 dd.ReadMapEnd()
32621 return v, changed
32622}
32623
32624func (d *Decoder) fastpathDecMapInt64IntfR(f *codecFnInfo, rv reflect.Value) {
32625 if rv.Kind() == reflect.Ptr {
32626 vp := rv2i(rv).(*map[int64]interface{})
32627 v, changed := fastpathTV.DecMapInt64IntfV(*vp, true, d)
32628 if changed {
32629 *vp = v
32630 }
32631 } else {
32632 fastpathTV.DecMapInt64IntfV(rv2i(rv).(map[int64]interface{}), false, d)
32633 }
32634}
32635func (f fastpathT) DecMapInt64IntfX(vp *map[int64]interface{}, d *Decoder) {
32636 v, changed := f.DecMapInt64IntfV(*vp, true, d)
32637 if changed {
32638 *vp = v
32639 }
32640}
32641func (_ fastpathT) DecMapInt64IntfV(v map[int64]interface{}, canChange bool,
32642 d *Decoder) (_ map[int64]interface{}, changed bool) {
32643 dd, esep := d.d, d.hh.hasElemSeparators()
32644 containerLen := dd.ReadMapStart()
32645 if canChange && v == nil {
32646 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
32647 v = make(map[int64]interface{}, xlen)
32648 changed = true
32649 }
32650 if containerLen == 0 {
32651 dd.ReadMapEnd()
32652 return v, changed
32653 }
32654 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
32655 var mk int64
32656 var mv interface{}
32657 hasLen := containerLen > 0
32658 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32659 if esep {
32660 dd.ReadMapElemKey()
32661 }
32662 mk = dd.DecodeInt64()
32663 if esep {
32664 dd.ReadMapElemValue()
32665 }
32666 if dd.TryDecodeAsNil() {
32667 if v == nil {
32668 } else if d.h.DeleteOnNilMapValue {
32669 delete(v, mk)
32670 } else {
32671 v[mk] = nil
32672 }
32673 continue
32674 }
32675 if mapGet {
32676 mv = v[mk]
32677 } else {
32678 mv = nil
32679 }
32680 d.decode(&mv)
32681 if v != nil {
32682 v[mk] = mv
32683 }
32684 }
32685 dd.ReadMapEnd()
32686 return v, changed
32687}
32688
32689func (d *Decoder) fastpathDecMapInt64StringR(f *codecFnInfo, rv reflect.Value) {
32690 if rv.Kind() == reflect.Ptr {
32691 vp := rv2i(rv).(*map[int64]string)
32692 v, changed := fastpathTV.DecMapInt64StringV(*vp, true, d)
32693 if changed {
32694 *vp = v
32695 }
32696 } else {
32697 fastpathTV.DecMapInt64StringV(rv2i(rv).(map[int64]string), false, d)
32698 }
32699}
32700func (f fastpathT) DecMapInt64StringX(vp *map[int64]string, d *Decoder) {
32701 v, changed := f.DecMapInt64StringV(*vp, true, d)
32702 if changed {
32703 *vp = v
32704 }
32705}
32706func (_ fastpathT) DecMapInt64StringV(v map[int64]string, canChange bool,
32707 d *Decoder) (_ map[int64]string, changed bool) {
32708 dd, esep := d.d, d.hh.hasElemSeparators()
32709 containerLen := dd.ReadMapStart()
32710 if canChange && v == nil {
32711 xlen := decInferLen(containerLen, d.h.MaxInitLen, 24)
32712 v = make(map[int64]string, xlen)
32713 changed = true
32714 }
32715 if containerLen == 0 {
32716 dd.ReadMapEnd()
32717 return v, changed
32718 }
32719 var mk int64
32720 var mv string
32721 hasLen := containerLen > 0
32722 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32723 if esep {
32724 dd.ReadMapElemKey()
32725 }
32726 mk = dd.DecodeInt64()
32727 if esep {
32728 dd.ReadMapElemValue()
32729 }
32730 if dd.TryDecodeAsNil() {
32731 if v == nil {
32732 } else if d.h.DeleteOnNilMapValue {
32733 delete(v, mk)
32734 } else {
32735 v[mk] = ""
32736 }
32737 continue
32738 }
32739 mv = dd.DecodeString()
32740 if v != nil {
32741 v[mk] = mv
32742 }
32743 }
32744 dd.ReadMapEnd()
32745 return v, changed
32746}
32747
32748func (d *Decoder) fastpathDecMapInt64UintR(f *codecFnInfo, rv reflect.Value) {
32749 if rv.Kind() == reflect.Ptr {
32750 vp := rv2i(rv).(*map[int64]uint)
32751 v, changed := fastpathTV.DecMapInt64UintV(*vp, true, d)
32752 if changed {
32753 *vp = v
32754 }
32755 } else {
32756 fastpathTV.DecMapInt64UintV(rv2i(rv).(map[int64]uint), false, d)
32757 }
32758}
32759func (f fastpathT) DecMapInt64UintX(vp *map[int64]uint, d *Decoder) {
32760 v, changed := f.DecMapInt64UintV(*vp, true, d)
32761 if changed {
32762 *vp = v
32763 }
32764}
32765func (_ fastpathT) DecMapInt64UintV(v map[int64]uint, canChange bool,
32766 d *Decoder) (_ map[int64]uint, changed bool) {
32767 dd, esep := d.d, d.hh.hasElemSeparators()
32768 containerLen := dd.ReadMapStart()
32769 if canChange && v == nil {
32770 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
32771 v = make(map[int64]uint, xlen)
32772 changed = true
32773 }
32774 if containerLen == 0 {
32775 dd.ReadMapEnd()
32776 return v, changed
32777 }
32778 var mk int64
32779 var mv uint
32780 hasLen := containerLen > 0
32781 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32782 if esep {
32783 dd.ReadMapElemKey()
32784 }
32785 mk = dd.DecodeInt64()
32786 if esep {
32787 dd.ReadMapElemValue()
32788 }
32789 if dd.TryDecodeAsNil() {
32790 if v == nil {
32791 } else if d.h.DeleteOnNilMapValue {
32792 delete(v, mk)
32793 } else {
32794 v[mk] = 0
32795 }
32796 continue
32797 }
32798 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
32799 if v != nil {
32800 v[mk] = mv
32801 }
32802 }
32803 dd.ReadMapEnd()
32804 return v, changed
32805}
32806
32807func (d *Decoder) fastpathDecMapInt64Uint8R(f *codecFnInfo, rv reflect.Value) {
32808 if rv.Kind() == reflect.Ptr {
32809 vp := rv2i(rv).(*map[int64]uint8)
32810 v, changed := fastpathTV.DecMapInt64Uint8V(*vp, true, d)
32811 if changed {
32812 *vp = v
32813 }
32814 } else {
32815 fastpathTV.DecMapInt64Uint8V(rv2i(rv).(map[int64]uint8), false, d)
32816 }
32817}
32818func (f fastpathT) DecMapInt64Uint8X(vp *map[int64]uint8, d *Decoder) {
32819 v, changed := f.DecMapInt64Uint8V(*vp, true, d)
32820 if changed {
32821 *vp = v
32822 }
32823}
32824func (_ fastpathT) DecMapInt64Uint8V(v map[int64]uint8, canChange bool,
32825 d *Decoder) (_ map[int64]uint8, changed bool) {
32826 dd, esep := d.d, d.hh.hasElemSeparators()
32827 containerLen := dd.ReadMapStart()
32828 if canChange && v == nil {
32829 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
32830 v = make(map[int64]uint8, xlen)
32831 changed = true
32832 }
32833 if containerLen == 0 {
32834 dd.ReadMapEnd()
32835 return v, changed
32836 }
32837 var mk int64
32838 var mv uint8
32839 hasLen := containerLen > 0
32840 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32841 if esep {
32842 dd.ReadMapElemKey()
32843 }
32844 mk = dd.DecodeInt64()
32845 if esep {
32846 dd.ReadMapElemValue()
32847 }
32848 if dd.TryDecodeAsNil() {
32849 if v == nil {
32850 } else if d.h.DeleteOnNilMapValue {
32851 delete(v, mk)
32852 } else {
32853 v[mk] = 0
32854 }
32855 continue
32856 }
32857 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
32858 if v != nil {
32859 v[mk] = mv
32860 }
32861 }
32862 dd.ReadMapEnd()
32863 return v, changed
32864}
32865
32866func (d *Decoder) fastpathDecMapInt64Uint16R(f *codecFnInfo, rv reflect.Value) {
32867 if rv.Kind() == reflect.Ptr {
32868 vp := rv2i(rv).(*map[int64]uint16)
32869 v, changed := fastpathTV.DecMapInt64Uint16V(*vp, true, d)
32870 if changed {
32871 *vp = v
32872 }
32873 } else {
32874 fastpathTV.DecMapInt64Uint16V(rv2i(rv).(map[int64]uint16), false, d)
32875 }
32876}
32877func (f fastpathT) DecMapInt64Uint16X(vp *map[int64]uint16, d *Decoder) {
32878 v, changed := f.DecMapInt64Uint16V(*vp, true, d)
32879 if changed {
32880 *vp = v
32881 }
32882}
32883func (_ fastpathT) DecMapInt64Uint16V(v map[int64]uint16, canChange bool,
32884 d *Decoder) (_ map[int64]uint16, changed bool) {
32885 dd, esep := d.d, d.hh.hasElemSeparators()
32886 containerLen := dd.ReadMapStart()
32887 if canChange && v == nil {
32888 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
32889 v = make(map[int64]uint16, xlen)
32890 changed = true
32891 }
32892 if containerLen == 0 {
32893 dd.ReadMapEnd()
32894 return v, changed
32895 }
32896 var mk int64
32897 var mv uint16
32898 hasLen := containerLen > 0
32899 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32900 if esep {
32901 dd.ReadMapElemKey()
32902 }
32903 mk = dd.DecodeInt64()
32904 if esep {
32905 dd.ReadMapElemValue()
32906 }
32907 if dd.TryDecodeAsNil() {
32908 if v == nil {
32909 } else if d.h.DeleteOnNilMapValue {
32910 delete(v, mk)
32911 } else {
32912 v[mk] = 0
32913 }
32914 continue
32915 }
32916 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
32917 if v != nil {
32918 v[mk] = mv
32919 }
32920 }
32921 dd.ReadMapEnd()
32922 return v, changed
32923}
32924
32925func (d *Decoder) fastpathDecMapInt64Uint32R(f *codecFnInfo, rv reflect.Value) {
32926 if rv.Kind() == reflect.Ptr {
32927 vp := rv2i(rv).(*map[int64]uint32)
32928 v, changed := fastpathTV.DecMapInt64Uint32V(*vp, true, d)
32929 if changed {
32930 *vp = v
32931 }
32932 } else {
32933 fastpathTV.DecMapInt64Uint32V(rv2i(rv).(map[int64]uint32), false, d)
32934 }
32935}
32936func (f fastpathT) DecMapInt64Uint32X(vp *map[int64]uint32, d *Decoder) {
32937 v, changed := f.DecMapInt64Uint32V(*vp, true, d)
32938 if changed {
32939 *vp = v
32940 }
32941}
32942func (_ fastpathT) DecMapInt64Uint32V(v map[int64]uint32, canChange bool,
32943 d *Decoder) (_ map[int64]uint32, changed bool) {
32944 dd, esep := d.d, d.hh.hasElemSeparators()
32945 containerLen := dd.ReadMapStart()
32946 if canChange && v == nil {
32947 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
32948 v = make(map[int64]uint32, xlen)
32949 changed = true
32950 }
32951 if containerLen == 0 {
32952 dd.ReadMapEnd()
32953 return v, changed
32954 }
32955 var mk int64
32956 var mv uint32
32957 hasLen := containerLen > 0
32958 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
32959 if esep {
32960 dd.ReadMapElemKey()
32961 }
32962 mk = dd.DecodeInt64()
32963 if esep {
32964 dd.ReadMapElemValue()
32965 }
32966 if dd.TryDecodeAsNil() {
32967 if v == nil {
32968 } else if d.h.DeleteOnNilMapValue {
32969 delete(v, mk)
32970 } else {
32971 v[mk] = 0
32972 }
32973 continue
32974 }
32975 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
32976 if v != nil {
32977 v[mk] = mv
32978 }
32979 }
32980 dd.ReadMapEnd()
32981 return v, changed
32982}
32983
32984func (d *Decoder) fastpathDecMapInt64Uint64R(f *codecFnInfo, rv reflect.Value) {
32985 if rv.Kind() == reflect.Ptr {
32986 vp := rv2i(rv).(*map[int64]uint64)
32987 v, changed := fastpathTV.DecMapInt64Uint64V(*vp, true, d)
32988 if changed {
32989 *vp = v
32990 }
32991 } else {
32992 fastpathTV.DecMapInt64Uint64V(rv2i(rv).(map[int64]uint64), false, d)
32993 }
32994}
32995func (f fastpathT) DecMapInt64Uint64X(vp *map[int64]uint64, d *Decoder) {
32996 v, changed := f.DecMapInt64Uint64V(*vp, true, d)
32997 if changed {
32998 *vp = v
32999 }
33000}
33001func (_ fastpathT) DecMapInt64Uint64V(v map[int64]uint64, canChange bool,
33002 d *Decoder) (_ map[int64]uint64, changed bool) {
33003 dd, esep := d.d, d.hh.hasElemSeparators()
33004 containerLen := dd.ReadMapStart()
33005 if canChange && v == nil {
33006 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
33007 v = make(map[int64]uint64, xlen)
33008 changed = true
33009 }
33010 if containerLen == 0 {
33011 dd.ReadMapEnd()
33012 return v, changed
33013 }
33014 var mk int64
33015 var mv uint64
33016 hasLen := containerLen > 0
33017 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33018 if esep {
33019 dd.ReadMapElemKey()
33020 }
33021 mk = dd.DecodeInt64()
33022 if esep {
33023 dd.ReadMapElemValue()
33024 }
33025 if dd.TryDecodeAsNil() {
33026 if v == nil {
33027 } else if d.h.DeleteOnNilMapValue {
33028 delete(v, mk)
33029 } else {
33030 v[mk] = 0
33031 }
33032 continue
33033 }
33034 mv = dd.DecodeUint64()
33035 if v != nil {
33036 v[mk] = mv
33037 }
33038 }
33039 dd.ReadMapEnd()
33040 return v, changed
33041}
33042
33043func (d *Decoder) fastpathDecMapInt64UintptrR(f *codecFnInfo, rv reflect.Value) {
33044 if rv.Kind() == reflect.Ptr {
33045 vp := rv2i(rv).(*map[int64]uintptr)
33046 v, changed := fastpathTV.DecMapInt64UintptrV(*vp, true, d)
33047 if changed {
33048 *vp = v
33049 }
33050 } else {
33051 fastpathTV.DecMapInt64UintptrV(rv2i(rv).(map[int64]uintptr), false, d)
33052 }
33053}
33054func (f fastpathT) DecMapInt64UintptrX(vp *map[int64]uintptr, d *Decoder) {
33055 v, changed := f.DecMapInt64UintptrV(*vp, true, d)
33056 if changed {
33057 *vp = v
33058 }
33059}
33060func (_ fastpathT) DecMapInt64UintptrV(v map[int64]uintptr, canChange bool,
33061 d *Decoder) (_ map[int64]uintptr, changed bool) {
33062 dd, esep := d.d, d.hh.hasElemSeparators()
33063 containerLen := dd.ReadMapStart()
33064 if canChange && v == nil {
33065 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
33066 v = make(map[int64]uintptr, xlen)
33067 changed = true
33068 }
33069 if containerLen == 0 {
33070 dd.ReadMapEnd()
33071 return v, changed
33072 }
33073 var mk int64
33074 var mv uintptr
33075 hasLen := containerLen > 0
33076 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33077 if esep {
33078 dd.ReadMapElemKey()
33079 }
33080 mk = dd.DecodeInt64()
33081 if esep {
33082 dd.ReadMapElemValue()
33083 }
33084 if dd.TryDecodeAsNil() {
33085 if v == nil {
33086 } else if d.h.DeleteOnNilMapValue {
33087 delete(v, mk)
33088 } else {
33089 v[mk] = 0
33090 }
33091 continue
33092 }
33093 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
33094 if v != nil {
33095 v[mk] = mv
33096 }
33097 }
33098 dd.ReadMapEnd()
33099 return v, changed
33100}
33101
33102func (d *Decoder) fastpathDecMapInt64IntR(f *codecFnInfo, rv reflect.Value) {
33103 if rv.Kind() == reflect.Ptr {
33104 vp := rv2i(rv).(*map[int64]int)
33105 v, changed := fastpathTV.DecMapInt64IntV(*vp, true, d)
33106 if changed {
33107 *vp = v
33108 }
33109 } else {
33110 fastpathTV.DecMapInt64IntV(rv2i(rv).(map[int64]int), false, d)
33111 }
33112}
33113func (f fastpathT) DecMapInt64IntX(vp *map[int64]int, d *Decoder) {
33114 v, changed := f.DecMapInt64IntV(*vp, true, d)
33115 if changed {
33116 *vp = v
33117 }
33118}
33119func (_ fastpathT) DecMapInt64IntV(v map[int64]int, canChange bool,
33120 d *Decoder) (_ map[int64]int, changed bool) {
33121 dd, esep := d.d, d.hh.hasElemSeparators()
33122 containerLen := dd.ReadMapStart()
33123 if canChange && v == nil {
33124 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
33125 v = make(map[int64]int, xlen)
33126 changed = true
33127 }
33128 if containerLen == 0 {
33129 dd.ReadMapEnd()
33130 return v, changed
33131 }
33132 var mk int64
33133 var mv int
33134 hasLen := containerLen > 0
33135 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33136 if esep {
33137 dd.ReadMapElemKey()
33138 }
33139 mk = dd.DecodeInt64()
33140 if esep {
33141 dd.ReadMapElemValue()
33142 }
33143 if dd.TryDecodeAsNil() {
33144 if v == nil {
33145 } else if d.h.DeleteOnNilMapValue {
33146 delete(v, mk)
33147 } else {
33148 v[mk] = 0
33149 }
33150 continue
33151 }
33152 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
33153 if v != nil {
33154 v[mk] = mv
33155 }
33156 }
33157 dd.ReadMapEnd()
33158 return v, changed
33159}
33160
33161func (d *Decoder) fastpathDecMapInt64Int8R(f *codecFnInfo, rv reflect.Value) {
33162 if rv.Kind() == reflect.Ptr {
33163 vp := rv2i(rv).(*map[int64]int8)
33164 v, changed := fastpathTV.DecMapInt64Int8V(*vp, true, d)
33165 if changed {
33166 *vp = v
33167 }
33168 } else {
33169 fastpathTV.DecMapInt64Int8V(rv2i(rv).(map[int64]int8), false, d)
33170 }
33171}
33172func (f fastpathT) DecMapInt64Int8X(vp *map[int64]int8, d *Decoder) {
33173 v, changed := f.DecMapInt64Int8V(*vp, true, d)
33174 if changed {
33175 *vp = v
33176 }
33177}
33178func (_ fastpathT) DecMapInt64Int8V(v map[int64]int8, canChange bool,
33179 d *Decoder) (_ map[int64]int8, changed bool) {
33180 dd, esep := d.d, d.hh.hasElemSeparators()
33181 containerLen := dd.ReadMapStart()
33182 if canChange && v == nil {
33183 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
33184 v = make(map[int64]int8, xlen)
33185 changed = true
33186 }
33187 if containerLen == 0 {
33188 dd.ReadMapEnd()
33189 return v, changed
33190 }
33191 var mk int64
33192 var mv int8
33193 hasLen := containerLen > 0
33194 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33195 if esep {
33196 dd.ReadMapElemKey()
33197 }
33198 mk = dd.DecodeInt64()
33199 if esep {
33200 dd.ReadMapElemValue()
33201 }
33202 if dd.TryDecodeAsNil() {
33203 if v == nil {
33204 } else if d.h.DeleteOnNilMapValue {
33205 delete(v, mk)
33206 } else {
33207 v[mk] = 0
33208 }
33209 continue
33210 }
33211 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
33212 if v != nil {
33213 v[mk] = mv
33214 }
33215 }
33216 dd.ReadMapEnd()
33217 return v, changed
33218}
33219
33220func (d *Decoder) fastpathDecMapInt64Int16R(f *codecFnInfo, rv reflect.Value) {
33221 if rv.Kind() == reflect.Ptr {
33222 vp := rv2i(rv).(*map[int64]int16)
33223 v, changed := fastpathTV.DecMapInt64Int16V(*vp, true, d)
33224 if changed {
33225 *vp = v
33226 }
33227 } else {
33228 fastpathTV.DecMapInt64Int16V(rv2i(rv).(map[int64]int16), false, d)
33229 }
33230}
33231func (f fastpathT) DecMapInt64Int16X(vp *map[int64]int16, d *Decoder) {
33232 v, changed := f.DecMapInt64Int16V(*vp, true, d)
33233 if changed {
33234 *vp = v
33235 }
33236}
33237func (_ fastpathT) DecMapInt64Int16V(v map[int64]int16, canChange bool,
33238 d *Decoder) (_ map[int64]int16, changed bool) {
33239 dd, esep := d.d, d.hh.hasElemSeparators()
33240 containerLen := dd.ReadMapStart()
33241 if canChange && v == nil {
33242 xlen := decInferLen(containerLen, d.h.MaxInitLen, 10)
33243 v = make(map[int64]int16, xlen)
33244 changed = true
33245 }
33246 if containerLen == 0 {
33247 dd.ReadMapEnd()
33248 return v, changed
33249 }
33250 var mk int64
33251 var mv int16
33252 hasLen := containerLen > 0
33253 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33254 if esep {
33255 dd.ReadMapElemKey()
33256 }
33257 mk = dd.DecodeInt64()
33258 if esep {
33259 dd.ReadMapElemValue()
33260 }
33261 if dd.TryDecodeAsNil() {
33262 if v == nil {
33263 } else if d.h.DeleteOnNilMapValue {
33264 delete(v, mk)
33265 } else {
33266 v[mk] = 0
33267 }
33268 continue
33269 }
33270 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
33271 if v != nil {
33272 v[mk] = mv
33273 }
33274 }
33275 dd.ReadMapEnd()
33276 return v, changed
33277}
33278
33279func (d *Decoder) fastpathDecMapInt64Int32R(f *codecFnInfo, rv reflect.Value) {
33280 if rv.Kind() == reflect.Ptr {
33281 vp := rv2i(rv).(*map[int64]int32)
33282 v, changed := fastpathTV.DecMapInt64Int32V(*vp, true, d)
33283 if changed {
33284 *vp = v
33285 }
33286 } else {
33287 fastpathTV.DecMapInt64Int32V(rv2i(rv).(map[int64]int32), false, d)
33288 }
33289}
33290func (f fastpathT) DecMapInt64Int32X(vp *map[int64]int32, d *Decoder) {
33291 v, changed := f.DecMapInt64Int32V(*vp, true, d)
33292 if changed {
33293 *vp = v
33294 }
33295}
33296func (_ fastpathT) DecMapInt64Int32V(v map[int64]int32, canChange bool,
33297 d *Decoder) (_ map[int64]int32, changed bool) {
33298 dd, esep := d.d, d.hh.hasElemSeparators()
33299 containerLen := dd.ReadMapStart()
33300 if canChange && v == nil {
33301 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
33302 v = make(map[int64]int32, xlen)
33303 changed = true
33304 }
33305 if containerLen == 0 {
33306 dd.ReadMapEnd()
33307 return v, changed
33308 }
33309 var mk int64
33310 var mv int32
33311 hasLen := containerLen > 0
33312 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33313 if esep {
33314 dd.ReadMapElemKey()
33315 }
33316 mk = dd.DecodeInt64()
33317 if esep {
33318 dd.ReadMapElemValue()
33319 }
33320 if dd.TryDecodeAsNil() {
33321 if v == nil {
33322 } else if d.h.DeleteOnNilMapValue {
33323 delete(v, mk)
33324 } else {
33325 v[mk] = 0
33326 }
33327 continue
33328 }
33329 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
33330 if v != nil {
33331 v[mk] = mv
33332 }
33333 }
33334 dd.ReadMapEnd()
33335 return v, changed
33336}
33337
33338func (d *Decoder) fastpathDecMapInt64Int64R(f *codecFnInfo, rv reflect.Value) {
33339 if rv.Kind() == reflect.Ptr {
33340 vp := rv2i(rv).(*map[int64]int64)
33341 v, changed := fastpathTV.DecMapInt64Int64V(*vp, true, d)
33342 if changed {
33343 *vp = v
33344 }
33345 } else {
33346 fastpathTV.DecMapInt64Int64V(rv2i(rv).(map[int64]int64), false, d)
33347 }
33348}
33349func (f fastpathT) DecMapInt64Int64X(vp *map[int64]int64, d *Decoder) {
33350 v, changed := f.DecMapInt64Int64V(*vp, true, d)
33351 if changed {
33352 *vp = v
33353 }
33354}
33355func (_ fastpathT) DecMapInt64Int64V(v map[int64]int64, canChange bool,
33356 d *Decoder) (_ map[int64]int64, changed bool) {
33357 dd, esep := d.d, d.hh.hasElemSeparators()
33358 containerLen := dd.ReadMapStart()
33359 if canChange && v == nil {
33360 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
33361 v = make(map[int64]int64, xlen)
33362 changed = true
33363 }
33364 if containerLen == 0 {
33365 dd.ReadMapEnd()
33366 return v, changed
33367 }
33368 var mk int64
33369 var mv int64
33370 hasLen := containerLen > 0
33371 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33372 if esep {
33373 dd.ReadMapElemKey()
33374 }
33375 mk = dd.DecodeInt64()
33376 if esep {
33377 dd.ReadMapElemValue()
33378 }
33379 if dd.TryDecodeAsNil() {
33380 if v == nil {
33381 } else if d.h.DeleteOnNilMapValue {
33382 delete(v, mk)
33383 } else {
33384 v[mk] = 0
33385 }
33386 continue
33387 }
33388 mv = dd.DecodeInt64()
33389 if v != nil {
33390 v[mk] = mv
33391 }
33392 }
33393 dd.ReadMapEnd()
33394 return v, changed
33395}
33396
33397func (d *Decoder) fastpathDecMapInt64Float32R(f *codecFnInfo, rv reflect.Value) {
33398 if rv.Kind() == reflect.Ptr {
33399 vp := rv2i(rv).(*map[int64]float32)
33400 v, changed := fastpathTV.DecMapInt64Float32V(*vp, true, d)
33401 if changed {
33402 *vp = v
33403 }
33404 } else {
33405 fastpathTV.DecMapInt64Float32V(rv2i(rv).(map[int64]float32), false, d)
33406 }
33407}
33408func (f fastpathT) DecMapInt64Float32X(vp *map[int64]float32, d *Decoder) {
33409 v, changed := f.DecMapInt64Float32V(*vp, true, d)
33410 if changed {
33411 *vp = v
33412 }
33413}
33414func (_ fastpathT) DecMapInt64Float32V(v map[int64]float32, canChange bool,
33415 d *Decoder) (_ map[int64]float32, changed bool) {
33416 dd, esep := d.d, d.hh.hasElemSeparators()
33417 containerLen := dd.ReadMapStart()
33418 if canChange && v == nil {
33419 xlen := decInferLen(containerLen, d.h.MaxInitLen, 12)
33420 v = make(map[int64]float32, xlen)
33421 changed = true
33422 }
33423 if containerLen == 0 {
33424 dd.ReadMapEnd()
33425 return v, changed
33426 }
33427 var mk int64
33428 var mv float32
33429 hasLen := containerLen > 0
33430 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33431 if esep {
33432 dd.ReadMapElemKey()
33433 }
33434 mk = dd.DecodeInt64()
33435 if esep {
33436 dd.ReadMapElemValue()
33437 }
33438 if dd.TryDecodeAsNil() {
33439 if v == nil {
33440 } else if d.h.DeleteOnNilMapValue {
33441 delete(v, mk)
33442 } else {
33443 v[mk] = 0
33444 }
33445 continue
33446 }
33447 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
33448 if v != nil {
33449 v[mk] = mv
33450 }
33451 }
33452 dd.ReadMapEnd()
33453 return v, changed
33454}
33455
33456func (d *Decoder) fastpathDecMapInt64Float64R(f *codecFnInfo, rv reflect.Value) {
33457 if rv.Kind() == reflect.Ptr {
33458 vp := rv2i(rv).(*map[int64]float64)
33459 v, changed := fastpathTV.DecMapInt64Float64V(*vp, true, d)
33460 if changed {
33461 *vp = v
33462 }
33463 } else {
33464 fastpathTV.DecMapInt64Float64V(rv2i(rv).(map[int64]float64), false, d)
33465 }
33466}
33467func (f fastpathT) DecMapInt64Float64X(vp *map[int64]float64, d *Decoder) {
33468 v, changed := f.DecMapInt64Float64V(*vp, true, d)
33469 if changed {
33470 *vp = v
33471 }
33472}
33473func (_ fastpathT) DecMapInt64Float64V(v map[int64]float64, canChange bool,
33474 d *Decoder) (_ map[int64]float64, changed bool) {
33475 dd, esep := d.d, d.hh.hasElemSeparators()
33476 containerLen := dd.ReadMapStart()
33477 if canChange && v == nil {
33478 xlen := decInferLen(containerLen, d.h.MaxInitLen, 16)
33479 v = make(map[int64]float64, xlen)
33480 changed = true
33481 }
33482 if containerLen == 0 {
33483 dd.ReadMapEnd()
33484 return v, changed
33485 }
33486 var mk int64
33487 var mv float64
33488 hasLen := containerLen > 0
33489 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33490 if esep {
33491 dd.ReadMapElemKey()
33492 }
33493 mk = dd.DecodeInt64()
33494 if esep {
33495 dd.ReadMapElemValue()
33496 }
33497 if dd.TryDecodeAsNil() {
33498 if v == nil {
33499 } else if d.h.DeleteOnNilMapValue {
33500 delete(v, mk)
33501 } else {
33502 v[mk] = 0
33503 }
33504 continue
33505 }
33506 mv = dd.DecodeFloat64()
33507 if v != nil {
33508 v[mk] = mv
33509 }
33510 }
33511 dd.ReadMapEnd()
33512 return v, changed
33513}
33514
33515func (d *Decoder) fastpathDecMapInt64BoolR(f *codecFnInfo, rv reflect.Value) {
33516 if rv.Kind() == reflect.Ptr {
33517 vp := rv2i(rv).(*map[int64]bool)
33518 v, changed := fastpathTV.DecMapInt64BoolV(*vp, true, d)
33519 if changed {
33520 *vp = v
33521 }
33522 } else {
33523 fastpathTV.DecMapInt64BoolV(rv2i(rv).(map[int64]bool), false, d)
33524 }
33525}
33526func (f fastpathT) DecMapInt64BoolX(vp *map[int64]bool, d *Decoder) {
33527 v, changed := f.DecMapInt64BoolV(*vp, true, d)
33528 if changed {
33529 *vp = v
33530 }
33531}
33532func (_ fastpathT) DecMapInt64BoolV(v map[int64]bool, canChange bool,
33533 d *Decoder) (_ map[int64]bool, changed bool) {
33534 dd, esep := d.d, d.hh.hasElemSeparators()
33535 containerLen := dd.ReadMapStart()
33536 if canChange && v == nil {
33537 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
33538 v = make(map[int64]bool, xlen)
33539 changed = true
33540 }
33541 if containerLen == 0 {
33542 dd.ReadMapEnd()
33543 return v, changed
33544 }
33545 var mk int64
33546 var mv bool
33547 hasLen := containerLen > 0
33548 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33549 if esep {
33550 dd.ReadMapElemKey()
33551 }
33552 mk = dd.DecodeInt64()
33553 if esep {
33554 dd.ReadMapElemValue()
33555 }
33556 if dd.TryDecodeAsNil() {
33557 if v == nil {
33558 } else if d.h.DeleteOnNilMapValue {
33559 delete(v, mk)
33560 } else {
33561 v[mk] = false
33562 }
33563 continue
33564 }
33565 mv = dd.DecodeBool()
33566 if v != nil {
33567 v[mk] = mv
33568 }
33569 }
33570 dd.ReadMapEnd()
33571 return v, changed
33572}
33573
33574func (d *Decoder) fastpathDecMapBoolIntfR(f *codecFnInfo, rv reflect.Value) {
33575 if rv.Kind() == reflect.Ptr {
33576 vp := rv2i(rv).(*map[bool]interface{})
33577 v, changed := fastpathTV.DecMapBoolIntfV(*vp, true, d)
33578 if changed {
33579 *vp = v
33580 }
33581 } else {
33582 fastpathTV.DecMapBoolIntfV(rv2i(rv).(map[bool]interface{}), false, d)
33583 }
33584}
33585func (f fastpathT) DecMapBoolIntfX(vp *map[bool]interface{}, d *Decoder) {
33586 v, changed := f.DecMapBoolIntfV(*vp, true, d)
33587 if changed {
33588 *vp = v
33589 }
33590}
33591func (_ fastpathT) DecMapBoolIntfV(v map[bool]interface{}, canChange bool,
33592 d *Decoder) (_ map[bool]interface{}, changed bool) {
33593 dd, esep := d.d, d.hh.hasElemSeparators()
33594 containerLen := dd.ReadMapStart()
33595 if canChange && v == nil {
33596 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
33597 v = make(map[bool]interface{}, xlen)
33598 changed = true
33599 }
33600 if containerLen == 0 {
33601 dd.ReadMapEnd()
33602 return v, changed
33603 }
33604 mapGet := v != nil && !d.h.MapValueReset && !d.h.InterfaceReset
33605 var mk bool
33606 var mv interface{}
33607 hasLen := containerLen > 0
33608 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33609 if esep {
33610 dd.ReadMapElemKey()
33611 }
33612 mk = dd.DecodeBool()
33613 if esep {
33614 dd.ReadMapElemValue()
33615 }
33616 if dd.TryDecodeAsNil() {
33617 if v == nil {
33618 } else if d.h.DeleteOnNilMapValue {
33619 delete(v, mk)
33620 } else {
33621 v[mk] = nil
33622 }
33623 continue
33624 }
33625 if mapGet {
33626 mv = v[mk]
33627 } else {
33628 mv = nil
33629 }
33630 d.decode(&mv)
33631 if v != nil {
33632 v[mk] = mv
33633 }
33634 }
33635 dd.ReadMapEnd()
33636 return v, changed
33637}
33638
33639func (d *Decoder) fastpathDecMapBoolStringR(f *codecFnInfo, rv reflect.Value) {
33640 if rv.Kind() == reflect.Ptr {
33641 vp := rv2i(rv).(*map[bool]string)
33642 v, changed := fastpathTV.DecMapBoolStringV(*vp, true, d)
33643 if changed {
33644 *vp = v
33645 }
33646 } else {
33647 fastpathTV.DecMapBoolStringV(rv2i(rv).(map[bool]string), false, d)
33648 }
33649}
33650func (f fastpathT) DecMapBoolStringX(vp *map[bool]string, d *Decoder) {
33651 v, changed := f.DecMapBoolStringV(*vp, true, d)
33652 if changed {
33653 *vp = v
33654 }
33655}
33656func (_ fastpathT) DecMapBoolStringV(v map[bool]string, canChange bool,
33657 d *Decoder) (_ map[bool]string, changed bool) {
33658 dd, esep := d.d, d.hh.hasElemSeparators()
33659 containerLen := dd.ReadMapStart()
33660 if canChange && v == nil {
33661 xlen := decInferLen(containerLen, d.h.MaxInitLen, 17)
33662 v = make(map[bool]string, xlen)
33663 changed = true
33664 }
33665 if containerLen == 0 {
33666 dd.ReadMapEnd()
33667 return v, changed
33668 }
33669 var mk bool
33670 var mv string
33671 hasLen := containerLen > 0
33672 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33673 if esep {
33674 dd.ReadMapElemKey()
33675 }
33676 mk = dd.DecodeBool()
33677 if esep {
33678 dd.ReadMapElemValue()
33679 }
33680 if dd.TryDecodeAsNil() {
33681 if v == nil {
33682 } else if d.h.DeleteOnNilMapValue {
33683 delete(v, mk)
33684 } else {
33685 v[mk] = ""
33686 }
33687 continue
33688 }
33689 mv = dd.DecodeString()
33690 if v != nil {
33691 v[mk] = mv
33692 }
33693 }
33694 dd.ReadMapEnd()
33695 return v, changed
33696}
33697
33698func (d *Decoder) fastpathDecMapBoolUintR(f *codecFnInfo, rv reflect.Value) {
33699 if rv.Kind() == reflect.Ptr {
33700 vp := rv2i(rv).(*map[bool]uint)
33701 v, changed := fastpathTV.DecMapBoolUintV(*vp, true, d)
33702 if changed {
33703 *vp = v
33704 }
33705 } else {
33706 fastpathTV.DecMapBoolUintV(rv2i(rv).(map[bool]uint), false, d)
33707 }
33708}
33709func (f fastpathT) DecMapBoolUintX(vp *map[bool]uint, d *Decoder) {
33710 v, changed := f.DecMapBoolUintV(*vp, true, d)
33711 if changed {
33712 *vp = v
33713 }
33714}
33715func (_ fastpathT) DecMapBoolUintV(v map[bool]uint, canChange bool,
33716 d *Decoder) (_ map[bool]uint, changed bool) {
33717 dd, esep := d.d, d.hh.hasElemSeparators()
33718 containerLen := dd.ReadMapStart()
33719 if canChange && v == nil {
33720 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
33721 v = make(map[bool]uint, xlen)
33722 changed = true
33723 }
33724 if containerLen == 0 {
33725 dd.ReadMapEnd()
33726 return v, changed
33727 }
33728 var mk bool
33729 var mv uint
33730 hasLen := containerLen > 0
33731 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33732 if esep {
33733 dd.ReadMapElemKey()
33734 }
33735 mk = dd.DecodeBool()
33736 if esep {
33737 dd.ReadMapElemValue()
33738 }
33739 if dd.TryDecodeAsNil() {
33740 if v == nil {
33741 } else if d.h.DeleteOnNilMapValue {
33742 delete(v, mk)
33743 } else {
33744 v[mk] = 0
33745 }
33746 continue
33747 }
33748 mv = uint(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
33749 if v != nil {
33750 v[mk] = mv
33751 }
33752 }
33753 dd.ReadMapEnd()
33754 return v, changed
33755}
33756
33757func (d *Decoder) fastpathDecMapBoolUint8R(f *codecFnInfo, rv reflect.Value) {
33758 if rv.Kind() == reflect.Ptr {
33759 vp := rv2i(rv).(*map[bool]uint8)
33760 v, changed := fastpathTV.DecMapBoolUint8V(*vp, true, d)
33761 if changed {
33762 *vp = v
33763 }
33764 } else {
33765 fastpathTV.DecMapBoolUint8V(rv2i(rv).(map[bool]uint8), false, d)
33766 }
33767}
33768func (f fastpathT) DecMapBoolUint8X(vp *map[bool]uint8, d *Decoder) {
33769 v, changed := f.DecMapBoolUint8V(*vp, true, d)
33770 if changed {
33771 *vp = v
33772 }
33773}
33774func (_ fastpathT) DecMapBoolUint8V(v map[bool]uint8, canChange bool,
33775 d *Decoder) (_ map[bool]uint8, changed bool) {
33776 dd, esep := d.d, d.hh.hasElemSeparators()
33777 containerLen := dd.ReadMapStart()
33778 if canChange && v == nil {
33779 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
33780 v = make(map[bool]uint8, xlen)
33781 changed = true
33782 }
33783 if containerLen == 0 {
33784 dd.ReadMapEnd()
33785 return v, changed
33786 }
33787 var mk bool
33788 var mv uint8
33789 hasLen := containerLen > 0
33790 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33791 if esep {
33792 dd.ReadMapElemKey()
33793 }
33794 mk = dd.DecodeBool()
33795 if esep {
33796 dd.ReadMapElemValue()
33797 }
33798 if dd.TryDecodeAsNil() {
33799 if v == nil {
33800 } else if d.h.DeleteOnNilMapValue {
33801 delete(v, mk)
33802 } else {
33803 v[mk] = 0
33804 }
33805 continue
33806 }
33807 mv = uint8(chkOvf.UintV(dd.DecodeUint64(), 8))
33808 if v != nil {
33809 v[mk] = mv
33810 }
33811 }
33812 dd.ReadMapEnd()
33813 return v, changed
33814}
33815
33816func (d *Decoder) fastpathDecMapBoolUint16R(f *codecFnInfo, rv reflect.Value) {
33817 if rv.Kind() == reflect.Ptr {
33818 vp := rv2i(rv).(*map[bool]uint16)
33819 v, changed := fastpathTV.DecMapBoolUint16V(*vp, true, d)
33820 if changed {
33821 *vp = v
33822 }
33823 } else {
33824 fastpathTV.DecMapBoolUint16V(rv2i(rv).(map[bool]uint16), false, d)
33825 }
33826}
33827func (f fastpathT) DecMapBoolUint16X(vp *map[bool]uint16, d *Decoder) {
33828 v, changed := f.DecMapBoolUint16V(*vp, true, d)
33829 if changed {
33830 *vp = v
33831 }
33832}
33833func (_ fastpathT) DecMapBoolUint16V(v map[bool]uint16, canChange bool,
33834 d *Decoder) (_ map[bool]uint16, changed bool) {
33835 dd, esep := d.d, d.hh.hasElemSeparators()
33836 containerLen := dd.ReadMapStart()
33837 if canChange && v == nil {
33838 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
33839 v = make(map[bool]uint16, xlen)
33840 changed = true
33841 }
33842 if containerLen == 0 {
33843 dd.ReadMapEnd()
33844 return v, changed
33845 }
33846 var mk bool
33847 var mv uint16
33848 hasLen := containerLen > 0
33849 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33850 if esep {
33851 dd.ReadMapElemKey()
33852 }
33853 mk = dd.DecodeBool()
33854 if esep {
33855 dd.ReadMapElemValue()
33856 }
33857 if dd.TryDecodeAsNil() {
33858 if v == nil {
33859 } else if d.h.DeleteOnNilMapValue {
33860 delete(v, mk)
33861 } else {
33862 v[mk] = 0
33863 }
33864 continue
33865 }
33866 mv = uint16(chkOvf.UintV(dd.DecodeUint64(), 16))
33867 if v != nil {
33868 v[mk] = mv
33869 }
33870 }
33871 dd.ReadMapEnd()
33872 return v, changed
33873}
33874
33875func (d *Decoder) fastpathDecMapBoolUint32R(f *codecFnInfo, rv reflect.Value) {
33876 if rv.Kind() == reflect.Ptr {
33877 vp := rv2i(rv).(*map[bool]uint32)
33878 v, changed := fastpathTV.DecMapBoolUint32V(*vp, true, d)
33879 if changed {
33880 *vp = v
33881 }
33882 } else {
33883 fastpathTV.DecMapBoolUint32V(rv2i(rv).(map[bool]uint32), false, d)
33884 }
33885}
33886func (f fastpathT) DecMapBoolUint32X(vp *map[bool]uint32, d *Decoder) {
33887 v, changed := f.DecMapBoolUint32V(*vp, true, d)
33888 if changed {
33889 *vp = v
33890 }
33891}
33892func (_ fastpathT) DecMapBoolUint32V(v map[bool]uint32, canChange bool,
33893 d *Decoder) (_ map[bool]uint32, changed bool) {
33894 dd, esep := d.d, d.hh.hasElemSeparators()
33895 containerLen := dd.ReadMapStart()
33896 if canChange && v == nil {
33897 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
33898 v = make(map[bool]uint32, xlen)
33899 changed = true
33900 }
33901 if containerLen == 0 {
33902 dd.ReadMapEnd()
33903 return v, changed
33904 }
33905 var mk bool
33906 var mv uint32
33907 hasLen := containerLen > 0
33908 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33909 if esep {
33910 dd.ReadMapElemKey()
33911 }
33912 mk = dd.DecodeBool()
33913 if esep {
33914 dd.ReadMapElemValue()
33915 }
33916 if dd.TryDecodeAsNil() {
33917 if v == nil {
33918 } else if d.h.DeleteOnNilMapValue {
33919 delete(v, mk)
33920 } else {
33921 v[mk] = 0
33922 }
33923 continue
33924 }
33925 mv = uint32(chkOvf.UintV(dd.DecodeUint64(), 32))
33926 if v != nil {
33927 v[mk] = mv
33928 }
33929 }
33930 dd.ReadMapEnd()
33931 return v, changed
33932}
33933
33934func (d *Decoder) fastpathDecMapBoolUint64R(f *codecFnInfo, rv reflect.Value) {
33935 if rv.Kind() == reflect.Ptr {
33936 vp := rv2i(rv).(*map[bool]uint64)
33937 v, changed := fastpathTV.DecMapBoolUint64V(*vp, true, d)
33938 if changed {
33939 *vp = v
33940 }
33941 } else {
33942 fastpathTV.DecMapBoolUint64V(rv2i(rv).(map[bool]uint64), false, d)
33943 }
33944}
33945func (f fastpathT) DecMapBoolUint64X(vp *map[bool]uint64, d *Decoder) {
33946 v, changed := f.DecMapBoolUint64V(*vp, true, d)
33947 if changed {
33948 *vp = v
33949 }
33950}
33951func (_ fastpathT) DecMapBoolUint64V(v map[bool]uint64, canChange bool,
33952 d *Decoder) (_ map[bool]uint64, changed bool) {
33953 dd, esep := d.d, d.hh.hasElemSeparators()
33954 containerLen := dd.ReadMapStart()
33955 if canChange && v == nil {
33956 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
33957 v = make(map[bool]uint64, xlen)
33958 changed = true
33959 }
33960 if containerLen == 0 {
33961 dd.ReadMapEnd()
33962 return v, changed
33963 }
33964 var mk bool
33965 var mv uint64
33966 hasLen := containerLen > 0
33967 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
33968 if esep {
33969 dd.ReadMapElemKey()
33970 }
33971 mk = dd.DecodeBool()
33972 if esep {
33973 dd.ReadMapElemValue()
33974 }
33975 if dd.TryDecodeAsNil() {
33976 if v == nil {
33977 } else if d.h.DeleteOnNilMapValue {
33978 delete(v, mk)
33979 } else {
33980 v[mk] = 0
33981 }
33982 continue
33983 }
33984 mv = dd.DecodeUint64()
33985 if v != nil {
33986 v[mk] = mv
33987 }
33988 }
33989 dd.ReadMapEnd()
33990 return v, changed
33991}
33992
33993func (d *Decoder) fastpathDecMapBoolUintptrR(f *codecFnInfo, rv reflect.Value) {
33994 if rv.Kind() == reflect.Ptr {
33995 vp := rv2i(rv).(*map[bool]uintptr)
33996 v, changed := fastpathTV.DecMapBoolUintptrV(*vp, true, d)
33997 if changed {
33998 *vp = v
33999 }
34000 } else {
34001 fastpathTV.DecMapBoolUintptrV(rv2i(rv).(map[bool]uintptr), false, d)
34002 }
34003}
34004func (f fastpathT) DecMapBoolUintptrX(vp *map[bool]uintptr, d *Decoder) {
34005 v, changed := f.DecMapBoolUintptrV(*vp, true, d)
34006 if changed {
34007 *vp = v
34008 }
34009}
34010func (_ fastpathT) DecMapBoolUintptrV(v map[bool]uintptr, canChange bool,
34011 d *Decoder) (_ map[bool]uintptr, changed bool) {
34012 dd, esep := d.d, d.hh.hasElemSeparators()
34013 containerLen := dd.ReadMapStart()
34014 if canChange && v == nil {
34015 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
34016 v = make(map[bool]uintptr, xlen)
34017 changed = true
34018 }
34019 if containerLen == 0 {
34020 dd.ReadMapEnd()
34021 return v, changed
34022 }
34023 var mk bool
34024 var mv uintptr
34025 hasLen := containerLen > 0
34026 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34027 if esep {
34028 dd.ReadMapElemKey()
34029 }
34030 mk = dd.DecodeBool()
34031 if esep {
34032 dd.ReadMapElemValue()
34033 }
34034 if dd.TryDecodeAsNil() {
34035 if v == nil {
34036 } else if d.h.DeleteOnNilMapValue {
34037 delete(v, mk)
34038 } else {
34039 v[mk] = 0
34040 }
34041 continue
34042 }
34043 mv = uintptr(chkOvf.UintV(dd.DecodeUint64(), uintBitsize))
34044 if v != nil {
34045 v[mk] = mv
34046 }
34047 }
34048 dd.ReadMapEnd()
34049 return v, changed
34050}
34051
34052func (d *Decoder) fastpathDecMapBoolIntR(f *codecFnInfo, rv reflect.Value) {
34053 if rv.Kind() == reflect.Ptr {
34054 vp := rv2i(rv).(*map[bool]int)
34055 v, changed := fastpathTV.DecMapBoolIntV(*vp, true, d)
34056 if changed {
34057 *vp = v
34058 }
34059 } else {
34060 fastpathTV.DecMapBoolIntV(rv2i(rv).(map[bool]int), false, d)
34061 }
34062}
34063func (f fastpathT) DecMapBoolIntX(vp *map[bool]int, d *Decoder) {
34064 v, changed := f.DecMapBoolIntV(*vp, true, d)
34065 if changed {
34066 *vp = v
34067 }
34068}
34069func (_ fastpathT) DecMapBoolIntV(v map[bool]int, canChange bool,
34070 d *Decoder) (_ map[bool]int, changed bool) {
34071 dd, esep := d.d, d.hh.hasElemSeparators()
34072 containerLen := dd.ReadMapStart()
34073 if canChange && v == nil {
34074 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
34075 v = make(map[bool]int, xlen)
34076 changed = true
34077 }
34078 if containerLen == 0 {
34079 dd.ReadMapEnd()
34080 return v, changed
34081 }
34082 var mk bool
34083 var mv int
34084 hasLen := containerLen > 0
34085 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34086 if esep {
34087 dd.ReadMapElemKey()
34088 }
34089 mk = dd.DecodeBool()
34090 if esep {
34091 dd.ReadMapElemValue()
34092 }
34093 if dd.TryDecodeAsNil() {
34094 if v == nil {
34095 } else if d.h.DeleteOnNilMapValue {
34096 delete(v, mk)
34097 } else {
34098 v[mk] = 0
34099 }
34100 continue
34101 }
34102 mv = int(chkOvf.IntV(dd.DecodeInt64(), intBitsize))
34103 if v != nil {
34104 v[mk] = mv
34105 }
34106 }
34107 dd.ReadMapEnd()
34108 return v, changed
34109}
34110
34111func (d *Decoder) fastpathDecMapBoolInt8R(f *codecFnInfo, rv reflect.Value) {
34112 if rv.Kind() == reflect.Ptr {
34113 vp := rv2i(rv).(*map[bool]int8)
34114 v, changed := fastpathTV.DecMapBoolInt8V(*vp, true, d)
34115 if changed {
34116 *vp = v
34117 }
34118 } else {
34119 fastpathTV.DecMapBoolInt8V(rv2i(rv).(map[bool]int8), false, d)
34120 }
34121}
34122func (f fastpathT) DecMapBoolInt8X(vp *map[bool]int8, d *Decoder) {
34123 v, changed := f.DecMapBoolInt8V(*vp, true, d)
34124 if changed {
34125 *vp = v
34126 }
34127}
34128func (_ fastpathT) DecMapBoolInt8V(v map[bool]int8, canChange bool,
34129 d *Decoder) (_ map[bool]int8, changed bool) {
34130 dd, esep := d.d, d.hh.hasElemSeparators()
34131 containerLen := dd.ReadMapStart()
34132 if canChange && v == nil {
34133 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
34134 v = make(map[bool]int8, xlen)
34135 changed = true
34136 }
34137 if containerLen == 0 {
34138 dd.ReadMapEnd()
34139 return v, changed
34140 }
34141 var mk bool
34142 var mv int8
34143 hasLen := containerLen > 0
34144 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34145 if esep {
34146 dd.ReadMapElemKey()
34147 }
34148 mk = dd.DecodeBool()
34149 if esep {
34150 dd.ReadMapElemValue()
34151 }
34152 if dd.TryDecodeAsNil() {
34153 if v == nil {
34154 } else if d.h.DeleteOnNilMapValue {
34155 delete(v, mk)
34156 } else {
34157 v[mk] = 0
34158 }
34159 continue
34160 }
34161 mv = int8(chkOvf.IntV(dd.DecodeInt64(), 8))
34162 if v != nil {
34163 v[mk] = mv
34164 }
34165 }
34166 dd.ReadMapEnd()
34167 return v, changed
34168}
34169
34170func (d *Decoder) fastpathDecMapBoolInt16R(f *codecFnInfo, rv reflect.Value) {
34171 if rv.Kind() == reflect.Ptr {
34172 vp := rv2i(rv).(*map[bool]int16)
34173 v, changed := fastpathTV.DecMapBoolInt16V(*vp, true, d)
34174 if changed {
34175 *vp = v
34176 }
34177 } else {
34178 fastpathTV.DecMapBoolInt16V(rv2i(rv).(map[bool]int16), false, d)
34179 }
34180}
34181func (f fastpathT) DecMapBoolInt16X(vp *map[bool]int16, d *Decoder) {
34182 v, changed := f.DecMapBoolInt16V(*vp, true, d)
34183 if changed {
34184 *vp = v
34185 }
34186}
34187func (_ fastpathT) DecMapBoolInt16V(v map[bool]int16, canChange bool,
34188 d *Decoder) (_ map[bool]int16, changed bool) {
34189 dd, esep := d.d, d.hh.hasElemSeparators()
34190 containerLen := dd.ReadMapStart()
34191 if canChange && v == nil {
34192 xlen := decInferLen(containerLen, d.h.MaxInitLen, 3)
34193 v = make(map[bool]int16, xlen)
34194 changed = true
34195 }
34196 if containerLen == 0 {
34197 dd.ReadMapEnd()
34198 return v, changed
34199 }
34200 var mk bool
34201 var mv int16
34202 hasLen := containerLen > 0
34203 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34204 if esep {
34205 dd.ReadMapElemKey()
34206 }
34207 mk = dd.DecodeBool()
34208 if esep {
34209 dd.ReadMapElemValue()
34210 }
34211 if dd.TryDecodeAsNil() {
34212 if v == nil {
34213 } else if d.h.DeleteOnNilMapValue {
34214 delete(v, mk)
34215 } else {
34216 v[mk] = 0
34217 }
34218 continue
34219 }
34220 mv = int16(chkOvf.IntV(dd.DecodeInt64(), 16))
34221 if v != nil {
34222 v[mk] = mv
34223 }
34224 }
34225 dd.ReadMapEnd()
34226 return v, changed
34227}
34228
34229func (d *Decoder) fastpathDecMapBoolInt32R(f *codecFnInfo, rv reflect.Value) {
34230 if rv.Kind() == reflect.Ptr {
34231 vp := rv2i(rv).(*map[bool]int32)
34232 v, changed := fastpathTV.DecMapBoolInt32V(*vp, true, d)
34233 if changed {
34234 *vp = v
34235 }
34236 } else {
34237 fastpathTV.DecMapBoolInt32V(rv2i(rv).(map[bool]int32), false, d)
34238 }
34239}
34240func (f fastpathT) DecMapBoolInt32X(vp *map[bool]int32, d *Decoder) {
34241 v, changed := f.DecMapBoolInt32V(*vp, true, d)
34242 if changed {
34243 *vp = v
34244 }
34245}
34246func (_ fastpathT) DecMapBoolInt32V(v map[bool]int32, canChange bool,
34247 d *Decoder) (_ map[bool]int32, changed bool) {
34248 dd, esep := d.d, d.hh.hasElemSeparators()
34249 containerLen := dd.ReadMapStart()
34250 if canChange && v == nil {
34251 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
34252 v = make(map[bool]int32, xlen)
34253 changed = true
34254 }
34255 if containerLen == 0 {
34256 dd.ReadMapEnd()
34257 return v, changed
34258 }
34259 var mk bool
34260 var mv int32
34261 hasLen := containerLen > 0
34262 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34263 if esep {
34264 dd.ReadMapElemKey()
34265 }
34266 mk = dd.DecodeBool()
34267 if esep {
34268 dd.ReadMapElemValue()
34269 }
34270 if dd.TryDecodeAsNil() {
34271 if v == nil {
34272 } else if d.h.DeleteOnNilMapValue {
34273 delete(v, mk)
34274 } else {
34275 v[mk] = 0
34276 }
34277 continue
34278 }
34279 mv = int32(chkOvf.IntV(dd.DecodeInt64(), 32))
34280 if v != nil {
34281 v[mk] = mv
34282 }
34283 }
34284 dd.ReadMapEnd()
34285 return v, changed
34286}
34287
34288func (d *Decoder) fastpathDecMapBoolInt64R(f *codecFnInfo, rv reflect.Value) {
34289 if rv.Kind() == reflect.Ptr {
34290 vp := rv2i(rv).(*map[bool]int64)
34291 v, changed := fastpathTV.DecMapBoolInt64V(*vp, true, d)
34292 if changed {
34293 *vp = v
34294 }
34295 } else {
34296 fastpathTV.DecMapBoolInt64V(rv2i(rv).(map[bool]int64), false, d)
34297 }
34298}
34299func (f fastpathT) DecMapBoolInt64X(vp *map[bool]int64, d *Decoder) {
34300 v, changed := f.DecMapBoolInt64V(*vp, true, d)
34301 if changed {
34302 *vp = v
34303 }
34304}
34305func (_ fastpathT) DecMapBoolInt64V(v map[bool]int64, canChange bool,
34306 d *Decoder) (_ map[bool]int64, changed bool) {
34307 dd, esep := d.d, d.hh.hasElemSeparators()
34308 containerLen := dd.ReadMapStart()
34309 if canChange && v == nil {
34310 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
34311 v = make(map[bool]int64, xlen)
34312 changed = true
34313 }
34314 if containerLen == 0 {
34315 dd.ReadMapEnd()
34316 return v, changed
34317 }
34318 var mk bool
34319 var mv int64
34320 hasLen := containerLen > 0
34321 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34322 if esep {
34323 dd.ReadMapElemKey()
34324 }
34325 mk = dd.DecodeBool()
34326 if esep {
34327 dd.ReadMapElemValue()
34328 }
34329 if dd.TryDecodeAsNil() {
34330 if v == nil {
34331 } else if d.h.DeleteOnNilMapValue {
34332 delete(v, mk)
34333 } else {
34334 v[mk] = 0
34335 }
34336 continue
34337 }
34338 mv = dd.DecodeInt64()
34339 if v != nil {
34340 v[mk] = mv
34341 }
34342 }
34343 dd.ReadMapEnd()
34344 return v, changed
34345}
34346
34347func (d *Decoder) fastpathDecMapBoolFloat32R(f *codecFnInfo, rv reflect.Value) {
34348 if rv.Kind() == reflect.Ptr {
34349 vp := rv2i(rv).(*map[bool]float32)
34350 v, changed := fastpathTV.DecMapBoolFloat32V(*vp, true, d)
34351 if changed {
34352 *vp = v
34353 }
34354 } else {
34355 fastpathTV.DecMapBoolFloat32V(rv2i(rv).(map[bool]float32), false, d)
34356 }
34357}
34358func (f fastpathT) DecMapBoolFloat32X(vp *map[bool]float32, d *Decoder) {
34359 v, changed := f.DecMapBoolFloat32V(*vp, true, d)
34360 if changed {
34361 *vp = v
34362 }
34363}
34364func (_ fastpathT) DecMapBoolFloat32V(v map[bool]float32, canChange bool,
34365 d *Decoder) (_ map[bool]float32, changed bool) {
34366 dd, esep := d.d, d.hh.hasElemSeparators()
34367 containerLen := dd.ReadMapStart()
34368 if canChange && v == nil {
34369 xlen := decInferLen(containerLen, d.h.MaxInitLen, 5)
34370 v = make(map[bool]float32, xlen)
34371 changed = true
34372 }
34373 if containerLen == 0 {
34374 dd.ReadMapEnd()
34375 return v, changed
34376 }
34377 var mk bool
34378 var mv float32
34379 hasLen := containerLen > 0
34380 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34381 if esep {
34382 dd.ReadMapElemKey()
34383 }
34384 mk = dd.DecodeBool()
34385 if esep {
34386 dd.ReadMapElemValue()
34387 }
34388 if dd.TryDecodeAsNil() {
34389 if v == nil {
34390 } else if d.h.DeleteOnNilMapValue {
34391 delete(v, mk)
34392 } else {
34393 v[mk] = 0
34394 }
34395 continue
34396 }
34397 mv = float32(chkOvf.Float32V(dd.DecodeFloat64()))
34398 if v != nil {
34399 v[mk] = mv
34400 }
34401 }
34402 dd.ReadMapEnd()
34403 return v, changed
34404}
34405
34406func (d *Decoder) fastpathDecMapBoolFloat64R(f *codecFnInfo, rv reflect.Value) {
34407 if rv.Kind() == reflect.Ptr {
34408 vp := rv2i(rv).(*map[bool]float64)
34409 v, changed := fastpathTV.DecMapBoolFloat64V(*vp, true, d)
34410 if changed {
34411 *vp = v
34412 }
34413 } else {
34414 fastpathTV.DecMapBoolFloat64V(rv2i(rv).(map[bool]float64), false, d)
34415 }
34416}
34417func (f fastpathT) DecMapBoolFloat64X(vp *map[bool]float64, d *Decoder) {
34418 v, changed := f.DecMapBoolFloat64V(*vp, true, d)
34419 if changed {
34420 *vp = v
34421 }
34422}
34423func (_ fastpathT) DecMapBoolFloat64V(v map[bool]float64, canChange bool,
34424 d *Decoder) (_ map[bool]float64, changed bool) {
34425 dd, esep := d.d, d.hh.hasElemSeparators()
34426 containerLen := dd.ReadMapStart()
34427 if canChange && v == nil {
34428 xlen := decInferLen(containerLen, d.h.MaxInitLen, 9)
34429 v = make(map[bool]float64, xlen)
34430 changed = true
34431 }
34432 if containerLen == 0 {
34433 dd.ReadMapEnd()
34434 return v, changed
34435 }
34436 var mk bool
34437 var mv float64
34438 hasLen := containerLen > 0
34439 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34440 if esep {
34441 dd.ReadMapElemKey()
34442 }
34443 mk = dd.DecodeBool()
34444 if esep {
34445 dd.ReadMapElemValue()
34446 }
34447 if dd.TryDecodeAsNil() {
34448 if v == nil {
34449 } else if d.h.DeleteOnNilMapValue {
34450 delete(v, mk)
34451 } else {
34452 v[mk] = 0
34453 }
34454 continue
34455 }
34456 mv = dd.DecodeFloat64()
34457 if v != nil {
34458 v[mk] = mv
34459 }
34460 }
34461 dd.ReadMapEnd()
34462 return v, changed
34463}
34464
34465func (d *Decoder) fastpathDecMapBoolBoolR(f *codecFnInfo, rv reflect.Value) {
34466 if rv.Kind() == reflect.Ptr {
34467 vp := rv2i(rv).(*map[bool]bool)
34468 v, changed := fastpathTV.DecMapBoolBoolV(*vp, true, d)
34469 if changed {
34470 *vp = v
34471 }
34472 } else {
34473 fastpathTV.DecMapBoolBoolV(rv2i(rv).(map[bool]bool), false, d)
34474 }
34475}
34476func (f fastpathT) DecMapBoolBoolX(vp *map[bool]bool, d *Decoder) {
34477 v, changed := f.DecMapBoolBoolV(*vp, true, d)
34478 if changed {
34479 *vp = v
34480 }
34481}
34482func (_ fastpathT) DecMapBoolBoolV(v map[bool]bool, canChange bool,
34483 d *Decoder) (_ map[bool]bool, changed bool) {
34484 dd, esep := d.d, d.hh.hasElemSeparators()
34485 containerLen := dd.ReadMapStart()
34486 if canChange && v == nil {
34487 xlen := decInferLen(containerLen, d.h.MaxInitLen, 2)
34488 v = make(map[bool]bool, xlen)
34489 changed = true
34490 }
34491 if containerLen == 0 {
34492 dd.ReadMapEnd()
34493 return v, changed
34494 }
34495 var mk bool
34496 var mv bool
34497 hasLen := containerLen > 0
34498 for j := 0; (hasLen && j < containerLen) || !(hasLen || dd.CheckBreak()); j++ {
34499 if esep {
34500 dd.ReadMapElemKey()
34501 }
34502 mk = dd.DecodeBool()
34503 if esep {
34504 dd.ReadMapElemValue()
34505 }
34506 if dd.TryDecodeAsNil() {
34507 if v == nil {
34508 } else if d.h.DeleteOnNilMapValue {
34509 delete(v, mk)
34510 } else {
34511 v[mk] = false
34512 }
34513 continue
34514 }
34515 mv = dd.DecodeBool()
34516 if v != nil {
34517 v[mk] = mv
34518 }
34519 }
34520 dd.ReadMapEnd()
34521 return v, changed
34522}