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 *BroIPFields) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_BroIPFieldsbase _ = 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_BroIPFieldsno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'd': if bytes.Equal(ffj_key_BroIPFields_Dst, kn) { currentKey = ffj_t_BroIPFields_Dst state = fflib.FFParse_want_colon goto mainparse } case 'i': if bytes.Equal(ffj_key_BroIPFields_ID_orig_h, kn) { currentKey = ffj_t_BroIPFields_ID_orig_h state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_BroIPFields_ID_resp_h, kn) { currentKey = ffj_t_BroIPFields_ID_resp_h state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_BroIPFields_Src, kn) { currentKey = ffj_t_BroIPFields_Src state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_BroIPFields_Dst, kn) { currentKey = ffj_t_BroIPFields_Dst state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_BroIPFields_Src, kn) { currentKey = ffj_t_BroIPFields_Src state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_BroIPFields_ID_resp_h, kn) { currentKey = ffj_t_BroIPFields_ID_resp_h state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_BroIPFields_ID_orig_h, kn) { currentKey = ffj_t_BroIPFields_ID_orig_h state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_BroIPFieldsno_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_BroIPFields_ID_orig_h: goto handle_ID_orig_h case ffj_t_BroIPFields_ID_resp_h: goto handle_ID_resp_h case ffj_t_BroIPFields_Src: goto handle_Src case ffj_t_BroIPFields_Dst: goto handle_Dst case ffj_t_BroIPFieldsno_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_orig_h: /* handler: uj.ID_orig_h 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_orig_h = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_ID_resp_h: /* handler: uj.ID_resp_h 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_resp_h = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Src: /* handler: uj.Src 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.Src = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Dst: /* handler: uj.Dst 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.Dst = 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 *ServiceDefinition) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_ServiceDefinitionbase _ = 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_ServiceDefinitionno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'c': if bytes.Equal(ffj_key_ServiceDefinition_ContainerPort, kn) { currentKey = ffj_t_ServiceDefinition_ContainerPort state = fflib.FFParse_want_colon goto mainparse } case 'n': if bytes.Equal(ffj_key_ServiceDefinition_NamePattern, kn) { currentKey = ffj_t_ServiceDefinition_NamePattern state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_ServiceDefinition_Type, kn) { currentKey = ffj_t_ServiceDefinition_Type state = fflib.FFParse_want_colon goto mainparse } } if fflib.AsciiEqualFold(ffj_key_ServiceDefinition_NamePattern, kn) { currentKey = ffj_t_ServiceDefinition_NamePattern state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_ServiceDefinition_ContainerPort, kn) { currentKey = ffj_t_ServiceDefinition_ContainerPort state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_ServiceDefinition_Type, kn) { currentKey = ffj_t_ServiceDefinition_Type state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_ServiceDefinitionno_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_ServiceDefinition_Type: goto handle_Type case ffj_t_ServiceDefinition_ContainerPort: goto handle_ContainerPort case ffj_t_ServiceDefinition_NamePattern: goto handle_NamePattern case ffj_t_ServiceDefinitionno_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_ContainerPort: /* handler: uj.ContainerPort type=int64 kind=int64 quoted=false*/ { 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.ContainerPort = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_NamePattern: /* handler: uj.NamePattern 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 { uj.NamePattern = nil } else { var tval string outBuf := fs.Output.Bytes() tval = string(string(outBuf)) uj.NamePattern = &tval } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }
func (uj *Outfit) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Outfitbase _ = 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_Outfitno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'a': if bytes.Equal(ffj_key_Outfit_Alias, kn) { currentKey = ffj_t_Outfit_Alias state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Outfit_AliasLower, kn) { currentKey = ffj_t_Outfit_AliasLower state = fflib.FFParse_want_colon goto mainparse } case 'l': if bytes.Equal(ffj_key_Outfit_LeaderCharID, kn) { currentKey = ffj_t_Outfit_LeaderCharID state = fflib.FFParse_want_colon goto mainparse } case 'm': if bytes.Equal(ffj_key_Outfit_MemberCount, kn) { currentKey = ffj_t_Outfit_MemberCount state = fflib.FFParse_want_colon goto mainparse } case 'n': if bytes.Equal(ffj_key_Outfit_Name, kn) { currentKey = ffj_t_Outfit_Name state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Outfit_NameLower, kn) { currentKey = ffj_t_Outfit_NameLower state = fflib.FFParse_want_colon goto mainparse } case 'o': if bytes.Equal(ffj_key_Outfit_ID, kn) { currentKey = ffj_t_Outfit_ID state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_Outfit_TimeCreated, kn) { currentKey = ffj_t_Outfit_TimeCreated state = fflib.FFParse_want_colon goto mainparse } } if fflib.AsciiEqualFold(ffj_key_Outfit_MemberCount, kn) { currentKey = ffj_t_Outfit_MemberCount state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Outfit_LeaderCharID, kn) { currentKey = ffj_t_Outfit_LeaderCharID state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Outfit_TimeCreated, kn) { currentKey = ffj_t_Outfit_TimeCreated state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Outfit_AliasLower, kn) { currentKey = ffj_t_Outfit_AliasLower state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Outfit_Alias, kn) { currentKey = ffj_t_Outfit_Alias state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Outfit_NameLower, kn) { currentKey = ffj_t_Outfit_NameLower state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Outfit_Name, kn) { currentKey = ffj_t_Outfit_Name state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Outfit_ID, kn) { currentKey = ffj_t_Outfit_ID state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Outfitno_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_Outfit_ID: goto handle_ID case ffj_t_Outfit_Name: goto handle_Name case ffj_t_Outfit_NameLower: goto handle_NameLower case ffj_t_Outfit_Alias: goto handle_Alias case ffj_t_Outfit_AliasLower: goto handle_AliasLower case ffj_t_Outfit_TimeCreated: goto handle_TimeCreated case ffj_t_Outfit_LeaderCharID: goto handle_LeaderCharID case ffj_t_Outfit_MemberCount: goto handle_MemberCount case ffj_t_Outfitno_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=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_NameLower: /* handler: uj.NameLower 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.NameLower = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Alias: /* handler: uj.Alias 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.Alias = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_AliasLower: /* handler: uj.AliasLower 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.AliasLower = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_TimeCreated: /* handler: uj.TimeCreated 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.TimeCreated = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_LeaderCharID: /* handler: uj.LeaderCharID 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.LeaderCharID = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_MemberCount: /* handler: uj.MemberCount 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.MemberCount = 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 *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 *ClientEntry) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_ClientEntrybase _ = 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_ClientEntryno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'a': if bytes.Equal(ffj_key_ClientEntry_AllowedGrants, kn) { currentKey = ffj_t_ClientEntry_AllowedGrants state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_ClientEntry_AllowedScopes, kn) { currentKey = ffj_t_ClientEntry_AllowedScopes state = fflib.FFParse_want_colon goto mainparse } case 'c': if bytes.Equal(ffj_key_ClientEntry_ClientID, kn) { currentKey = ffj_t_ClientEntry_ClientID state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_ClientEntry_ClientSecret, kn) { currentKey = ffj_t_ClientEntry_ClientSecret state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_ClientEntry_ClientType, kn) { currentKey = ffj_t_ClientEntry_ClientType state = fflib.FFParse_want_colon goto mainparse } case 'j': if bytes.Equal(ffj_key_ClientEntry_JavascriptOrigins, kn) { currentKey = ffj_t_ClientEntry_JavascriptOrigins state = fflib.FFParse_want_colon goto mainparse } case 'r': if bytes.Equal(ffj_key_ClientEntry_RedirectUris, kn) { currentKey = ffj_t_ClientEntry_RedirectUris state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_ClientEntry_AllowedScopes, kn) { currentKey = ffj_t_ClientEntry_AllowedScopes state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_ClientEntry_AllowedGrants, kn) { currentKey = ffj_t_ClientEntry_AllowedGrants state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_ClientEntry_JavascriptOrigins, kn) { currentKey = ffj_t_ClientEntry_JavascriptOrigins state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_ClientEntry_RedirectUris, kn) { currentKey = ffj_t_ClientEntry_RedirectUris state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_ClientEntry_ClientType, kn) { currentKey = ffj_t_ClientEntry_ClientType state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_ClientEntry_ClientSecret, kn) { currentKey = ffj_t_ClientEntry_ClientSecret state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_ClientEntry_ClientID, kn) { currentKey = ffj_t_ClientEntry_ClientID state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_ClientEntryno_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_ClientEntry_ClientID: goto handle_ClientID case ffj_t_ClientEntry_ClientSecret: goto handle_ClientSecret case ffj_t_ClientEntry_ClientType: goto handle_ClientType case ffj_t_ClientEntry_RedirectUris: goto handle_RedirectUris case ffj_t_ClientEntry_JavascriptOrigins: goto handle_JavascriptOrigins case ffj_t_ClientEntry_AllowedGrants: goto handle_AllowedGrants case ffj_t_ClientEntry_AllowedScopes: goto handle_AllowedScopes case ffj_t_ClientEntryno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_ClientID: /* handler: uj.ClientID 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.ClientID = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_ClientSecret: /* handler: uj.ClientSecret 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.ClientSecret = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_ClientType: /* handler: uj.ClientType 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.ClientType = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_RedirectUris: /* handler: uj.RedirectUris type=[]string 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.RedirectUris = nil } else { uj.RedirectUris = make([]string, 0) wantVal := true for { var v string 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: v 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() v = string(string(outBuf)) } } uj.RedirectUris = append(uj.RedirectUris, v) wantVal = false } } } state = fflib.FFParse_after_value goto mainparse handle_JavascriptOrigins: /* handler: uj.JavascriptOrigins type=[]string 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.JavascriptOrigins = nil } else { uj.JavascriptOrigins = make([]string, 0) wantVal := true for { var v string 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: v 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() v = string(string(outBuf)) } } uj.JavascriptOrigins = append(uj.JavascriptOrigins, v) wantVal = false } } } state = fflib.FFParse_after_value goto mainparse handle_AllowedGrants: /* handler: uj.AllowedGrants type=[]string 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.AllowedGrants = nil } else { uj.AllowedGrants = make([]string, 0) wantVal := true for { var v string 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: v 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() v = string(string(outBuf)) } } uj.AllowedGrants = append(uj.AllowedGrants, v) wantVal = false } } } state = fflib.FFParse_after_value goto mainparse handle_AllowedScopes: /* handler: uj.AllowedScopes type=[]string 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.AllowedScopes = nil } else { uj.AllowedScopes = make([]string, 0) wantVal := true for { var v string 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: v 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() v = string(string(outBuf)) } } uj.AllowedScopes = append(uj.AllowedScopes, v) wantVal = false } } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }
func (uj *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 *User) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Userbase _ = currentKey tok := fflib.FFTok_init wantedTok := fflib.FFTok_init mainparse: for { tok = fs.Scan() // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) if tok == fflib.FFTok_error { goto tokerror } switch state { case fflib.FFParse_map_start: if tok != fflib.FFTok_left_bracket { wantedTok = fflib.FFTok_left_bracket goto wrongtokenerror } state = fflib.FFParse_want_key continue case fflib.FFParse_after_value: if tok == fflib.FFTok_comma { state = fflib.FFParse_want_key } else if tok == fflib.FFTok_right_bracket { goto done } else { wantedTok = fflib.FFTok_comma goto wrongtokenerror } case fflib.FFParse_want_key: // json {} ended. goto exit. woo. if tok == fflib.FFTok_right_bracket { goto done } if tok != fflib.FFTok_string { wantedTok = fflib.FFTok_string goto wrongtokenerror } kn := fs.Output.Bytes() if len(kn) <= 0 { // "" case. hrm. currentKey = ffj_t_Userno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'c': if bytes.Equal(ffj_key_User_Color, kn) { currentKey = ffj_t_User_Color state = fflib.FFParse_want_colon goto mainparse } case 'l': if bytes.Equal(ffj_key_User_LoggedIn, kn) { currentKey = ffj_t_User_LoggedIn state = fflib.FFParse_want_colon goto mainparse } case 'n': if bytes.Equal(ffj_key_User_Name, kn) { currentKey = ffj_t_User_Name state = fflib.FFParse_want_colon goto mainparse } case 'v': if bytes.Equal(ffj_key_User_Votes, kn) { currentKey = ffj_t_User_Votes state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_User_Votes, kn) { currentKey = ffj_t_User_Votes state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_User_LoggedIn, kn) { currentKey = ffj_t_User_LoggedIn state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_User_Color, kn) { currentKey = ffj_t_User_Color state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_User_Name, kn) { currentKey = ffj_t_User_Name state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Userno_such_key state = fflib.FFParse_want_colon goto mainparse } case fflib.FFParse_want_colon: if tok != fflib.FFTok_colon { wantedTok = fflib.FFTok_colon goto wrongtokenerror } state = fflib.FFParse_want_value continue case fflib.FFParse_want_value: if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { switch currentKey { case ffj_t_User_Name: goto handle_Name case ffj_t_User_Color: goto handle_Color case ffj_t_User_LoggedIn: goto handle_LoggedIn case ffj_t_User_Votes: goto handle_Votes case ffj_t_Userno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Name: /* handler: uj.Name type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Name = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Color: /* handler: uj.Color type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Color = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_LoggedIn: /* handler: uj.LoggedIn type=bool kind=bool quoted=false*/ { if tok != fflib.FFTok_bool && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for bool", tok)) } } { if tok == fflib.FFTok_null { } else { tmpb := fs.Output.Bytes() if bytes.Compare([]byte{'t', 'r', 'u', 'e'}, tmpb) == 0 { uj.LoggedIn = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.LoggedIn = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_Votes: /* handler: uj.Votes type=map[int]chat.voteOption kind=map quoted=false*/ { { if tok != fflib.FFTok_left_bracket && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for ", tok)) } } if tok == fflib.FFTok_null { uj.Votes = nil } else { uj.Votes = make(map[int]voteOption, 0) wantVal := true for { var k int var v voteOption tok = fs.Scan() if tok == fflib.FFTok_error { goto tokerror } if tok == fflib.FFTok_right_bracket { break } if tok == fflib.FFTok_comma { if wantVal == true { // TODO(pquerna): this isn't an ideal error message, this handles // things like [,,,] as an array value. return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) } continue } else { wantVal = true } /* handler: k type=int kind=int quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } k = int(tval) } } // Expect ':' after key tok = fs.Scan() if tok != fflib.FFTok_colon { return fs.WrapErr(fmt.Errorf("wanted colon token, but got token: %v", tok)) } tok = fs.Scan() /* handler: v type=chat.voteOption kind=uint16 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for voteOption", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 16) if err != nil { return fs.WrapErr(err) } v = voteOption(tval) } } uj.Votes[k] = v wantVal = false } } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }
func (uj *Event) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Eventbase _ = currentKey tok := fflib.FFTok_init wantedTok := fflib.FFTok_init mainparse: for { tok = fs.Scan() // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) if tok == fflib.FFTok_error { goto tokerror } switch state { case fflib.FFParse_map_start: if tok != fflib.FFTok_left_bracket { wantedTok = fflib.FFTok_left_bracket goto wrongtokenerror } state = fflib.FFParse_want_key continue case fflib.FFParse_after_value: if tok == fflib.FFTok_comma { state = fflib.FFParse_want_key } else if tok == fflib.FFTok_right_bracket { goto done } else { wantedTok = fflib.FFTok_comma goto wrongtokenerror } case fflib.FFParse_want_key: // json {} ended. goto exit. woo. if tok == fflib.FFTok_right_bracket { goto done } if tok != fflib.FFTok_string { wantedTok = fflib.FFTok_string goto wrongtokenerror } kn := fs.Output.Bytes() if len(kn) <= 0 { // "" case. hrm. currentKey = ffj_t_Eventno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'c': if bytes.Equal(ffj_key_Event_Color, kn) { currentKey = ffj_t_Event_Color state = fflib.FFParse_want_colon goto mainparse } case 'e': if bytes.Equal(ffj_key_Event_Error, kn) { currentKey = ffj_t_Event_Error state = fflib.FFParse_want_colon goto mainparse } case 'o': if bytes.Equal(ffj_key_Event_OptionA, kn) { currentKey = ffj_t_Event_OptionA state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Event_OptionB, kn) { currentKey = ffj_t_Event_OptionB state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_Event_Type, kn) { currentKey = ffj_t_Event_Type state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Event_Text, kn) { currentKey = ffj_t_Event_Text state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Event_TopicID, kn) { currentKey = ffj_t_Event_TopicID state = fflib.FFParse_want_colon goto mainparse } case 'u': if bytes.Equal(ffj_key_Event_Username, kn) { currentKey = ffj_t_Event_Username state = fflib.FFParse_want_colon goto mainparse } case 'v': if bytes.Equal(ffj_key_Event_VoteMask, kn) { currentKey = ffj_t_Event_VoteMask state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_Event_Error, kn) { currentKey = ffj_t_Event_Error state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_VoteMask, kn) { currentKey = ffj_t_Event_VoteMask state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Event_OptionB, kn) { currentKey = ffj_t_Event_OptionB state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Event_OptionA, kn) { currentKey = ffj_t_Event_OptionA state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Event_TopicID, kn) { currentKey = ffj_t_Event_TopicID state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_Text, kn) { currentKey = ffj_t_Event_Text state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_Color, kn) { currentKey = ffj_t_Event_Color state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_Username, kn) { currentKey = ffj_t_Event_Username state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_Type, kn) { currentKey = ffj_t_Event_Type state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Eventno_such_key state = fflib.FFParse_want_colon goto mainparse } case fflib.FFParse_want_colon: if tok != fflib.FFTok_colon { wantedTok = fflib.FFTok_colon goto wrongtokenerror } state = fflib.FFParse_want_value continue case fflib.FFParse_want_value: if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { switch currentKey { case ffj_t_Event_Type: goto handle_Type case ffj_t_Event_Username: goto handle_Username case ffj_t_Event_Color: goto handle_Color case ffj_t_Event_Text: goto handle_Text case ffj_t_Event_TopicID: goto handle_TopicID case ffj_t_Event_OptionA: goto handle_OptionA case ffj_t_Event_OptionB: goto handle_OptionB case ffj_t_Event_VoteMask: goto handle_VoteMask case ffj_t_Event_Error: goto handle_Error case ffj_t_Eventno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Type: /* handler: uj.Type type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Type = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Username: /* handler: uj.Username type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Username = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Color: /* handler: uj.Color type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Color = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Text: /* handler: uj.Text type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Text = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_TopicID: /* handler: uj.TopicID type=int kind=int quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } uj.TopicID = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_OptionA: /* handler: uj.OptionA type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.OptionA = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_OptionB: /* handler: uj.OptionB type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.OptionB = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_VoteMask: /* handler: uj.VoteMask type=chat.voteOption kind=uint16 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for voteOption", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 16) if err != nil { return fs.WrapErr(err) } uj.VoteMask = voteOption(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Error: /* handler: uj.Error type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Error = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }
func (uj *Fingerprint) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Fingerprintbase _ = 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_Fingerprintno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'g': if bytes.Equal(ffj_key_Fingerprint_Group, kn) { currentKey = ffj_t_Fingerprint_Group state = fflib.FFParse_want_colon goto mainparse } case 'l': if bytes.Equal(ffj_key_Fingerprint_Location, kn) { currentKey = ffj_t_Fingerprint_Location state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_Fingerprint_Timestamp, kn) { currentKey = ffj_t_Fingerprint_Timestamp state = fflib.FFParse_want_colon goto mainparse } case 'u': if bytes.Equal(ffj_key_Fingerprint_Username, kn) { currentKey = ffj_t_Fingerprint_Username state = fflib.FFParse_want_colon goto mainparse } case 'w': if bytes.Equal(ffj_key_Fingerprint_WifiFingerprint, kn) { currentKey = ffj_t_Fingerprint_WifiFingerprint state = fflib.FFParse_want_colon goto mainparse } } if fflib.AsciiEqualFold(ffj_key_Fingerprint_WifiFingerprint, kn) { currentKey = ffj_t_Fingerprint_WifiFingerprint state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Fingerprint_Timestamp, kn) { currentKey = ffj_t_Fingerprint_Timestamp state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Fingerprint_Location, kn) { currentKey = ffj_t_Fingerprint_Location state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Fingerprint_Username, kn) { currentKey = ffj_t_Fingerprint_Username state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Fingerprint_Group, kn) { currentKey = ffj_t_Fingerprint_Group state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Fingerprintno_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_Fingerprint_Group: goto handle_Group case ffj_t_Fingerprint_Username: goto handle_Username case ffj_t_Fingerprint_Location: goto handle_Location case ffj_t_Fingerprint_Timestamp: goto handle_Timestamp case ffj_t_Fingerprint_WifiFingerprint: goto handle_WifiFingerprint case ffj_t_Fingerprintno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Group: /* handler: uj.Group 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.Group = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Username: /* handler: uj.Username type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Username = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_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_Timestamp: /* handler: uj.Timestamp type=int64 kind=int64 quoted=false*/ { 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.Timestamp = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_WifiFingerprint: /* handler: uj.WifiFingerprint type=[]find.Router 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.WifiFingerprint = nil } else { uj.WifiFingerprint = make([]Router, 0) wantVal := true for { var tmp_uj__WifiFingerprint Router 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__WifiFingerprint type=find.Router kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } err = tmp_uj__WifiFingerprint.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } uj.WifiFingerprint = append(uj.WifiFingerprint, tmp_uj__WifiFingerprint) wantVal = false } } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }