6724 lines
142 KiB
Go
6724 lines
142 KiB
Go
// +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
|
|
}
|