package benchmark import "github.com/francoispqt/gojay" var SmallFixture = []byte(`{"st": 1,"sid": 486,"tt": "active","gr": 0,"uuid": "de305d54-75b4-431b-adb2-eb6b9e546014","ip": "127.0.0.1","ua": "user_agent","tz": -6,"v": 1}`) // ffjson:skip type SmallPayload struct { St int Sid int Tt string Gr int Uuid string Ip string Ua string Tz int V int } type SmallPayloadFFJson struct { St int Sid int Tt string Gr int Uuid string Ip string Ua string Tz int V int } //easyjson:json type SmallPayloadEasyJson struct { St int Sid int Tt string Gr int Uuid string Ip string Ua string Tz int V int } func (t *SmallPayload) MarshalJSONObject(enc *gojay.Encoder) { enc.AddIntKey("st", t.St) enc.AddIntKey("sid", t.Sid) enc.AddStringKey("tt", t.Tt) enc.AddIntKey("gr", t.Gr) enc.AddStringKey("uuid", t.Uuid) enc.AddStringKey("ip", t.Ip) enc.AddStringKey("ua", t.Ua) enc.AddIntKey("tz", t.Tz) enc.AddIntKey("v", t.V) } func (t *SmallPayload) IsNil() bool { return t == nil } func (t *SmallPayload) UnmarshalJSONObject(dec *gojay.Decoder, key string) error { switch key { case "st": return dec.AddInt(&t.St) case "sid": return dec.AddInt(&t.Sid) case "gr": return dec.AddInt(&t.Gr) case "tz": return dec.AddInt(&t.Tz) case "v": return dec.AddInt(&t.V) case "tt": return dec.AddString(&t.Tt) case "uuid": return dec.AddString(&t.Uuid) case "ip": return dec.AddString(&t.Ip) case "ua": return dec.AddString(&t.Ua) } return nil } func (t *SmallPayload) NKeys() int { return 9 } func NewSmallPayload() *SmallPayload { return &SmallPayload{ St: 1, Sid: 2, Tt: "TestString", Gr: 4, Uuid: "8f9a65eb-4807-4d57-b6e0-bda5d62f1429", Ip: "127.0.0.1", Ua: "Mozilla", Tz: 8, V: 6, } } func NewSmallPayloadEasyJson() *SmallPayloadEasyJson { return &SmallPayloadEasyJson{ St: 1, Sid: 2, Tt: "TestString", Gr: 4, Uuid: "8f9a65eb-4807-4d57-b6e0-bda5d62f1429", Ip: "127.0.0.1", Ua: "Mozilla", Tz: 8, V: 6, } } func NewSmallPayloadFFJson() *SmallPayloadFFJson { return &SmallPayloadFFJson{ St: 1, Sid: 2, Tt: "TestString", Gr: 4, Uuid: "8f9a65eb-4807-4d57-b6e0-bda5d62f1429", Ip: "127.0.0.1", Ua: "Mozilla", Tz: 8, V: 6, } }