func (uj *DrawList) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_DrawListbase _ = 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_DrawListno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'b': if bytes.Equal(ffj_key_DrawList_BG, kn) { currentKey = ffj_t_DrawList_BG state = fflib.FFParse_want_colon goto mainparse } case 'c': if bytes.Equal(ffj_key_DrawList_CPP, kn) { currentKey = ffj_t_DrawList_CPP state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_DrawList_CpPreyPop, kn) { currentKey = ffj_t_DrawList_CpPreyPop state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_DrawList_TurnCount, kn) { currentKey = ffj_t_DrawList_TurnCount state = fflib.FFParse_want_colon goto mainparse } case 'v': if bytes.Equal(ffj_key_DrawList_VP, kn) { currentKey = ffj_t_DrawList_VP state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_DrawList_VpPop, kn) { currentKey = ffj_t_DrawList_VpPop state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_DrawList_TurnCount, kn) { currentKey = ffj_t_DrawList_TurnCount state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_DrawList_VpPop, kn) { currentKey = ffj_t_DrawList_VpPop state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_DrawList_CpPreyPop, kn) { currentKey = ffj_t_DrawList_CpPreyPop state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_DrawList_BG, kn) { currentKey = ffj_t_DrawList_BG state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_DrawList_VP, kn) { currentKey = ffj_t_DrawList_VP state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_DrawList_CPP, kn) { currentKey = ffj_t_DrawList_CPP state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_DrawListno_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_DrawList_CPP: goto handle_CPP case ffj_t_DrawList_VP: goto handle_VP case ffj_t_DrawList_BG: goto handle_BG case ffj_t_DrawList_CpPreyPop: goto handle_CpPreyPop case ffj_t_DrawList_VpPop: goto handle_VpPop case ffj_t_DrawList_TurnCount: goto handle_TurnCount case ffj_t_DrawListno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_CPP: /* handler: uj.CPP type=[]render.AgentRender kind=slice quoted=false*/ { { if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) } } if tok == fflib.FFTok_null { uj.CPP = nil } else { uj.CPP = make([]AgentRender, 0) wantVal := true for { var tmp_uj__CPP AgentRender tok = fs.Scan() if tok == fflib.FFTok_error { goto tokerror } if tok == fflib.FFTok_right_brace { 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: tmp_uj__CPP type=render.AgentRender kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } err = tmp_uj__CPP.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } uj.CPP = append(uj.CPP, tmp_uj__CPP) wantVal = false } } } state = fflib.FFParse_after_value goto mainparse handle_VP: /* handler: uj.VP type=[]render.AgentRender kind=slice quoted=false*/ { { if tok != fflib.FFTok_left_brace && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) } } if tok == fflib.FFTok_null { uj.VP = nil } else { uj.VP = make([]AgentRender, 0) wantVal := true for { var tmp_uj__VP AgentRender tok = fs.Scan() if tok == fflib.FFTok_error { goto tokerror } if tok == fflib.FFTok_right_brace { 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: tmp_uj__VP type=render.AgentRender kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } err = tmp_uj__VP.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } uj.VP = append(uj.VP, tmp_uj__VP) wantVal = false } } } state = fflib.FFParse_after_value goto mainparse handle_BG: /* handler: uj.BG type=colour.RGB256 kind=struct quoted=false*/ { /* Falling back. type=colour.RGB256 kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.BG) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_CpPreyPop: /* handler: uj.CpPreyPop 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.CpPreyPop = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_VpPop: /* handler: uj.VpPop 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.VpPop = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_TurnCount: /* handler: uj.TurnCount 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.TurnCount = 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 *AgentRender) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_AgentRenderbase _ = 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_AgentRenderno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'a': if bytes.Equal(ffj_key_AgentRender_Type, kn) { currentKey = ffj_t_AgentRender_Type state = fflib.FFParse_want_colon goto mainparse } case 'c': if bytes.Equal(ffj_key_AgentRender_Colour, kn) { currentKey = ffj_t_AgentRender_Colour state = fflib.FFParse_want_colon goto mainparse } case 'h': if bytes.Equal(ffj_key_AgentRender_Heading, kn) { currentKey = ffj_t_AgentRender_Heading state = fflib.FFParse_want_colon goto mainparse } case 'p': if bytes.Equal(ffj_key_AgentRender_Pos2D, kn) { currentKey = ffj_t_AgentRender_Pos2D state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_AgentRender_Colour, kn) { currentKey = ffj_t_AgentRender_Colour state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AgentRender_Heading, kn) { currentKey = ffj_t_AgentRender_Heading state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AgentRender_Pos2D, kn) { currentKey = ffj_t_AgentRender_Pos2D state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_AgentRender_Type, kn) { currentKey = ffj_t_AgentRender_Type state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_AgentRenderno_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_AgentRender_Type: goto handle_Type case ffj_t_AgentRender_Pos2D: goto handle_Pos2D case ffj_t_AgentRender_Heading: goto handle_Heading case ffj_t_AgentRender_Colour: goto handle_Colour case ffj_t_AgentRenderno_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_Pos2D: /* handler: uj.Pos2D type=render.Pos2D kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } err = uj.Pos2D.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_Heading: /* handler: uj.Heading type=float64 kind=float64 quoted=false*/ { if tok != fflib.FFTok_double && tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for float64", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseFloat(fs.Output.Bytes(), 64) if err != nil { return fs.WrapErr(err) } uj.Heading = float64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Colour: /* handler: uj.Colour type=colour.RGB256 kind=struct quoted=false*/ { /* Falling back. type=colour.RGB256 kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Colour) if err != nil { return fs.WrapErr(err) } } 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 'h': if bytes.Equal(ffj_key_Event_Host, kn) { currentKey = ffj_t_Event_Host state = fflib.FFParse_want_colon goto mainparse } case 'm': if bytes.Equal(ffj_key_Event_Metric, kn) { currentKey = ffj_t_Event_Metric state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_Event_Service, kn) { currentKey = ffj_t_Event_Service state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Event_SubService, kn) { currentKey = ffj_t_Event_SubService state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_Event_Tags, kn) { currentKey = ffj_t_Event_Tags state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Event_Tags, kn) { currentKey = ffj_t_Event_Tags state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_Metric, kn) { currentKey = ffj_t_Event_Metric state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_SubService, kn) { currentKey = ffj_t_Event_SubService state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_Service, kn) { currentKey = ffj_t_Event_Service state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_Host, kn) { currentKey = ffj_t_Event_Host 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_Host: goto handle_Host case ffj_t_Event_Service: goto handle_Service case ffj_t_Event_SubService: goto handle_SubService case ffj_t_Event_Metric: goto handle_Metric case ffj_t_Event_Tags: goto handle_Tags 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_Host: /* handler: uj.Host type=string kind=string */ { { 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 { uj.Host = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_Service: /* handler: uj.Service type=string kind=string */ { { 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 { uj.Service = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_SubService: /* handler: uj.SubService type=string kind=string */ { { 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 { uj.SubService = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_Metric: /* handler: uj.Metric type=float64 kind=float64 */ { if tok != fflib.FFTok_double && tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for float64", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseFloat(fs.Output.Bytes(), 64) if err != nil { return fs.WrapErr(err) } uj.Metric = float64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Tags: /* handler: uj.Tags type=map[string]string kind=map */ { /* Falling back. type=map[string]string kind=map */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Tags) if err != nil { return fs.WrapErr(err) } } 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 *JsonOffer) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_JsonOfferbase _ = 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_JsonOfferno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'd': if bytes.Equal(ffj_key_JsonOffer_Date, kn) { currentKey = ffj_t_JsonOffer_Date state = fflib.FFParse_want_colon goto mainparse } case 'i': if bytes.Equal(ffj_key_JsonOffer_Title, kn) { currentKey = ffj_t_JsonOffer_Title state = fflib.FFParse_want_colon goto mainparse } case 'l': if bytes.Equal(ffj_key_JsonOffer_Location, kn) { currentKey = ffj_t_JsonOffer_Location state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_JsonOffer_Locations, kn) { currentKey = ffj_t_JsonOffer_Locations state = fflib.FFParse_want_colon goto mainparse } case 'n': if bytes.Equal(ffj_key_JsonOffer_Id, kn) { currentKey = ffj_t_JsonOffer_Id state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_JsonOffer_Account, kn) { currentKey = ffj_t_JsonOffer_Account state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_JsonOffer_Salary, kn) { currentKey = ffj_t_JsonOffer_Salary state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_JsonOffer_PartialTime, kn) { currentKey = ffj_t_JsonOffer_PartialTime state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_JsonOffer_HTML, kn) { currentKey = ffj_t_JsonOffer_HTML state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_JsonOffer_Account, kn) { currentKey = ffj_t_JsonOffer_Account state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_JsonOffer_HTML, kn) { currentKey = ffj_t_JsonOffer_HTML state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_JsonOffer_Locations, kn) { currentKey = ffj_t_JsonOffer_Locations state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_JsonOffer_Location, kn) { currentKey = ffj_t_JsonOffer_Location state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_JsonOffer_PartialTime, kn) { currentKey = ffj_t_JsonOffer_PartialTime state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_JsonOffer_Salary, kn) { currentKey = ffj_t_JsonOffer_Salary state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_JsonOffer_Date, kn) { currentKey = ffj_t_JsonOffer_Date state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_JsonOffer_Title, kn) { currentKey = ffj_t_JsonOffer_Title state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_JsonOffer_Id, kn) { currentKey = ffj_t_JsonOffer_Id state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_JsonOfferno_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_JsonOffer_Id: goto handle_Id case ffj_t_JsonOffer_Title: goto handle_Title case ffj_t_JsonOffer_Date: goto handle_Date case ffj_t_JsonOffer_Salary: goto handle_Salary case ffj_t_JsonOffer_PartialTime: goto handle_PartialTime case ffj_t_JsonOffer_Location: goto handle_Location case ffj_t_JsonOffer_Locations: goto handle_Locations case ffj_t_JsonOffer_HTML: goto handle_HTML case ffj_t_JsonOffer_Account: goto handle_Account case ffj_t_JsonOfferno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Id: /* handler: uj.Id 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.Id = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Title: /* handler: uj.Title 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.Title = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Date: /* handler: uj.Date 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.Date = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Salary: /* handler: uj.Salary 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.Salary = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_PartialTime: /* handler: uj.PartialTime 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.PartialTime = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.PartialTime = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_Location: /* handler: uj.Location 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.Location = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Locations: /* handler: uj.Locations type=[]struct { Name string "json:\"libelleLieu\"" } kind=slice quoted=false*/ { /* Falling back. type=[]struct { Name string "json:\"libelleLieu\"" } kind=slice */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Locations) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_HTML: /* handler: uj.HTML 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.HTML = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Account: /* handler: uj.Account 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.Account = 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 *TaskEvent) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_TaskEventbase _ = 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_TaskEventno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'a': if bytes.Equal(ffj_key_TaskEvent_Args, kn) { currentKey = ffj_t_TaskEvent_Args state = fflib.FFParse_want_colon goto mainparse } case 'c': if bytes.Equal(ffj_key_TaskEvent_Clock, kn) { currentKey = ffj_t_TaskEvent_Clock state = fflib.FFParse_want_colon goto mainparse } case 'e': if bytes.Equal(ffj_key_TaskEvent_ETA, kn) { currentKey = ffj_t_TaskEvent_ETA state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TaskEvent_Exception, kn) { currentKey = ffj_t_TaskEvent_Exception state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TaskEvent_Expired, kn) { currentKey = ffj_t_TaskEvent_Expired state = fflib.FFParse_want_colon goto mainparse } case 'h': if bytes.Equal(ffj_key_TaskEvent_Hostname, kn) { currentKey = ffj_t_TaskEvent_Hostname state = fflib.FFParse_want_colon goto mainparse } case 'k': if bytes.Equal(ffj_key_TaskEvent_Kwargs, kn) { currentKey = ffj_t_TaskEvent_Kwargs state = fflib.FFParse_want_colon goto mainparse } case 'n': if bytes.Equal(ffj_key_TaskEvent_Name, kn) { currentKey = ffj_t_TaskEvent_Name state = fflib.FFParse_want_colon goto mainparse } case 'p': if bytes.Equal(ffj_key_TaskEvent_PID, kn) { currentKey = ffj_t_TaskEvent_PID state = fflib.FFParse_want_colon goto mainparse } case 'r': if bytes.Equal(ffj_key_TaskEvent_Result, kn) { currentKey = ffj_t_TaskEvent_Result state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TaskEvent_Runtime, kn) { currentKey = ffj_t_TaskEvent_Runtime state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TaskEvent_Retries, kn) { currentKey = ffj_t_TaskEvent_Retries state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_TaskEvent_Signum, kn) { currentKey = ffj_t_TaskEvent_Signum state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_TaskEvent_Type, kn) { currentKey = ffj_t_TaskEvent_Type state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TaskEvent_Timestamp, kn) { currentKey = ffj_t_TaskEvent_Timestamp state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TaskEvent_Traceback, kn) { currentKey = ffj_t_TaskEvent_Traceback state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TaskEvent_Terminated, kn) { currentKey = ffj_t_TaskEvent_Terminated state = fflib.FFParse_want_colon goto mainparse } case 'u': if bytes.Equal(ffj_key_TaskEvent_UTCOffset, kn) { currentKey = ffj_t_TaskEvent_UTCOffset state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TaskEvent_UUID, kn) { currentKey = ffj_t_TaskEvent_UUID state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_Expired, kn) { currentKey = ffj_t_TaskEvent_Expired state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Signum, kn) { currentKey = ffj_t_TaskEvent_Signum state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_Terminated, kn) { currentKey = ffj_t_TaskEvent_Terminated state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Traceback, kn) { currentKey = ffj_t_TaskEvent_Traceback state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_Exception, kn) { currentKey = ffj_t_TaskEvent_Exception state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_ETA, kn) { currentKey = ffj_t_TaskEvent_ETA state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Retries, kn) { currentKey = ffj_t_TaskEvent_Retries state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_Runtime, kn) { currentKey = ffj_t_TaskEvent_Runtime state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Result, kn) { currentKey = ffj_t_TaskEvent_Result state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Kwargs, kn) { currentKey = ffj_t_TaskEvent_Kwargs state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Args, kn) { currentKey = ffj_t_TaskEvent_Args state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_Name, kn) { currentKey = ffj_t_TaskEvent_Name state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_UUID, kn) { currentKey = ffj_t_TaskEvent_UUID state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_UTCOffset, kn) { currentKey = ffj_t_TaskEvent_UTCOffset state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Clock, kn) { currentKey = ffj_t_TaskEvent_Clock state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_PID, kn) { currentKey = ffj_t_TaskEvent_PID state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Timestamp, kn) { currentKey = ffj_t_TaskEvent_Timestamp state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TaskEvent_Hostname, kn) { currentKey = ffj_t_TaskEvent_Hostname state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TaskEvent_Type, kn) { currentKey = ffj_t_TaskEvent_Type state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_TaskEventno_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_TaskEvent_Type: goto handle_Type case ffj_t_TaskEvent_Hostname: goto handle_Hostname case ffj_t_TaskEvent_Timestamp: goto handle_Timestamp case ffj_t_TaskEvent_PID: goto handle_PID case ffj_t_TaskEvent_Clock: goto handle_Clock case ffj_t_TaskEvent_UTCOffset: goto handle_UTCOffset case ffj_t_TaskEvent_UUID: goto handle_UUID case ffj_t_TaskEvent_Name: goto handle_Name case ffj_t_TaskEvent_Args: goto handle_Args case ffj_t_TaskEvent_Kwargs: goto handle_Kwargs case ffj_t_TaskEvent_Result: goto handle_Result case ffj_t_TaskEvent_Runtime: goto handle_Runtime case ffj_t_TaskEvent_Retries: goto handle_Retries case ffj_t_TaskEvent_ETA: goto handle_ETA case ffj_t_TaskEvent_Exception: goto handle_Exception case ffj_t_TaskEvent_Traceback: goto handle_Traceback case ffj_t_TaskEvent_Terminated: goto handle_Terminated case ffj_t_TaskEvent_Signum: goto handle_Signum case ffj_t_TaskEvent_Expired: goto handle_Expired case ffj_t_TaskEventno_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_Hostname: /* handler: uj.Hostname 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.Hostname = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Timestamp: /* handler: uj.Timestamp type=float32 kind=float32 quoted=false*/ { if tok != fflib.FFTok_double && tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for float32", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseFloat(fs.Output.Bytes(), 32) if err != nil { return fs.WrapErr(err) } uj.Timestamp = float32(tval) } } state = fflib.FFParse_after_value goto mainparse handle_PID: /* handler: uj.PID 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.PID = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Clock: /* handler: uj.Clock 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.Clock = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_UTCOffset: /* handler: uj.UTCOffset 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.UTCOffset = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_UUID: /* handler: uj.UUID 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.UUID = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse 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_Args: /* handler: uj.Args 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.Args = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Kwargs: /* handler: uj.Kwargs 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.Kwargs = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Result: /* handler: uj.Result 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.Result = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Runtime: /* handler: uj.Runtime type=float32 kind=float32 quoted=false*/ { if tok != fflib.FFTok_double && tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for float32", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseFloat(fs.Output.Bytes(), 32) if err != nil { return fs.WrapErr(err) } uj.Runtime = float32(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Retries: /* handler: uj.Retries 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.Retries = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_ETA: /* handler: uj.ETA 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.ETA = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Exception: /* handler: uj.Exception 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.Exception = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Traceback: /* handler: uj.Traceback 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.Traceback = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Terminated: /* handler: uj.Terminated 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.Terminated = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.Terminated = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_Signum: /* handler: uj.Signum type=interface {} kind=interface quoted=false*/ { /* Falling back. type=interface {} kind=interface */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Signum) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_Expired: /* handler: uj.Expired 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.Expired = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.Expired = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } 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 *Character) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Characterbase _ = 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_Characterno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'b': if bytes.Equal(ffj_key_Character_Battlerank, kn) { currentKey = ffj_t_Character_Battlerank state = fflib.FFParse_want_colon goto mainparse } case 'c': if bytes.Equal(ffj_key_Character_ID, kn) { currentKey = ffj_t_Character_ID state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Character_Certs, kn) { currentKey = ffj_t_Character_Certs state = fflib.FFParse_want_colon goto mainparse } case 'd': if bytes.Equal(ffj_key_Character_DailyRibbon, kn) { currentKey = ffj_t_Character_DailyRibbon state = fflib.FFParse_want_colon goto mainparse } case 'e': if bytes.Equal(ffj_key_Character_Error, kn) { currentKey = ffj_t_Character_Error state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Character_Expires, kn) { currentKey = ffj_t_Character_Expires state = fflib.FFParse_want_colon goto mainparse } case 'f': if bytes.Equal(ffj_key_Character_FactionID, kn) { currentKey = ffj_t_Character_FactionID state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Character_Faction, kn) { currentKey = ffj_t_Character_Faction state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Character_FriendsList, kn) { currentKey = ffj_t_Character_FriendsList state = fflib.FFParse_want_colon goto mainparse } case 'i': if bytes.Equal(ffj_key_Character_Items, kn) { currentKey = ffj_t_Character_Items state = fflib.FFParse_want_colon goto mainparse } case 'l': if bytes.Equal(ffj_key_Character_LastUpdated, kn) { currentKey = ffj_t_Character_LastUpdated state = fflib.FFParse_want_colon goto mainparse } case 'n': if bytes.Equal(ffj_key_Character_Name, kn) { currentKey = ffj_t_Character_Name state = fflib.FFParse_want_colon goto mainparse } case 'o': if bytes.Equal(ffj_key_Character_Outfit, kn) { currentKey = ffj_t_Character_Outfit state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Character_OnlineStatus, kn) { currentKey = ffj_t_Character_OnlineStatus state = fflib.FFParse_want_colon goto mainparse } case 'p': if bytes.Equal(ffj_key_Character_ProfileID, kn) { currentKey = ffj_t_Character_ProfileID state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_Character_Stats, kn) { currentKey = ffj_t_Character_Stats state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_Character_TitleID, kn) { currentKey = ffj_t_Character_TitleID state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Character_Times, kn) { currentKey = ffj_t_Character_Times state = fflib.FFParse_want_colon goto mainparse } case 'w': if bytes.Equal(ffj_key_Character_World, kn) { currentKey = ffj_t_Character_World state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Character_LastUpdated, kn) { currentKey = ffj_t_Character_LastUpdated state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Character_Expires, kn) { currentKey = ffj_t_Character_Expires state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Character_Error, kn) { currentKey = ffj_t_Character_Error state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Character_World, kn) { currentKey = ffj_t_Character_World state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Character_FriendsList, kn) { currentKey = ffj_t_Character_FriendsList state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Character_Items, kn) { currentKey = ffj_t_Character_Items state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Character_Faction, kn) { currentKey = ffj_t_Character_Faction state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Character_Stats, kn) { currentKey = ffj_t_Character_Stats state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Character_OnlineStatus, kn) { currentKey = ffj_t_Character_OnlineStatus state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Character_Outfit, kn) { currentKey = ffj_t_Character_Outfit state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Character_ProfileID, kn) { currentKey = ffj_t_Character_ProfileID state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Character_DailyRibbon, kn) { currentKey = ffj_t_Character_DailyRibbon state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Character_Battlerank, kn) { currentKey = ffj_t_Character_Battlerank state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Character_Certs, kn) { currentKey = ffj_t_Character_Certs state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Character_Times, kn) { currentKey = ffj_t_Character_Times state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Character_TitleID, kn) { currentKey = ffj_t_Character_TitleID state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Character_FactionID, kn) { currentKey = ffj_t_Character_FactionID state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Character_Name, kn) { currentKey = ffj_t_Character_Name state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Character_ID, kn) { currentKey = ffj_t_Character_ID state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Characterno_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_Character_ID: goto handle_ID case ffj_t_Character_Name: goto handle_Name case ffj_t_Character_FactionID: goto handle_FactionID case ffj_t_Character_TitleID: goto handle_TitleID case ffj_t_Character_Times: goto handle_Times case ffj_t_Character_Certs: goto handle_Certs case ffj_t_Character_Battlerank: goto handle_Battlerank case ffj_t_Character_DailyRibbon: goto handle_DailyRibbon case ffj_t_Character_ProfileID: goto handle_ProfileID case ffj_t_Character_Outfit: goto handle_Outfit case ffj_t_Character_OnlineStatus: goto handle_OnlineStatus case ffj_t_Character_Stats: goto handle_Stats case ffj_t_Character_Faction: goto handle_Faction case ffj_t_Character_Items: goto handle_Items case ffj_t_Character_FriendsList: goto handle_FriendsList case ffj_t_Character_World: goto handle_World case ffj_t_Character_Error: goto handle_Error case ffj_t_Character_Expires: goto handle_Expires case ffj_t_Character_LastUpdated: goto handle_LastUpdated case ffj_t_Characterno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_ID: /* handler: uj.ID 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.ID = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Name: /* handler: uj.Name type=struct { First string "json:\"first\""; Lower string "json:\"first_lower\"" } kind=struct quoted=false*/ { /* Falling back. type=struct { First string "json:\"first\""; Lower string "json:\"first_lower\"" } kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Name) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_FactionID: /* handler: uj.FactionID 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.FactionID = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_TitleID: /* handler: uj.TitleID 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.TitleID = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Times: /* handler: uj.Times type=struct { Creation string "json:\"creation\""; LastSave string "json:\"last_save\""; LastLogin string "json:\"last_login\""; LoginCount string "json:\"login_count\""; MinutesPlayed string "json:\"minutes_played\"" } kind=struct quoted=false*/ { /* Falling back. type=struct { Creation string "json:\"creation\""; LastSave string "json:\"last_save\""; LastLogin string "json:\"last_login\""; LoginCount string "json:\"login_count\""; MinutesPlayed string "json:\"minutes_played\"" } kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Times) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_Certs: /* handler: uj.Certs type=struct { Earned string "json:\"earned_points\""; Gifted string "json:\"gifted_points\""; Spent string "json:\"spent_points\""; Available string "json:\"available_points\""; PercentToNext string "json:\"percent_to_next\"" } kind=struct quoted=false*/ { /* Falling back. type=struct { Earned string "json:\"earned_points\""; Gifted string "json:\"gifted_points\""; Spent string "json:\"spent_points\""; Available string "json:\"available_points\""; PercentToNext string "json:\"percent_to_next\"" } kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Certs) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_Battlerank: /* handler: uj.Battlerank type=struct { Rank string "json:\"value\""; PercentToNext string "json:\"percent_to_next\"" } kind=struct quoted=false*/ { /* Falling back. type=struct { Rank string "json:\"value\""; PercentToNext string "json:\"percent_to_next\"" } kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Battlerank) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_DailyRibbon: /* handler: uj.DailyRibbon type=struct { Count string "json:\"count\""; Time string "json:\"time\"" } kind=struct quoted=false*/ { /* Falling back. type=struct { Count string "json:\"count\""; Time string "json:\"time\"" } kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.DailyRibbon) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_ProfileID: /* handler: uj.ProfileID 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.ProfileID = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Outfit: /* handler: uj.Outfit type=struct { ID string "json:\"outfit_id\""; Name string "json:\"name\""; Alias string "json:\"alias\""; LeaderID string "json:\"leader_character_id\""; MemberCount string "json:\"member_count\""; TimeCreated string "json:\"time_created\"" } kind=struct quoted=false*/ { /* Falling back. type=struct { ID string "json:\"outfit_id\""; Name string "json:\"name\""; Alias string "json:\"alias\""; LeaderID string "json:\"leader_character_id\""; MemberCount string "json:\"member_count\""; TimeCreated string "json:\"time_created\"" } kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Outfit) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_OnlineStatus: /* handler: uj.OnlineStatus 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.OnlineStatus = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Stats: /* handler: uj.Stats type=struct { Stat []struct { Name string "json:\"stat_name\""; ProfileID string "json:\"profile_id\""; ValueForever string "json:\"value_forever\""; ValueMonthly string "json:\"value_monthly\""; ValueWeekly string "json:\"value_weekly\""; ValueDaily string "json:\"value_daily\""; ValueOneLifeMax string "json:\"value_one_life_max\""; LastSave string "json:\"last_save\"" } "json:\"stat\""; StatHistory []struct { Name string "json:\"stat_name\""; AllTime string "json:\"all_time\""; OneLifeMax string "json:\"one_life_max\""; Day map[string]string "json:\"day\""; Month map[string]string "json:\"Month\""; Week map[string]string "json:\"Week\"" } "json:\"stat_history\""; WeaponStat []struct { Name string "json:\"weapon_deaths\""; ItemID string "json:\"item_id\""; VehicleID string "json:\"vehicle_id\""; Value string "json:\"value\""; LastSave string "json:\"last_save\"" } "json:\"weapon_stat\"" } kind=struct quoted=false*/ { /* Falling back. type=struct { Stat []struct { Name string "json:\"stat_name\""; ProfileID string "json:\"profile_id\""; ValueForever string "json:\"value_forever\""; ValueMonthly string "json:\"value_monthly\""; ValueWeekly string "json:\"value_weekly\""; ValueDaily string "json:\"value_daily\""; ValueOneLifeMax string "json:\"value_one_life_max\""; LastSave string "json:\"last_save\"" } "json:\"stat\""; StatHistory []struct { Name string "json:\"stat_name\""; AllTime string "json:\"all_time\""; OneLifeMax string "json:\"one_life_max\""; Day map[string]string "json:\"day\""; Month map[string]string "json:\"Month\""; Week map[string]string "json:\"Week\"" } "json:\"stat_history\""; WeaponStat []struct { Name string "json:\"weapon_deaths\""; ItemID string "json:\"item_id\""; VehicleID string "json:\"vehicle_id\""; Value string "json:\"value\""; LastSave string "json:\"last_save\"" } "json:\"weapon_stat\"" } kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Stats) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_Faction: /* handler: uj.Faction type=struct { Name struct { En string "json:\"en\""; De string "json:\"de\""; Es string "json:\"es\""; Fr string "json:\"fr\""; It string "json:\"it\""; Tr string "json:\"tr\"" } "json:\"name\""; ImageSetID string "json:\"image_set_id\""; ImageID string "json:\"image_id\""; ImagePath string "json:\"image_path\""; CodeTag string "json:\"code_tag\""; UserSelectable string "json:\"user_selectable\"" } kind=struct quoted=false*/ { /* Falling back. type=struct { Name struct { En string "json:\"en\""; De string "json:\"de\""; Es string "json:\"es\""; Fr string "json:\"fr\""; It string "json:\"it\""; Tr string "json:\"tr\"" } "json:\"name\""; ImageSetID string "json:\"image_set_id\""; ImageID string "json:\"image_id\""; ImagePath string "json:\"image_path\""; CodeTag string "json:\"code_tag\""; UserSelectable string "json:\"user_selectable\"" } kind=struct */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Faction) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_Items: /* handler: uj.Items type=[]struct { ID string "json:\"item_id\""; StackCount string "json:\"stack_count\"" } kind=slice quoted=false*/ { /* Falling back. type=[]struct { ID string "json:\"item_id\""; StackCount string "json:\"stack_count\"" } kind=slice */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Items) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_FriendsList: /* handler: uj.FriendsList type=[]struct { ID string "json:\"character_id\""; LastLoginTime string "json:\"last_login_time\""; Onlint string "json:\"online\"" } kind=slice quoted=false*/ { /* Falling back. type=[]struct { ID string "json:\"character_id\""; LastLoginTime string "json:\"last_login_time\""; Onlint string "json:\"online\"" } kind=slice */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.FriendsList) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_World: /* handler: uj.World 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.World = string(string(outBuf)) } } 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 handle_Expires: /* handler: uj.Expires 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.Expires.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_LastUpdated: /* handler: uj.LastUpdated 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.LastUpdated.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } 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 *Topic) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Topicbase _ = 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_Topicno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'c': if bytes.Equal(ffj_key_Topic_Created, kn) { currentKey = ffj_t_Topic_Created state = fflib.FFParse_want_colon goto mainparse } case 'e': if bytes.Equal(ffj_key_Topic_Ends, kn) { currentKey = ffj_t_Topic_Ends state = fflib.FFParse_want_colon goto mainparse } case 'i': if bytes.Equal(ffj_key_Topic_ID, kn) { currentKey = ffj_t_Topic_ID state = fflib.FFParse_want_colon goto mainparse } case 'o': if bytes.Equal(ffj_key_Topic_OptionA, kn) { currentKey = ffj_t_Topic_OptionA state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Topic_OptionB, kn) { currentKey = ffj_t_Topic_OptionB state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Topic_Ends, kn) { currentKey = ffj_t_Topic_Ends state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Topic_Created, kn) { currentKey = ffj_t_Topic_Created state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Topic_ID, kn) { currentKey = ffj_t_Topic_ID state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Topic_OptionB, kn) { currentKey = ffj_t_Topic_OptionB state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Topic_OptionA, kn) { currentKey = ffj_t_Topic_OptionA state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Topicno_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_Topic_OptionA: goto handle_OptionA case ffj_t_Topic_OptionB: goto handle_OptionB case ffj_t_Topic_ID: goto handle_ID case ffj_t_Topic_Created: goto handle_Created case ffj_t_Topic_Ends: goto handle_Ends case ffj_t_Topicno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } 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_ID: /* handler: uj.ID 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.ID = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Created: /* handler: uj.Created 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.Created.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_Ends: /* handler: uj.Ends 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.Ends.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } 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 *Incident) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Incidentbase _ = 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_Incidentno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'a': if bytes.Equal(ffj_key_Incident_Active, kn) { currentKey = ffj_t_Incident_Active state = fflib.FFParse_want_colon goto mainparse } case 'd': if bytes.Equal(ffj_key_Incident_Description, kn) { currentKey = ffj_t_Incident_Description state = fflib.FFParse_want_colon goto mainparse } case 'e': if bytes.Equal(ffj_key_Incident_EventName, kn) { currentKey = ffj_t_Incident_EventName state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Incident_Escalation, kn) { currentKey = ffj_t_Incident_Escalation state = fflib.FFParse_want_colon goto mainparse } case 'h': if bytes.Equal(ffj_key_Incident_Host, kn) { currentKey = ffj_t_Incident_Host state = fflib.FFParse_want_colon goto mainparse } case 'i': if bytes.Equal(ffj_key_Incident_Id, kn) { currentKey = ffj_t_Incident_Id state = fflib.FFParse_want_colon goto mainparse } case 'm': if bytes.Equal(ffj_key_Incident_Metric, kn) { currentKey = ffj_t_Incident_Metric state = fflib.FFParse_want_colon goto mainparse } case 'p': if bytes.Equal(ffj_key_Incident_Policy, kn) { currentKey = ffj_t_Incident_Policy state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_Incident_Status, kn) { currentKey = ffj_t_Incident_Status state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Incident_Service, kn) { currentKey = ffj_t_Incident_Service state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Incident_SubService, kn) { currentKey = ffj_t_Incident_SubService state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_Incident_Time, kn) { currentKey = ffj_t_Incident_Time state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Incident_Tags, kn) { currentKey = ffj_t_Incident_Tags state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Incident_Tags, kn) { currentKey = ffj_t_Incident_Tags state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Incident_Metric, kn) { currentKey = ffj_t_Incident_Metric state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Incident_SubService, kn) { currentKey = ffj_t_Incident_SubService state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Incident_Service, kn) { currentKey = ffj_t_Incident_Service state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Incident_Host, kn) { currentKey = ffj_t_Incident_Host state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Incident_Status, kn) { currentKey = ffj_t_Incident_Status state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Incident_Policy, kn) { currentKey = ffj_t_Incident_Policy state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Incident_Description, kn) { currentKey = ffj_t_Incident_Description state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Incident_Escalation, kn) { currentKey = ffj_t_Incident_Escalation state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Incident_Active, kn) { currentKey = ffj_t_Incident_Active state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Incident_Id, kn) { currentKey = ffj_t_Incident_Id state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Incident_Time, kn) { currentKey = ffj_t_Incident_Time state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Incident_EventName, kn) { currentKey = ffj_t_Incident_EventName state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Incidentno_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_Incident_EventName: goto handle_EventName case ffj_t_Incident_Time: goto handle_Time case ffj_t_Incident_Id: goto handle_Id case ffj_t_Incident_Active: goto handle_Active case ffj_t_Incident_Escalation: goto handle_Escalation case ffj_t_Incident_Description: goto handle_Description case ffj_t_Incident_Policy: goto handle_Policy case ffj_t_Incident_Status: goto handle_Status case ffj_t_Incident_Host: goto handle_Host case ffj_t_Incident_Service: goto handle_Service case ffj_t_Incident_SubService: goto handle_SubService case ffj_t_Incident_Metric: goto handle_Metric case ffj_t_Incident_Tags: goto handle_Tags case ffj_t_Incidentno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_EventName: /* handler: uj.EventName type=[]uint8 kind=slice */ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) } } if tok == fflib.FFTok_null { uj.EventName = nil } else { b := make([]byte, base64.StdEncoding.DecodedLen(fs.Output.Len())) n, err := base64.StdEncoding.Decode(b, fs.Output.Bytes()) if err != nil { return fs.WrapErr(err) } v := reflect.ValueOf(&uj.EventName).Elem() v.SetBytes(b[0:n]) } } state = fflib.FFParse_after_value goto mainparse handle_Time: /* handler: uj.Time type=int64 kind=int64 */ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int64", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } uj.Time = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Id: /* handler: uj.Id type=int64 kind=int64 */ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int64", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } uj.Id = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Active: /* handler: uj.Active type=bool kind=bool */ { { 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.Active = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.Active = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_Escalation: /* handler: uj.Escalation type=string kind=string */ { { 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 { uj.Escalation = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_Description: /* handler: uj.Description type=string kind=string */ { { 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 { uj.Description = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_Policy: /* handler: uj.Policy type=string kind=string */ { { 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 { uj.Policy = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_Status: /* handler: uj.Status type=int kind=int */ { 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.Status = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Host: /* handler: uj.Host type=string kind=string */ { { 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 { uj.Host = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_Service: /* handler: uj.Service type=string kind=string */ { { 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 { uj.Service = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_SubService: /* handler: uj.SubService type=string kind=string */ { { 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 { uj.SubService = string(fs.Output.String()) } } state = fflib.FFParse_after_value goto mainparse handle_Metric: /* handler: uj.Metric type=float64 kind=float64 */ { if tok != fflib.FFTok_double && tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for float64", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseFloat(fs.Output.Bytes(), 64) if err != nil { return fs.WrapErr(err) } uj.Metric = float64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Tags: /* handler: uj.Tags type=map[string]string kind=map */ { /* Falling back. type=map[string]string kind=map */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Tags) if err != nil { return fs.WrapErr(err) } } 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 *EventStream) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_EventStreambase _ = 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_EventStreamno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'C': if bytes.Equal(ffj_key_EventStream_Closed, kn) { currentKey = ffj_t_EventStream_Closed state = fflib.FFParse_want_colon goto mainparse } case 'E': if bytes.Equal(ffj_key_EventStream_Err, kn) { currentKey = ffj_t_EventStream_Err state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_EventStream_Events, kn) { currentKey = ffj_t_EventStream_Events state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_EventStream_Closed, kn) { currentKey = ffj_t_EventStream_Closed state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_EventStream_Events, kn) { currentKey = ffj_t_EventStream_Events state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_EventStream_Err, kn) { currentKey = ffj_t_EventStream_Err state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_EventStreamno_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_EventStream_Err: goto handle_Err case ffj_t_EventStream_Events: goto handle_Events case ffj_t_EventStream_Closed: goto handle_Closed case ffj_t_EventStreamno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Err: /* handler: uj.Err type=chan error kind=chan quoted=false*/ { /* Falling back. type=chan error kind=chan */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Err) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_Events: /* handler: uj.Events type=chan census.Event kind=chan quoted=false*/ { /* Falling back. type=chan census.Event kind=chan */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Events) if err != nil { return fs.WrapErr(err) } } state = fflib.FFParse_after_value goto mainparse handle_Closed: /* handler: uj.Closed type=chan struct {} kind=chan quoted=false*/ { /* Falling back. type=chan struct {} kind=chan */ tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = json.Unmarshal(tbuf, &uj.Closed) if err != nil { return fs.WrapErr(err) } } 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 *InMsg) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_InMsgbase _ = 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_InMsgno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'd': if bytes.Equal(ffj_key_InMsg_Data, kn) { currentKey = ffj_t_InMsg_Data state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_InMsg_Type, kn) { currentKey = ffj_t_InMsg_Type state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_InMsg_Data, kn) { currentKey = ffj_t_InMsg_Data state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_InMsg_Type, kn) { currentKey = ffj_t_InMsg_Type state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_InMsgno_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_InMsg_Type: goto handle_Type case ffj_t_InMsg_Data: goto handle_Data case ffj_t_InMsgno_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_Data: /* handler: uj.Data type=json.RawMessage kind=slice 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.Data.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } 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 }