Files
Aleksandr Razumov aef59a06fb fix bench-other
* Update bench-other make command
* Update benchmark dependencies
* Re-generate data_{codec,ffjson}.go as they were broken
2019-08-29 18:48:49 +03:00

6794 lines
141 KiB
Go

// +build use_ffjson
// DO NOT EDIT!
// Code generated by ffjson <https://github.com/pquerna/ffjson>
// source: .root/src/github.com/mailru/easyjson/benchmark/data.go
// DO NOT EDIT!
package benchmark
import (
"bytes"
"errors"
"fmt"
fflib "github.com/pquerna/ffjson/fflib/v1"
)
// MarshalJSON marshal bytes to json - template
func (j *Entities) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *Entities) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"hashtags":`)
if j.Hashtags != nil {
buf.WriteString(`[`)
for i, v := range j.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 j.Urls != nil {
buf.WriteString(`[`)
for i, v := range j.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 j.UserMentions != nil {
buf.WriteString(`[`)
for i, v := range j.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 (
ffjtEntitiesbase = iota
ffjtEntitiesnosuchkey
ffjtEntitiesHashtags
ffjtEntitiesUrls
ffjtEntitiesUserMentions
)
var ffjKeyEntitiesHashtags = []byte("hashtags")
var ffjKeyEntitiesUrls = []byte("urls")
var ffjKeyEntitiesUserMentions = []byte("user_mentions")
// UnmarshalJSON umarshall json - template of ffjson
func (j *Entities) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *Entities) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtEntitiesbase
_ = 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 = ffjtEntitiesnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'h':
if bytes.Equal(ffjKeyEntitiesHashtags, kn) {
currentKey = ffjtEntitiesHashtags
state = fflib.FFParse_want_colon
goto mainparse
}
case 'u':
if bytes.Equal(ffjKeyEntitiesUrls, kn) {
currentKey = ffjtEntitiesUrls
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyEntitiesUserMentions, kn) {
currentKey = ffjtEntitiesUserMentions
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.EqualFoldRight(ffjKeyEntitiesUserMentions, kn) {
currentKey = ffjtEntitiesUserMentions
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyEntitiesUrls, kn) {
currentKey = ffjtEntitiesUrls
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyEntitiesHashtags, kn) {
currentKey = ffjtEntitiesHashtags
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtEntitiesnosuchkey
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 ffjtEntitiesHashtags:
goto handle_Hashtags
case ffjtEntitiesUrls:
goto handle_Urls
case ffjtEntitiesUserMentions:
goto handle_UserMentions
case ffjtEntitiesnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_Hashtags:
/* handler: j.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 {
j.Hashtags = nil
} else {
j.Hashtags = []Hashtag{}
wantVal := true
for {
var tmpJHashtags 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: tmpJHashtags type=benchmark.Hashtag kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = tmpJHashtags.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key)
if err != nil {
return err
}
}
state = fflib.FFParse_after_value
}
j.Hashtags = append(j.Hashtags, tmpJHashtags)
wantVal = false
}
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Urls:
/* handler: j.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 {
j.Urls = nil
} else {
j.Urls = []*string{}
wantVal := true
for {
var tmpJUrls *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: tmpJUrls type=*string kind=ptr quoted=false*/
{
if tok == fflib.FFTok_null {
tmpJUrls = nil
} else {
if tmpJUrls == nil {
tmpJUrls = new(string)
}
/* handler: tmpJUrls type=string kind=string quoted=false*/
{
{
if tok != fflib.FFTok_string && tok != fflib.FFTok_null {
return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok))
}
}
if tok == fflib.FFTok_null {
tmpJUrls = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
tmpJUrls = &tval
}
}
}
}
j.Urls = append(j.Urls, tmpJUrls)
wantVal = false
}
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_UserMentions:
/* handler: j.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 {
j.UserMentions = nil
} else {
j.UserMentions = []*string{}
wantVal := true
for {
var tmpJUserMentions *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: tmpJUserMentions type=*string kind=ptr quoted=false*/
{
if tok == fflib.FFTok_null {
tmpJUserMentions = nil
} else {
if tmpJUserMentions == nil {
tmpJUserMentions = new(string)
}
/* handler: tmpJUserMentions type=string kind=string quoted=false*/
{
{
if tok != fflib.FFTok_string && tok != fflib.FFTok_null {
return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok))
}
}
if tok == fflib.FFTok_null {
tmpJUserMentions = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
tmpJUserMentions = &tval
}
}
}
}
j.UserMentions = append(j.UserMentions, tmpJUserMentions)
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
}
// MarshalJSON marshal bytes to json - template
func (j *Hashtag) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *Hashtag) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"indices":`)
if j.Indices != nil {
buf.WriteString(`[`)
for i, v := range j.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(j.Text))
buf.WriteByte('}')
return nil
}
const (
ffjtHashtagbase = iota
ffjtHashtagnosuchkey
ffjtHashtagIndices
ffjtHashtagText
)
var ffjKeyHashtagIndices = []byte("indices")
var ffjKeyHashtagText = []byte("text")
// UnmarshalJSON umarshall json - template of ffjson
func (j *Hashtag) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *Hashtag) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtHashtagbase
_ = 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 = ffjtHashtagnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'i':
if bytes.Equal(ffjKeyHashtagIndices, kn) {
currentKey = ffjtHashtagIndices
state = fflib.FFParse_want_colon
goto mainparse
}
case 't':
if bytes.Equal(ffjKeyHashtagText, kn) {
currentKey = ffjtHashtagText
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.SimpleLetterEqualFold(ffjKeyHashtagText, kn) {
currentKey = ffjtHashtagText
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyHashtagIndices, kn) {
currentKey = ffjtHashtagIndices
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtHashtagnosuchkey
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 ffjtHashtagIndices:
goto handle_Indices
case ffjtHashtagText:
goto handle_Text
case ffjtHashtagnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_Indices:
/* handler: j.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 {
j.Indices = nil
} else {
j.Indices = []int{}
wantVal := true
for {
var tmpJIndices 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: tmpJIndices 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)
}
tmpJIndices = int(tval)
}
}
j.Indices = append(j.Indices, tmpJIndices)
wantVal = false
}
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Text:
/* handler: j.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()
j.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
}
// MarshalJSON marshal bytes to json - template
func (j *LargeStruct) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *LargeStruct) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"search_metadata":`)
{
err = j.SearchMetadata.MarshalJSONBuf(buf)
if err != nil {
return err
}
}
buf.WriteString(`,"statuses":`)
if j.Statuses != nil {
buf.WriteString(`[`)
for i, v := range j.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 (
ffjtLargeStructbase = iota
ffjtLargeStructnosuchkey
ffjtLargeStructSearchMetadata
ffjtLargeStructStatuses
)
var ffjKeyLargeStructSearchMetadata = []byte("search_metadata")
var ffjKeyLargeStructStatuses = []byte("statuses")
// UnmarshalJSON umarshall json - template of ffjson
func (j *LargeStruct) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *LargeStruct) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtLargeStructbase
_ = 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 = ffjtLargeStructnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 's':
if bytes.Equal(ffjKeyLargeStructSearchMetadata, kn) {
currentKey = ffjtLargeStructSearchMetadata
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyLargeStructStatuses, kn) {
currentKey = ffjtLargeStructStatuses
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.EqualFoldRight(ffjKeyLargeStructStatuses, kn) {
currentKey = ffjtLargeStructStatuses
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyLargeStructSearchMetadata, kn) {
currentKey = ffjtLargeStructSearchMetadata
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtLargeStructnosuchkey
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 ffjtLargeStructSearchMetadata:
goto handle_SearchMetadata
case ffjtLargeStructStatuses:
goto handle_Statuses
case ffjtLargeStructnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_SearchMetadata:
/* handler: j.SearchMetadata type=benchmark.SearchMetadata kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = j.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: j.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 {
j.Statuses = nil
} else {
j.Statuses = []Status{}
wantVal := true
for {
var tmpJStatuses 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: tmpJStatuses type=benchmark.Status kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = tmpJStatuses.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key)
if err != nil {
return err
}
}
state = fflib.FFParse_after_value
}
j.Statuses = append(j.Statuses, tmpJStatuses)
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
}
// MarshalJSON marshal bytes to json - template
func (j *SearchMetadata) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *SearchMetadata) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"completed_in":`)
fflib.AppendFloat(buf, float64(j.CompletedIn), 'g', -1, 64)
buf.WriteString(`,"count":`)
fflib.FormatBits2(buf, uint64(j.Count), 10, j.Count < 0)
buf.WriteString(`,"max_id":`)
fflib.FormatBits2(buf, uint64(j.MaxID), 10, j.MaxID < 0)
buf.WriteString(`,"max_id_str":`)
fflib.WriteJsonString(buf, string(j.MaxIDStr))
buf.WriteString(`,"next_results":`)
fflib.WriteJsonString(buf, string(j.NextResults))
buf.WriteString(`,"query":`)
fflib.WriteJsonString(buf, string(j.Query))
buf.WriteString(`,"refresh_url":`)
fflib.WriteJsonString(buf, string(j.RefreshURL))
buf.WriteString(`,"since_id":`)
fflib.FormatBits2(buf, uint64(j.SinceID), 10, j.SinceID < 0)
buf.WriteString(`,"since_id_str":`)
fflib.WriteJsonString(buf, string(j.SinceIDStr))
buf.WriteByte('}')
return nil
}
const (
ffjtSearchMetadatabase = iota
ffjtSearchMetadatanosuchkey
ffjtSearchMetadataCompletedIn
ffjtSearchMetadataCount
ffjtSearchMetadataMaxID
ffjtSearchMetadataMaxIDStr
ffjtSearchMetadataNextResults
ffjtSearchMetadataQuery
ffjtSearchMetadataRefreshURL
ffjtSearchMetadataSinceID
ffjtSearchMetadataSinceIDStr
)
var ffjKeySearchMetadataCompletedIn = []byte("completed_in")
var ffjKeySearchMetadataCount = []byte("count")
var ffjKeySearchMetadataMaxID = []byte("max_id")
var ffjKeySearchMetadataMaxIDStr = []byte("max_id_str")
var ffjKeySearchMetadataNextResults = []byte("next_results")
var ffjKeySearchMetadataQuery = []byte("query")
var ffjKeySearchMetadataRefreshURL = []byte("refresh_url")
var ffjKeySearchMetadataSinceID = []byte("since_id")
var ffjKeySearchMetadataSinceIDStr = []byte("since_id_str")
// UnmarshalJSON umarshall json - template of ffjson
func (j *SearchMetadata) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *SearchMetadata) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtSearchMetadatabase
_ = 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 = ffjtSearchMetadatanosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'c':
if bytes.Equal(ffjKeySearchMetadataCompletedIn, kn) {
currentKey = ffjtSearchMetadataCompletedIn
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeySearchMetadataCount, kn) {
currentKey = ffjtSearchMetadataCount
state = fflib.FFParse_want_colon
goto mainparse
}
case 'm':
if bytes.Equal(ffjKeySearchMetadataMaxID, kn) {
currentKey = ffjtSearchMetadataMaxID
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeySearchMetadataMaxIDStr, kn) {
currentKey = ffjtSearchMetadataMaxIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
case 'n':
if bytes.Equal(ffjKeySearchMetadataNextResults, kn) {
currentKey = ffjtSearchMetadataNextResults
state = fflib.FFParse_want_colon
goto mainparse
}
case 'q':
if bytes.Equal(ffjKeySearchMetadataQuery, kn) {
currentKey = ffjtSearchMetadataQuery
state = fflib.FFParse_want_colon
goto mainparse
}
case 'r':
if bytes.Equal(ffjKeySearchMetadataRefreshURL, kn) {
currentKey = ffjtSearchMetadataRefreshURL
state = fflib.FFParse_want_colon
goto mainparse
}
case 's':
if bytes.Equal(ffjKeySearchMetadataSinceID, kn) {
currentKey = ffjtSearchMetadataSinceID
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeySearchMetadataSinceIDStr, kn) {
currentKey = ffjtSearchMetadataSinceIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.EqualFoldRight(ffjKeySearchMetadataSinceIDStr, kn) {
currentKey = ffjtSearchMetadataSinceIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeySearchMetadataSinceID, kn) {
currentKey = ffjtSearchMetadataSinceID
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeySearchMetadataRefreshURL, kn) {
currentKey = ffjtSearchMetadataRefreshURL
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeySearchMetadataQuery, kn) {
currentKey = ffjtSearchMetadataQuery
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeySearchMetadataNextResults, kn) {
currentKey = ffjtSearchMetadataNextResults
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeySearchMetadataMaxIDStr, kn) {
currentKey = ffjtSearchMetadataMaxIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeySearchMetadataMaxID, kn) {
currentKey = ffjtSearchMetadataMaxID
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeySearchMetadataCount, kn) {
currentKey = ffjtSearchMetadataCount
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeySearchMetadataCompletedIn, kn) {
currentKey = ffjtSearchMetadataCompletedIn
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtSearchMetadatanosuchkey
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 ffjtSearchMetadataCompletedIn:
goto handle_CompletedIn
case ffjtSearchMetadataCount:
goto handle_Count
case ffjtSearchMetadataMaxID:
goto handle_MaxID
case ffjtSearchMetadataMaxIDStr:
goto handle_MaxIDStr
case ffjtSearchMetadataNextResults:
goto handle_NextResults
case ffjtSearchMetadataQuery:
goto handle_Query
case ffjtSearchMetadataRefreshURL:
goto handle_RefreshURL
case ffjtSearchMetadataSinceID:
goto handle_SinceID
case ffjtSearchMetadataSinceIDStr:
goto handle_SinceIDStr
case ffjtSearchMetadatanosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_CompletedIn:
/* handler: j.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)
}
j.CompletedIn = float64(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Count:
/* handler: j.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)
}
j.Count = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_MaxID:
/* handler: j.MaxID 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)
}
j.MaxID = int64(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_MaxIDStr:
/* handler: j.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()
j.MaxIDStr = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_NextResults:
/* handler: j.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()
j.NextResults = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Query:
/* handler: j.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()
j.Query = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_RefreshURL:
/* handler: j.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()
j.RefreshURL = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_SinceID:
/* handler: j.SinceID 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)
}
j.SinceID = int64(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_SinceIDStr:
/* handler: j.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()
j.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
}
// MarshalJSON marshal bytes to json - template
func (j *Status) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *Status) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
if j.Contributors != nil {
buf.WriteString(`{"contributors":`)
fflib.WriteJsonString(buf, string(*j.Contributors))
} else {
buf.WriteString(`{"contributors":null`)
}
if j.Coordinates != nil {
buf.WriteString(`,"coordinates":`)
fflib.WriteJsonString(buf, string(*j.Coordinates))
} else {
buf.WriteString(`,"coordinates":null`)
}
buf.WriteString(`,"created_at":`)
fflib.WriteJsonString(buf, string(j.CreatedAt))
buf.WriteString(`,"entities":`)
{
err = j.Entities.MarshalJSONBuf(buf)
if err != nil {
return err
}
}
if j.Favorited {
buf.WriteString(`,"favorited":true`)
} else {
buf.WriteString(`,"favorited":false`)
}
if j.Geo != nil {
buf.WriteString(`,"geo":`)
fflib.WriteJsonString(buf, string(*j.Geo))
} else {
buf.WriteString(`,"geo":null`)
}
buf.WriteString(`,"id":`)
fflib.FormatBits2(buf, uint64(j.ID), 10, j.ID < 0)
buf.WriteString(`,"id_str":`)
fflib.WriteJsonString(buf, string(j.IDStr))
if j.InReplyToScreenName != nil {
buf.WriteString(`,"in_reply_to_screen_name":`)
fflib.WriteJsonString(buf, string(*j.InReplyToScreenName))
} else {
buf.WriteString(`,"in_reply_to_screen_name":null`)
}
if j.InReplyToStatusID != nil {
buf.WriteString(`,"in_reply_to_status_id":`)
fflib.WriteJsonString(buf, string(*j.InReplyToStatusID))
} else {
buf.WriteString(`,"in_reply_to_status_id":null`)
}
if j.InReplyToStatusIDStr != nil {
buf.WriteString(`,"in_reply_to_status_id_str":`)
fflib.WriteJsonString(buf, string(*j.InReplyToStatusIDStr))
} else {
buf.WriteString(`,"in_reply_to_status_id_str":null`)
}
if j.InReplyToUserID != nil {
buf.WriteString(`,"in_reply_to_user_id":`)
fflib.WriteJsonString(buf, string(*j.InReplyToUserID))
} else {
buf.WriteString(`,"in_reply_to_user_id":null`)
}
if j.InReplyToUserIDStr != nil {
buf.WriteString(`,"in_reply_to_user_id_str":`)
fflib.WriteJsonString(buf, string(*j.InReplyToUserIDStr))
} else {
buf.WriteString(`,"in_reply_to_user_id_str":null`)
}
buf.WriteString(`,"metadata":`)
{
err = j.Metadata.MarshalJSONBuf(buf)
if err != nil {
return err
}
}
if j.Place != nil {
buf.WriteString(`,"place":`)
fflib.WriteJsonString(buf, string(*j.Place))
} else {
buf.WriteString(`,"place":null`)
}
buf.WriteString(`,"retweet_count":`)
fflib.FormatBits2(buf, uint64(j.RetweetCount), 10, j.RetweetCount < 0)
if j.Retweeted {
buf.WriteString(`,"retweeted":true`)
} else {
buf.WriteString(`,"retweeted":false`)
}
buf.WriteString(`,"source":`)
fflib.WriteJsonString(buf, string(j.Source))
buf.WriteString(`,"text":`)
fflib.WriteJsonString(buf, string(j.Text))
if j.Truncated {
buf.WriteString(`,"truncated":true`)
} else {
buf.WriteString(`,"truncated":false`)
}
buf.WriteString(`,"user":`)
{
err = j.User.MarshalJSONBuf(buf)
if err != nil {
return err
}
}
buf.WriteByte('}')
return nil
}
const (
ffjtStatusbase = iota
ffjtStatusnosuchkey
ffjtStatusContributors
ffjtStatusCoordinates
ffjtStatusCreatedAt
ffjtStatusEntities
ffjtStatusFavorited
ffjtStatusGeo
ffjtStatusID
ffjtStatusIDStr
ffjtStatusInReplyToScreenName
ffjtStatusInReplyToStatusID
ffjtStatusInReplyToStatusIDStr
ffjtStatusInReplyToUserID
ffjtStatusInReplyToUserIDStr
ffjtStatusMetadata
ffjtStatusPlace
ffjtStatusRetweetCount
ffjtStatusRetweeted
ffjtStatusSource
ffjtStatusText
ffjtStatusTruncated
ffjtStatusUser
)
var ffjKeyStatusContributors = []byte("contributors")
var ffjKeyStatusCoordinates = []byte("coordinates")
var ffjKeyStatusCreatedAt = []byte("created_at")
var ffjKeyStatusEntities = []byte("entities")
var ffjKeyStatusFavorited = []byte("favorited")
var ffjKeyStatusGeo = []byte("geo")
var ffjKeyStatusID = []byte("id")
var ffjKeyStatusIDStr = []byte("id_str")
var ffjKeyStatusInReplyToScreenName = []byte("in_reply_to_screen_name")
var ffjKeyStatusInReplyToStatusID = []byte("in_reply_to_status_id")
var ffjKeyStatusInReplyToStatusIDStr = []byte("in_reply_to_status_id_str")
var ffjKeyStatusInReplyToUserID = []byte("in_reply_to_user_id")
var ffjKeyStatusInReplyToUserIDStr = []byte("in_reply_to_user_id_str")
var ffjKeyStatusMetadata = []byte("metadata")
var ffjKeyStatusPlace = []byte("place")
var ffjKeyStatusRetweetCount = []byte("retweet_count")
var ffjKeyStatusRetweeted = []byte("retweeted")
var ffjKeyStatusSource = []byte("source")
var ffjKeyStatusText = []byte("text")
var ffjKeyStatusTruncated = []byte("truncated")
var ffjKeyStatusUser = []byte("user")
// UnmarshalJSON umarshall json - template of ffjson
func (j *Status) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *Status) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtStatusbase
_ = 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 = ffjtStatusnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'c':
if bytes.Equal(ffjKeyStatusContributors, kn) {
currentKey = ffjtStatusContributors
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusCoordinates, kn) {
currentKey = ffjtStatusCoordinates
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusCreatedAt, kn) {
currentKey = ffjtStatusCreatedAt
state = fflib.FFParse_want_colon
goto mainparse
}
case 'e':
if bytes.Equal(ffjKeyStatusEntities, kn) {
currentKey = ffjtStatusEntities
state = fflib.FFParse_want_colon
goto mainparse
}
case 'f':
if bytes.Equal(ffjKeyStatusFavorited, kn) {
currentKey = ffjtStatusFavorited
state = fflib.FFParse_want_colon
goto mainparse
}
case 'g':
if bytes.Equal(ffjKeyStatusGeo, kn) {
currentKey = ffjtStatusGeo
state = fflib.FFParse_want_colon
goto mainparse
}
case 'i':
if bytes.Equal(ffjKeyStatusID, kn) {
currentKey = ffjtStatusID
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusIDStr, kn) {
currentKey = ffjtStatusIDStr
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusInReplyToScreenName, kn) {
currentKey = ffjtStatusInReplyToScreenName
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusInReplyToStatusID, kn) {
currentKey = ffjtStatusInReplyToStatusID
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusInReplyToStatusIDStr, kn) {
currentKey = ffjtStatusInReplyToStatusIDStr
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusInReplyToUserID, kn) {
currentKey = ffjtStatusInReplyToUserID
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusInReplyToUserIDStr, kn) {
currentKey = ffjtStatusInReplyToUserIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
case 'm':
if bytes.Equal(ffjKeyStatusMetadata, kn) {
currentKey = ffjtStatusMetadata
state = fflib.FFParse_want_colon
goto mainparse
}
case 'p':
if bytes.Equal(ffjKeyStatusPlace, kn) {
currentKey = ffjtStatusPlace
state = fflib.FFParse_want_colon
goto mainparse
}
case 'r':
if bytes.Equal(ffjKeyStatusRetweetCount, kn) {
currentKey = ffjtStatusRetweetCount
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusRetweeted, kn) {
currentKey = ffjtStatusRetweeted
state = fflib.FFParse_want_colon
goto mainparse
}
case 's':
if bytes.Equal(ffjKeyStatusSource, kn) {
currentKey = ffjtStatusSource
state = fflib.FFParse_want_colon
goto mainparse
}
case 't':
if bytes.Equal(ffjKeyStatusText, kn) {
currentKey = ffjtStatusText
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyStatusTruncated, kn) {
currentKey = ffjtStatusTruncated
state = fflib.FFParse_want_colon
goto mainparse
}
case 'u':
if bytes.Equal(ffjKeyStatusUser, kn) {
currentKey = ffjtStatusUser
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.EqualFoldRight(ffjKeyStatusUser, kn) {
currentKey = ffjtStatusUser
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyStatusTruncated, kn) {
currentKey = ffjtStatusTruncated
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyStatusText, kn) {
currentKey = ffjtStatusText
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusSource, kn) {
currentKey = ffjtStatusSource
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyStatusRetweeted, kn) {
currentKey = ffjtStatusRetweeted
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyStatusRetweetCount, kn) {
currentKey = ffjtStatusRetweetCount
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyStatusPlace, kn) {
currentKey = ffjtStatusPlace
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyStatusMetadata, kn) {
currentKey = ffjtStatusMetadata
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusInReplyToUserIDStr, kn) {
currentKey = ffjtStatusInReplyToUserIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusInReplyToUserID, kn) {
currentKey = ffjtStatusInReplyToUserID
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusInReplyToStatusIDStr, kn) {
currentKey = ffjtStatusInReplyToStatusIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusInReplyToStatusID, kn) {
currentKey = ffjtStatusInReplyToStatusID
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusInReplyToScreenName, kn) {
currentKey = ffjtStatusInReplyToScreenName
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusIDStr, kn) {
currentKey = ffjtStatusIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyStatusID, kn) {
currentKey = ffjtStatusID
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyStatusGeo, kn) {
currentKey = ffjtStatusGeo
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyStatusFavorited, kn) {
currentKey = ffjtStatusFavorited
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusEntities, kn) {
currentKey = ffjtStatusEntities
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyStatusCreatedAt, kn) {
currentKey = ffjtStatusCreatedAt
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusCoordinates, kn) {
currentKey = ffjtStatusCoordinates
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusContributors, kn) {
currentKey = ffjtStatusContributors
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtStatusnosuchkey
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 ffjtStatusContributors:
goto handle_Contributors
case ffjtStatusCoordinates:
goto handle_Coordinates
case ffjtStatusCreatedAt:
goto handle_CreatedAt
case ffjtStatusEntities:
goto handle_Entities
case ffjtStatusFavorited:
goto handle_Favorited
case ffjtStatusGeo:
goto handle_Geo
case ffjtStatusID:
goto handle_ID
case ffjtStatusIDStr:
goto handle_IDStr
case ffjtStatusInReplyToScreenName:
goto handle_InReplyToScreenName
case ffjtStatusInReplyToStatusID:
goto handle_InReplyToStatusID
case ffjtStatusInReplyToStatusIDStr:
goto handle_InReplyToStatusIDStr
case ffjtStatusInReplyToUserID:
goto handle_InReplyToUserID
case ffjtStatusInReplyToUserIDStr:
goto handle_InReplyToUserIDStr
case ffjtStatusMetadata:
goto handle_Metadata
case ffjtStatusPlace:
goto handle_Place
case ffjtStatusRetweetCount:
goto handle_RetweetCount
case ffjtStatusRetweeted:
goto handle_Retweeted
case ffjtStatusSource:
goto handle_Source
case ffjtStatusText:
goto handle_Text
case ffjtStatusTruncated:
goto handle_Truncated
case ffjtStatusUser:
goto handle_User
case ffjtStatusnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_Contributors:
/* handler: j.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 {
j.Contributors = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.Contributors = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Coordinates:
/* handler: j.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 {
j.Coordinates = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.Coordinates = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_CreatedAt:
/* handler: j.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()
j.CreatedAt = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Entities:
/* handler: j.Entities type=benchmark.Entities kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = j.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: j.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 {
j.Favorited = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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 {
j.Geo = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.Geo = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ID:
/* handler: j.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)
}
j.ID = int64(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_IDStr:
/* handler: j.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()
j.IDStr = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_InReplyToScreenName:
/* handler: j.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 {
j.InReplyToScreenName = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.InReplyToScreenName = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_InReplyToStatusID:
/* handler: j.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 {
j.InReplyToStatusID = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.InReplyToStatusID = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_InReplyToStatusIDStr:
/* handler: j.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 {
j.InReplyToStatusIDStr = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.InReplyToStatusIDStr = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_InReplyToUserID:
/* handler: j.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 {
j.InReplyToUserID = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.InReplyToUserID = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_InReplyToUserIDStr:
/* handler: j.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 {
j.InReplyToUserIDStr = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.InReplyToUserIDStr = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Metadata:
/* handler: j.Metadata type=benchmark.StatusMetadata kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = j.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: j.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 {
j.Place = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.Place = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_RetweetCount:
/* handler: j.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)
}
j.RetweetCount = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Retweeted:
/* handler: j.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 {
j.Retweeted = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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()
j.Source = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Text:
/* handler: j.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()
j.Text = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Truncated:
/* handler: j.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 {
j.Truncated = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.User type=benchmark.User kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = j.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
}
// MarshalJSON marshal bytes to json - template
func (j *StatusMetadata) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *StatusMetadata) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"iso_language_code":`)
fflib.WriteJsonString(buf, string(j.IsoLanguageCode))
buf.WriteString(`,"result_type":`)
fflib.WriteJsonString(buf, string(j.ResultType))
buf.WriteByte('}')
return nil
}
const (
ffjtStatusMetadatabase = iota
ffjtStatusMetadatanosuchkey
ffjtStatusMetadataIsoLanguageCode
ffjtStatusMetadataResultType
)
var ffjKeyStatusMetadataIsoLanguageCode = []byte("iso_language_code")
var ffjKeyStatusMetadataResultType = []byte("result_type")
// UnmarshalJSON umarshall json - template of ffjson
func (j *StatusMetadata) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *StatusMetadata) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtStatusMetadatabase
_ = 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 = ffjtStatusMetadatanosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'i':
if bytes.Equal(ffjKeyStatusMetadataIsoLanguageCode, kn) {
currentKey = ffjtStatusMetadataIsoLanguageCode
state = fflib.FFParse_want_colon
goto mainparse
}
case 'r':
if bytes.Equal(ffjKeyStatusMetadataResultType, kn) {
currentKey = ffjtStatusMetadataResultType
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.EqualFoldRight(ffjKeyStatusMetadataResultType, kn) {
currentKey = ffjtStatusMetadataResultType
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyStatusMetadataIsoLanguageCode, kn) {
currentKey = ffjtStatusMetadataIsoLanguageCode
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtStatusMetadatanosuchkey
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 ffjtStatusMetadataIsoLanguageCode:
goto handle_IsoLanguageCode
case ffjtStatusMetadataResultType:
goto handle_ResultType
case ffjtStatusMetadatanosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_IsoLanguageCode:
/* handler: j.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()
j.IsoLanguageCode = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ResultType:
/* handler: j.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()
j.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
}
// MarshalJSON marshal bytes to json - template
func (j *URL) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *URL) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
if j.ExpandedURL != nil {
buf.WriteString(`{"expanded_url":`)
fflib.WriteJsonString(buf, string(*j.ExpandedURL))
} else {
buf.WriteString(`{"expanded_url":null`)
}
buf.WriteString(`,"indices":`)
if j.Indices != nil {
buf.WriteString(`[`)
for i, v := range j.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(j.URL))
buf.WriteByte('}')
return nil
}
const (
ffjtURLbase = iota
ffjtURLnosuchkey
ffjtURLExpandedURL
ffjtURLIndices
ffjtURLURL
)
var ffjKeyURLExpandedURL = []byte("expanded_url")
var ffjKeyURLIndices = []byte("indices")
var ffjKeyURLURL = []byte("url")
// UnmarshalJSON umarshall json - template of ffjson
func (j *URL) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *URL) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtURLbase
_ = 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 = ffjtURLnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'e':
if bytes.Equal(ffjKeyURLExpandedURL, kn) {
currentKey = ffjtURLExpandedURL
state = fflib.FFParse_want_colon
goto mainparse
}
case 'i':
if bytes.Equal(ffjKeyURLIndices, kn) {
currentKey = ffjtURLIndices
state = fflib.FFParse_want_colon
goto mainparse
}
case 'u':
if bytes.Equal(ffjKeyURLURL, kn) {
currentKey = ffjtURLURL
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.SimpleLetterEqualFold(ffjKeyURLURL, kn) {
currentKey = ffjtURLURL
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyURLIndices, kn) {
currentKey = ffjtURLIndices
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyURLExpandedURL, kn) {
currentKey = ffjtURLExpandedURL
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtURLnosuchkey
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 ffjtURLExpandedURL:
goto handle_ExpandedURL
case ffjtURLIndices:
goto handle_Indices
case ffjtURLURL:
goto handle_URL
case ffjtURLnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_ExpandedURL:
/* handler: j.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 {
j.ExpandedURL = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.ExpandedURL = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Indices:
/* handler: j.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 {
j.Indices = nil
} else {
j.Indices = []int{}
wantVal := true
for {
var tmpJIndices 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: tmpJIndices 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)
}
tmpJIndices = int(tval)
}
}
j.Indices = append(j.Indices, tmpJIndices)
wantVal = false
}
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_URL:
/* handler: j.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()
j.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
}
// MarshalJSON marshal bytes to json - template
func (j *User) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *User) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
if j.ContributorsEnabled {
buf.WriteString(`{"contributors_enabled":true`)
} else {
buf.WriteString(`{"contributors_enabled":false`)
}
buf.WriteString(`,"created_at":`)
fflib.WriteJsonString(buf, string(j.CreatedAt))
if j.DefaultProfile {
buf.WriteString(`,"default_profile":true`)
} else {
buf.WriteString(`,"default_profile":false`)
}
if j.DefaultProfileImage {
buf.WriteString(`,"default_profile_image":true`)
} else {
buf.WriteString(`,"default_profile_image":false`)
}
buf.WriteString(`,"description":`)
fflib.WriteJsonString(buf, string(j.Description))
buf.WriteString(`,"entities":`)
{
err = j.Entities.MarshalJSONBuf(buf)
if err != nil {
return err
}
}
buf.WriteString(`,"favourites_count":`)
fflib.FormatBits2(buf, uint64(j.FavouritesCount), 10, j.FavouritesCount < 0)
if j.FollowRequestSent != nil {
buf.WriteString(`,"follow_request_sent":`)
fflib.WriteJsonString(buf, string(*j.FollowRequestSent))
} else {
buf.WriteString(`,"follow_request_sent":null`)
}
buf.WriteString(`,"followers_count":`)
fflib.FormatBits2(buf, uint64(j.FollowersCount), 10, j.FollowersCount < 0)
if j.Following != nil {
buf.WriteString(`,"following":`)
fflib.WriteJsonString(buf, string(*j.Following))
} else {
buf.WriteString(`,"following":null`)
}
buf.WriteString(`,"friends_count":`)
fflib.FormatBits2(buf, uint64(j.FriendsCount), 10, j.FriendsCount < 0)
if j.GeoEnabled {
buf.WriteString(`,"geo_enabled":true`)
} else {
buf.WriteString(`,"geo_enabled":false`)
}
buf.WriteString(`,"id":`)
fflib.FormatBits2(buf, uint64(j.ID), 10, j.ID < 0)
buf.WriteString(`,"id_str":`)
fflib.WriteJsonString(buf, string(j.IDStr))
if j.IsTranslator {
buf.WriteString(`,"is_translator":true`)
} else {
buf.WriteString(`,"is_translator":false`)
}
buf.WriteString(`,"lang":`)
fflib.WriteJsonString(buf, string(j.Lang))
buf.WriteString(`,"listed_count":`)
fflib.FormatBits2(buf, uint64(j.ListedCount), 10, j.ListedCount < 0)
buf.WriteString(`,"location":`)
fflib.WriteJsonString(buf, string(j.Location))
buf.WriteString(`,"name":`)
fflib.WriteJsonString(buf, string(j.Name))
if j.Notifications != nil {
buf.WriteString(`,"notifications":`)
fflib.WriteJsonString(buf, string(*j.Notifications))
} else {
buf.WriteString(`,"notifications":null`)
}
buf.WriteString(`,"profile_background_color":`)
fflib.WriteJsonString(buf, string(j.ProfileBackgroundColor))
buf.WriteString(`,"profile_background_image_url":`)
fflib.WriteJsonString(buf, string(j.ProfileBackgroundImageURL))
buf.WriteString(`,"profile_background_image_url_https":`)
fflib.WriteJsonString(buf, string(j.ProfileBackgroundImageURLHTTPS))
if j.ProfileBackgroundTile {
buf.WriteString(`,"profile_background_tile":true`)
} else {
buf.WriteString(`,"profile_background_tile":false`)
}
buf.WriteString(`,"profile_image_url":`)
fflib.WriteJsonString(buf, string(j.ProfileImageURL))
buf.WriteString(`,"profile_image_url_https":`)
fflib.WriteJsonString(buf, string(j.ProfileImageURLHTTPS))
buf.WriteString(`,"profile_link_color":`)
fflib.WriteJsonString(buf, string(j.ProfileLinkColor))
buf.WriteString(`,"profile_sidebar_border_color":`)
fflib.WriteJsonString(buf, string(j.ProfileSidebarBorderColor))
buf.WriteString(`,"profile_sidebar_fill_color":`)
fflib.WriteJsonString(buf, string(j.ProfileSidebarFillColor))
buf.WriteString(`,"profile_text_color":`)
fflib.WriteJsonString(buf, string(j.ProfileTextColor))
if j.ProfileUseBackgroundImage {
buf.WriteString(`,"profile_use_background_image":true`)
} else {
buf.WriteString(`,"profile_use_background_image":false`)
}
if j.Protected {
buf.WriteString(`,"protected":true`)
} else {
buf.WriteString(`,"protected":false`)
}
buf.WriteString(`,"screen_name":`)
fflib.WriteJsonString(buf, string(j.ScreenName))
if j.ShowAllInlineMedia {
buf.WriteString(`,"show_all_inline_media":true`)
} else {
buf.WriteString(`,"show_all_inline_media":false`)
}
buf.WriteString(`,"statuses_count":`)
fflib.FormatBits2(buf, uint64(j.StatusesCount), 10, j.StatusesCount < 0)
buf.WriteString(`,"time_zone":`)
fflib.WriteJsonString(buf, string(j.TimeZone))
if j.URL != nil {
buf.WriteString(`,"url":`)
fflib.WriteJsonString(buf, string(*j.URL))
} else {
buf.WriteString(`,"url":null`)
}
buf.WriteString(`,"utc_offset":`)
fflib.FormatBits2(buf, uint64(j.UtcOffset), 10, j.UtcOffset < 0)
if j.Verified {
buf.WriteString(`,"verified":true`)
} else {
buf.WriteString(`,"verified":false`)
}
buf.WriteByte('}')
return nil
}
const (
ffjtUserbase = iota
ffjtUsernosuchkey
ffjtUserContributorsEnabled
ffjtUserCreatedAt
ffjtUserDefaultProfile
ffjtUserDefaultProfileImage
ffjtUserDescription
ffjtUserEntities
ffjtUserFavouritesCount
ffjtUserFollowRequestSent
ffjtUserFollowersCount
ffjtUserFollowing
ffjtUserFriendsCount
ffjtUserGeoEnabled
ffjtUserID
ffjtUserIDStr
ffjtUserIsTranslator
ffjtUserLang
ffjtUserListedCount
ffjtUserLocation
ffjtUserName
ffjtUserNotifications
ffjtUserProfileBackgroundColor
ffjtUserProfileBackgroundImageURL
ffjtUserProfileBackgroundImageURLHTTPS
ffjtUserProfileBackgroundTile
ffjtUserProfileImageURL
ffjtUserProfileImageURLHTTPS
ffjtUserProfileLinkColor
ffjtUserProfileSidebarBorderColor
ffjtUserProfileSidebarFillColor
ffjtUserProfileTextColor
ffjtUserProfileUseBackgroundImage
ffjtUserProtected
ffjtUserScreenName
ffjtUserShowAllInlineMedia
ffjtUserStatusesCount
ffjtUserTimeZone
ffjtUserURL
ffjtUserUtcOffset
ffjtUserVerified
)
var ffjKeyUserContributorsEnabled = []byte("contributors_enabled")
var ffjKeyUserCreatedAt = []byte("created_at")
var ffjKeyUserDefaultProfile = []byte("default_profile")
var ffjKeyUserDefaultProfileImage = []byte("default_profile_image")
var ffjKeyUserDescription = []byte("description")
var ffjKeyUserEntities = []byte("entities")
var ffjKeyUserFavouritesCount = []byte("favourites_count")
var ffjKeyUserFollowRequestSent = []byte("follow_request_sent")
var ffjKeyUserFollowersCount = []byte("followers_count")
var ffjKeyUserFollowing = []byte("following")
var ffjKeyUserFriendsCount = []byte("friends_count")
var ffjKeyUserGeoEnabled = []byte("geo_enabled")
var ffjKeyUserID = []byte("id")
var ffjKeyUserIDStr = []byte("id_str")
var ffjKeyUserIsTranslator = []byte("is_translator")
var ffjKeyUserLang = []byte("lang")
var ffjKeyUserListedCount = []byte("listed_count")
var ffjKeyUserLocation = []byte("location")
var ffjKeyUserName = []byte("name")
var ffjKeyUserNotifications = []byte("notifications")
var ffjKeyUserProfileBackgroundColor = []byte("profile_background_color")
var ffjKeyUserProfileBackgroundImageURL = []byte("profile_background_image_url")
var ffjKeyUserProfileBackgroundImageURLHTTPS = []byte("profile_background_image_url_https")
var ffjKeyUserProfileBackgroundTile = []byte("profile_background_tile")
var ffjKeyUserProfileImageURL = []byte("profile_image_url")
var ffjKeyUserProfileImageURLHTTPS = []byte("profile_image_url_https")
var ffjKeyUserProfileLinkColor = []byte("profile_link_color")
var ffjKeyUserProfileSidebarBorderColor = []byte("profile_sidebar_border_color")
var ffjKeyUserProfileSidebarFillColor = []byte("profile_sidebar_fill_color")
var ffjKeyUserProfileTextColor = []byte("profile_text_color")
var ffjKeyUserProfileUseBackgroundImage = []byte("profile_use_background_image")
var ffjKeyUserProtected = []byte("protected")
var ffjKeyUserScreenName = []byte("screen_name")
var ffjKeyUserShowAllInlineMedia = []byte("show_all_inline_media")
var ffjKeyUserStatusesCount = []byte("statuses_count")
var ffjKeyUserTimeZone = []byte("time_zone")
var ffjKeyUserURL = []byte("url")
var ffjKeyUserUtcOffset = []byte("utc_offset")
var ffjKeyUserVerified = []byte("verified")
// UnmarshalJSON umarshall json - template of ffjson
func (j *User) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *User) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtUserbase
_ = 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 = ffjtUsernosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'c':
if bytes.Equal(ffjKeyUserContributorsEnabled, kn) {
currentKey = ffjtUserContributorsEnabled
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserCreatedAt, kn) {
currentKey = ffjtUserCreatedAt
state = fflib.FFParse_want_colon
goto mainparse
}
case 'd':
if bytes.Equal(ffjKeyUserDefaultProfile, kn) {
currentKey = ffjtUserDefaultProfile
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserDefaultProfileImage, kn) {
currentKey = ffjtUserDefaultProfileImage
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserDescription, kn) {
currentKey = ffjtUserDescription
state = fflib.FFParse_want_colon
goto mainparse
}
case 'e':
if bytes.Equal(ffjKeyUserEntities, kn) {
currentKey = ffjtUserEntities
state = fflib.FFParse_want_colon
goto mainparse
}
case 'f':
if bytes.Equal(ffjKeyUserFavouritesCount, kn) {
currentKey = ffjtUserFavouritesCount
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserFollowRequestSent, kn) {
currentKey = ffjtUserFollowRequestSent
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserFollowersCount, kn) {
currentKey = ffjtUserFollowersCount
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserFollowing, kn) {
currentKey = ffjtUserFollowing
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserFriendsCount, kn) {
currentKey = ffjtUserFriendsCount
state = fflib.FFParse_want_colon
goto mainparse
}
case 'g':
if bytes.Equal(ffjKeyUserGeoEnabled, kn) {
currentKey = ffjtUserGeoEnabled
state = fflib.FFParse_want_colon
goto mainparse
}
case 'i':
if bytes.Equal(ffjKeyUserID, kn) {
currentKey = ffjtUserID
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserIDStr, kn) {
currentKey = ffjtUserIDStr
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserIsTranslator, kn) {
currentKey = ffjtUserIsTranslator
state = fflib.FFParse_want_colon
goto mainparse
}
case 'l':
if bytes.Equal(ffjKeyUserLang, kn) {
currentKey = ffjtUserLang
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserListedCount, kn) {
currentKey = ffjtUserListedCount
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserLocation, kn) {
currentKey = ffjtUserLocation
state = fflib.FFParse_want_colon
goto mainparse
}
case 'n':
if bytes.Equal(ffjKeyUserName, kn) {
currentKey = ffjtUserName
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserNotifications, kn) {
currentKey = ffjtUserNotifications
state = fflib.FFParse_want_colon
goto mainparse
}
case 'p':
if bytes.Equal(ffjKeyUserProfileBackgroundColor, kn) {
currentKey = ffjtUserProfileBackgroundColor
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileBackgroundImageURL, kn) {
currentKey = ffjtUserProfileBackgroundImageURL
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileBackgroundImageURLHTTPS, kn) {
currentKey = ffjtUserProfileBackgroundImageURLHTTPS
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileBackgroundTile, kn) {
currentKey = ffjtUserProfileBackgroundTile
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileImageURL, kn) {
currentKey = ffjtUserProfileImageURL
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileImageURLHTTPS, kn) {
currentKey = ffjtUserProfileImageURLHTTPS
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileLinkColor, kn) {
currentKey = ffjtUserProfileLinkColor
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileSidebarBorderColor, kn) {
currentKey = ffjtUserProfileSidebarBorderColor
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileSidebarFillColor, kn) {
currentKey = ffjtUserProfileSidebarFillColor
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileTextColor, kn) {
currentKey = ffjtUserProfileTextColor
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProfileUseBackgroundImage, kn) {
currentKey = ffjtUserProfileUseBackgroundImage
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserProtected, kn) {
currentKey = ffjtUserProtected
state = fflib.FFParse_want_colon
goto mainparse
}
case 's':
if bytes.Equal(ffjKeyUserScreenName, kn) {
currentKey = ffjtUserScreenName
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserShowAllInlineMedia, kn) {
currentKey = ffjtUserShowAllInlineMedia
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserStatusesCount, kn) {
currentKey = ffjtUserStatusesCount
state = fflib.FFParse_want_colon
goto mainparse
}
case 't':
if bytes.Equal(ffjKeyUserTimeZone, kn) {
currentKey = ffjtUserTimeZone
state = fflib.FFParse_want_colon
goto mainparse
}
case 'u':
if bytes.Equal(ffjKeyUserURL, kn) {
currentKey = ffjtUserURL
state = fflib.FFParse_want_colon
goto mainparse
} else if bytes.Equal(ffjKeyUserUtcOffset, kn) {
currentKey = ffjtUserUtcOffset
state = fflib.FFParse_want_colon
goto mainparse
}
case 'v':
if bytes.Equal(ffjKeyUserVerified, kn) {
currentKey = ffjtUserVerified
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.SimpleLetterEqualFold(ffjKeyUserVerified, kn) {
currentKey = ffjtUserVerified
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserUtcOffset, kn) {
currentKey = ffjtUserUtcOffset
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyUserURL, kn) {
currentKey = ffjtUserURL
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyUserTimeZone, kn) {
currentKey = ffjtUserTimeZone
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserStatusesCount, kn) {
currentKey = ffjtUserStatusesCount
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserShowAllInlineMedia, kn) {
currentKey = ffjtUserShowAllInlineMedia
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserScreenName, kn) {
currentKey = ffjtUserScreenName
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyUserProtected, kn) {
currentKey = ffjtUserProtected
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileUseBackgroundImage, kn) {
currentKey = ffjtUserProfileUseBackgroundImage
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyUserProfileTextColor, kn) {
currentKey = ffjtUserProfileTextColor
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileSidebarFillColor, kn) {
currentKey = ffjtUserProfileSidebarFillColor
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileSidebarBorderColor, kn) {
currentKey = ffjtUserProfileSidebarBorderColor
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileLinkColor, kn) {
currentKey = ffjtUserProfileLinkColor
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileImageURLHTTPS, kn) {
currentKey = ffjtUserProfileImageURLHTTPS
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyUserProfileImageURL, kn) {
currentKey = ffjtUserProfileImageURL
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileBackgroundTile, kn) {
currentKey = ffjtUserProfileBackgroundTile
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileBackgroundImageURLHTTPS, kn) {
currentKey = ffjtUserProfileBackgroundImageURLHTTPS
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileBackgroundImageURL, kn) {
currentKey = ffjtUserProfileBackgroundImageURL
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserProfileBackgroundColor, kn) {
currentKey = ffjtUserProfileBackgroundColor
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserNotifications, kn) {
currentKey = ffjtUserNotifications
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyUserName, kn) {
currentKey = ffjtUserName
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyUserLocation, kn) {
currentKey = ffjtUserLocation
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserListedCount, kn) {
currentKey = ffjtUserListedCount
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyUserLang, kn) {
currentKey = ffjtUserLang
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserIsTranslator, kn) {
currentKey = ffjtUserIsTranslator
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserIDStr, kn) {
currentKey = ffjtUserIDStr
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyUserID, kn) {
currentKey = ffjtUserID
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyUserGeoEnabled, kn) {
currentKey = ffjtUserGeoEnabled
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserFriendsCount, kn) {
currentKey = ffjtUserFriendsCount
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.SimpleLetterEqualFold(ffjKeyUserFollowing, kn) {
currentKey = ffjtUserFollowing
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserFollowersCount, kn) {
currentKey = ffjtUserFollowersCount
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserFollowRequestSent, kn) {
currentKey = ffjtUserFollowRequestSent
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserFavouritesCount, kn) {
currentKey = ffjtUserFavouritesCount
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserEntities, kn) {
currentKey = ffjtUserEntities
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserDescription, kn) {
currentKey = ffjtUserDescription
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyUserDefaultProfileImage, kn) {
currentKey = ffjtUserDefaultProfileImage
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyUserDefaultProfile, kn) {
currentKey = ffjtUserDefaultProfile
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.AsciiEqualFold(ffjKeyUserCreatedAt, kn) {
currentKey = ffjtUserCreatedAt
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserContributorsEnabled, kn) {
currentKey = ffjtUserContributorsEnabled
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtUsernosuchkey
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 ffjtUserContributorsEnabled:
goto handle_ContributorsEnabled
case ffjtUserCreatedAt:
goto handle_CreatedAt
case ffjtUserDefaultProfile:
goto handle_DefaultProfile
case ffjtUserDefaultProfileImage:
goto handle_DefaultProfileImage
case ffjtUserDescription:
goto handle_Description
case ffjtUserEntities:
goto handle_Entities
case ffjtUserFavouritesCount:
goto handle_FavouritesCount
case ffjtUserFollowRequestSent:
goto handle_FollowRequestSent
case ffjtUserFollowersCount:
goto handle_FollowersCount
case ffjtUserFollowing:
goto handle_Following
case ffjtUserFriendsCount:
goto handle_FriendsCount
case ffjtUserGeoEnabled:
goto handle_GeoEnabled
case ffjtUserID:
goto handle_ID
case ffjtUserIDStr:
goto handle_IDStr
case ffjtUserIsTranslator:
goto handle_IsTranslator
case ffjtUserLang:
goto handle_Lang
case ffjtUserListedCount:
goto handle_ListedCount
case ffjtUserLocation:
goto handle_Location
case ffjtUserName:
goto handle_Name
case ffjtUserNotifications:
goto handle_Notifications
case ffjtUserProfileBackgroundColor:
goto handle_ProfileBackgroundColor
case ffjtUserProfileBackgroundImageURL:
goto handle_ProfileBackgroundImageURL
case ffjtUserProfileBackgroundImageURLHTTPS:
goto handle_ProfileBackgroundImageURLHTTPS
case ffjtUserProfileBackgroundTile:
goto handle_ProfileBackgroundTile
case ffjtUserProfileImageURL:
goto handle_ProfileImageURL
case ffjtUserProfileImageURLHTTPS:
goto handle_ProfileImageURLHTTPS
case ffjtUserProfileLinkColor:
goto handle_ProfileLinkColor
case ffjtUserProfileSidebarBorderColor:
goto handle_ProfileSidebarBorderColor
case ffjtUserProfileSidebarFillColor:
goto handle_ProfileSidebarFillColor
case ffjtUserProfileTextColor:
goto handle_ProfileTextColor
case ffjtUserProfileUseBackgroundImage:
goto handle_ProfileUseBackgroundImage
case ffjtUserProtected:
goto handle_Protected
case ffjtUserScreenName:
goto handle_ScreenName
case ffjtUserShowAllInlineMedia:
goto handle_ShowAllInlineMedia
case ffjtUserStatusesCount:
goto handle_StatusesCount
case ffjtUserTimeZone:
goto handle_TimeZone
case ffjtUserURL:
goto handle_URL
case ffjtUserUtcOffset:
goto handle_UtcOffset
case ffjtUserVerified:
goto handle_Verified
case ffjtUsernosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_ContributorsEnabled:
/* handler: j.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 {
j.ContributorsEnabled = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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()
j.CreatedAt = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_DefaultProfile:
/* handler: j.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 {
j.DefaultProfile = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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 {
j.DefaultProfileImage = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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()
j.Description = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Entities:
/* handler: j.Entities type=benchmark.UserEntities kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = j.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: j.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)
}
j.FavouritesCount = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_FollowRequestSent:
/* handler: j.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 {
j.FollowRequestSent = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.FollowRequestSent = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_FollowersCount:
/* handler: j.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)
}
j.FollowersCount = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Following:
/* handler: j.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 {
j.Following = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.Following = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_FriendsCount:
/* handler: j.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)
}
j.FriendsCount = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_GeoEnabled:
/* handler: j.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 {
j.GeoEnabled = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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)
}
j.ID = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_IDStr:
/* handler: j.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()
j.IDStr = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_IsTranslator:
/* handler: j.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 {
j.IsTranslator = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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()
j.Lang = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ListedCount:
/* handler: j.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)
}
j.ListedCount = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Location:
/* handler: j.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()
j.Location = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Name:
/* handler: j.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()
j.Name = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Notifications:
/* handler: j.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 {
j.Notifications = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.Notifications = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileBackgroundColor:
/* handler: j.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()
j.ProfileBackgroundColor = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileBackgroundImageURL:
/* handler: j.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()
j.ProfileBackgroundImageURL = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileBackgroundImageURLHTTPS:
/* handler: j.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()
j.ProfileBackgroundImageURLHTTPS = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileBackgroundTile:
/* handler: j.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 {
j.ProfileBackgroundTile = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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()
j.ProfileImageURL = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileImageURLHTTPS:
/* handler: j.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()
j.ProfileImageURLHTTPS = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileLinkColor:
/* handler: j.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()
j.ProfileLinkColor = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileSidebarBorderColor:
/* handler: j.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()
j.ProfileSidebarBorderColor = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileSidebarFillColor:
/* handler: j.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()
j.ProfileSidebarFillColor = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileTextColor:
/* handler: j.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()
j.ProfileTextColor = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ProfileUseBackgroundImage:
/* handler: j.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 {
j.ProfileUseBackgroundImage = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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 {
j.Protected = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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()
j.ScreenName = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_ShowAllInlineMedia:
/* handler: j.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 {
j.ShowAllInlineMedia = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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: j.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)
}
j.StatusesCount = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_TimeZone:
/* handler: j.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()
j.TimeZone = string(string(outBuf))
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_URL:
/* handler: j.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 {
j.URL = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
j.URL = &tval
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_UtcOffset:
/* handler: j.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)
}
j.UtcOffset = int(tval)
}
}
state = fflib.FFParse_after_value
goto mainparse
handle_Verified:
/* handler: j.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 {
j.Verified = true
} else if bytes.Compare([]byte{'f', 'a', 'l', 's', 'e'}, tmpb) == 0 {
j.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
}
// MarshalJSON marshal bytes to json - template
func (j *UserEntities) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *UserEntities) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"description":`)
{
err = j.Description.MarshalJSONBuf(buf)
if err != nil {
return err
}
}
buf.WriteString(`,"url":`)
{
err = j.URL.MarshalJSONBuf(buf)
if err != nil {
return err
}
}
buf.WriteByte('}')
return nil
}
const (
ffjtUserEntitiesbase = iota
ffjtUserEntitiesnosuchkey
ffjtUserEntitiesDescription
ffjtUserEntitiesURL
)
var ffjKeyUserEntitiesDescription = []byte("description")
var ffjKeyUserEntitiesURL = []byte("url")
// UnmarshalJSON umarshall json - template of ffjson
func (j *UserEntities) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *UserEntities) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtUserEntitiesbase
_ = 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 = ffjtUserEntitiesnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'd':
if bytes.Equal(ffjKeyUserEntitiesDescription, kn) {
currentKey = ffjtUserEntitiesDescription
state = fflib.FFParse_want_colon
goto mainparse
}
case 'u':
if bytes.Equal(ffjKeyUserEntitiesURL, kn) {
currentKey = ffjtUserEntitiesURL
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.SimpleLetterEqualFold(ffjKeyUserEntitiesURL, kn) {
currentKey = ffjtUserEntitiesURL
state = fflib.FFParse_want_colon
goto mainparse
}
if fflib.EqualFoldRight(ffjKeyUserEntitiesDescription, kn) {
currentKey = ffjtUserEntitiesDescription
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtUserEntitiesnosuchkey
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 ffjtUserEntitiesDescription:
goto handle_Description
case ffjtUserEntitiesURL:
goto handle_URL
case ffjtUserEntitiesnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_Description:
/* handler: j.Description type=benchmark.UserEntityDescription kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = j.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: j.URL type=benchmark.UserEntityURL kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = j.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
}
// MarshalJSON marshal bytes to json - template
func (j *UserEntityDescription) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *UserEntityDescription) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"urls":`)
if j.Urls != nil {
buf.WriteString(`[`)
for i, v := range j.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 (
ffjtUserEntityDescriptionbase = iota
ffjtUserEntityDescriptionnosuchkey
ffjtUserEntityDescriptionUrls
)
var ffjKeyUserEntityDescriptionUrls = []byte("urls")
// UnmarshalJSON umarshall json - template of ffjson
func (j *UserEntityDescription) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *UserEntityDescription) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtUserEntityDescriptionbase
_ = 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 = ffjtUserEntityDescriptionnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'u':
if bytes.Equal(ffjKeyUserEntityDescriptionUrls, kn) {
currentKey = ffjtUserEntityDescriptionUrls
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.EqualFoldRight(ffjKeyUserEntityDescriptionUrls, kn) {
currentKey = ffjtUserEntityDescriptionUrls
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtUserEntityDescriptionnosuchkey
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 ffjtUserEntityDescriptionUrls:
goto handle_Urls
case ffjtUserEntityDescriptionnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_Urls:
/* handler: j.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 {
j.Urls = nil
} else {
j.Urls = []*string{}
wantVal := true
for {
var tmpJUrls *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: tmpJUrls type=*string kind=ptr quoted=false*/
{
if tok == fflib.FFTok_null {
tmpJUrls = nil
} else {
if tmpJUrls == nil {
tmpJUrls = new(string)
}
/* handler: tmpJUrls type=string kind=string quoted=false*/
{
{
if tok != fflib.FFTok_string && tok != fflib.FFTok_null {
return fs.WrapErr(fmt.Errorf("cannot unmarshal %s into Go value for string", tok))
}
}
if tok == fflib.FFTok_null {
tmpJUrls = nil
} else {
var tval string
outBuf := fs.Output.Bytes()
tval = string(string(outBuf))
tmpJUrls = &tval
}
}
}
}
j.Urls = append(j.Urls, tmpJUrls)
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
}
// MarshalJSON marshal bytes to json - template
func (j *UserEntityURL) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *UserEntityURL) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"urls":`)
if j.Urls != nil {
buf.WriteString(`[`)
for i, v := range j.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 (
ffjtUserEntityURLbase = iota
ffjtUserEntityURLnosuchkey
ffjtUserEntityURLUrls
)
var ffjKeyUserEntityURLUrls = []byte("urls")
// UnmarshalJSON umarshall json - template of ffjson
func (j *UserEntityURL) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *UserEntityURL) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtUserEntityURLbase
_ = 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 = ffjtUserEntityURLnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'u':
if bytes.Equal(ffjKeyUserEntityURLUrls, kn) {
currentKey = ffjtUserEntityURLUrls
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.EqualFoldRight(ffjKeyUserEntityURLUrls, kn) {
currentKey = ffjtUserEntityURLUrls
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtUserEntityURLnosuchkey
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 ffjtUserEntityURLUrls:
goto handle_Urls
case ffjtUserEntityURLnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_Urls:
/* handler: j.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 {
j.Urls = nil
} else {
j.Urls = []URL{}
wantVal := true
for {
var tmpJUrls 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: tmpJUrls type=benchmark.URL kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = tmpJUrls.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key)
if err != nil {
return err
}
}
state = fflib.FFParse_after_value
}
j.Urls = append(j.Urls, tmpJUrls)
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
}
// MarshalJSON marshal bytes to json - template
func (j *XLStruct) MarshalJSON() ([]byte, error) {
var buf fflib.Buffer
if j == nil {
buf.WriteString("null")
return buf.Bytes(), nil
}
err := j.MarshalJSONBuf(&buf)
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
// MarshalJSONBuf marshal buff to json - template
func (j *XLStruct) MarshalJSONBuf(buf fflib.EncodingBuffer) error {
if j == nil {
buf.WriteString("null")
return nil
}
var err error
var obj []byte
_ = obj
_ = err
buf.WriteString(`{"Data":`)
if j.Data != nil {
buf.WriteString(`[`)
for i, v := range j.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 (
ffjtXLStructbase = iota
ffjtXLStructnosuchkey
ffjtXLStructData
)
var ffjKeyXLStructData = []byte("Data")
// UnmarshalJSON umarshall json - template of ffjson
func (j *XLStruct) UnmarshalJSON(input []byte) error {
fs := fflib.NewFFLexer(input)
return j.UnmarshalJSONFFLexer(fs, fflib.FFParse_map_start)
}
// UnmarshalJSONFFLexer fast json unmarshall - template ffjson
func (j *XLStruct) UnmarshalJSONFFLexer(fs *fflib.FFLexer, state fflib.FFParseState) error {
var err error
currentKey := ffjtXLStructbase
_ = 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 = ffjtXLStructnosuchkey
state = fflib.FFParse_want_colon
goto mainparse
} else {
switch kn[0] {
case 'D':
if bytes.Equal(ffjKeyXLStructData, kn) {
currentKey = ffjtXLStructData
state = fflib.FFParse_want_colon
goto mainparse
}
}
if fflib.SimpleLetterEqualFold(ffjKeyXLStructData, kn) {
currentKey = ffjtXLStructData
state = fflib.FFParse_want_colon
goto mainparse
}
currentKey = ffjtXLStructnosuchkey
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 ffjtXLStructData:
goto handle_Data
case ffjtXLStructnosuchkey:
err = fs.SkipField(tok)
if err != nil {
return fs.WrapErr(err)
}
state = fflib.FFParse_after_value
goto mainparse
}
} else {
goto wantedvalue
}
}
}
handle_Data:
/* handler: j.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 {
j.Data = nil
} else {
j.Data = []LargeStruct{}
wantVal := true
for {
var tmpJData 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: tmpJData type=benchmark.LargeStruct kind=struct quoted=false*/
{
if tok == fflib.FFTok_null {
} else {
err = tmpJData.UnmarshalJSONFFLexer(fs, fflib.FFParse_want_key)
if err != nil {
return err
}
}
state = fflib.FFParse_after_value
}
j.Data = append(j.Data, tmpJData)
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
}