| // +build use_ffjson |
| |
| // DO NOT EDIT! |
| // Code generated by ffjson <https://github.com/pquerna/ffjson> |
| // source: .root/src/github.com/mailru/easyjson/benchmark/data.go |
| // DO NOT EDIT! |
| |
| package benchmark |
| |
| import ( |
| "bytes" |
| "errors" |
| "fmt" |
| fflib "github.com/pquerna/ffjson/fflib/v1" |
| ) |
| |
| func (mj *Entities) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *Entities) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"hashtags":`) |
| if mj.Hashtags != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.Hashtags { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| |
| { |
| |
| err = v.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteString(`,"urls":`) |
| if mj.Urls != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.Urls { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| if v != nil { |
| fflib.WriteJsonString(buf, string(*v)) |
| } else { |
| buf.WriteString(`null`) |
| } |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteString(`,"user_mentions":`) |
| if mj.UserMentions != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.UserMentions { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| if v != nil { |
| fflib.WriteJsonString(buf, string(*v)) |
| } else { |
| buf.WriteString(`null`) |
| } |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_Entitiesbase = iota |
| ffj_t_Entitiesno_such_key |
| |
| ffj_t_Entities_Hashtags |
| |
| ffj_t_Entities_Urls |
| |
| ffj_t_Entities_UserMentions |
| ) |
| |
| var ffj_key_Entities_Hashtags = []byte("hashtags") |
| |
| var ffj_key_Entities_Urls = []byte("urls") |
| |
| var ffj_key_Entities_UserMentions = []byte("user_mentions") |
| |
| func (uj *Entities) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *Entities) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_Entitiesbase |
| _ = 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_Entitiesno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'h': |
| |
| if bytes.Equal(ffj_key_Entities_Hashtags, kn) { |
| currentKey = ffj_t_Entities_Hashtags |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'u': |
| |
| if bytes.Equal(ffj_key_Entities_Urls, kn) { |
| currentKey = ffj_t_Entities_Urls |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Entities_UserMentions, kn) { |
| currentKey = ffj_t_Entities_UserMentions |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Entities_UserMentions, kn) { |
| currentKey = ffj_t_Entities_UserMentions |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Entities_Urls, kn) { |
| currentKey = ffj_t_Entities_Urls |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Entities_Hashtags, kn) { |
| currentKey = ffj_t_Entities_Hashtags |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_Entitiesno_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_Entities_Hashtags: |
| goto handle_Hashtags |
| |
| case ffj_t_Entities_Urls: |
| goto handle_Urls |
| |
| case ffj_t_Entities_UserMentions: |
| goto handle_UserMentions |
| |
| case ffj_t_Entitiesno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_Hashtags: |
| |
| /* handler: uj.Hashtags type=[]benchmark.Hashtag 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.Hashtags = nil |
| } else { |
| |
| uj.Hashtags = make([]Hashtag, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__Hashtags Hashtag |
| |
| 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__Hashtags type=benchmark.Hashtag kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = tmp_uj__Hashtags.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| uj.Hashtags = append(uj.Hashtags, tmp_uj__Hashtags) |
| wantVal = false |
| } |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Urls: |
| |
| /* handler: uj.Urls 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.Urls = nil |
| } else { |
| |
| uj.Urls = make([]*string, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__Urls *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: tmp_uj__Urls type=*string kind=ptr quoted=false*/ |
| |
| { |
| |
| if tok == fflib.FFTok_null { |
| tmp_uj__Urls = nil |
| } else { |
| if tmp_uj__Urls == nil { |
| tmp_uj__Urls = new(string) |
| } |
| |
| /* handler: tmp_uj__Urls type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) |
| } |
| } |
| |
| if tok == fflib.FFTok_null { |
| |
| tmp_uj__Urls = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| tmp_uj__Urls = &tval |
| |
| } |
| } |
| |
| } |
| } |
| |
| uj.Urls = append(uj.Urls, tmp_uj__Urls) |
| wantVal = false |
| } |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_UserMentions: |
| |
| /* handler: uj.UserMentions 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.UserMentions = nil |
| } else { |
| |
| uj.UserMentions = make([]*string, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__UserMentions *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: tmp_uj__UserMentions type=*string kind=ptr quoted=false*/ |
| |
| { |
| |
| if tok == fflib.FFTok_null { |
| tmp_uj__UserMentions = nil |
| } else { |
| if tmp_uj__UserMentions == nil { |
| tmp_uj__UserMentions = new(string) |
| } |
| |
| /* handler: tmp_uj__UserMentions type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) |
| } |
| } |
| |
| if tok == fflib.FFTok_null { |
| |
| tmp_uj__UserMentions = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| tmp_uj__UserMentions = &tval |
| |
| } |
| } |
| |
| } |
| } |
| |
| uj.UserMentions = append(uj.UserMentions, tmp_uj__UserMentions) |
| 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 (mj *Hashtag) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *Hashtag) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"indices":`) |
| if mj.Indices != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.Indices { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| fflib.FormatBits2(buf, uint64(v), 10, v < 0) |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteString(`,"text":`) |
| fflib.WriteJsonString(buf, string(mj.Text)) |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_Hashtagbase = iota |
| ffj_t_Hashtagno_such_key |
| |
| ffj_t_Hashtag_Indices |
| |
| ffj_t_Hashtag_Text |
| ) |
| |
| var ffj_key_Hashtag_Indices = []byte("indices") |
| |
| var ffj_key_Hashtag_Text = []byte("text") |
| |
| func (uj *Hashtag) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *Hashtag) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_Hashtagbase |
| _ = 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_Hashtagno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'i': |
| |
| if bytes.Equal(ffj_key_Hashtag_Indices, kn) { |
| currentKey = ffj_t_Hashtag_Indices |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 't': |
| |
| if bytes.Equal(ffj_key_Hashtag_Text, kn) { |
| currentKey = ffj_t_Hashtag_Text |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Hashtag_Text, kn) { |
| currentKey = ffj_t_Hashtag_Text |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Hashtag_Indices, kn) { |
| currentKey = ffj_t_Hashtag_Indices |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_Hashtagno_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_Hashtag_Indices: |
| goto handle_Indices |
| |
| case ffj_t_Hashtag_Text: |
| goto handle_Text |
| |
| case ffj_t_Hashtagno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_Indices: |
| |
| /* handler: uj.Indices type=[]int 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.Indices = nil |
| } else { |
| |
| uj.Indices = make([]int, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__Indices int |
| |
| 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__Indices 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) |
| } |
| |
| tmp_uj__Indices = int(tval) |
| |
| } |
| } |
| |
| uj.Indices = append(uj.Indices, tmp_uj__Indices) |
| wantVal = false |
| } |
| } |
| } |
| |
| 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 |
| |
| 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 (mj *LargeStruct) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *LargeStruct) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"search_metadata":`) |
| |
| { |
| |
| err = mj.SearchMetadata.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| buf.WriteString(`,"statuses":`) |
| if mj.Statuses != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.Statuses { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| |
| { |
| |
| err = v.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_LargeStructbase = iota |
| ffj_t_LargeStructno_such_key |
| |
| ffj_t_LargeStruct_SearchMetadata |
| |
| ffj_t_LargeStruct_Statuses |
| ) |
| |
| var ffj_key_LargeStruct_SearchMetadata = []byte("search_metadata") |
| |
| var ffj_key_LargeStruct_Statuses = []byte("statuses") |
| |
| func (uj *LargeStruct) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *LargeStruct) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_LargeStructbase |
| _ = 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_LargeStructno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 's': |
| |
| if bytes.Equal(ffj_key_LargeStruct_SearchMetadata, kn) { |
| currentKey = ffj_t_LargeStruct_SearchMetadata |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_LargeStruct_Statuses, kn) { |
| currentKey = ffj_t_LargeStruct_Statuses |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_LargeStruct_Statuses, kn) { |
| currentKey = ffj_t_LargeStruct_Statuses |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_LargeStruct_SearchMetadata, kn) { |
| currentKey = ffj_t_LargeStruct_SearchMetadata |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_LargeStructno_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_LargeStruct_SearchMetadata: |
| goto handle_SearchMetadata |
| |
| case ffj_t_LargeStruct_Statuses: |
| goto handle_Statuses |
| |
| case ffj_t_LargeStructno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_SearchMetadata: |
| |
| /* handler: uj.SearchMetadata type=benchmark.SearchMetadata kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = uj.SearchMetadata.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Statuses: |
| |
| /* handler: uj.Statuses type=[]benchmark.Status 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.Statuses = nil |
| } else { |
| |
| uj.Statuses = make([]Status, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__Statuses Status |
| |
| 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__Statuses type=benchmark.Status kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = tmp_uj__Statuses.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| uj.Statuses = append(uj.Statuses, tmp_uj__Statuses) |
| 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 (mj *SearchMetadata) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *SearchMetadata) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"completed_in":`) |
| fflib.AppendFloat(buf, float64(mj.CompletedIn), 'g', -1, 64) |
| buf.WriteString(`,"count":`) |
| fflib.FormatBits2(buf, uint64(mj.Count), 10, mj.Count < 0) |
| buf.WriteString(`,"max_id":`) |
| fflib.FormatBits2(buf, uint64(mj.MaxID), 10, mj.MaxID < 0) |
| buf.WriteString(`,"max_id_str":`) |
| fflib.WriteJsonString(buf, string(mj.MaxIDStr)) |
| buf.WriteString(`,"next_results":`) |
| fflib.WriteJsonString(buf, string(mj.NextResults)) |
| buf.WriteString(`,"query":`) |
| fflib.WriteJsonString(buf, string(mj.Query)) |
| buf.WriteString(`,"refresh_url":`) |
| fflib.WriteJsonString(buf, string(mj.RefreshURL)) |
| buf.WriteString(`,"since_id":`) |
| fflib.FormatBits2(buf, uint64(mj.SinceID), 10, mj.SinceID < 0) |
| buf.WriteString(`,"since_id_str":`) |
| fflib.WriteJsonString(buf, string(mj.SinceIDStr)) |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_SearchMetadatabase = iota |
| ffj_t_SearchMetadatano_such_key |
| |
| ffj_t_SearchMetadata_CompletedIn |
| |
| ffj_t_SearchMetadata_Count |
| |
| ffj_t_SearchMetadata_MaxID |
| |
| ffj_t_SearchMetadata_MaxIDStr |
| |
| ffj_t_SearchMetadata_NextResults |
| |
| ffj_t_SearchMetadata_Query |
| |
| ffj_t_SearchMetadata_RefreshURL |
| |
| ffj_t_SearchMetadata_SinceID |
| |
| ffj_t_SearchMetadata_SinceIDStr |
| ) |
| |
| var ffj_key_SearchMetadata_CompletedIn = []byte("completed_in") |
| |
| var ffj_key_SearchMetadata_Count = []byte("count") |
| |
| var ffj_key_SearchMetadata_MaxID = []byte("max_id") |
| |
| var ffj_key_SearchMetadata_MaxIDStr = []byte("max_id_str") |
| |
| var ffj_key_SearchMetadata_NextResults = []byte("next_results") |
| |
| var ffj_key_SearchMetadata_Query = []byte("query") |
| |
| var ffj_key_SearchMetadata_RefreshURL = []byte("refresh_url") |
| |
| var ffj_key_SearchMetadata_SinceID = []byte("since_id") |
| |
| var ffj_key_SearchMetadata_SinceIDStr = []byte("since_id_str") |
| |
| func (uj *SearchMetadata) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *SearchMetadata) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_SearchMetadatabase |
| _ = 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_SearchMetadatano_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'c': |
| |
| if bytes.Equal(ffj_key_SearchMetadata_CompletedIn, kn) { |
| currentKey = ffj_t_SearchMetadata_CompletedIn |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_SearchMetadata_Count, kn) { |
| currentKey = ffj_t_SearchMetadata_Count |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'm': |
| |
| if bytes.Equal(ffj_key_SearchMetadata_MaxID, kn) { |
| currentKey = ffj_t_SearchMetadata_MaxID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_SearchMetadata_MaxIDStr, kn) { |
| currentKey = ffj_t_SearchMetadata_MaxIDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'n': |
| |
| if bytes.Equal(ffj_key_SearchMetadata_NextResults, kn) { |
| currentKey = ffj_t_SearchMetadata_NextResults |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'q': |
| |
| if bytes.Equal(ffj_key_SearchMetadata_Query, kn) { |
| currentKey = ffj_t_SearchMetadata_Query |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'r': |
| |
| if bytes.Equal(ffj_key_SearchMetadata_RefreshURL, kn) { |
| currentKey = ffj_t_SearchMetadata_RefreshURL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 's': |
| |
| if bytes.Equal(ffj_key_SearchMetadata_SinceID, kn) { |
| currentKey = ffj_t_SearchMetadata_SinceID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_SearchMetadata_SinceIDStr, kn) { |
| currentKey = ffj_t_SearchMetadata_SinceIDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_SearchMetadata_SinceIDStr, kn) { |
| currentKey = ffj_t_SearchMetadata_SinceIDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_SearchMetadata_SinceID, kn) { |
| currentKey = ffj_t_SearchMetadata_SinceID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_SearchMetadata_RefreshURL, kn) { |
| currentKey = ffj_t_SearchMetadata_RefreshURL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_SearchMetadata_Query, kn) { |
| currentKey = ffj_t_SearchMetadata_Query |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_SearchMetadata_NextResults, kn) { |
| currentKey = ffj_t_SearchMetadata_NextResults |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_SearchMetadata_MaxIDStr, kn) { |
| currentKey = ffj_t_SearchMetadata_MaxIDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_SearchMetadata_MaxID, kn) { |
| currentKey = ffj_t_SearchMetadata_MaxID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_SearchMetadata_Count, kn) { |
| currentKey = ffj_t_SearchMetadata_Count |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_SearchMetadata_CompletedIn, kn) { |
| currentKey = ffj_t_SearchMetadata_CompletedIn |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_SearchMetadatano_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_SearchMetadata_CompletedIn: |
| goto handle_CompletedIn |
| |
| case ffj_t_SearchMetadata_Count: |
| goto handle_Count |
| |
| case ffj_t_SearchMetadata_MaxID: |
| goto handle_MaxID |
| |
| case ffj_t_SearchMetadata_MaxIDStr: |
| goto handle_MaxIDStr |
| |
| case ffj_t_SearchMetadata_NextResults: |
| goto handle_NextResults |
| |
| case ffj_t_SearchMetadata_Query: |
| goto handle_Query |
| |
| case ffj_t_SearchMetadata_RefreshURL: |
| goto handle_RefreshURL |
| |
| case ffj_t_SearchMetadata_SinceID: |
| goto handle_SinceID |
| |
| case ffj_t_SearchMetadata_SinceIDStr: |
| goto handle_SinceIDStr |
| |
| case ffj_t_SearchMetadatano_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_CompletedIn: |
| |
| /* handler: uj.CompletedIn 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.CompletedIn = float64(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| 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_MaxID: |
| |
| /* handler: uj.MaxID 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.MaxID = int(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_MaxIDStr: |
| |
| /* handler: uj.MaxIDStr type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.MaxIDStr = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_NextResults: |
| |
| /* handler: uj.NextResults type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.NextResults = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Query: |
| |
| /* handler: uj.Query type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.Query = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_RefreshURL: |
| |
| /* handler: uj.RefreshURL type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.RefreshURL = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_SinceID: |
| |
| /* handler: uj.SinceID 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.SinceID = int(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_SinceIDStr: |
| |
| /* handler: uj.SinceIDStr type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.SinceIDStr = 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 (mj *Status) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *Status) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| if mj.Contributors != nil { |
| buf.WriteString(`{"contributors":`) |
| fflib.WriteJsonString(buf, string(*mj.Contributors)) |
| } else { |
| buf.WriteString(`{"contributors":null`) |
| } |
| if mj.Coordinates != nil { |
| buf.WriteString(`,"coordinates":`) |
| fflib.WriteJsonString(buf, string(*mj.Coordinates)) |
| } else { |
| buf.WriteString(`,"coordinates":null`) |
| } |
| buf.WriteString(`,"created_at":`) |
| fflib.WriteJsonString(buf, string(mj.CreatedAt)) |
| buf.WriteString(`,"entities":`) |
| |
| { |
| |
| err = mj.Entities.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| if mj.Favorited { |
| buf.WriteString(`,"favorited":true`) |
| } else { |
| buf.WriteString(`,"favorited":false`) |
| } |
| if mj.Geo != nil { |
| buf.WriteString(`,"geo":`) |
| fflib.WriteJsonString(buf, string(*mj.Geo)) |
| } else { |
| buf.WriteString(`,"geo":null`) |
| } |
| buf.WriteString(`,"id":`) |
| fflib.FormatBits2(buf, uint64(mj.ID), 10, mj.ID < 0) |
| buf.WriteString(`,"id_str":`) |
| fflib.WriteJsonString(buf, string(mj.IDStr)) |
| if mj.InReplyToScreenName != nil { |
| buf.WriteString(`,"in_reply_to_screen_name":`) |
| fflib.WriteJsonString(buf, string(*mj.InReplyToScreenName)) |
| } else { |
| buf.WriteString(`,"in_reply_to_screen_name":null`) |
| } |
| if mj.InReplyToStatusID != nil { |
| buf.WriteString(`,"in_reply_to_status_id":`) |
| fflib.WriteJsonString(buf, string(*mj.InReplyToStatusID)) |
| } else { |
| buf.WriteString(`,"in_reply_to_status_id":null`) |
| } |
| if mj.InReplyToStatusIDStr != nil { |
| buf.WriteString(`,"in_reply_to_status_id_str":`) |
| fflib.WriteJsonString(buf, string(*mj.InReplyToStatusIDStr)) |
| } else { |
| buf.WriteString(`,"in_reply_to_status_id_str":null`) |
| } |
| if mj.InReplyToUserID != nil { |
| buf.WriteString(`,"in_reply_to_user_id":`) |
| fflib.WriteJsonString(buf, string(*mj.InReplyToUserID)) |
| } else { |
| buf.WriteString(`,"in_reply_to_user_id":null`) |
| } |
| if mj.InReplyToUserIDStr != nil { |
| buf.WriteString(`,"in_reply_to_user_id_str":`) |
| fflib.WriteJsonString(buf, string(*mj.InReplyToUserIDStr)) |
| } else { |
| buf.WriteString(`,"in_reply_to_user_id_str":null`) |
| } |
| buf.WriteString(`,"metadata":`) |
| |
| { |
| |
| err = mj.Metadata.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| if mj.Place != nil { |
| buf.WriteString(`,"place":`) |
| fflib.WriteJsonString(buf, string(*mj.Place)) |
| } else { |
| buf.WriteString(`,"place":null`) |
| } |
| buf.WriteString(`,"retweet_count":`) |
| fflib.FormatBits2(buf, uint64(mj.RetweetCount), 10, mj.RetweetCount < 0) |
| if mj.Retweeted { |
| buf.WriteString(`,"retweeted":true`) |
| } else { |
| buf.WriteString(`,"retweeted":false`) |
| } |
| buf.WriteString(`,"source":`) |
| fflib.WriteJsonString(buf, string(mj.Source)) |
| buf.WriteString(`,"text":`) |
| fflib.WriteJsonString(buf, string(mj.Text)) |
| if mj.Truncated { |
| buf.WriteString(`,"truncated":true`) |
| } else { |
| buf.WriteString(`,"truncated":false`) |
| } |
| buf.WriteString(`,"user":`) |
| |
| { |
| |
| err = mj.User.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_Statusbase = iota |
| ffj_t_Statusno_such_key |
| |
| ffj_t_Status_Contributors |
| |
| ffj_t_Status_Coordinates |
| |
| ffj_t_Status_CreatedAt |
| |
| ffj_t_Status_Entities |
| |
| ffj_t_Status_Favorited |
| |
| ffj_t_Status_Geo |
| |
| ffj_t_Status_ID |
| |
| ffj_t_Status_IDStr |
| |
| ffj_t_Status_InReplyToScreenName |
| |
| ffj_t_Status_InReplyToStatusID |
| |
| ffj_t_Status_InReplyToStatusIDStr |
| |
| ffj_t_Status_InReplyToUserID |
| |
| ffj_t_Status_InReplyToUserIDStr |
| |
| ffj_t_Status_Metadata |
| |
| ffj_t_Status_Place |
| |
| ffj_t_Status_RetweetCount |
| |
| ffj_t_Status_Retweeted |
| |
| ffj_t_Status_Source |
| |
| ffj_t_Status_Text |
| |
| ffj_t_Status_Truncated |
| |
| ffj_t_Status_User |
| ) |
| |
| var ffj_key_Status_Contributors = []byte("contributors") |
| |
| var ffj_key_Status_Coordinates = []byte("coordinates") |
| |
| var ffj_key_Status_CreatedAt = []byte("created_at") |
| |
| var ffj_key_Status_Entities = []byte("entities") |
| |
| var ffj_key_Status_Favorited = []byte("favorited") |
| |
| var ffj_key_Status_Geo = []byte("geo") |
| |
| var ffj_key_Status_ID = []byte("id") |
| |
| var ffj_key_Status_IDStr = []byte("id_str") |
| |
| var ffj_key_Status_InReplyToScreenName = []byte("in_reply_to_screen_name") |
| |
| var ffj_key_Status_InReplyToStatusID = []byte("in_reply_to_status_id") |
| |
| var ffj_key_Status_InReplyToStatusIDStr = []byte("in_reply_to_status_id_str") |
| |
| var ffj_key_Status_InReplyToUserID = []byte("in_reply_to_user_id") |
| |
| var ffj_key_Status_InReplyToUserIDStr = []byte("in_reply_to_user_id_str") |
| |
| var ffj_key_Status_Metadata = []byte("metadata") |
| |
| var ffj_key_Status_Place = []byte("place") |
| |
| var ffj_key_Status_RetweetCount = []byte("retweet_count") |
| |
| var ffj_key_Status_Retweeted = []byte("retweeted") |
| |
| var ffj_key_Status_Source = []byte("source") |
| |
| var ffj_key_Status_Text = []byte("text") |
| |
| var ffj_key_Status_Truncated = []byte("truncated") |
| |
| var ffj_key_Status_User = []byte("user") |
| |
| func (uj *Status) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *Status) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_Statusbase |
| _ = 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_Statusno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'c': |
| |
| if bytes.Equal(ffj_key_Status_Contributors, kn) { |
| currentKey = ffj_t_Status_Contributors |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_Coordinates, kn) { |
| currentKey = ffj_t_Status_Coordinates |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_CreatedAt, kn) { |
| currentKey = ffj_t_Status_CreatedAt |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'e': |
| |
| if bytes.Equal(ffj_key_Status_Entities, kn) { |
| currentKey = ffj_t_Status_Entities |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'f': |
| |
| if bytes.Equal(ffj_key_Status_Favorited, kn) { |
| currentKey = ffj_t_Status_Favorited |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'g': |
| |
| if bytes.Equal(ffj_key_Status_Geo, kn) { |
| currentKey = ffj_t_Status_Geo |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'i': |
| |
| if bytes.Equal(ffj_key_Status_ID, kn) { |
| currentKey = ffj_t_Status_ID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_IDStr, kn) { |
| currentKey = ffj_t_Status_IDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_InReplyToScreenName, kn) { |
| currentKey = ffj_t_Status_InReplyToScreenName |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_InReplyToStatusID, kn) { |
| currentKey = ffj_t_Status_InReplyToStatusID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_InReplyToStatusIDStr, kn) { |
| currentKey = ffj_t_Status_InReplyToStatusIDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_InReplyToUserID, kn) { |
| currentKey = ffj_t_Status_InReplyToUserID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_InReplyToUserIDStr, kn) { |
| currentKey = ffj_t_Status_InReplyToUserIDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'm': |
| |
| if bytes.Equal(ffj_key_Status_Metadata, kn) { |
| currentKey = ffj_t_Status_Metadata |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'p': |
| |
| if bytes.Equal(ffj_key_Status_Place, kn) { |
| currentKey = ffj_t_Status_Place |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'r': |
| |
| if bytes.Equal(ffj_key_Status_RetweetCount, kn) { |
| currentKey = ffj_t_Status_RetweetCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_Retweeted, kn) { |
| currentKey = ffj_t_Status_Retweeted |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 's': |
| |
| if bytes.Equal(ffj_key_Status_Source, kn) { |
| currentKey = ffj_t_Status_Source |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 't': |
| |
| if bytes.Equal(ffj_key_Status_Text, kn) { |
| currentKey = ffj_t_Status_Text |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_Status_Truncated, kn) { |
| currentKey = ffj_t_Status_Truncated |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'u': |
| |
| if bytes.Equal(ffj_key_Status_User, kn) { |
| currentKey = ffj_t_Status_User |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_User, kn) { |
| currentKey = ffj_t_Status_User |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Status_Truncated, kn) { |
| currentKey = ffj_t_Status_Truncated |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Status_Text, kn) { |
| currentKey = ffj_t_Status_Text |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_Source, kn) { |
| currentKey = ffj_t_Status_Source |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Status_Retweeted, kn) { |
| currentKey = ffj_t_Status_Retweeted |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_Status_RetweetCount, kn) { |
| currentKey = ffj_t_Status_RetweetCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Status_Place, kn) { |
| currentKey = ffj_t_Status_Place |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Status_Metadata, kn) { |
| currentKey = ffj_t_Status_Metadata |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_InReplyToUserIDStr, kn) { |
| currentKey = ffj_t_Status_InReplyToUserIDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_InReplyToUserID, kn) { |
| currentKey = ffj_t_Status_InReplyToUserID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_InReplyToStatusIDStr, kn) { |
| currentKey = ffj_t_Status_InReplyToStatusIDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_InReplyToStatusID, kn) { |
| currentKey = ffj_t_Status_InReplyToStatusID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_InReplyToScreenName, kn) { |
| currentKey = ffj_t_Status_InReplyToScreenName |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_IDStr, kn) { |
| currentKey = ffj_t_Status_IDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Status_ID, kn) { |
| currentKey = ffj_t_Status_ID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Status_Geo, kn) { |
| currentKey = ffj_t_Status_Geo |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_Status_Favorited, kn) { |
| currentKey = ffj_t_Status_Favorited |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_Entities, kn) { |
| currentKey = ffj_t_Status_Entities |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_Status_CreatedAt, kn) { |
| currentKey = ffj_t_Status_CreatedAt |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_Coordinates, kn) { |
| currentKey = ffj_t_Status_Coordinates |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_Status_Contributors, kn) { |
| currentKey = ffj_t_Status_Contributors |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_Statusno_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_Status_Contributors: |
| goto handle_Contributors |
| |
| case ffj_t_Status_Coordinates: |
| goto handle_Coordinates |
| |
| case ffj_t_Status_CreatedAt: |
| goto handle_CreatedAt |
| |
| case ffj_t_Status_Entities: |
| goto handle_Entities |
| |
| case ffj_t_Status_Favorited: |
| goto handle_Favorited |
| |
| case ffj_t_Status_Geo: |
| goto handle_Geo |
| |
| case ffj_t_Status_ID: |
| goto handle_ID |
| |
| case ffj_t_Status_IDStr: |
| goto handle_IDStr |
| |
| case ffj_t_Status_InReplyToScreenName: |
| goto handle_InReplyToScreenName |
| |
| case ffj_t_Status_InReplyToStatusID: |
| goto handle_InReplyToStatusID |
| |
| case ffj_t_Status_InReplyToStatusIDStr: |
| goto handle_InReplyToStatusIDStr |
| |
| case ffj_t_Status_InReplyToUserID: |
| goto handle_InReplyToUserID |
| |
| case ffj_t_Status_InReplyToUserIDStr: |
| goto handle_InReplyToUserIDStr |
| |
| case ffj_t_Status_Metadata: |
| goto handle_Metadata |
| |
| case ffj_t_Status_Place: |
| goto handle_Place |
| |
| case ffj_t_Status_RetweetCount: |
| goto handle_RetweetCount |
| |
| case ffj_t_Status_Retweeted: |
| goto handle_Retweeted |
| |
| case ffj_t_Status_Source: |
| goto handle_Source |
| |
| case ffj_t_Status_Text: |
| goto handle_Text |
| |
| case ffj_t_Status_Truncated: |
| goto handle_Truncated |
| |
| case ffj_t_Status_User: |
| goto handle_User |
| |
| case ffj_t_Statusno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_Contributors: |
| |
| /* handler: uj.Contributors type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.Contributors = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.Contributors = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Coordinates: |
| |
| /* handler: uj.Coordinates type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.Coordinates = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.Coordinates = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_CreatedAt: |
| |
| /* handler: uj.CreatedAt type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.CreatedAt = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Entities: |
| |
| /* handler: uj.Entities type=benchmark.Entities kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = uj.Entities.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Favorited: |
| |
| /* handler: uj.Favorited 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.Favorited = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.Favorited = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Geo: |
| |
| /* handler: uj.Geo type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.Geo = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.Geo = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ID: |
| |
| /* handler: uj.ID 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.ID = int64(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_IDStr: |
| |
| /* handler: uj.IDStr type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.IDStr = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_InReplyToScreenName: |
| |
| /* handler: uj.InReplyToScreenName type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.InReplyToScreenName = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.InReplyToScreenName = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_InReplyToStatusID: |
| |
| /* handler: uj.InReplyToStatusID type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.InReplyToStatusID = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.InReplyToStatusID = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_InReplyToStatusIDStr: |
| |
| /* handler: uj.InReplyToStatusIDStr type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.InReplyToStatusIDStr = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.InReplyToStatusIDStr = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_InReplyToUserID: |
| |
| /* handler: uj.InReplyToUserID type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.InReplyToUserID = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.InReplyToUserID = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_InReplyToUserIDStr: |
| |
| /* handler: uj.InReplyToUserIDStr type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.InReplyToUserIDStr = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.InReplyToUserIDStr = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Metadata: |
| |
| /* handler: uj.Metadata type=benchmark.StatusMetadata kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = uj.Metadata.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Place: |
| |
| /* handler: uj.Place type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.Place = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.Place = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_RetweetCount: |
| |
| /* handler: uj.RetweetCount 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.RetweetCount = int(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Retweeted: |
| |
| /* handler: uj.Retweeted 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.Retweeted = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.Retweeted = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Source: |
| |
| /* handler: uj.Source type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.Source = 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_Truncated: |
| |
| /* handler: uj.Truncated 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.Truncated = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.Truncated = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_User: |
| |
| /* handler: uj.User type=benchmark.User kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = uj.User.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| wantedvalue: |
| return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) |
| wrongtokenerror: |
| return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) |
| tokerror: |
| if fs.BigError != nil { |
| return fs.WrapErr(fs.BigError) |
| } |
| err = fs.Error.ToError() |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| panic("ffjson-generated: unreachable, please report bug.") |
| done: |
| return nil |
| } |
| |
| func (mj *StatusMetadata) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *StatusMetadata) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"iso_language_code":`) |
| fflib.WriteJsonString(buf, string(mj.IsoLanguageCode)) |
| buf.WriteString(`,"result_type":`) |
| fflib.WriteJsonString(buf, string(mj.ResultType)) |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_StatusMetadatabase = iota |
| ffj_t_StatusMetadatano_such_key |
| |
| ffj_t_StatusMetadata_IsoLanguageCode |
| |
| ffj_t_StatusMetadata_ResultType |
| ) |
| |
| var ffj_key_StatusMetadata_IsoLanguageCode = []byte("iso_language_code") |
| |
| var ffj_key_StatusMetadata_ResultType = []byte("result_type") |
| |
| func (uj *StatusMetadata) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *StatusMetadata) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_StatusMetadatabase |
| _ = 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_StatusMetadatano_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'i': |
| |
| if bytes.Equal(ffj_key_StatusMetadata_IsoLanguageCode, kn) { |
| currentKey = ffj_t_StatusMetadata_IsoLanguageCode |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'r': |
| |
| if bytes.Equal(ffj_key_StatusMetadata_ResultType, kn) { |
| currentKey = ffj_t_StatusMetadata_ResultType |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_StatusMetadata_ResultType, kn) { |
| currentKey = ffj_t_StatusMetadata_ResultType |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_StatusMetadata_IsoLanguageCode, kn) { |
| currentKey = ffj_t_StatusMetadata_IsoLanguageCode |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_StatusMetadatano_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_StatusMetadata_IsoLanguageCode: |
| goto handle_IsoLanguageCode |
| |
| case ffj_t_StatusMetadata_ResultType: |
| goto handle_ResultType |
| |
| case ffj_t_StatusMetadatano_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_IsoLanguageCode: |
| |
| /* handler: uj.IsoLanguageCode type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.IsoLanguageCode = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ResultType: |
| |
| /* handler: uj.ResultType type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ResultType = 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 (mj *URL) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *URL) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| if mj.ExpandedURL != nil { |
| buf.WriteString(`{"expanded_url":`) |
| fflib.WriteJsonString(buf, string(*mj.ExpandedURL)) |
| } else { |
| buf.WriteString(`{"expanded_url":null`) |
| } |
| buf.WriteString(`,"indices":`) |
| if mj.Indices != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.Indices { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| fflib.FormatBits2(buf, uint64(v), 10, v < 0) |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteString(`,"url":`) |
| fflib.WriteJsonString(buf, string(mj.URL)) |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_URLbase = iota |
| ffj_t_URLno_such_key |
| |
| ffj_t_URL_ExpandedURL |
| |
| ffj_t_URL_Indices |
| |
| ffj_t_URL_URL |
| ) |
| |
| var ffj_key_URL_ExpandedURL = []byte("expanded_url") |
| |
| var ffj_key_URL_Indices = []byte("indices") |
| |
| var ffj_key_URL_URL = []byte("url") |
| |
| func (uj *URL) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *URL) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_URLbase |
| _ = 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_URLno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'e': |
| |
| if bytes.Equal(ffj_key_URL_ExpandedURL, kn) { |
| currentKey = ffj_t_URL_ExpandedURL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'i': |
| |
| if bytes.Equal(ffj_key_URL_Indices, kn) { |
| currentKey = ffj_t_URL_Indices |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'u': |
| |
| if bytes.Equal(ffj_key_URL_URL, kn) { |
| currentKey = ffj_t_URL_URL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_URL_URL, kn) { |
| currentKey = ffj_t_URL_URL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_URL_Indices, kn) { |
| currentKey = ffj_t_URL_Indices |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_URL_ExpandedURL, kn) { |
| currentKey = ffj_t_URL_ExpandedURL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_URLno_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_URL_ExpandedURL: |
| goto handle_ExpandedURL |
| |
| case ffj_t_URL_Indices: |
| goto handle_Indices |
| |
| case ffj_t_URL_URL: |
| goto handle_URL |
| |
| case ffj_t_URLno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_ExpandedURL: |
| |
| /* handler: uj.ExpandedURL type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.ExpandedURL = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.ExpandedURL = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Indices: |
| |
| /* handler: uj.Indices type=[]int 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.Indices = nil |
| } else { |
| |
| uj.Indices = make([]int, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__Indices int |
| |
| 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__Indices 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) |
| } |
| |
| tmp_uj__Indices = int(tval) |
| |
| } |
| } |
| |
| uj.Indices = append(uj.Indices, tmp_uj__Indices) |
| wantVal = false |
| } |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_URL: |
| |
| /* handler: uj.URL type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.URL = 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 (mj *User) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *User) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| if mj.ContributorsEnabled { |
| buf.WriteString(`{"contributors_enabled":true`) |
| } else { |
| buf.WriteString(`{"contributors_enabled":false`) |
| } |
| buf.WriteString(`,"created_at":`) |
| fflib.WriteJsonString(buf, string(mj.CreatedAt)) |
| if mj.DefaultProfile { |
| buf.WriteString(`,"default_profile":true`) |
| } else { |
| buf.WriteString(`,"default_profile":false`) |
| } |
| if mj.DefaultProfileImage { |
| buf.WriteString(`,"default_profile_image":true`) |
| } else { |
| buf.WriteString(`,"default_profile_image":false`) |
| } |
| buf.WriteString(`,"description":`) |
| fflib.WriteJsonString(buf, string(mj.Description)) |
| buf.WriteString(`,"entities":`) |
| |
| { |
| |
| err = mj.Entities.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| buf.WriteString(`,"favourites_count":`) |
| fflib.FormatBits2(buf, uint64(mj.FavouritesCount), 10, mj.FavouritesCount < 0) |
| if mj.FollowRequestSent != nil { |
| buf.WriteString(`,"follow_request_sent":`) |
| fflib.WriteJsonString(buf, string(*mj.FollowRequestSent)) |
| } else { |
| buf.WriteString(`,"follow_request_sent":null`) |
| } |
| buf.WriteString(`,"followers_count":`) |
| fflib.FormatBits2(buf, uint64(mj.FollowersCount), 10, mj.FollowersCount < 0) |
| if mj.Following != nil { |
| buf.WriteString(`,"following":`) |
| fflib.WriteJsonString(buf, string(*mj.Following)) |
| } else { |
| buf.WriteString(`,"following":null`) |
| } |
| buf.WriteString(`,"friends_count":`) |
| fflib.FormatBits2(buf, uint64(mj.FriendsCount), 10, mj.FriendsCount < 0) |
| if mj.GeoEnabled { |
| buf.WriteString(`,"geo_enabled":true`) |
| } else { |
| buf.WriteString(`,"geo_enabled":false`) |
| } |
| buf.WriteString(`,"id":`) |
| fflib.FormatBits2(buf, uint64(mj.ID), 10, mj.ID < 0) |
| buf.WriteString(`,"id_str":`) |
| fflib.WriteJsonString(buf, string(mj.IDStr)) |
| if mj.IsTranslator { |
| buf.WriteString(`,"is_translator":true`) |
| } else { |
| buf.WriteString(`,"is_translator":false`) |
| } |
| buf.WriteString(`,"lang":`) |
| fflib.WriteJsonString(buf, string(mj.Lang)) |
| buf.WriteString(`,"listed_count":`) |
| fflib.FormatBits2(buf, uint64(mj.ListedCount), 10, mj.ListedCount < 0) |
| buf.WriteString(`,"location":`) |
| fflib.WriteJsonString(buf, string(mj.Location)) |
| buf.WriteString(`,"name":`) |
| fflib.WriteJsonString(buf, string(mj.Name)) |
| if mj.Notifications != nil { |
| buf.WriteString(`,"notifications":`) |
| fflib.WriteJsonString(buf, string(*mj.Notifications)) |
| } else { |
| buf.WriteString(`,"notifications":null`) |
| } |
| buf.WriteString(`,"profile_background_color":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileBackgroundColor)) |
| buf.WriteString(`,"profile_background_image_url":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileBackgroundImageURL)) |
| buf.WriteString(`,"profile_background_image_url_https":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileBackgroundImageURLHTTPS)) |
| if mj.ProfileBackgroundTile { |
| buf.WriteString(`,"profile_background_tile":true`) |
| } else { |
| buf.WriteString(`,"profile_background_tile":false`) |
| } |
| buf.WriteString(`,"profile_image_url":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileImageURL)) |
| buf.WriteString(`,"profile_image_url_https":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileImageURLHTTPS)) |
| buf.WriteString(`,"profile_link_color":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileLinkColor)) |
| buf.WriteString(`,"profile_sidebar_border_color":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileSidebarBorderColor)) |
| buf.WriteString(`,"profile_sidebar_fill_color":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileSidebarFillColor)) |
| buf.WriteString(`,"profile_text_color":`) |
| fflib.WriteJsonString(buf, string(mj.ProfileTextColor)) |
| if mj.ProfileUseBackgroundImage { |
| buf.WriteString(`,"profile_use_background_image":true`) |
| } else { |
| buf.WriteString(`,"profile_use_background_image":false`) |
| } |
| if mj.Protected { |
| buf.WriteString(`,"protected":true`) |
| } else { |
| buf.WriteString(`,"protected":false`) |
| } |
| buf.WriteString(`,"screen_name":`) |
| fflib.WriteJsonString(buf, string(mj.ScreenName)) |
| if mj.ShowAllInlineMedia { |
| buf.WriteString(`,"show_all_inline_media":true`) |
| } else { |
| buf.WriteString(`,"show_all_inline_media":false`) |
| } |
| buf.WriteString(`,"statuses_count":`) |
| fflib.FormatBits2(buf, uint64(mj.StatusesCount), 10, mj.StatusesCount < 0) |
| buf.WriteString(`,"time_zone":`) |
| fflib.WriteJsonString(buf, string(mj.TimeZone)) |
| if mj.URL != nil { |
| buf.WriteString(`,"url":`) |
| fflib.WriteJsonString(buf, string(*mj.URL)) |
| } else { |
| buf.WriteString(`,"url":null`) |
| } |
| buf.WriteString(`,"utc_offset":`) |
| fflib.FormatBits2(buf, uint64(mj.UtcOffset), 10, mj.UtcOffset < 0) |
| if mj.Verified { |
| buf.WriteString(`,"verified":true`) |
| } else { |
| buf.WriteString(`,"verified":false`) |
| } |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_Userbase = iota |
| ffj_t_Userno_such_key |
| |
| ffj_t_User_ContributorsEnabled |
| |
| ffj_t_User_CreatedAt |
| |
| ffj_t_User_DefaultProfile |
| |
| ffj_t_User_DefaultProfileImage |
| |
| ffj_t_User_Description |
| |
| ffj_t_User_Entities |
| |
| ffj_t_User_FavouritesCount |
| |
| ffj_t_User_FollowRequestSent |
| |
| ffj_t_User_FollowersCount |
| |
| ffj_t_User_Following |
| |
| ffj_t_User_FriendsCount |
| |
| ffj_t_User_GeoEnabled |
| |
| ffj_t_User_ID |
| |
| ffj_t_User_IDStr |
| |
| ffj_t_User_IsTranslator |
| |
| ffj_t_User_Lang |
| |
| ffj_t_User_ListedCount |
| |
| ffj_t_User_Location |
| |
| ffj_t_User_Name |
| |
| ffj_t_User_Notifications |
| |
| ffj_t_User_ProfileBackgroundColor |
| |
| ffj_t_User_ProfileBackgroundImageURL |
| |
| ffj_t_User_ProfileBackgroundImageURLHTTPS |
| |
| ffj_t_User_ProfileBackgroundTile |
| |
| ffj_t_User_ProfileImageURL |
| |
| ffj_t_User_ProfileImageURLHTTPS |
| |
| ffj_t_User_ProfileLinkColor |
| |
| ffj_t_User_ProfileSidebarBorderColor |
| |
| ffj_t_User_ProfileSidebarFillColor |
| |
| ffj_t_User_ProfileTextColor |
| |
| ffj_t_User_ProfileUseBackgroundImage |
| |
| ffj_t_User_Protected |
| |
| ffj_t_User_ScreenName |
| |
| ffj_t_User_ShowAllInlineMedia |
| |
| ffj_t_User_StatusesCount |
| |
| ffj_t_User_TimeZone |
| |
| ffj_t_User_URL |
| |
| ffj_t_User_UtcOffset |
| |
| ffj_t_User_Verified |
| ) |
| |
| var ffj_key_User_ContributorsEnabled = []byte("contributors_enabled") |
| |
| var ffj_key_User_CreatedAt = []byte("created_at") |
| |
| var ffj_key_User_DefaultProfile = []byte("default_profile") |
| |
| var ffj_key_User_DefaultProfileImage = []byte("default_profile_image") |
| |
| var ffj_key_User_Description = []byte("description") |
| |
| var ffj_key_User_Entities = []byte("entities") |
| |
| var ffj_key_User_FavouritesCount = []byte("favourites_count") |
| |
| var ffj_key_User_FollowRequestSent = []byte("follow_request_sent") |
| |
| var ffj_key_User_FollowersCount = []byte("followers_count") |
| |
| var ffj_key_User_Following = []byte("following") |
| |
| var ffj_key_User_FriendsCount = []byte("friends_count") |
| |
| var ffj_key_User_GeoEnabled = []byte("geo_enabled") |
| |
| var ffj_key_User_ID = []byte("id") |
| |
| var ffj_key_User_IDStr = []byte("id_str") |
| |
| var ffj_key_User_IsTranslator = []byte("is_translator") |
| |
| var ffj_key_User_Lang = []byte("lang") |
| |
| var ffj_key_User_ListedCount = []byte("listed_count") |
| |
| var ffj_key_User_Location = []byte("location") |
| |
| var ffj_key_User_Name = []byte("name") |
| |
| var ffj_key_User_Notifications = []byte("notifications") |
| |
| var ffj_key_User_ProfileBackgroundColor = []byte("profile_background_color") |
| |
| var ffj_key_User_ProfileBackgroundImageURL = []byte("profile_background_image_url") |
| |
| var ffj_key_User_ProfileBackgroundImageURLHTTPS = []byte("profile_background_image_url_https") |
| |
| var ffj_key_User_ProfileBackgroundTile = []byte("profile_background_tile") |
| |
| var ffj_key_User_ProfileImageURL = []byte("profile_image_url") |
| |
| var ffj_key_User_ProfileImageURLHTTPS = []byte("profile_image_url_https") |
| |
| var ffj_key_User_ProfileLinkColor = []byte("profile_link_color") |
| |
| var ffj_key_User_ProfileSidebarBorderColor = []byte("profile_sidebar_border_color") |
| |
| var ffj_key_User_ProfileSidebarFillColor = []byte("profile_sidebar_fill_color") |
| |
| var ffj_key_User_ProfileTextColor = []byte("profile_text_color") |
| |
| var ffj_key_User_ProfileUseBackgroundImage = []byte("profile_use_background_image") |
| |
| var ffj_key_User_Protected = []byte("protected") |
| |
| var ffj_key_User_ScreenName = []byte("screen_name") |
| |
| var ffj_key_User_ShowAllInlineMedia = []byte("show_all_inline_media") |
| |
| var ffj_key_User_StatusesCount = []byte("statuses_count") |
| |
| var ffj_key_User_TimeZone = []byte("time_zone") |
| |
| var ffj_key_User_URL = []byte("url") |
| |
| var ffj_key_User_UtcOffset = []byte("utc_offset") |
| |
| var ffj_key_User_Verified = []byte("verified") |
| |
| func (uj *User) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| 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_ContributorsEnabled, kn) { |
| currentKey = ffj_t_User_ContributorsEnabled |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_CreatedAt, kn) { |
| currentKey = ffj_t_User_CreatedAt |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'd': |
| |
| if bytes.Equal(ffj_key_User_DefaultProfile, kn) { |
| currentKey = ffj_t_User_DefaultProfile |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_DefaultProfileImage, kn) { |
| currentKey = ffj_t_User_DefaultProfileImage |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_Description, kn) { |
| currentKey = ffj_t_User_Description |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'e': |
| |
| if bytes.Equal(ffj_key_User_Entities, kn) { |
| currentKey = ffj_t_User_Entities |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'f': |
| |
| if bytes.Equal(ffj_key_User_FavouritesCount, kn) { |
| currentKey = ffj_t_User_FavouritesCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_FollowRequestSent, kn) { |
| currentKey = ffj_t_User_FollowRequestSent |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_FollowersCount, kn) { |
| currentKey = ffj_t_User_FollowersCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_Following, kn) { |
| currentKey = ffj_t_User_Following |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_FriendsCount, kn) { |
| currentKey = ffj_t_User_FriendsCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'g': |
| |
| if bytes.Equal(ffj_key_User_GeoEnabled, kn) { |
| currentKey = ffj_t_User_GeoEnabled |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'i': |
| |
| if bytes.Equal(ffj_key_User_ID, kn) { |
| currentKey = ffj_t_User_ID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_IDStr, kn) { |
| currentKey = ffj_t_User_IDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_IsTranslator, kn) { |
| currentKey = ffj_t_User_IsTranslator |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'l': |
| |
| if bytes.Equal(ffj_key_User_Lang, kn) { |
| currentKey = ffj_t_User_Lang |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ListedCount, kn) { |
| currentKey = ffj_t_User_ListedCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_Location, kn) { |
| currentKey = ffj_t_User_Location |
| 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 |
| |
| } else if bytes.Equal(ffj_key_User_Notifications, kn) { |
| currentKey = ffj_t_User_Notifications |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'p': |
| |
| if bytes.Equal(ffj_key_User_ProfileBackgroundColor, kn) { |
| currentKey = ffj_t_User_ProfileBackgroundColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileBackgroundImageURL, kn) { |
| currentKey = ffj_t_User_ProfileBackgroundImageURL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileBackgroundImageURLHTTPS, kn) { |
| currentKey = ffj_t_User_ProfileBackgroundImageURLHTTPS |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileBackgroundTile, kn) { |
| currentKey = ffj_t_User_ProfileBackgroundTile |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileImageURL, kn) { |
| currentKey = ffj_t_User_ProfileImageURL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileImageURLHTTPS, kn) { |
| currentKey = ffj_t_User_ProfileImageURLHTTPS |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileLinkColor, kn) { |
| currentKey = ffj_t_User_ProfileLinkColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileSidebarBorderColor, kn) { |
| currentKey = ffj_t_User_ProfileSidebarBorderColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileSidebarFillColor, kn) { |
| currentKey = ffj_t_User_ProfileSidebarFillColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileTextColor, kn) { |
| currentKey = ffj_t_User_ProfileTextColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ProfileUseBackgroundImage, kn) { |
| currentKey = ffj_t_User_ProfileUseBackgroundImage |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_Protected, kn) { |
| currentKey = ffj_t_User_Protected |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 's': |
| |
| if bytes.Equal(ffj_key_User_ScreenName, kn) { |
| currentKey = ffj_t_User_ScreenName |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_ShowAllInlineMedia, kn) { |
| currentKey = ffj_t_User_ShowAllInlineMedia |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_StatusesCount, kn) { |
| currentKey = ffj_t_User_StatusesCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 't': |
| |
| if bytes.Equal(ffj_key_User_TimeZone, kn) { |
| currentKey = ffj_t_User_TimeZone |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'u': |
| |
| if bytes.Equal(ffj_key_User_URL, kn) { |
| currentKey = ffj_t_User_URL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| |
| } else if bytes.Equal(ffj_key_User_UtcOffset, kn) { |
| currentKey = ffj_t_User_UtcOffset |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'v': |
| |
| if bytes.Equal(ffj_key_User_Verified, kn) { |
| currentKey = ffj_t_User_Verified |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_User_Verified, kn) { |
| currentKey = ffj_t_User_Verified |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_UtcOffset, kn) { |
| currentKey = ffj_t_User_UtcOffset |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_User_URL, kn) { |
| currentKey = ffj_t_User_URL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_User_TimeZone, kn) { |
| currentKey = ffj_t_User_TimeZone |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_StatusesCount, kn) { |
| currentKey = ffj_t_User_StatusesCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ShowAllInlineMedia, kn) { |
| currentKey = ffj_t_User_ShowAllInlineMedia |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ScreenName, kn) { |
| currentKey = ffj_t_User_ScreenName |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_User_Protected, kn) { |
| currentKey = ffj_t_User_Protected |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileUseBackgroundImage, kn) { |
| currentKey = ffj_t_User_ProfileUseBackgroundImage |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_User_ProfileTextColor, kn) { |
| currentKey = ffj_t_User_ProfileTextColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileSidebarFillColor, kn) { |
| currentKey = ffj_t_User_ProfileSidebarFillColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileSidebarBorderColor, kn) { |
| currentKey = ffj_t_User_ProfileSidebarBorderColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileLinkColor, kn) { |
| currentKey = ffj_t_User_ProfileLinkColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileImageURLHTTPS, kn) { |
| currentKey = ffj_t_User_ProfileImageURLHTTPS |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_User_ProfileImageURL, kn) { |
| currentKey = ffj_t_User_ProfileImageURL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileBackgroundTile, kn) { |
| currentKey = ffj_t_User_ProfileBackgroundTile |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileBackgroundImageURLHTTPS, kn) { |
| currentKey = ffj_t_User_ProfileBackgroundImageURLHTTPS |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileBackgroundImageURL, kn) { |
| currentKey = ffj_t_User_ProfileBackgroundImageURL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ProfileBackgroundColor, kn) { |
| currentKey = ffj_t_User_ProfileBackgroundColor |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_Notifications, kn) { |
| currentKey = ffj_t_User_Notifications |
| 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 |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_User_Location, kn) { |
| currentKey = ffj_t_User_Location |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ListedCount, kn) { |
| currentKey = ffj_t_User_ListedCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_User_Lang, kn) { |
| currentKey = ffj_t_User_Lang |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_IsTranslator, kn) { |
| currentKey = ffj_t_User_IsTranslator |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_IDStr, kn) { |
| currentKey = ffj_t_User_IDStr |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_User_ID, kn) { |
| currentKey = ffj_t_User_ID |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_User_GeoEnabled, kn) { |
| currentKey = ffj_t_User_GeoEnabled |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_FriendsCount, kn) { |
| currentKey = ffj_t_User_FriendsCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_User_Following, kn) { |
| currentKey = ffj_t_User_Following |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_FollowersCount, kn) { |
| currentKey = ffj_t_User_FollowersCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_FollowRequestSent, kn) { |
| currentKey = ffj_t_User_FollowRequestSent |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_FavouritesCount, kn) { |
| currentKey = ffj_t_User_FavouritesCount |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_Entities, kn) { |
| currentKey = ffj_t_User_Entities |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_Description, kn) { |
| currentKey = ffj_t_User_Description |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_User_DefaultProfileImage, kn) { |
| currentKey = ffj_t_User_DefaultProfileImage |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_User_DefaultProfile, kn) { |
| currentKey = ffj_t_User_DefaultProfile |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.AsciiEqualFold(ffj_key_User_CreatedAt, kn) { |
| currentKey = ffj_t_User_CreatedAt |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_User_ContributorsEnabled, kn) { |
| currentKey = ffj_t_User_ContributorsEnabled |
| 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_ContributorsEnabled: |
| goto handle_ContributorsEnabled |
| |
| case ffj_t_User_CreatedAt: |
| goto handle_CreatedAt |
| |
| case ffj_t_User_DefaultProfile: |
| goto handle_DefaultProfile |
| |
| case ffj_t_User_DefaultProfileImage: |
| goto handle_DefaultProfileImage |
| |
| case ffj_t_User_Description: |
| goto handle_Description |
| |
| case ffj_t_User_Entities: |
| goto handle_Entities |
| |
| case ffj_t_User_FavouritesCount: |
| goto handle_FavouritesCount |
| |
| case ffj_t_User_FollowRequestSent: |
| goto handle_FollowRequestSent |
| |
| case ffj_t_User_FollowersCount: |
| goto handle_FollowersCount |
| |
| case ffj_t_User_Following: |
| goto handle_Following |
| |
| case ffj_t_User_FriendsCount: |
| goto handle_FriendsCount |
| |
| case ffj_t_User_GeoEnabled: |
| goto handle_GeoEnabled |
| |
| case ffj_t_User_ID: |
| goto handle_ID |
| |
| case ffj_t_User_IDStr: |
| goto handle_IDStr |
| |
| case ffj_t_User_IsTranslator: |
| goto handle_IsTranslator |
| |
| case ffj_t_User_Lang: |
| goto handle_Lang |
| |
| case ffj_t_User_ListedCount: |
| goto handle_ListedCount |
| |
| case ffj_t_User_Location: |
| goto handle_Location |
| |
| case ffj_t_User_Name: |
| goto handle_Name |
| |
| case ffj_t_User_Notifications: |
| goto handle_Notifications |
| |
| case ffj_t_User_ProfileBackgroundColor: |
| goto handle_ProfileBackgroundColor |
| |
| case ffj_t_User_ProfileBackgroundImageURL: |
| goto handle_ProfileBackgroundImageURL |
| |
| case ffj_t_User_ProfileBackgroundImageURLHTTPS: |
| goto handle_ProfileBackgroundImageURLHTTPS |
| |
| case ffj_t_User_ProfileBackgroundTile: |
| goto handle_ProfileBackgroundTile |
| |
| case ffj_t_User_ProfileImageURL: |
| goto handle_ProfileImageURL |
| |
| case ffj_t_User_ProfileImageURLHTTPS: |
| goto handle_ProfileImageURLHTTPS |
| |
| case ffj_t_User_ProfileLinkColor: |
| goto handle_ProfileLinkColor |
| |
| case ffj_t_User_ProfileSidebarBorderColor: |
| goto handle_ProfileSidebarBorderColor |
| |
| case ffj_t_User_ProfileSidebarFillColor: |
| goto handle_ProfileSidebarFillColor |
| |
| case ffj_t_User_ProfileTextColor: |
| goto handle_ProfileTextColor |
| |
| case ffj_t_User_ProfileUseBackgroundImage: |
| goto handle_ProfileUseBackgroundImage |
| |
| case ffj_t_User_Protected: |
| goto handle_Protected |
| |
| case ffj_t_User_ScreenName: |
| goto handle_ScreenName |
| |
| case ffj_t_User_ShowAllInlineMedia: |
| goto handle_ShowAllInlineMedia |
| |
| case ffj_t_User_StatusesCount: |
| goto handle_StatusesCount |
| |
| case ffj_t_User_TimeZone: |
| goto handle_TimeZone |
| |
| case ffj_t_User_URL: |
| goto handle_URL |
| |
| case ffj_t_User_UtcOffset: |
| goto handle_UtcOffset |
| |
| case ffj_t_User_Verified: |
| goto handle_Verified |
| |
| 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_ContributorsEnabled: |
| |
| /* handler: uj.ContributorsEnabled 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.ContributorsEnabled = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.ContributorsEnabled = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_CreatedAt: |
| |
| /* handler: uj.CreatedAt type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.CreatedAt = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_DefaultProfile: |
| |
| /* handler: uj.DefaultProfile 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.DefaultProfile = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.DefaultProfile = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_DefaultProfileImage: |
| |
| /* handler: uj.DefaultProfileImage 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.DefaultProfileImage = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.DefaultProfileImage = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Description: |
| |
| /* handler: uj.Description type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.Description = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Entities: |
| |
| /* handler: uj.Entities type=benchmark.UserEntities kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = uj.Entities.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_FavouritesCount: |
| |
| /* handler: uj.FavouritesCount 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.FavouritesCount = int(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_FollowRequestSent: |
| |
| /* handler: uj.FollowRequestSent type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.FollowRequestSent = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.FollowRequestSent = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_FollowersCount: |
| |
| /* handler: uj.FollowersCount 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.FollowersCount = int(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Following: |
| |
| /* handler: uj.Following type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.Following = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.Following = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_FriendsCount: |
| |
| /* handler: uj.FriendsCount 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.FriendsCount = int(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_GeoEnabled: |
| |
| /* handler: uj.GeoEnabled 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.GeoEnabled = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.GeoEnabled = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| 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_IDStr: |
| |
| /* handler: uj.IDStr type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.IDStr = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_IsTranslator: |
| |
| /* handler: uj.IsTranslator 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.IsTranslator = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.IsTranslator = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Lang: |
| |
| /* handler: uj.Lang type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.Lang = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ListedCount: |
| |
| /* handler: uj.ListedCount 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.ListedCount = int(tval) |
| |
| } |
| } |
| |
| 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_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_Notifications: |
| |
| /* handler: uj.Notifications type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.Notifications = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.Notifications = &tval |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileBackgroundColor: |
| |
| /* handler: uj.ProfileBackgroundColor type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileBackgroundColor = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileBackgroundImageURL: |
| |
| /* handler: uj.ProfileBackgroundImageURL type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileBackgroundImageURL = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileBackgroundImageURLHTTPS: |
| |
| /* handler: uj.ProfileBackgroundImageURLHTTPS type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileBackgroundImageURLHTTPS = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileBackgroundTile: |
| |
| /* handler: uj.ProfileBackgroundTile 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.ProfileBackgroundTile = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.ProfileBackgroundTile = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileImageURL: |
| |
| /* handler: uj.ProfileImageURL type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileImageURL = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileImageURLHTTPS: |
| |
| /* handler: uj.ProfileImageURLHTTPS type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileImageURLHTTPS = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileLinkColor: |
| |
| /* handler: uj.ProfileLinkColor type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileLinkColor = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileSidebarBorderColor: |
| |
| /* handler: uj.ProfileSidebarBorderColor type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileSidebarBorderColor = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileSidebarFillColor: |
| |
| /* handler: uj.ProfileSidebarFillColor type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileSidebarFillColor = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileTextColor: |
| |
| /* handler: uj.ProfileTextColor type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ProfileTextColor = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ProfileUseBackgroundImage: |
| |
| /* handler: uj.ProfileUseBackgroundImage 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.ProfileUseBackgroundImage = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.ProfileUseBackgroundImage = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_Protected: |
| |
| /* handler: uj.Protected 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.Protected = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.Protected = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ScreenName: |
| |
| /* handler: uj.ScreenName type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.ScreenName = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_ShowAllInlineMedia: |
| |
| /* handler: uj.ShowAllInlineMedia 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.ShowAllInlineMedia = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.ShowAllInlineMedia = false |
| |
| } else { |
| err = errors.New("unexpected bytes for true/false value") |
| return fs.WrapErr(err) |
| } |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_StatusesCount: |
| |
| /* handler: uj.StatusesCount 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.StatusesCount = int(tval) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_TimeZone: |
| |
| /* handler: uj.TimeZone type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| 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.TimeZone = string(string(outBuf)) |
| |
| } |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_URL: |
| |
| /* handler: uj.URL type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_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.URL = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| uj.URL = &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_Verified: |
| |
| /* handler: uj.Verified 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.Verified = true |
| |
| } else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 { |
| |
| uj.Verified = 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 (mj *UserEntities) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *UserEntities) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"description":`) |
| |
| { |
| |
| err = mj.Description.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| buf.WriteString(`,"url":`) |
| |
| { |
| |
| err = mj.URL.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_UserEntitiesbase = iota |
| ffj_t_UserEntitiesno_such_key |
| |
| ffj_t_UserEntities_Description |
| |
| ffj_t_UserEntities_URL |
| ) |
| |
| var ffj_key_UserEntities_Description = []byte("description") |
| |
| var ffj_key_UserEntities_URL = []byte("url") |
| |
| func (uj *UserEntities) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *UserEntities) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_UserEntitiesbase |
| _ = 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_UserEntitiesno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'd': |
| |
| if bytes.Equal(ffj_key_UserEntities_Description, kn) { |
| currentKey = ffj_t_UserEntities_Description |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| case 'u': |
| |
| if bytes.Equal(ffj_key_UserEntities_URL, kn) { |
| currentKey = ffj_t_UserEntities_URL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_UserEntities_URL, kn) { |
| currentKey = ffj_t_UserEntities_URL |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_UserEntities_Description, kn) { |
| currentKey = ffj_t_UserEntities_Description |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_UserEntitiesno_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_UserEntities_Description: |
| goto handle_Description |
| |
| case ffj_t_UserEntities_URL: |
| goto handle_URL |
| |
| case ffj_t_UserEntitiesno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_Description: |
| |
| /* handler: uj.Description type=benchmark.UserEntityDescription kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = uj.Description.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| handle_URL: |
| |
| /* handler: uj.URL type=benchmark.UserEntityURL kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = uj.URL.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| |
| wantedvalue: |
| return fs.WrapErr(fmt.Errorf("wanted value token, but got token: %v", tok)) |
| wrongtokenerror: |
| return fs.WrapErr(fmt.Errorf("ffjson: wanted token: %v, but got token: %v output=%s", wantedTok, tok, fs.Output.String())) |
| tokerror: |
| if fs.BigError != nil { |
| return fs.WrapErr(fs.BigError) |
| } |
| err = fs.Error.ToError() |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| panic("ffjson-generated: unreachable, please report bug.") |
| done: |
| return nil |
| } |
| |
| func (mj *UserEntityDescription) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *UserEntityDescription) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"urls":`) |
| if mj.Urls != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.Urls { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| if v != nil { |
| fflib.WriteJsonString(buf, string(*v)) |
| } else { |
| buf.WriteString(`null`) |
| } |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_UserEntityDescriptionbase = iota |
| ffj_t_UserEntityDescriptionno_such_key |
| |
| ffj_t_UserEntityDescription_Urls |
| ) |
| |
| var ffj_key_UserEntityDescription_Urls = []byte("urls") |
| |
| func (uj *UserEntityDescription) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *UserEntityDescription) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_UserEntityDescriptionbase |
| _ = 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_UserEntityDescriptionno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'u': |
| |
| if bytes.Equal(ffj_key_UserEntityDescription_Urls, kn) { |
| currentKey = ffj_t_UserEntityDescription_Urls |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_UserEntityDescription_Urls, kn) { |
| currentKey = ffj_t_UserEntityDescription_Urls |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_UserEntityDescriptionno_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_UserEntityDescription_Urls: |
| goto handle_Urls |
| |
| case ffj_t_UserEntityDescriptionno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_Urls: |
| |
| /* handler: uj.Urls 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.Urls = nil |
| } else { |
| |
| uj.Urls = make([]*string, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__Urls *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: tmp_uj__Urls type=*string kind=ptr quoted=false*/ |
| |
| { |
| |
| if tok == fflib.FFTok_null { |
| tmp_uj__Urls = nil |
| } else { |
| if tmp_uj__Urls == nil { |
| tmp_uj__Urls = new(string) |
| } |
| |
| /* handler: tmp_uj__Urls type=string kind=string quoted=false*/ |
| |
| { |
| |
| { |
| if tok != fflib.FFTok_string && tok != fflib.FFTok_null { |
| return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok)) |
| } |
| } |
| |
| if tok == fflib.FFTok_null { |
| |
| tmp_uj__Urls = nil |
| |
| } else { |
| |
| var tval string |
| outBuf := fs.Output.Bytes() |
| |
| tval = string(string(outBuf)) |
| tmp_uj__Urls = &tval |
| |
| } |
| } |
| |
| } |
| } |
| |
| uj.Urls = append(uj.Urls, tmp_uj__Urls) |
| 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 (mj *UserEntityURL) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *UserEntityURL) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"urls":`) |
| if mj.Urls != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.Urls { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| |
| { |
| |
| err = v.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_UserEntityURLbase = iota |
| ffj_t_UserEntityURLno_such_key |
| |
| ffj_t_UserEntityURL_Urls |
| ) |
| |
| var ffj_key_UserEntityURL_Urls = []byte("urls") |
| |
| func (uj *UserEntityURL) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *UserEntityURL) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_UserEntityURLbase |
| _ = 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_UserEntityURLno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'u': |
| |
| if bytes.Equal(ffj_key_UserEntityURL_Urls, kn) { |
| currentKey = ffj_t_UserEntityURL_Urls |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.EqualFoldRight(ffj_key_UserEntityURL_Urls, kn) { |
| currentKey = ffj_t_UserEntityURL_Urls |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_UserEntityURLno_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_UserEntityURL_Urls: |
| goto handle_Urls |
| |
| case ffj_t_UserEntityURLno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_Urls: |
| |
| /* handler: uj.Urls type=[]benchmark.URL 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.Urls = nil |
| } else { |
| |
| uj.Urls = make([]URL, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__Urls URL |
| |
| 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__Urls type=benchmark.URL kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = tmp_uj__Urls.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| uj.Urls = append(uj.Urls, tmp_uj__Urls) |
| 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 (mj *XLStruct) MarshalJSON() ([]byte, error) { |
| var buf fflib.Buffer |
| if mj == nil { |
| buf.WriteString("null") |
| return buf.Bytes(), nil |
| } |
| err := mj.MarshalJSONBuf(&buf) |
| if err != nil { |
| return nil, err |
| } |
| return buf.Bytes(), nil |
| } |
| func (mj *XLStruct) MarshalJSONBuf(buf fflib.EncodingBuffer) error { |
| if mj == nil { |
| buf.WriteString("null") |
| return nil |
| } |
| var err error |
| var obj []byte |
| _ = obj |
| _ = err |
| buf.WriteString(`{"Data":`) |
| if mj.Data != nil { |
| buf.WriteString(`[`) |
| for i, v := range mj.Data { |
| if i != 0 { |
| buf.WriteString(`,`) |
| } |
| |
| { |
| |
| err = v.MarshalJSONBuf(buf) |
| if err != nil { |
| return err |
| } |
| |
| } |
| } |
| buf.WriteString(`]`) |
| } else { |
| buf.WriteString(`null`) |
| } |
| buf.WriteByte('}') |
| return nil |
| } |
| |
| const ( |
| ffj_t_XLStructbase = iota |
| ffj_t_XLStructno_such_key |
| |
| ffj_t_XLStruct_Data |
| ) |
| |
| var ffj_key_XLStruct_Data = []byte("Data") |
| |
| func (uj *XLStruct) UnmarshalJSON(input []byte) error { |
| fs := fflib.NewFFLexer(input) |
| return uj.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start) |
| } |
| |
| func (uj *XLStruct) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error { |
| var err error = nil |
| currentKey := ffj_t_XLStructbase |
| _ = 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_XLStructno_such_key |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } else { |
| switch kn[0] { |
| |
| case 'D': |
| |
| if bytes.Equal(ffj_key_XLStruct_Data, kn) { |
| currentKey = ffj_t_XLStruct_Data |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| } |
| |
| if fflib.SimpleLetterEqualFold(ffj_key_XLStruct_Data, kn) { |
| currentKey = ffj_t_XLStruct_Data |
| state = fflib.FFParse_want_colon |
| goto mainparse |
| } |
| |
| currentKey = ffj_t_XLStructno_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_XLStruct_Data: |
| goto handle_Data |
| |
| case ffj_t_XLStructno_such_key: |
| err = fs.SkipField(tok) |
| if err != nil { |
| return fs.WrapErr(err) |
| } |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| } else { |
| goto wantedvalue |
| } |
| } |
| } |
| |
| handle_Data: |
| |
| /* handler: uj.Data type=[]benchmark.LargeStruct 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.Data = nil |
| } else { |
| |
| uj.Data = make([]LargeStruct, 0) |
| |
| wantVal := true |
| |
| for { |
| |
| var tmp_uj__Data LargeStruct |
| |
| 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__Data type=benchmark.LargeStruct kind=struct quoted=false*/ |
| |
| { |
| if tok == fflib.FFTok_null { |
| |
| state = fflib.FFParse_after_value |
| goto mainparse |
| } |
| |
| err = tmp_uj__Data.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key) |
| if err != nil { |
| return err |
| } |
| state = fflib.FFParse_after_value |
| } |
| |
| uj.Data = append(uj.Data, tmp_uj__Data) |
| 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 |
| } |