1package benchmark 2 3import "github.com/francoispqt/gojay" 4 5var 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}`) 6 7// ffjson:skip 8type SmallPayload struct { 9 St int 10 Sid int 11 Tt string 12 Gr int 13 Uuid string 14 Ip string 15 Ua string 16 Tz int 17 V int 18} 19 20type SmallPayloadFFJson struct { 21 St int 22 Sid int 23 Tt string 24 Gr int 25 Uuid string 26 Ip string 27 Ua string 28 Tz int 29 V int 30} 31 32//easyjson:json 33type SmallPayloadEasyJson struct { 34 St int 35 Sid int 36 Tt string 37 Gr int 38 Uuid string 39 Ip string 40 Ua string 41 Tz int 42 V int 43} 44 45func (t *SmallPayload) MarshalJSONObject(enc *gojay.Encoder) { 46 enc.AddIntKey("st", t.St) 47 enc.AddIntKey("sid", t.Sid) 48 enc.AddStringKey("tt", t.Tt) 49 enc.AddIntKey("gr", t.Gr) 50 enc.AddStringKey("uuid", t.Uuid) 51 enc.AddStringKey("ip", t.Ip) 52 enc.AddStringKey("ua", t.Ua) 53 enc.AddIntKey("tz", t.Tz) 54 enc.AddIntKey("v", t.V) 55} 56 57func (t *SmallPayload) IsNil() bool { 58 return t == nil 59} 60 61func (t *SmallPayload) UnmarshalJSONObject(dec *gojay.Decoder, key string) error { 62 switch key { 63 case "st": 64 return dec.AddInt(&t.St) 65 case "sid": 66 return dec.AddInt(&t.Sid) 67 case "gr": 68 return dec.AddInt(&t.Gr) 69 case "tz": 70 return dec.AddInt(&t.Tz) 71 case "v": 72 return dec.AddInt(&t.V) 73 case "tt": 74 return dec.AddString(&t.Tt) 75 case "uuid": 76 return dec.AddString(&t.Uuid) 77 case "ip": 78 return dec.AddString(&t.Ip) 79 case "ua": 80 return dec.AddString(&t.Ua) 81 } 82 return nil 83} 84 85func (t *SmallPayload) NKeys() int { 86 return 9 87} 88 89func NewSmallPayload() *SmallPayload { 90 return &SmallPayload{ 91 St: 1, 92 Sid: 2, 93 Tt: "TestString", 94 Gr: 4, 95 Uuid: "8f9a65eb-4807-4d57-b6e0-bda5d62f1429", 96 Ip: "127.0.0.1", 97 Ua: "Mozilla", 98 Tz: 8, 99 V: 6, 100 } 101} 102 103func NewSmallPayloadEasyJson() *SmallPayloadEasyJson { 104 return &SmallPayloadEasyJson{ 105 St: 1, 106 Sid: 2, 107 Tt: "TestString", 108 Gr: 4, 109 Uuid: "8f9a65eb-4807-4d57-b6e0-bda5d62f1429", 110 Ip: "127.0.0.1", 111 Ua: "Mozilla", 112 Tz: 8, 113 V: 6, 114 } 115} 116 117func NewSmallPayloadFFJson() *SmallPayloadFFJson { 118 return &SmallPayloadFFJson{ 119 St: 1, 120 Sid: 2, 121 Tt: "TestString", 122 Gr: 4, 123 Uuid: "8f9a65eb-4807-4d57-b6e0-bda5d62f1429", 124 Ip: "127.0.0.1", 125 Ua: "Mozilla", 126 Tz: 8, 127 V: 6, 128 } 129} 130