summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/mailru/easyjson/benchmark/data_ffjson.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/mailru/easyjson/benchmark/data_ffjson.go')
-rw-r--r--vendor/github.com/mailru/easyjson/benchmark/data_ffjson.go6723
1 files changed, 6723 insertions, 0 deletions
diff --git a/vendor/github.com/mailru/easyjson/benchmark/data_ffjson.go b/vendor/github.com/mailru/easyjson/benchmark/data_ffjson.go
new file mode 100644
index 000000000..9f000d3ad
--- /dev/null
+++ b/vendor/github.com/mailru/easyjson/benchmark/data_ffjson.go
@@ -0,0 +1,6723 @@
+// +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
+}