Benchmark harness support for STK-REQ-004.
(fs *fflib.FFLexer, state fflib.FFParseState)
| 473 | |
| 474 | // Benchmark harness support for STK-REQ-004. |
| 475 | func (uj *CBGravatar) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| 476 | var err error = nil |
| 477 | currentKey := ffj_t_CBGravatarbase |
| 478 | _ = currentKey |
| 479 | tok := fflib.FFTok_init |
| 480 | wantedTok := fflib.FFTok_init |
| 481 | |
| 482 | mainparse: |
| 483 | for { |
| 484 | tok = fs.Scan() |
| 485 | // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) |
| 486 | if tok == fflib.FFTok_error { |
| 487 | goto tokerror |
| 488 | } |
| 489 | |
| 490 | switch state { |
| 491 | |
| 492 | case fflib.FFParse_map_start: |
| 493 | if tok != fflib.FFTok_left_bracket { |
| 494 | wantedTok = fflib.FFTok_left_bracket |
| 495 | goto wrongtokenerror |
| 496 | } |
| 497 | state = fflib.FFParse_want_key |
| 498 | continue |
| 499 | |
| 500 | case fflib.FFParse_after_value: |
| 501 | if tok == fflib.FFTok_comma { |
| 502 | state = fflib.FFParse_want_key |
| 503 | } else if tok == fflib.FFTok_right_bracket { |
| 504 | goto done |
| 505 | } else { |
| 506 | wantedTok = fflib.FFTok_comma |
| 507 | goto wrongtokenerror |
| 508 | } |
| 509 | |
| 510 | case fflib.FFParse_want_key: |
| 511 | // json {} ended. goto exit. woo. |
| 512 | if tok == fflib.FFTok_right_bracket { |
| 513 | goto done |
| 514 | } |
| 515 | if tok != fflib.FFTok_string { |
| 516 | wantedTok = fflib.FFTok_string |
| 517 | goto wrongtokenerror |
| 518 | } |
| 519 | |
| 520 | kn := fs.Output.Bytes() |
| 521 | if len(kn) <= 0 { |
| 522 | // "" case. hrm. |
| 523 | currentKey = ffj_t_CBGravatarno_such_key |
| 524 | state = fflib.FFParse_want_colon |
| 525 | goto mainparse |
| 526 | } else { |
| 527 | switch kn[0] { |
| 528 | |
| 529 | case 'A': |
| 530 | |
| 531 | if bytes.Equal(ffj_key_CBGravatar_Avatars, kn) { |
| 532 | currentKey = ffj_t_CBGravatar_Avatars |
no test coverage detected