func (uj *User) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Userbase _ = currentKey tok := fflib.FFTok_init wantedTok := fflib.FFTok_init mainparse: for { tok = fs.Scan() // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) if tok == fflib.FFTok_error { goto tokerror } switch state { case fflib.FFParse_map_start: if tok != fflib.FFTok_left_bracket { wantedTok = fflib.FFTok_left_bracket goto wrongtokenerror } state = fflib.FFParse_want_key continue case fflib.FFParse_after_value: if tok == fflib.FFTok_comma { state = fflib.FFParse_want_key } else if tok == fflib.FFTok_right_bracket { goto done } else { wantedTok = fflib.FFTok_comma goto wrongtokenerror } case fflib.FFParse_want_key: // json {} ended. goto exit. woo. if tok == fflib.FFTok_right_bracket { goto done } if tok != fflib.FFTok_string { wantedTok = fflib.FFTok_string goto wrongtokenerror } kn := fs.Output.Bytes() if len(kn) <= 0 { // "" case. hrm. currentKey = ffj_t_Userno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'c': if bytes.Equal(ffj_key_User_Color, kn) { currentKey = ffj_t_User_Color state = fflib.FFParse_want_colon goto mainparse } case 'l': if bytes.Equal(ffj_key_User_LoggedIn, kn) { currentKey = ffj_t_User_LoggedIn state = fflib.FFParse_want_colon goto mainparse } case 'n': if bytes.Equal(ffj_key_User_Name, kn) { currentKey = ffj_t_User_Name state = fflib.FFParse_want_colon goto mainparse } case 'v': if bytes.Equal(ffj_key_User_Votes, kn) { currentKey = ffj_t_User_Votes state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_User_Votes, kn) { currentKey = ffj_t_User_Votes state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_User_LoggedIn, kn) { currentKey = ffj_t_User_LoggedIn state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_User_Color, kn) { currentKey = ffj_t_User_Color state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_User_Name, kn) { currentKey = ffj_t_User_Name state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Userno_such_key state = fflib.FFParse_want_colon goto mainparse } case fflib.FFParse_want_colon: if tok != fflib.FFTok_colon { wantedTok = fflib.FFTok_colon goto wrongtokenerror } state = fflib.FFParse_want_value continue case fflib.FFParse_want_value: if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { switch currentKey { case ffj_t_User_Name: goto handle_Name case ffj_t_User_Color: goto handle_Color case ffj_t_User_LoggedIn: goto handle_LoggedIn case ffj_t_User_Votes: goto handle_Votes case ffj_t_Userno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Name: /* handler: uj.Name type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Name = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Color: /* handler: uj.Color type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Color = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_LoggedIn: /* handler: uj.LoggedIn type=bool kind=bool quoted=false*/ { if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) } } { if tok == fflib.FFTok_null { } else { tmpb := fs.Output.Bytes() if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { uj.LoggedIn = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.LoggedIn = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_Votes: /* handler: uj.Votes type=map[int]chat.voteOption kind=map quoted=false*/ { { if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) } } if tok == fflib.FFTok_null { uj.Votes = nil } else { uj.Votes = make(map[int]voteOption, 0) wantVal := true for { var k int var v voteOption tok = fs.Scan() if tok == fflib.FFTok_error { goto tokerror } if tok == fflib.FFTok_right_bracket { break } if tok == fflib.FFTok_comma { if wantVal == true { // TODO(pquerna): this isn't an ideal error message, this handles // things like [,,,] as an array value. return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) } continue } else { wantVal = true } /* handler: k type=int kind=int quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } k = int(tval) } } // Expect ':' after key tok = fs.Scan() if tok != fflib.FFTok_colon { return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok)) } tok = fs.Scan() /* handler: v type=chat.voteOption kind=uint16 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for voteOption", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 16) if err != nil { return fs.WrapErr(err) } v = voteOption(tval) } } uj.Votes[k] = v wantVal = false } } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }
func (uj *RGB256) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_RGB256base _ = currentKey tok := fflib.FFTok_init wantedTok := fflib.FFTok_init mainparse: for { tok = fs.Scan() // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) if tok == fflib.FFTok_error { goto tokerror } switch state { case fflib.FFParse_map_start: if tok != fflib.FFTok_left_bracket { wantedTok = fflib.FFTok_left_bracket goto wrongtokenerror } state = fflib.FFParse_want_key continue case fflib.FFParse_after_value: if tok == fflib.FFTok_comma { state = fflib.FFParse_want_key } else if tok == fflib.FFTok_right_bracket { goto done } else { wantedTok = fflib.FFTok_comma goto wrongtokenerror } case fflib.FFParse_want_key: // json {} ended. goto exit. woo. if tok == fflib.FFTok_right_bracket { goto done } if tok != fflib.FFTok_string { wantedTok = fflib.FFTok_string goto wrongtokenerror } kn := fs.Output.Bytes() if len(kn) <= 0 { // "" case. hrm. currentKey = ffj_t_RGB256no_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'b': if bytes.Equal(ffj_key_RGB256_Blue, kn) { currentKey = ffj_t_RGB256_Blue state = fflib.FFParse_want_colon goto mainparse } case 'g': if bytes.Equal(ffj_key_RGB256_Green, kn) { currentKey = ffj_t_RGB256_Green state = fflib.FFParse_want_colon goto mainparse } case 'r': if bytes.Equal(ffj_key_RGB256_Red, kn) { currentKey = ffj_t_RGB256_Red state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_RGB256_Blue, kn) { currentKey = ffj_t_RGB256_Blue state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_RGB256_Green, kn) { currentKey = ffj_t_RGB256_Green state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_RGB256_Red, kn) { currentKey = ffj_t_RGB256_Red state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_RGB256no_such_key state = fflib.FFParse_want_colon goto mainparse } case fflib.FFParse_want_colon: if tok != fflib.FFTok_colon { wantedTok = fflib.FFTok_colon goto wrongtokenerror } state = fflib.FFParse_want_value continue case fflib.FFParse_want_value: if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { switch currentKey { case ffj_t_RGB256_Red: goto handle_Red case ffj_t_RGB256_Green: goto handle_Green case ffj_t_RGB256_Blue: goto handle_Blue case ffj_t_RGB256no_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Red: /* handler: uj.Red type=uint8 kind=uint8 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for uint8", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 8) if err != nil { return fs.WrapErr(err) } uj.Red = uint8(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Green: /* handler: uj.Green type=uint8 kind=uint8 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for uint8", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 8) if err != nil { return fs.WrapErr(err) } uj.Green = uint8(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Blue: /* handler: uj.Blue type=uint8 kind=uint8 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for uint8", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 8) if err != nil { return fs.WrapErr(err) } uj.Blue = uint8(tval) } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }
func (uj *Event) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Eventbase _ = currentKey tok := fflib.FFTok_init wantedTok := fflib.FFTok_init mainparse: for { tok = fs.Scan() // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) if tok == fflib.FFTok_error { goto tokerror } switch state { case fflib.FFParse_map_start: if tok != fflib.FFTok_left_bracket { wantedTok = fflib.FFTok_left_bracket goto wrongtokenerror } state = fflib.FFParse_want_key continue case fflib.FFParse_after_value: if tok == fflib.FFTok_comma { state = fflib.FFParse_want_key } else if tok == fflib.FFTok_right_bracket { goto done } else { wantedTok = fflib.FFTok_comma goto wrongtokenerror } case fflib.FFParse_want_key: // json {} ended. goto exit. woo. if tok == fflib.FFTok_right_bracket { goto done } if tok != fflib.FFTok_string { wantedTok = fflib.FFTok_string goto wrongtokenerror } kn := fs.Output.Bytes() if len(kn) <= 0 { // "" case. hrm. currentKey = ffj_t_Eventno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'c': if bytes.Equal(ffj_key_Event_Color, kn) { currentKey = ffj_t_Event_Color state = fflib.FFParse_want_colon goto mainparse } case 'e': if bytes.Equal(ffj_key_Event_Error, kn) { currentKey = ffj_t_Event_Error state = fflib.FFParse_want_colon goto mainparse } case 'o': if bytes.Equal(ffj_key_Event_OptionA, kn) { currentKey = ffj_t_Event_OptionA state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Event_OptionB, kn) { currentKey = ffj_t_Event_OptionB state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_Event_Type, kn) { currentKey = ffj_t_Event_Type state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Event_Text, kn) { currentKey = ffj_t_Event_Text state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Event_TopicID, kn) { currentKey = ffj_t_Event_TopicID state = fflib.FFParse_want_colon goto mainparse } case 'u': if bytes.Equal(ffj_key_Event_Username, kn) { currentKey = ffj_t_Event_Username state = fflib.FFParse_want_colon goto mainparse } case 'v': if bytes.Equal(ffj_key_Event_VoteMask, kn) { currentKey = ffj_t_Event_VoteMask state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_Event_Error, kn) { currentKey = ffj_t_Event_Error state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_VoteMask, kn) { currentKey = ffj_t_Event_VoteMask state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Event_OptionB, kn) { currentKey = ffj_t_Event_OptionB state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Event_OptionA, kn) { currentKey = ffj_t_Event_OptionA state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Event_TopicID, kn) { currentKey = ffj_t_Event_TopicID state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_Text, kn) { currentKey = ffj_t_Event_Text state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_Color, kn) { currentKey = ffj_t_Event_Color state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_Username, kn) { currentKey = ffj_t_Event_Username state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_Type, kn) { currentKey = ffj_t_Event_Type state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Eventno_such_key state = fflib.FFParse_want_colon goto mainparse } case fflib.FFParse_want_colon: if tok != fflib.FFTok_colon { wantedTok = fflib.FFTok_colon goto wrongtokenerror } state = fflib.FFParse_want_value continue case fflib.FFParse_want_value: if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { switch currentKey { case ffj_t_Event_Type: goto handle_Type case ffj_t_Event_Username: goto handle_Username case ffj_t_Event_Color: goto handle_Color case ffj_t_Event_Text: goto handle_Text case ffj_t_Event_TopicID: goto handle_TopicID case ffj_t_Event_OptionA: goto handle_OptionA case ffj_t_Event_OptionB: goto handle_OptionB case ffj_t_Event_VoteMask: goto handle_VoteMask case ffj_t_Event_Error: goto handle_Error case ffj_t_Eventno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Type: /* handler: uj.Type type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Type = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Username: /* handler: uj.Username type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Username = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Color: /* handler: uj.Color type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Color = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Text: /* handler: uj.Text type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Text = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_TopicID: /* handler: uj.TopicID type=int kind=int quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } uj.TopicID = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_OptionA: /* handler: uj.OptionA type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.OptionA = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_OptionB: /* handler: uj.OptionB type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.OptionB = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_VoteMask: /* handler: uj.VoteMask type=chat.voteOption kind=uint16 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for voteOption", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 16) if err != nil { return fs.WrapErr(err) } uj.VoteMask = voteOption(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Error: /* handler: uj.Error type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Error = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }
func (uj *LogFormat) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_LogFormatbase _ = currentKey tok := fflib.FFTok_init wantedTok := fflib.FFTok_init mainparse: for { tok = fs.Scan() // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) if tok == fflib.FFTok_error { goto tokerror } switch state { case fflib.FFParse_map_start: if tok != fflib.FFTok_left_bracket { wantedTok = fflib.FFTok_left_bracket goto wrongtokenerror } state = fflib.FFParse_want_key continue case fflib.FFParse_after_value: if tok == fflib.FFTok_comma { state = fflib.FFParse_want_key } else if tok == fflib.FFTok_right_bracket { goto done } else { wantedTok = fflib.FFTok_comma goto wrongtokenerror } case fflib.FFParse_want_key: // json {} ended. goto exit. woo. if tok == fflib.FFTok_right_bracket { goto done } if tok != fflib.FFTok_string { wantedTok = fflib.FFTok_string goto wrongtokenerror } kn := fs.Output.Bytes() if len(kn) <= 0 { // "" case. hrm. currentKey = ffj_t_LogFormatno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'C': if bytes.Equal(ffj_key_LogFormat_Caller, kn) { currentKey = ffj_t_LogFormat_Caller state = fflib.FFParse_want_colon goto mainparse } case 'H': if bytes.Equal(ffj_key_LogFormat_Host, kn) { currentKey = ffj_t_LogFormat_Host state = fflib.FFParse_want_colon goto mainparse } case 'L': if bytes.Equal(ffj_key_LogFormat_Level, kn) { currentKey = ffj_t_LogFormat_Level state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_LogFormat_LineNo, kn) { currentKey = ffj_t_LogFormat_LineNo state = fflib.FFParse_want_colon goto mainparse } case 'M': if bytes.Equal(ffj_key_LogFormat_Msg, kn) { currentKey = ffj_t_LogFormat_Msg state = fflib.FFParse_want_colon goto mainparse } case 'P': if bytes.Equal(ffj_key_LogFormat_Prefix, kn) { currentKey = ffj_t_LogFormat_Prefix state = fflib.FFParse_want_colon goto mainparse } case 'T': if bytes.Equal(ffj_key_LogFormat_Time, kn) { currentKey = ffj_t_LogFormat_Time state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_LineNo, kn) { currentKey = ffj_t_LogFormat_LineNo state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_Caller, kn) { currentKey = ffj_t_LogFormat_Caller state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_LogFormat_Msg, kn) { currentKey = ffj_t_LogFormat_Msg state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_Level, kn) { currentKey = ffj_t_LogFormat_Level state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_LogFormat_Host, kn) { currentKey = ffj_t_LogFormat_Host state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_Time, kn) { currentKey = ffj_t_LogFormat_Time state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_Prefix, kn) { currentKey = ffj_t_LogFormat_Prefix state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_LogFormatno_such_key state = fflib.FFParse_want_colon goto mainparse } case fflib.FFParse_want_colon: if tok != fflib.FFTok_colon { wantedTok = fflib.FFTok_colon goto wrongtokenerror } state = fflib.FFParse_want_value continue case fflib.FFParse_want_value: if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { switch currentKey { case ffj_t_LogFormat_Prefix: goto handle_Prefix case ffj_t_LogFormat_Time: goto handle_Time case ffj_t_LogFormat_Host: goto handle_Host case ffj_t_LogFormat_Level: goto handle_Level case ffj_t_LogFormat_Msg: goto handle_Msg case ffj_t_LogFormat_Caller: goto handle_Caller case ffj_t_LogFormat_LineNo: goto handle_LineNo case ffj_t_LogFormatno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Prefix: /* handler: uj.Prefix type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Prefix = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Time: /* handler: uj.Time type=time.Time kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = uj.Time.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_Host: /* handler: uj.Host type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Host = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Level: /* handler: uj.Level type=uint8 kind=uint8 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for uint8", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 8) if err != nil { return fs.WrapErr(err) } uj.Level = uint8(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Msg: /* handler: uj.Msg type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Msg = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Caller: /* handler: uj.Caller type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Caller = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_LineNo: /* handler: uj.LineNo type=int kind=int quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } uj.LineNo = int(tval) } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }