MCPcopy Create free account
hub / github.com/buger/jsonparser / UnmarshalJSONFFLexer

Method UnmarshalJSONFFLexer

benchmark/benchmark_ffjson.go:475–668  ·  view source on GitHub ↗

Benchmark harness support for STK-REQ-004.

(fs *fflib.FFLexer, state fflib.FFParseState)

Source from the content-addressed store, hash-verified

473
474// Benchmark harness support for STK-REQ-004.
475func (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
482mainparse:
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

Callers 1

UnmarshalJSONMethod · 0.95

Calls 2

UnmarshalJSONFFLexerMethod · 0.95
StringMethod · 0.45

Tested by

no test coverage detected