1package test 2 3import "time" 4 5func init() { 6 structFields1To11() 7 testCases = append(testCases, 8 (*struct1Alias)(nil), 9 (*struct { 10 F [4]*string 11 })(nil), 12 (*struct { 13 F [4]string 14 })(nil), 15 (*struct { 16 F1 [4]stringAlias 17 F2 arrayAlis 18 })(nil), 19 (*struct { 20 F1 [4]string 21 F2 [4]string 22 F3 [4]string 23 })(nil), 24 (*struct { 25 F [4]struct { 26 F1 string 27 F2 string 28 F3 string 29 } 30 })(nil), 31 (*struct{})(nil), 32 (*structEmpty)(nil), 33 (*struct { 34 Byte1 byte 35 Byte2 byte 36 Bool1 bool 37 Bool2 bool 38 Int8 int8 39 Int16 int16 40 Int32 int32 41 Int64 int64 42 Uint8 uint8 43 Uint16 uint16 44 Uint32 uint32 45 Uint64 uint64 46 Float32 float32 47 Float64 float64 48 String1 string 49 String2 string 50 })(nil), 51 (*struct { 52 F float64 53 })(nil), 54 (*struct { 55 F float64Alias 56 })(nil), 57 (*struct { 58 F1 float64 59 F2 float64 60 F3 float64 61 })(nil), 62 (*struct { 63 F1 float64Alias 64 F2 float64Alias 65 F3 float64Alias 66 })(nil), 67 (*struct { 68 F int32 69 })(nil), 70 (*struct { 71 F int32Alias 72 })(nil), 73 (*struct { 74 F1 int32 75 F2 int32 76 F3 int32 77 })(nil), 78 (*struct { 79 F1 int32Alias 80 F2 int32Alias 81 F3 int32Alias 82 })(nil), 83 (*struct { 84 F int64 85 })(nil), 86 (*struct { 87 F map[int32]*string 88 })(nil), 89 (*struct { 90 F map[int32]string 91 })(nil), 92 (*struct { 93 F map[int32]struct { 94 F1 string 95 F2 string 96 F3 string 97 } 98 })(nil), 99 (*struct { 100 F map[string]*string 101 })(nil), 102 (*struct { 103 F map[string]string 104 })(nil), 105 (*struct { 106 F map[string]struct { 107 F1 string 108 F2 string 109 F3 string 110 } 111 })(nil), 112 (*struct { 113 F *float64 114 })(nil), 115 (*struct { 116 F1 *float64Alias 117 F2 ptrFloat64Alias 118 F3 *ptrFloat64Alias 119 })(nil), 120 (*struct { 121 F *int32 122 })(nil), 123 (*struct { 124 F1 *int32Alias 125 F2 ptrInt32Alias 126 F3 *ptrInt32Alias 127 })(nil), 128 (*struct { 129 F **struct{} 130 })(nil), 131 (*struct { 132 F **struct { 133 F1 string 134 F2 string 135 F3 string 136 } 137 })(nil), 138 (*struct { 139 F *string 140 })(nil), 141 (*struct { 142 F1 *stringAlias 143 F2 ptrStringAlias 144 F3 *ptrStringAlias 145 })(nil), 146 (*struct { 147 F *struct{} 148 })(nil), 149 (*struct { 150 F *struct { 151 F1 string 152 F2 string 153 F3 string 154 } 155 })(nil), 156 (*struct { 157 F1 *float64 158 F2 *float64 159 F3 *float64 160 })(nil), 161 (*struct { 162 F1 *int32 163 F2 *int32 164 F3 *int32 165 })(nil), 166 (*struct { 167 F1 *string 168 F2 *string 169 F3 *string 170 })(nil), 171 (*struct { 172 F []*string 173 })(nil), 174 (*struct { 175 F []string 176 })(nil), 177 (*struct { 178 F1 []stringAlias 179 F2 stringAlias 180 })(nil), 181 (*struct { 182 F1 []string 183 F2 []string 184 F3 []string 185 })(nil), 186 (*struct { 187 F []struct { 188 F1 string 189 F2 string 190 F3 string 191 } 192 })(nil), 193 (*struct { 194 F string 195 })(nil), 196 (*struct { 197 F stringAlias 198 })(nil), 199 (*struct { 200 F1 string 201 F2 string 202 F3 string 203 })(nil), 204 (*struct { 205 F1 stringAlias 206 F2 stringAlias 207 F3 stringAlias 208 })(nil), 209 (*struct { 210 F1 struct{} 211 F2 struct{} 212 F3 struct{} 213 })(nil), 214 (*struct { 215 F struct{} 216 })(nil), 217 (*struct { 218 F structEmpty 219 })(nil), 220 (*struct { 221 F struct { 222 F1 float32 223 F2 float32 224 F3 float32 225 } 226 })(nil), 227 (*struct { 228 F struct { 229 F float32 230 } 231 })(nil), 232 (*struct { 233 F struct2 234 })(nil), 235 (*struct { 236 F struct { 237 F1 int32 238 F2 int32 239 F3 int32 240 } 241 })(nil), 242 (*struct { 243 F struct { 244 F1 string 245 F2 string 246 F3 string 247 } 248 })(nil), 249 (*struct { 250 F struct3 251 })(nil), 252 (*struct { 253 TF1 struct { 254 F2 int 255 F1 *withTime 256 } 257 })(nil), 258 (*DeeplyNested)(nil), 259 ) 260} 261 262func structFields1To11() { 263 testCases = append(testCases, 264 (*struct { 265 Field1 string 266 })(nil), 267 (*struct { 268 Field1 string 269 Field2 string 270 })(nil), 271 (*struct { 272 Field1 string 273 Field2 string 274 Field3 string 275 })(nil), 276 (*struct { 277 Field1 string 278 Field2 string 279 Field3 string 280 Field4 string 281 })(nil), 282 (*struct { 283 Field1 string 284 Field2 string 285 Field3 string 286 Field4 string 287 Field5 string 288 })(nil), 289 (*struct { 290 Field1 string 291 Field2 string 292 Field3 string 293 Field4 string 294 Field5 string 295 Field6 string 296 })(nil), 297 (*struct { 298 Field1 string 299 Field2 string 300 Field3 string 301 Field4 string 302 Field5 string 303 Field6 string 304 Field7 string 305 })(nil), 306 (*struct { 307 Field1 string 308 Field2 string 309 Field3 string 310 Field4 string 311 Field5 string 312 Field6 string 313 Field7 string 314 Field8 string 315 })(nil), 316 (*struct { 317 Field1 string 318 Field2 string 319 Field3 string 320 Field4 string 321 Field5 string 322 Field6 string 323 Field7 string 324 Field8 string 325 Field9 string 326 })(nil), 327 (*struct { 328 Field1 string 329 Field2 string 330 Field3 string 331 Field4 string 332 Field5 string 333 Field6 string 334 Field7 string 335 Field8 string 336 Field9 string 337 Field10 string 338 })(nil), 339 (*struct { 340 Field1 string 341 Field2 string 342 Field3 string 343 Field4 string 344 Field5 string 345 Field6 string 346 Field7 string 347 Field8 string 348 Field9 string 349 Field10 string 350 Field11 string 351 })(nil), 352 ) 353} 354 355type struct1 struct { 356 Byte1 byte 357 Byte2 byte 358 Bool1 bool 359 Bool2 bool 360 Int8 int8 361 Int16 int16 362 Int32 int32 363 Uint8 uint8 364 Uint16 uint16 365 Uint32 uint32 366 Float32 float32 367 Float64 float64 368 String1 string 369 String2 string 370} 371type struct1Alias struct1 372 373type struct2 struct { 374 F float64 375} 376type struct3 struct { 377 F1 stringAlias 378 F2 stringAlias 379 F3 stringAlias 380} 381 382type withTime struct { 383 time.Time 384} 385 386func (t *withTime) UnmarshalJSON(b []byte) error { 387 return nil 388} 389func (t withTime) MarshalJSON() ([]byte, error) { 390 return []byte(`"fake"`), nil 391} 392 393type YetYetAnotherObject struct { 394 Field string 395} 396type YetAnotherObject struct { 397 Field *YetYetAnotherObject 398} 399type AnotherObject struct { 400 Field *YetAnotherObject 401} 402type DeeplyNested struct { 403 Me *AnotherObject 404} 405