func (uj *LocRate) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_LocRatebase _ = 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_LocRateno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'l': if bytes.Equal(ffj_key_LocRate_Limit, kn) { currentKey = ffj_t_LocRate_Limit state = fflib.FFParse_want_colon goto mainparse } case 'r': if bytes.Equal(ffj_key_LocRate_Remaining, kn) { currentKey = ffj_t_LocRate_Remaining state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_LocRate_Remaining, kn) { currentKey = ffj_t_LocRate_Remaining state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LocRate_Limit, kn) { currentKey = ffj_t_LocRate_Limit state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_LocRateno_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_LocRate_Limit: goto handle_Limit case ffj_t_LocRate_Remaining: goto handle_Remaining case ffj_t_LocRateno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Limit: /* handler: uj.Limit 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.Limit = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Remaining: /* handler: uj.Remaining 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.Remaining = 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 *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 *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 *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 *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 *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 *Topic) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_Topicbase _ = currentKey tok := fflib.FFTok_init wantedTok := fflib.FFTok_init mainparse: for { tok = fs.Scan() // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) if tok == fflib.FFTok_error { goto tokerror } switch state { case fflib.FFParse_map_start: if tok != fflib.FFTok_left_bracket { wantedTok = fflib.FFTok_left_bracket goto wrongtokenerror } state = fflib.FFParse_want_key continue case fflib.FFParse_after_value: if tok == fflib.FFTok_comma { state = fflib.FFParse_want_key } else if tok == fflib.FFTok_right_bracket { goto done } else { wantedTok = fflib.FFTok_comma goto wrongtokenerror } case fflib.FFParse_want_key: // json {} ended. goto exit. woo. if tok == fflib.FFTok_right_bracket { goto done } if tok != fflib.FFTok_string { wantedTok = fflib.FFTok_string goto wrongtokenerror } kn := fs.Output.Bytes() if len(kn) <= 0 { // "" case. hrm. currentKey = ffj_t_Topicno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'c': if bytes.Equal(ffj_key_Topic_Created, kn) { currentKey = ffj_t_Topic_Created state = fflib.FFParse_want_colon goto mainparse } case 'e': if bytes.Equal(ffj_key_Topic_Ends, kn) { currentKey = ffj_t_Topic_Ends state = fflib.FFParse_want_colon goto mainparse } case 'i': if bytes.Equal(ffj_key_Topic_ID, kn) { currentKey = ffj_t_Topic_ID state = fflib.FFParse_want_colon goto mainparse } case 'o': if bytes.Equal(ffj_key_Topic_OptionA, kn) { currentKey = ffj_t_Topic_OptionA state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_Topic_OptionB, kn) { currentKey = ffj_t_Topic_OptionB state = fflib.FFParse_want_colon goto mainparse } } if fflib.EqualFoldRight(ffj_key_Topic_Ends, kn) { currentKey = ffj_t_Topic_Ends state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Topic_Created, kn) { currentKey = ffj_t_Topic_Created state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_Topic_ID, kn) { currentKey = ffj_t_Topic_ID state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Topic_OptionB, kn) { currentKey = ffj_t_Topic_OptionB state = fflib.FFParse_want_colon goto mainparse } if fflib.AsciiEqualFold(ffj_key_Topic_OptionA, kn) { currentKey = ffj_t_Topic_OptionA state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_Topicno_such_key state = fflib.FFParse_want_colon goto mainparse } case fflib.FFParse_want_colon: if tok != fflib.FFTok_colon { wantedTok = fflib.FFTok_colon goto wrongtokenerror } state = fflib.FFParse_want_value continue case fflib.FFParse_want_value: if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { switch currentKey { case ffj_t_Topic_OptionA: goto handle_OptionA case ffj_t_Topic_OptionB: goto handle_OptionB case ffj_t_Topic_ID: goto handle_ID case ffj_t_Topic_Created: goto handle_Created case ffj_t_Topic_Ends: goto handle_Ends case ffj_t_Topicno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_OptionA: /* handler: uj.OptionA type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.OptionA = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_OptionB: /* handler: uj.OptionB type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.OptionB = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_ID: /* handler: uj.ID type=int kind=int quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } uj.ID = int(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Created: /* handler: uj.Created type=time.Time kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = uj.Created.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_Ends: /* handler: uj.Ends type=time.Time kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = uj.Ends.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }
func (uj *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 *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 *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 *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 *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 *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 }
func (uj *LogFormat) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { var err error = nil currentKey := ffj_t_LogFormatbase _ = currentKey tok := fflib.FFTok_init wantedTok := fflib.FFTok_init mainparse: for { tok = fs.Scan() // println(fmt.Sprintf("debug: tok: %v state: %v", tok, state)) if tok == fflib.FFTok_error { goto tokerror } switch state { case fflib.FFParse_map_start: if tok != fflib.FFTok_left_bracket { wantedTok = fflib.FFTok_left_bracket goto wrongtokenerror } state = fflib.FFParse_want_key continue case fflib.FFParse_after_value: if tok == fflib.FFTok_comma { state = fflib.FFParse_want_key } else if tok == fflib.FFTok_right_bracket { goto done } else { wantedTok = fflib.FFTok_comma goto wrongtokenerror } case fflib.FFParse_want_key: // json {} ended. goto exit. woo. if tok == fflib.FFTok_right_bracket { goto done } if tok != fflib.FFTok_string { wantedTok = fflib.FFTok_string goto wrongtokenerror } kn := fs.Output.Bytes() if len(kn) <= 0 { // "" case. hrm. currentKey = ffj_t_LogFormatno_such_key state = fflib.FFParse_want_colon goto mainparse } else { switch kn[0] { case 'C': if bytes.Equal(ffj_key_LogFormat_Caller, kn) { currentKey = ffj_t_LogFormat_Caller state = fflib.FFParse_want_colon goto mainparse } case 'H': if bytes.Equal(ffj_key_LogFormat_Host, kn) { currentKey = ffj_t_LogFormat_Host state = fflib.FFParse_want_colon goto mainparse } case 'L': if bytes.Equal(ffj_key_LogFormat_Level, kn) { currentKey = ffj_t_LogFormat_Level state = fflib.FFParse_want_colon goto mainparse } else if bytes.Equal(ffj_key_LogFormat_LineNo, kn) { currentKey = ffj_t_LogFormat_LineNo state = fflib.FFParse_want_colon goto mainparse } case 'M': if bytes.Equal(ffj_key_LogFormat_Msg, kn) { currentKey = ffj_t_LogFormat_Msg state = fflib.FFParse_want_colon goto mainparse } case 'P': if bytes.Equal(ffj_key_LogFormat_Prefix, kn) { currentKey = ffj_t_LogFormat_Prefix state = fflib.FFParse_want_colon goto mainparse } case 'T': if bytes.Equal(ffj_key_LogFormat_Time, kn) { currentKey = ffj_t_LogFormat_Time state = fflib.FFParse_want_colon goto mainparse } } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_LineNo, kn) { currentKey = ffj_t_LogFormat_LineNo state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_Caller, kn) { currentKey = ffj_t_LogFormat_Caller state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_LogFormat_Msg, kn) { currentKey = ffj_t_LogFormat_Msg state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_Level, kn) { currentKey = ffj_t_LogFormat_Level state = fflib.FFParse_want_colon goto mainparse } if fflib.EqualFoldRight(ffj_key_LogFormat_Host, kn) { currentKey = ffj_t_LogFormat_Host state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_Time, kn) { currentKey = ffj_t_LogFormat_Time state = fflib.FFParse_want_colon goto mainparse } if fflib.SimpleLetterEqualFold(ffj_key_LogFormat_Prefix, kn) { currentKey = ffj_t_LogFormat_Prefix state = fflib.FFParse_want_colon goto mainparse } currentKey = ffj_t_LogFormatno_such_key state = fflib.FFParse_want_colon goto mainparse } case fflib.FFParse_want_colon: if tok != fflib.FFTok_colon { wantedTok = fflib.FFTok_colon goto wrongtokenerror } state = fflib.FFParse_want_value continue case fflib.FFParse_want_value: if tok == fflib.FFTok_left_brace || tok == fflib.FFTok_left_bracket || tok == fflib.FFTok_integer || tok == fflib.FFTok_double || tok == fflib.FFTok_string || tok == fflib.FFTok_bool || tok == fflib.FFTok_null { switch currentKey { case ffj_t_LogFormat_Prefix: goto handle_Prefix case ffj_t_LogFormat_Time: goto handle_Time case ffj_t_LogFormat_Host: goto handle_Host case ffj_t_LogFormat_Level: goto handle_Level case ffj_t_LogFormat_Msg: goto handle_Msg case ffj_t_LogFormat_Caller: goto handle_Caller case ffj_t_LogFormat_LineNo: goto handle_LineNo case ffj_t_LogFormatno_such_key: err = fs.SkipField(tok) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value goto mainparse } } else { goto wantedvalue } } } handle_Prefix: /* handler: uj.Prefix type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Prefix = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Time: /* handler: uj.Time type=time.Time kind=struct quoted=false*/ { if tok == fflib.FFTok_null { state = fflib.FFParse_after_value goto mainparse } tbuf, err := fs.CaptureField(tok) if err != nil { return fs.WrapErr(err) } err = uj.Time.UnmarshalJSON(tbuf) if err != nil { return fs.WrapErr(err) } state = fflib.FFParse_after_value } state = fflib.FFParse_after_value goto mainparse handle_Host: /* handler: uj.Host type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Host = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Level: /* handler: uj.Level type=uint8 kind=uint8 quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for uint8", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseUint(fs.Output.Bytes(), 10, 8) if err != nil { return fs.WrapErr(err) } uj.Level = uint8(tval) } } state = fflib.FFParse_after_value goto mainparse handle_Msg: /* handler: uj.Msg type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Msg = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_Caller: /* handler: uj.Caller type=string kind=string quoted=false*/ { { if tok != fflib.FFTok_string && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) } } if tok == fflib.FFTok_null { } else { outBuf := fs.Output.Bytes() uj.Caller = string(string(outBuf)) } } state = fflib.FFParse_after_value goto mainparse handle_LineNo: /* handler: uj.LineNo type=int kind=int quoted=false*/ { if tok != fflib.FFTok_integer && tok != fflib.FFTok_null { return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for int", tok)) } } { if tok == fflib.FFTok_null { } else { tval, err := fflib.ParseInt(fs.Output.Bytes(), 10, 64) if err != nil { return fs.WrapErr(err) } uj.LineNo = int(tval) } } state = fflib.FFParse_after_value goto mainparse wantedvalue: return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) wrongtokenerror: return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) tokerror: if fs.BigError != nil { return fs.WrapErr(fs.BigError) } err = fs.Error.ToError() if err != nil { return fs.WrapErr(err) } panic("ffjson-generated: unreachable, please report bug.") done: return nil }