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 }
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 *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 *LocResult) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_LocResultbase _ = 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_LocResultno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'c': if bytes.Equal(ffj_key_LocResult_Component, kn) { currentKey = ffj_t_LocResult_Component state = fflib.FFParse_want_colon goto mainparse } case 'g': if bytes.Equal(ffj_key_LocResult_Geometry, kn) { currentKey = ffj_t_LocResult_Geometry state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_LocResult_Geometry, kn) { currentKey = ffj_t_LocResult_Geometry state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_LocResult_Component, kn) { currentKey = ffj_t_LocResult_Component state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_LocResultno_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_LocResult_Component: goto handle_Component case ffj_t_LocResult_Geometry: goto handle_Geometry case ffj_t_LocResultno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Component: /* handler: uj.Component type=jstruct.LocComponent kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } err = uj.Component.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_Geometry: /* handler: uj.Geometry type=jstruct.LocGeom kind=struct quoted=false*/ { if tok == fflib.FFTok_null { uj.Geometry = nil state = fflib.FFParse_after_value goto mainparse } if uj.Geometry == nil { uj.Geometry = new(LocGeom) } err = uj.Geometry.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return 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 *Recaptcha) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Recaptchabase _ = 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_Recaptchano_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { } currentKey = ffj_t_Recaptchano_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_Recaptchano_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } 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 *AnyType) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_AnyTypebase _ = 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_AnyTypeno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'C': if bytes.Equal(ffj_key_AnyType_Channels, kn) { currentKey = ffj_t_AnyType_Channels state = fflib.FFParse_want_colon goto mainparse } case 'E': if bytes.Equal(ffj_key_AnyType_ExName, kn) { currentKey = ffj_t_AnyType_ExName state = fflib.FFParse_want_colon goto mainparse } case 'F': if bytes.Equal(ffj_key_AnyType_FileBytes, kn) { currentKey = ffj_t_AnyType_FileBytes state = fflib.FFParse_want_colon goto mainparse } case 'H': if bytes.Equal(ffj_key_AnyType_Height, kn) { currentKey = ffj_t_AnyType_Height state = fflib.FFParse_want_colon goto mainparse } case 'I': if bytes.Equal(ffj_key_AnyType_ID, kn) { currentKey = ffj_t_AnyType_ID state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_AnyType_IsSharpen, kn) { currentKey = ffj_t_AnyType_IsSharpen state = fflib.FFParse_want_colon goto mainparse } case 'L': if bytes.Equal(ffj_key_AnyType_List, kn) { currentKey = ffj_t_AnyType_List state = fflib.FFParse_want_colon goto mainparse } case 'M': if bytes.Equal(ffj_key_AnyType_MinWidth, kn) { currentKey = ffj_t_AnyType_MinWidth state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_AnyType_MinHeight, kn) { currentKey = ffj_t_AnyType_MinHeight state = fflib.FFParse_want_colon goto mainparse } case 'P': if bytes.Equal(ffj_key_AnyType_Proportion, kn) { currentKey = ffj_t_AnyType_Proportion state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_AnyType_Position, kn) { currentKey = ffj_t_AnyType_Position state = fflib.FFParse_want_colon goto mainparse } case 'R': if bytes.Equal(ffj_key_AnyType_Radius, kn) { currentKey = ffj_t_AnyType_Radius state = fflib.FFParse_want_colon goto mainparse } case 'S': if bytes.Equal(ffj_key_AnyType_Sigma, kn) { currentKey = ffj_t_AnyType_Sigma state = fflib.FFParse_want_colon goto mainparse } case 'T': if bytes.Equal(ffj_key_AnyType_Type, kn) { currentKey = ffj_t_AnyType_Type state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_AnyType_TargetFormat, kn) { currentKey = ffj_t_AnyType_TargetFormat state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_AnyType_TargetQuality, kn) { currentKey = ffj_t_AnyType_TargetQuality state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_AnyType_Transparency, kn) { currentKey = ffj_t_AnyType_Transparency state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_AnyType_Taipe, kn) { currentKey = ffj_t_AnyType_Taipe state = fflib.FFParse_want_colon goto mainparse } case 'W': if bytes.Equal(ffj_key_AnyType_Width, kn) { currentKey = ffj_t_AnyType_Width state = fflib.FFParse_want_colon goto mainparse } case 'X': if bytes.Equal(ffj_key_AnyType_X, kn) { currentKey = ffj_t_AnyType_X state = fflib.FFParse_want_colon goto mainparse } case 'Y': if bytes.Equal(ffj_key_AnyType_Y, kn) { currentKey = ffj_t_AnyType_Y state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_Taipe, kn) { currentKey = ffj_t_AnyType_Taipe state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_Height, kn) { currentKey = ffj_t_AnyType_Height state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_Width, kn) { currentKey = ffj_t_AnyType_Width state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AnyType_FileBytes, kn) { currentKey = ffj_t_AnyType_FileBytes state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_MinHeight, kn) { currentKey = ffj_t_AnyType_MinHeight state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_MinWidth, kn) { currentKey = ffj_t_AnyType_MinWidth state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_Y, kn) { currentKey = ffj_t_AnyType_Y state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_X, kn) { currentKey = ffj_t_AnyType_X state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AnyType_Position, kn) { currentKey = ffj_t_AnyType_Position state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AnyType_Transparency, kn) { currentKey = ffj_t_AnyType_Transparency state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_Proportion, kn) { currentKey = ffj_t_AnyType_Proportion state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AnyType_List, kn) { currentKey = ffj_t_AnyType_List state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AnyType_Channels, kn) { currentKey = ffj_t_AnyType_Channels state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AnyType_Sigma, kn) { currentKey = ffj_t_AnyType_Sigma state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AnyType_Radius, kn) { currentKey = ffj_t_AnyType_Radius state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_AnyType_IsSharpen, kn) { currentKey = ffj_t_AnyType_IsSharpen state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_TargetQuality, kn) { currentKey = ffj_t_AnyType_TargetQuality state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_TargetFormat, kn) { currentKey = ffj_t_AnyType_TargetFormat state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_ExName, kn) { currentKey = ffj_t_AnyType_ExName state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_ID, kn) { currentKey = ffj_t_AnyType_ID state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_AnyType_Type, kn) { currentKey = ffj_t_AnyType_Type state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_AnyTypeno_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_AnyType_Type: goto handle_Type case ffj_t_AnyType_ID: goto handle_ID case ffj_t_AnyType_ExName: goto handle_ExName case ffj_t_AnyType_TargetFormat: goto handle_TargetFormat case ffj_t_AnyType_TargetQuality: goto handle_TargetQuality case ffj_t_AnyType_IsSharpen: goto handle_IsSharpen case ffj_t_AnyType_Radius: goto handle_Radius case ffj_t_AnyType_Sigma: goto handle_Sigma case ffj_t_AnyType_Channels: goto handle_Channels case ffj_t_AnyType_List: goto handle_List case ffj_t_AnyType_Proportion: goto handle_Proportion case ffj_t_AnyType_Transparency: goto handle_Transparency case ffj_t_AnyType_Position: goto handle_Position case ffj_t_AnyType_X: goto handle_X case ffj_t_AnyType_Y: goto handle_Y case ffj_t_AnyType_MinWidth: goto handle_MinWidth case ffj_t_AnyType_MinHeight: goto handle_MinHeight case ffj_t_AnyType_FileBytes: goto handle_FileBytes case ffj_t_AnyType_Width: goto handle_Width case ffj_t_AnyType_Height: goto handle_Height case ffj_t_AnyType_Taipe: goto handle_Taipe case ffj_t_AnyTypeno_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_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_ExName: /* handler: uj.ExName 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.ExName = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_TargetFormat: /* handler: uj.TargetFormat 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.TargetFormat = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_TargetQuality: /* handler: uj.TargetQuality 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.TargetQuality = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_IsSharpen: /* handler: uj.IsSharpen 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.IsSharpen = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.IsSharpen = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_Radius: /* handler: uj.Radius 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.Radius = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Sigma: /* handler: uj.Sigma 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.Sigma = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Channels: /* handler: uj.Channels 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.Channels = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_List: /* handler: uj.List type=processplan.ProcessList kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } err = uj.List.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_Proportion: /* handler: uj.Proportion 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.Proportion = float64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Transparency: /* handler: uj.Transparency 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.Transparency = float64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Position: /* handler: uj.Position 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.Position = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_X: /* handler: uj.X 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.X = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Y: /* handler: uj.Y 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.Y = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_MinWidth: /* handler: uj.MinWidth 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.MinWidth = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_MinHeight: /* handler: uj.MinHeight 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.MinHeight = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_FileBytes: /* handler: uj.FileBytes type=[]uint8 kind=slice quoted=false*/ { { 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.FileBytes = 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.FileBytes).Elem() v.SetBytes(b[0:n]) } } state = fflib.FFParse_after_value goto mainparse handle_Width: /* handler: uj.Width 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.Width = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Height: /* handler: uj.Height 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.Height = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Taipe: /* handler: uj.Taipe 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.Taipe = 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 }
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 *Server) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Serverbase _ = 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_Serverno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'u': if bytes.Equal(ffj_key_Server_Topics, kn) { currentKey = ffj_t_Server_Topics state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Server_Topics, kn) { currentKey = ffj_t_Server_Topics state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Serverno_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_Server_Topics: goto handle_Topics case ffj_t_Serverno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Topics: /* handler: uj.Topics type=map[int]*chat.Topic 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.Topics = nil } else { uj.Topics = make(map[int]*Topic, 0) wantVal := true for { var k int var v *Topic 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.Topic kind=ptr quoted=false*/ { if tok == fflib.FFTok_null { v = nil state = fflib.FFParse_after_value goto mainparse } if v == nil { v = new(Topic) } err = v.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } uj.Topics[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 *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 *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 *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 'P': if bytes.Equal(ffj_key_Event_Payload, kn) { currentKey = ffj_t_Event_Payload 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 } case 't': if bytes.Equal(ffj_key_Event_Type, kn) { currentKey = ffj_t_Event_Type 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 } if fflib.EqualFoldRight(ffj_key_Event_Service, kn) { currentKey = ffj_t_Event_Service state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_Payload, kn) { currentKey = ffj_t_Event_Payload 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_Payload: goto handle_Payload case ffj_t_Event_Service: goto handle_Service case ffj_t_Event_Type: goto handle_Type 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_Payload: /* handler: uj.Payload type=census.EventPayload kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } err = uj.Payload.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_Service: /* handler: uj.Service 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.Service = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse 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 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 *Handtekening) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Handtekeningbase _ = 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_Handtekeningno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'a': if bytes.Equal(ffj_key_Handtekening_Achternaam, kn) { currentKey = ffj_t_Handtekening_Achternaam state = fflib.FFParse_want_colon goto mainparse } case 'c': if bytes.Equal(ffj_key_Handtekening_CaptchaResponse, kn) { currentKey = ffj_t_Handtekening_CaptchaResponse state = fflib.FFParse_want_colon goto mainparse } case 'e': if bytes.Equal(ffj_key_Handtekening_Email, kn) { currentKey = ffj_t_Handtekening_Email state = fflib.FFParse_want_colon goto mainparse } case 'g': if bytes.Equal(ffj_key_Handtekening_Geboortedatum, kn) { currentKey = ffj_t_Handtekening_Geboortedatum state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Handtekening_Geboorteplaats, kn) { currentKey = ffj_t_Handtekening_Geboorteplaats state = fflib.FFParse_want_colon goto mainparse } case 'h': if bytes.Equal(ffj_key_Handtekening_Huisnummer, kn) { currentKey = ffj_t_Handtekening_Huisnummer state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Handtekening_Handtekening, kn) { currentKey = ffj_t_Handtekening_Handtekening state = fflib.FFParse_want_colon goto mainparse } case 'p': if bytes.Equal(ffj_key_Handtekening_Postcode, kn) { currentKey = ffj_t_Handtekening_Postcode state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_Handtekening_Straat, kn) { currentKey = ffj_t_Handtekening_Straat state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_Handtekening_Tussenvoegsel, kn) { currentKey = ffj_t_Handtekening_Tussenvoegsel state = fflib.FFParse_want_colon goto mainparse } case 'v': if bytes.Equal(ffj_key_Handtekening_Voornaam, kn) { currentKey = ffj_t_Handtekening_Voornaam state = fflib.FFParse_want_colon goto mainparse } case 'w': if bytes.Equal(ffj_key_Handtekening_Woonplaats, kn) { currentKey = ffj_t_Handtekening_Woonplaats state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Handtekening_CaptchaResponse, kn) { currentKey = ffj_t_Handtekening_CaptchaResponse state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Handtekening_Email, kn) { currentKey = ffj_t_Handtekening_Email state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Handtekening_Handtekening, kn) { currentKey = ffj_t_Handtekening_Handtekening state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Handtekening_Woonplaats, kn) { currentKey = ffj_t_Handtekening_Woonplaats state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Handtekening_Postcode, kn) { currentKey = ffj_t_Handtekening_Postcode state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Handtekening_Huisnummer, kn) { currentKey = ffj_t_Handtekening_Huisnummer state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Handtekening_Straat, kn) { currentKey = ffj_t_Handtekening_Straat state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Handtekening_Geboorteplaats, kn) { currentKey = ffj_t_Handtekening_Geboorteplaats state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Handtekening_Geboortedatum, kn) { currentKey = ffj_t_Handtekening_Geboortedatum state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Handtekening_Achternaam, kn) { currentKey = ffj_t_Handtekening_Achternaam state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Handtekening_Tussenvoegsel, kn) { currentKey = ffj_t_Handtekening_Tussenvoegsel state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Handtekening_Voornaam, kn) { currentKey = ffj_t_Handtekening_Voornaam state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Handtekeningno_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_Handtekening_Voornaam: goto handle_Voornaam case ffj_t_Handtekening_Tussenvoegsel: goto handle_Tussenvoegsel case ffj_t_Handtekening_Achternaam: goto handle_Achternaam case ffj_t_Handtekening_Geboortedatum: goto handle_Geboortedatum case ffj_t_Handtekening_Geboorteplaats: goto handle_Geboorteplaats case ffj_t_Handtekening_Straat: goto handle_Straat case ffj_t_Handtekening_Huisnummer: goto handle_Huisnummer case ffj_t_Handtekening_Postcode: goto handle_Postcode case ffj_t_Handtekening_Woonplaats: goto handle_Woonplaats case ffj_t_Handtekening_Handtekening: goto handle_Handtekening case ffj_t_Handtekening_Email: goto handle_Email case ffj_t_Handtekening_CaptchaResponse: goto handle_CaptchaResponse case ffj_t_Handtekeningno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Voornaam: /* handler: uj.Voornaam 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.Voornaam = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Tussenvoegsel: /* handler: uj.Tussenvoegsel 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.Tussenvoegsel = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Achternaam: /* handler: uj.Achternaam 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.Achternaam = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Geboortedatum: /* handler: uj.Geboortedatum 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.Geboortedatum = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Geboorteplaats: /* handler: uj.Geboorteplaats 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.Geboorteplaats = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Straat: /* handler: uj.Straat 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.Straat = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Huisnummer: /* handler: uj.Huisnummer 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.Huisnummer = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Postcode: /* handler: uj.Postcode 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.Postcode = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Woonplaats: /* handler: uj.Woonplaats 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.Woonplaats = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Handtekening: /* handler: uj.Handtekening type=[]uint8 kind=slice quoted=false*/ { { 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.Handtekening = 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.Handtekening).Elem() v.SetBytes(b[0:n]) } } state = fflib.FFParse_after_value goto mainparse handle_Email: /* handler: uj.Email 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.Email = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CaptchaResponse: /* handler: uj.CaptchaResponse 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.CaptchaResponse = 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 *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 *Http) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Httpbase _ = 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_Httpno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'H': if bytes.Equal(ffj_key_Http_Host, kn) { currentKey = ffj_t_Http_Host state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Http_Headers, kn) { currentKey = ffj_t_Http_Headers state = fflib.FFParse_want_colon goto mainparse } case 'M': if bytes.Equal(ffj_key_Http_Method, kn) { currentKey = ffj_t_Http_Method state = fflib.FFParse_want_colon goto mainparse } case 'T': if bytes.Equal(ffj_key_Http_Tag, kn) { currentKey = ffj_t_Http_Tag state = fflib.FFParse_want_colon goto mainparse } case 'U': if bytes.Equal(ffj_key_Http_Uri, kn) { currentKey = ffj_t_Http_Uri state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_Http_Tag, kn) { currentKey = ffj_t_Http_Tag state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Http_Headers, kn) { currentKey = ffj_t_Http_Headers state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Http_Uri, kn) { currentKey = ffj_t_Http_Uri state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Http_Method, kn) { currentKey = ffj_t_Http_Method state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Http_Host, kn) { currentKey = ffj_t_Http_Host state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Httpno_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_Http_Host: goto handle_Host case ffj_t_Http_Method: goto handle_Method case ffj_t_Http_Uri: goto handle_Uri case ffj_t_Http_Headers: goto handle_Headers case ffj_t_Http_Tag: goto handle_Tag case ffj_t_Httpno_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 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_Method: /* handler: uj.Method 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.Method = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Uri: /* handler: uj.Uri 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.Uri = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Headers: /* handler: uj.Headers type=map[string]string 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.Headers = nil } else { uj.Headers = make(map[string]string, 0) wantVal := true for { var k string var v string 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=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() k = string(string(outBuf)) } } // 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=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.Headers[k] = v wantVal = false } } } state = fflib.FFParse_after_value goto mainparse handle_Tag: /* handler: uj.Tag 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.Tag = 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 *WorkerEvent) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_WorkerEventbase _ = 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_WorkerEventno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'a': if bytes.Equal(ffj_key_WorkerEvent_Active, kn) { currentKey = ffj_t_WorkerEvent_Active state = fflib.FFParse_want_colon goto mainparse } case 'c': if bytes.Equal(ffj_key_WorkerEvent_Clock, kn) { currentKey = ffj_t_WorkerEvent_Clock state = fflib.FFParse_want_colon goto mainparse } case 'f': if bytes.Equal(ffj_key_WorkerEvent_Freq, kn) { currentKey = ffj_t_WorkerEvent_Freq state = fflib.FFParse_want_colon goto mainparse } case 'h': if bytes.Equal(ffj_key_WorkerEvent_Hostname, kn) { currentKey = ffj_t_WorkerEvent_Hostname state = fflib.FFParse_want_colon goto mainparse } case 'l': if bytes.Equal(ffj_key_WorkerEvent_LoadAverage, kn) { currentKey = ffj_t_WorkerEvent_LoadAverage state = fflib.FFParse_want_colon goto mainparse } case 'p': if bytes.Equal(ffj_key_WorkerEvent_PID, kn) { currentKey = ffj_t_WorkerEvent_PID state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_WorkerEvent_Processed, kn) { currentKey = ffj_t_WorkerEvent_Processed state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_WorkerEvent_SWSystem, kn) { currentKey = ffj_t_WorkerEvent_SWSystem state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_WorkerEvent_SWVersion, kn) { currentKey = ffj_t_WorkerEvent_SWVersion state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_WorkerEvent_SWIdentity, kn) { currentKey = ffj_t_WorkerEvent_SWIdentity state = fflib.FFParse_want_colon goto mainparse } case 't': if bytes.Equal(ffj_key_WorkerEvent_Type, kn) { currentKey = ffj_t_WorkerEvent_Type state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_WorkerEvent_Timestamp, kn) { currentKey = ffj_t_WorkerEvent_Timestamp state = fflib.FFParse_want_colon goto mainparse } case 'u': if bytes.Equal(ffj_key_WorkerEvent_UTCOffset, kn) { currentKey = ffj_t_WorkerEvent_UTCOffset state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_WorkerEvent_Active, kn) { currentKey = ffj_t_WorkerEvent_Active state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_WorkerEvent_Processed, kn) { currentKey = ffj_t_WorkerEvent_Processed state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_WorkerEvent_SWIdentity, kn) { currentKey = ffj_t_WorkerEvent_SWIdentity state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_WorkerEvent_Freq, kn) { currentKey = ffj_t_WorkerEvent_Freq state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_WorkerEvent_LoadAverage, kn) { currentKey = ffj_t_WorkerEvent_LoadAverage state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_WorkerEvent_SWVersion, kn) { currentKey = ffj_t_WorkerEvent_SWVersion state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_WorkerEvent_SWSystem, kn) { currentKey = ffj_t_WorkerEvent_SWSystem state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_WorkerEvent_UTCOffset, kn) { currentKey = ffj_t_WorkerEvent_UTCOffset state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_WorkerEvent_Clock, kn) { currentKey = ffj_t_WorkerEvent_Clock state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_WorkerEvent_PID, kn) { currentKey = ffj_t_WorkerEvent_PID state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_WorkerEvent_Timestamp, kn) { currentKey = ffj_t_WorkerEvent_Timestamp state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_WorkerEvent_Hostname, kn) { currentKey = ffj_t_WorkerEvent_Hostname state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_WorkerEvent_Type, kn) { currentKey = ffj_t_WorkerEvent_Type state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_WorkerEventno_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_WorkerEvent_Type: goto handle_Type case ffj_t_WorkerEvent_Hostname: goto handle_Hostname case ffj_t_WorkerEvent_Timestamp: goto handle_Timestamp case ffj_t_WorkerEvent_PID: goto handle_PID case ffj_t_WorkerEvent_Clock: goto handle_Clock case ffj_t_WorkerEvent_UTCOffset: goto handle_UTCOffset case ffj_t_WorkerEvent_SWSystem: goto handle_SWSystem case ffj_t_WorkerEvent_SWVersion: goto handle_SWVersion case ffj_t_WorkerEvent_LoadAverage: goto handle_LoadAverage case ffj_t_WorkerEvent_Freq: goto handle_Freq case ffj_t_WorkerEvent_SWIdentity: goto handle_SWIdentity case ffj_t_WorkerEvent_Processed: goto handle_Processed case ffj_t_WorkerEvent_Active: goto handle_Active case ffj_t_WorkerEventno_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_SWSystem: /* handler: uj.SWSystem 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.SWSystem = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_SWVersion: /* handler: uj.SWVersion 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.SWVersion = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_LoadAverage: /* handler: uj.LoadAverage type=[]float32 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.LoadAverage = nil } else { uj.LoadAverage = make([]float32, 0) wantVal := true for { var v float32 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=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) } v = float32(tval) } } uj.LoadAverage = append(uj.LoadAverage, v) wantVal = false } } } state = fflib.FFParse_after_value goto mainparse handle_Freq: /* handler: uj.Freq 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.Freq = float32(tval) } } state = fflib.FFParse_after_value goto mainparse handle_SWIdentity: /* handler: uj.SWIdentity 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.SWIdentity = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Processed: /* handler: uj.Processed 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.Processed = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Active: /* handler: uj.Active 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.Active = 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 }
func (uj *ProcessList) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_ProcessListbase _ = 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_ProcessListno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'A': if bytes.Equal(ffj_key_ProcessList_AnyTypes, kn) { currentKey = ffj_t_ProcessList_AnyTypes state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_ProcessList_AnyTypes, kn) { currentKey = ffj_t_ProcessList_AnyTypes state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_ProcessListno_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_ProcessList_AnyTypes: goto handle_AnyTypes case ffj_t_ProcessListno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_AnyTypes: /* handler: uj.AnyTypes type=[]processplan.AnyType 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.AnyTypes = nil } else { uj.AnyTypes = make([]AnyType, 0) wantVal := true for { var v AnyType 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=processplan.AnyType kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } err = v.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) if err != nil { return err } state = fflib.FFParse_after_value } uj.AnyTypes = append(uj.AnyTypes, 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 *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 *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 *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_Clock, kn) { currentKey = ffj_t_Event_Clock state = fflib.FFParse_want_colon goto mainparse } case 'h': if bytes.Equal(ffj_key_Event_Hostname, kn) { currentKey = ffj_t_Event_Hostname state = fflib.FFParse_want_colon goto mainparse } case 'p': if bytes.Equal(ffj_key_Event_PID, kn) { currentKey = ffj_t_Event_PID 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_Timestamp, kn) { currentKey = ffj_t_Event_Timestamp state = fflib.FFParse_want_colon goto mainparse } case 'u': if bytes.Equal(ffj_key_Event_UTCOffset, kn) { currentKey = ffj_t_Event_UTCOffset state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Event_UTCOffset, kn) { currentKey = ffj_t_Event_UTCOffset state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_Clock, kn) { currentKey = ffj_t_Event_Clock state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Event_PID, kn) { currentKey = ffj_t_Event_PID state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_Timestamp, kn) { currentKey = ffj_t_Event_Timestamp state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Event_Hostname, kn) { currentKey = ffj_t_Event_Hostname 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_Hostname: goto handle_Hostname case ffj_t_Event_Timestamp: goto handle_Timestamp case ffj_t_Event_PID: goto handle_PID case ffj_t_Event_Clock: goto handle_Clock case ffj_t_Event_UTCOffset: goto handle_UTCOffset 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_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 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 *response) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_responsebase _ = 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_responseno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'e': if bytes.Equal(ffj_key_response_ErrorCodes, kn) { currentKey = ffj_t_response_ErrorCodes state = fflib.FFParse_want_colon goto mainparse } case 's': if bytes.Equal(ffj_key_response_Success, kn) { currentKey = ffj_t_response_Success state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_response_ErrorCodes, kn) { currentKey = ffj_t_response_ErrorCodes state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_response_Success, kn) { currentKey = ffj_t_response_Success state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_responseno_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_response_Success: goto handle_Success case ffj_t_response_ErrorCodes: goto handle_ErrorCodes case ffj_t_responseno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Success: /* handler: uj.Success 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.Success = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.Success = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_ErrorCodes: /* handler: uj.ErrorCodes 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.ErrorCodes = nil } else { uj.ErrorCodes = 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.ErrorCodes = append(uj.ErrorCodes, 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 *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 *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 *Collection) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Collectionbase _ = 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_Collectionno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'C': if bytes.Equal(ffj_key_Collection_Count, kn) { currentKey = ffj_t_Collection_Count state = fflib.FFParse_want_colon goto mainparse } case 'D': if bytes.Equal(ffj_key_Collection_Dynamic, kn) { currentKey = ffj_t_Collection_Dynamic state = fflib.FFParse_want_colon goto mainparse } case 'H': if bytes.Equal(ffj_key_Collection_Hidden, kn) { currentKey = ffj_t_Collection_Hidden state = fflib.FFParse_want_colon goto mainparse } case 'N': if bytes.Equal(ffj_key_Collection_Name, kn) { currentKey = ffj_t_Collection_Name state = fflib.FFParse_want_colon goto mainparse } case 'R': if bytes.Equal(ffj_key_Collection_ResolveList, kn) { currentKey = ffj_t_Collection_ResolveList state = fflib.FFParse_want_colon goto mainparse } case 'U': if bytes.Equal(ffj_key_Collection_UnknownCount, kn) { currentKey = ffj_t_Collection_UnknownCount state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Collection_ResolveList, kn) { currentKey = ffj_t_Collection_ResolveList state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Collection_Name, kn) { currentKey = ffj_t_Collection_Name state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Collection_Hidden, kn) { currentKey = ffj_t_Collection_Hidden state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_Collection_UnknownCount, kn) { currentKey = ffj_t_Collection_UnknownCount state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Collection_Dynamic, kn) { currentKey = ffj_t_Collection_Dynamic state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Collection_Count, kn) { currentKey = ffj_t_Collection_Count state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Collectionno_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_Collection_Count: goto handle_Count case ffj_t_Collection_Dynamic: goto handle_Dynamic case ffj_t_Collection_UnknownCount: goto handle_UnknownCount case ffj_t_Collection_Hidden: goto handle_Hidden case ffj_t_Collection_Name: goto handle_Name case ffj_t_Collection_ResolveList: goto handle_ResolveList case ffj_t_Collectionno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Count: /* handler: uj.Count 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.Count = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Dynamic: /* handler: uj.Dynamic 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.Dynamic = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.Dynamic = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_UnknownCount: /* handler: uj.UnknownCount 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.UnknownCount = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.UnknownCount = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } state = fflib.FFParse_after_value goto mainparse handle_Hidden: /* handler: uj.Hidden 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.Hidden = true } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { uj.Hidden = false } else { err = errors.New("unexpected bytes for true/false value") return fs.WrapErr(err) } } } 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_ResolveList: /* handler: uj.ResolveList 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.ResolveList = nil } else { uj.ResolveList = 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.ResolveList = append(uj.ResolveList, 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 *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 *State) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Statebase _ = 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_Stateno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'b': if bytes.Equal(ffj_key_State_BundlePath, kn) { currentKey = ffj_t_State_BundlePath state = fflib.FFParse_want_colon goto mainparse } case 'i': if bytes.Equal(ffj_key_State_ID, kn) { currentKey = ffj_t_State_ID state = fflib.FFParse_want_colon goto mainparse } case 'p': if bytes.Equal(ffj_key_State_Pid, kn) { currentKey = ffj_t_State_Pid state = fflib.FFParse_want_colon goto mainparse } case 'v': if bytes.Equal(ffj_key_State_Version, kn) { currentKey = ffj_t_State_Version state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_State_BundlePath, kn) { currentKey = ffj_t_State_BundlePath state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_State_Pid, kn) { currentKey = ffj_t_State_Pid state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_State_ID, kn) { currentKey = ffj_t_State_ID state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_State_Version, kn) { currentKey = ffj_t_State_Version state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Stateno_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_State_Version: goto handle_Version case ffj_t_State_ID: goto handle_ID case ffj_t_State_Pid: goto handle_Pid case ffj_t_State_BundlePath: goto handle_BundlePath case ffj_t_Stateno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Version: /* handler: uj.Version 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.Version = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse 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_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_BundlePath: /* handler: uj.BundlePath 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.BundlePath = 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 *Pos2D) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Pos2Dbase _ = 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_Pos2Dno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'x': if bytes.Equal(ffj_key_Pos2D_X, kn) { currentKey = ffj_t_Pos2D_X state = fflib.FFParse_want_colon goto mainparse } case 'y': if bytes.Equal(ffj_key_Pos2D_Y, kn) { currentKey = ffj_t_Pos2D_Y state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_Pos2D_Y, kn) { currentKey = ffj_t_Pos2D_Y state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Pos2D_X, kn) { currentKey = ffj_t_Pos2D_X state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Pos2Dno_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_Pos2D_X: goto handle_X case ffj_t_Pos2D_Y: goto handle_Y case ffj_t_Pos2Dno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_X: /* handler: uj.X 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.X = float64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Y: /* handler: uj.Y 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.Y = float64(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 *TCARD) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_TCARDbase _ = 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_TCARDno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'C': if bytes.Equal(ffj_key_TCARD_CARDIDEX, kn) { currentKey = ffj_t_TCARD_CARDIDEX state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDBDID, kn) { currentKey = ffj_t_TCARD_CARDBDID state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDKJND, kn) { currentKey = ffj_t_TCARD_CARDKJND state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDKJQJ, kn) { currentKey = ffj_t_TCARD_CARDKJQJ state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDYWBZ, kn) { currentKey = ffj_t_TCARD_CARDYWBZ state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDNAME, kn) { currentKey = ffj_t_TCARD_CARDNAME state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDZJNX, kn) { currentKey = ffj_t_TCARD_CARDZJNX state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDZJFF, kn) { currentKey = ffj_t_TCARD_CARDZJFF state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDZJZT, kn) { currentKey = ffj_t_TCARD_CARDZJZT state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDCODE, kn) { currentKey = ffj_t_TCARD_CARDCODE state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDJLDW, kn) { currentKey = ffj_t_TCARD_CARDJLDW state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_CARDGGXH, kn) { currentKey = ffj_t_TCARD_CARDGGXH state = fflib.FFParse_want_colon goto mainparse } case 'D': if bytes.Equal(ffj_key_TCARD_DEPTLINK, kn) { currentKey = ffj_t_TCARD_DEPTLINK state = fflib.FFParse_want_colon goto mainparse } case 'S': if bytes.Equal(ffj_key_TCARD_SORTTYPE, kn) { currentKey = ffj_t_TCARD_SORTTYPE state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_SORTNAME, kn) { currentKey = ffj_t_TCARD_SORTNAME state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_SORTLINK, kn) { currentKey = ffj_t_TCARD_SORTLINK state = fflib.FFParse_want_colon goto mainparse } case 'U': if bytes.Equal(ffj_key_TCARD_UNITLINK, kn) { currentKey = ffj_t_TCARD_UNITLINK state = fflib.FFParse_want_colon goto mainparse } case 'Z': if bytes.Equal(ffj_key_TCARD_ZCLBTYPE, kn) { currentKey = ffj_t_TCARD_ZCLBTYPE state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_ZCLBNAME, kn) { currentKey = ffj_t_TCARD_ZCLBNAME state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_TCARD_ZCLBLINK, kn) { currentKey = ffj_t_TCARD_ZCLBLINK state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDGGXH, kn) { currentKey = ffj_t_TCARD_CARDGGXH state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDJLDW, kn) { currentKey = ffj_t_TCARD_CARDJLDW state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDCODE, kn) { currentKey = ffj_t_TCARD_CARDCODE state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDZJZT, kn) { currentKey = ffj_t_TCARD_CARDZJZT state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDZJFF, kn) { currentKey = ffj_t_TCARD_CARDZJFF state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDZJNX, kn) { currentKey = ffj_t_TCARD_CARDZJNX state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDNAME, kn) { currentKey = ffj_t_TCARD_CARDNAME state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TCARD_ZCLBLINK, kn) { currentKey = ffj_t_TCARD_ZCLBLINK state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_ZCLBNAME, kn) { currentKey = ffj_t_TCARD_ZCLBNAME state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_ZCLBTYPE, kn) { currentKey = ffj_t_TCARD_ZCLBTYPE state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TCARD_SORTLINK, kn) { currentKey = ffj_t_TCARD_SORTLINK state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TCARD_SORTNAME, kn) { currentKey = ffj_t_TCARD_SORTNAME state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TCARD_SORTTYPE, kn) { currentKey = ffj_t_TCARD_SORTTYPE state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDYWBZ, kn) { currentKey = ffj_t_TCARD_CARDYWBZ state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TCARD_DEPTLINK, kn) { currentKey = ffj_t_TCARD_DEPTLINK state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TCARD_CARDKJQJ, kn) { currentKey = ffj_t_TCARD_CARDKJQJ state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TCARD_CARDKJND, kn) { currentKey = ffj_t_TCARD_CARDKJND state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDBDID, kn) { currentKey = ffj_t_TCARD_CARDBDID state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_TCARD_CARDIDEX, kn) { currentKey = ffj_t_TCARD_CARDIDEX state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_TCARD_UNITLINK, kn) { currentKey = ffj_t_TCARD_UNITLINK state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_TCARDno_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_TCARD_UNITLINK: goto handle_UNITLINK case ffj_t_TCARD_CARDIDEX: goto handle_CARDIDEX case ffj_t_TCARD_CARDBDID: goto handle_CARDBDID case ffj_t_TCARD_CARDKJND: goto handle_CARDKJND case ffj_t_TCARD_CARDKJQJ: goto handle_CARDKJQJ case ffj_t_TCARD_DEPTLINK: goto handle_DEPTLINK case ffj_t_TCARD_CARDYWBZ: goto handle_CARDYWBZ case ffj_t_TCARD_SORTTYPE: goto handle_SORTTYPE case ffj_t_TCARD_SORTNAME: goto handle_SORTNAME case ffj_t_TCARD_SORTLINK: goto handle_SORTLINK case ffj_t_TCARD_ZCLBTYPE: goto handle_ZCLBTYPE case ffj_t_TCARD_ZCLBNAME: goto handle_ZCLBNAME case ffj_t_TCARD_ZCLBLINK: goto handle_ZCLBLINK case ffj_t_TCARD_CARDNAME: goto handle_CARDNAME case ffj_t_TCARD_CARDZJNX: goto handle_CARDZJNX case ffj_t_TCARD_CARDZJFF: goto handle_CARDZJFF case ffj_t_TCARD_CARDZJZT: goto handle_CARDZJZT case ffj_t_TCARD_CARDCODE: goto handle_CARDCODE case ffj_t_TCARD_CARDJLDW: goto handle_CARDJLDW case ffj_t_TCARD_CARDGGXH: goto handle_CARDGGXH case ffj_t_TCARDno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_UNITLINK: /* handler: uj.UNITLINK 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.UNITLINK = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CARDIDEX: /* handler: uj.CARDIDEX 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.CARDIDEX = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_CARDBDID: /* handler: uj.CARDBDID 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.CARDBDID = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_CARDKJND: /* handler: uj.CARDKJND 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.CARDKJND = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_CARDKJQJ: /* handler: uj.CARDKJQJ 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.CARDKJQJ = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_DEPTLINK: /* handler: uj.DEPTLINK 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.DEPTLINK = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CARDYWBZ: /* handler: uj.CARDYWBZ 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.CARDYWBZ = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_SORTTYPE: /* handler: uj.SORTTYPE 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.SORTTYPE = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_SORTNAME: /* handler: uj.SORTNAME 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.SORTNAME = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_SORTLINK: /* handler: uj.SORTLINK 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.SORTLINK = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_ZCLBTYPE: /* handler: uj.ZCLBTYPE 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.ZCLBTYPE = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_ZCLBNAME: /* handler: uj.ZCLBNAME 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.ZCLBNAME = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_ZCLBLINK: /* handler: uj.ZCLBLINK 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.ZCLBLINK = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CARDNAME: /* handler: uj.CARDNAME 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.CARDNAME = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CARDZJNX: /* handler: uj.CARDZJNX 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.CARDZJNX = int64(tval) } } state = fflib.FFParse_after_value goto mainparse handle_CARDZJFF: /* handler: uj.CARDZJFF 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.CARDZJFF = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CARDZJZT: /* handler: uj.CARDZJZT 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.CARDZJZT = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CARDCODE: /* handler: uj.CARDCODE 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.CARDCODE = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CARDJLDW: /* handler: uj.CARDJLDW 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.CARDJLDW = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_CARDGGXH: /* handler: uj.CARDGGXH 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.CARDGGXH = 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 }