1package gojay 2 3import "database/sql" 4 5// EncodeSQLNullString encodes a string to 6func (enc *Encoder) EncodeSQLNullString(v *sql.NullString) error { 7 if enc.isPooled == 1 { 8 panic(InvalidUsagePooledEncoderError("Invalid usage of pooled encoder")) 9 } 10 _, _ = enc.encodeString(v.String) 11 _, err := enc.Write() 12 if err != nil { 13 enc.err = err 14 return err 15 } 16 return nil 17} 18 19// AddSQLNullString adds a string to be encoded, must be used inside a slice or array encoding (does not encode a key) 20func (enc *Encoder) AddSQLNullString(v *sql.NullString) { 21 enc.String(v.String) 22} 23 24// AddSQLNullStringOmitEmpty adds a string to be encoded or skips it if it is zero value. 25// Must be used inside a slice or array encoding (does not encode a key) 26func (enc *Encoder) AddSQLNullStringOmitEmpty(v *sql.NullString) { 27 if v != nil && v.Valid && v.String != "" { 28 enc.StringOmitEmpty(v.String) 29 } 30} 31 32// AddSQLNullStringNullEmpty adds a string to be encoded or skips it if it is zero value. 33// Must be used inside a slice or array encoding (does not encode a key) 34func (enc *Encoder) AddSQLNullStringNullEmpty(v *sql.NullString) { 35 if v != nil && v.Valid { 36 enc.StringNullEmpty(v.String) 37 } 38} 39 40// AddSQLNullStringKey adds a string to be encoded, must be used inside an object as it will encode a key 41func (enc *Encoder) AddSQLNullStringKey(key string, v *sql.NullString) { 42 enc.StringKey(key, v.String) 43} 44 45// AddSQLNullStringKeyOmitEmpty adds a string to be encoded or skips it if it is zero value. 46// Must be used inside an object as it will encode a key 47func (enc *Encoder) AddSQLNullStringKeyOmitEmpty(key string, v *sql.NullString) { 48 if v != nil && v.Valid && v.String != "" { 49 enc.StringKeyOmitEmpty(key, v.String) 50 } 51} 52 53// SQLNullString adds a string to be encoded, must be used inside an object as it will encode a key 54func (enc *Encoder) SQLNullString(v *sql.NullString) { 55 enc.String(v.String) 56} 57 58// SQLNullStringOmitEmpty adds a string to be encoded, must be used inside an object as it will encode a key 59func (enc *Encoder) SQLNullStringOmitEmpty(v *sql.NullString) { 60 if v != nil && v.Valid && v.String != "" { 61 enc.String(v.String) 62 } 63} 64 65// SQLNullStringNullEmpty adds a string to be encoded, must be used inside an object as it will encode a key 66func (enc *Encoder) SQLNullStringNullEmpty(v *sql.NullString) { 67 if v != nil && v.Valid { 68 enc.StringNullEmpty(v.String) 69 } 70} 71 72// SQLNullStringKey adds a string to be encoded, must be used inside an object as it will encode a key 73func (enc *Encoder) SQLNullStringKey(key string, v *sql.NullString) { 74 enc.StringKey(key, v.String) 75} 76 77// SQLNullStringKeyOmitEmpty adds a string to be encoded or skips it if it is zero value. 78// Must be used inside an object as it will encode a key 79func (enc *Encoder) SQLNullStringKeyOmitEmpty(key string, v *sql.NullString) { 80 if v != nil && v.Valid && v.String != "" { 81 enc.StringKeyOmitEmpty(key, v.String) 82 } 83} 84 85// SQLNullStringKeyNullEmpty adds a string to be encoded or skips it if it is zero value. 86// Must be used inside an object as it will encode a key 87func (enc *Encoder) SQLNullStringKeyNullEmpty(key string, v *sql.NullString) { 88 if v != nil && v.Valid { 89 enc.StringKeyNullEmpty(key, v.String) 90 } 91} 92 93// NullInt64 94 95// EncodeSQLNullInt64 encodes a string to 96func (enc *Encoder) EncodeSQLNullInt64(v *sql.NullInt64) error { 97 if enc.isPooled == 1 { 98 panic(InvalidUsagePooledEncoderError("Invalid usage of pooled encoder")) 99 } 100 _, _ = enc.encodeInt64(v.Int64) 101 _, err := enc.Write() 102 if err != nil { 103 enc.err = err 104 return err 105 } 106 return nil 107} 108 109// AddSQLNullInt64 adds a string to be encoded, must be used inside a slice or array encoding (does not encode a key) 110func (enc *Encoder) AddSQLNullInt64(v *sql.NullInt64) { 111 enc.Int64(v.Int64) 112} 113 114// AddSQLNullInt64OmitEmpty adds a string to be encoded or skips it if it is zero value. 115// Must be used inside a slice or array encoding (does not encode a key) 116func (enc *Encoder) AddSQLNullInt64OmitEmpty(v *sql.NullInt64) { 117 if v != nil && v.Valid && v.Int64 != 0 { 118 enc.Int64OmitEmpty(v.Int64) 119 } 120} 121 122// AddSQLNullInt64NullEmpty adds a string to be encoded or skips it if it is zero value. 123// Must be used inside a slice or array encoding (does not encode a key) 124func (enc *Encoder) AddSQLNullInt64NullEmpty(v *sql.NullInt64) { 125 if v != nil && v.Valid { 126 enc.Int64NullEmpty(v.Int64) 127 } 128} 129 130// AddSQLNullInt64Key adds a string to be encoded, must be used inside an object as it will encode a key 131func (enc *Encoder) AddSQLNullInt64Key(key string, v *sql.NullInt64) { 132 enc.Int64Key(key, v.Int64) 133} 134 135// AddSQLNullInt64KeyOmitEmpty adds a string to be encoded or skips it if it is zero value. 136// Must be used inside an object as it will encode a key 137func (enc *Encoder) AddSQLNullInt64KeyOmitEmpty(key string, v *sql.NullInt64) { 138 if v != nil && v.Valid && v.Int64 != 0 { 139 enc.Int64KeyOmitEmpty(key, v.Int64) 140 } 141} 142 143// AddSQLNullInt64KeyNullEmpty adds a string to be encoded or skips it if it is zero value. 144// Must be used inside an object as it will encode a key 145func (enc *Encoder) AddSQLNullInt64KeyNullEmpty(key string, v *sql.NullInt64) { 146 if v != nil && v.Valid { 147 enc.Int64KeyNullEmpty(key, v.Int64) 148 } 149} 150 151// SQLNullInt64 adds a string to be encoded, must be used inside an object as it will encode a key 152func (enc *Encoder) SQLNullInt64(v *sql.NullInt64) { 153 enc.Int64(v.Int64) 154} 155 156// SQLNullInt64OmitEmpty adds a string to be encoded, must be used inside an object as it will encode a key 157func (enc *Encoder) SQLNullInt64OmitEmpty(v *sql.NullInt64) { 158 if v != nil && v.Valid && v.Int64 != 0 { 159 enc.Int64(v.Int64) 160 } 161} 162 163// SQLNullInt64NullEmpty adds a string to be encoded, must be used inside an object as it will encode a key 164func (enc *Encoder) SQLNullInt64NullEmpty(v *sql.NullInt64) { 165 if v != nil && v.Valid { 166 enc.Int64NullEmpty(v.Int64) 167 } 168} 169 170// SQLNullInt64Key adds a string to be encoded, must be used inside an object as it will encode a key 171func (enc *Encoder) SQLNullInt64Key(key string, v *sql.NullInt64) { 172 enc.Int64Key(key, v.Int64) 173} 174 175// SQLNullInt64KeyOmitEmpty adds a string to be encoded or skips it if it is zero value. 176// Must be used inside an object as it will encode a key 177func (enc *Encoder) SQLNullInt64KeyOmitEmpty(key string, v *sql.NullInt64) { 178 if v != nil && v.Valid && v.Int64 != 0 { 179 enc.Int64KeyOmitEmpty(key, v.Int64) 180 } 181} 182 183// SQLNullInt64KeyNullEmpty adds a string to be encoded or skips it if it is zero value. 184// Must be used inside an object as it will encode a key 185func (enc *Encoder) SQLNullInt64KeyNullEmpty(key string, v *sql.NullInt64) { 186 if v != nil && v.Valid { 187 enc.Int64KeyNullEmpty(key, v.Int64) 188 } 189} 190 191// NullFloat64 192 193// EncodeSQLNullFloat64 encodes a string to 194func (enc *Encoder) EncodeSQLNullFloat64(v *sql.NullFloat64) error { 195 if enc.isPooled == 1 { 196 panic(InvalidUsagePooledEncoderError("Invalid usage of pooled encoder")) 197 } 198 _, _ = enc.encodeFloat(v.Float64) 199 _, err := enc.Write() 200 if err != nil { 201 enc.err = err 202 return err 203 } 204 return nil 205} 206 207// AddSQLNullFloat64 adds a string to be encoded, must be used inside a slice or array encoding (does not encode a key) 208func (enc *Encoder) AddSQLNullFloat64(v *sql.NullFloat64) { 209 enc.Float64(v.Float64) 210} 211 212// AddSQLNullFloat64OmitEmpty adds a string to be encoded or skips it if it is zero value. 213// Must be used inside a slice or array encoding (does not encode a key) 214func (enc *Encoder) AddSQLNullFloat64OmitEmpty(v *sql.NullFloat64) { 215 if v != nil && v.Valid && v.Float64 != 0 { 216 enc.Float64OmitEmpty(v.Float64) 217 } 218} 219 220// AddSQLNullFloat64NullEmpty adds a string to be encoded or skips it if it is zero value. 221// Must be used inside a slice or array encoding (does not encode a key) 222func (enc *Encoder) AddSQLNullFloat64NullEmpty(v *sql.NullFloat64) { 223 if v != nil && v.Valid { 224 enc.Float64NullEmpty(v.Float64) 225 } 226} 227 228// AddSQLNullFloat64Key adds a string to be encoded, must be used inside an object as it will encode a key 229func (enc *Encoder) AddSQLNullFloat64Key(key string, v *sql.NullFloat64) { 230 enc.Float64Key(key, v.Float64) 231} 232 233// AddSQLNullFloat64KeyOmitEmpty adds a string to be encoded or skips it if it is zero value. 234// Must be used inside an object as it will encode a key 235func (enc *Encoder) AddSQLNullFloat64KeyOmitEmpty(key string, v *sql.NullFloat64) { 236 if v != nil && v.Valid && v.Float64 != 0 { 237 enc.Float64KeyOmitEmpty(key, v.Float64) 238 } 239} 240 241// AddSQLNullFloat64KeyNullEmpty adds a string to be encoded or skips it if it is zero value. 242// Must be used inside an object as it will encode a key 243func (enc *Encoder) AddSQLNullFloat64KeyNullEmpty(key string, v *sql.NullFloat64) { 244 if v != nil && v.Valid { 245 enc.Float64KeyNullEmpty(key, v.Float64) 246 } 247} 248 249// SQLNullFloat64 adds a string to be encoded, must be used inside an object as it will encode a key 250func (enc *Encoder) SQLNullFloat64(v *sql.NullFloat64) { 251 enc.Float64(v.Float64) 252} 253 254// SQLNullFloat64OmitEmpty adds a string to be encoded, must be used inside an object as it will encode a key 255func (enc *Encoder) SQLNullFloat64OmitEmpty(v *sql.NullFloat64) { 256 if v != nil && v.Valid && v.Float64 != 0 { 257 enc.Float64(v.Float64) 258 } 259} 260 261// SQLNullFloat64NullEmpty adds a string to be encoded, must be used inside an object as it will encode a key 262func (enc *Encoder) SQLNullFloat64NullEmpty(v *sql.NullFloat64) { 263 if v != nil && v.Valid { 264 enc.Float64NullEmpty(v.Float64) 265 } 266} 267 268// SQLNullFloat64Key adds a string to be encoded, must be used inside an object as it will encode a key 269func (enc *Encoder) SQLNullFloat64Key(key string, v *sql.NullFloat64) { 270 enc.Float64Key(key, v.Float64) 271} 272 273// SQLNullFloat64KeyOmitEmpty adds a string to be encoded or skips it if it is zero value. 274// Must be used inside an object as it will encode a key 275func (enc *Encoder) SQLNullFloat64KeyOmitEmpty(key string, v *sql.NullFloat64) { 276 if v != nil && v.Valid && v.Float64 != 0 { 277 enc.Float64KeyOmitEmpty(key, v.Float64) 278 } 279} 280 281// SQLNullFloat64KeyNullEmpty adds a string to be encoded or skips it if it is zero value. 282// Must be used inside an object as it will encode a key 283func (enc *Encoder) SQLNullFloat64KeyNullEmpty(key string, v *sql.NullFloat64) { 284 if v != nil && v.Valid { 285 enc.Float64KeyNullEmpty(key, v.Float64) 286 } 287} 288 289// NullBool 290 291// EncodeSQLNullBool encodes a string to 292func (enc *Encoder) EncodeSQLNullBool(v *sql.NullBool) error { 293 if enc.isPooled == 1 { 294 panic(InvalidUsagePooledEncoderError("Invalid usage of pooled encoder")) 295 } 296 _, _ = enc.encodeBool(v.Bool) 297 _, err := enc.Write() 298 if err != nil { 299 enc.err = err 300 return err 301 } 302 return nil 303} 304 305// AddSQLNullBool adds a string to be encoded, must be used inside a slice or array encoding (does not encode a key) 306func (enc *Encoder) AddSQLNullBool(v *sql.NullBool) { 307 enc.Bool(v.Bool) 308} 309 310// AddSQLNullBoolOmitEmpty adds a string to be encoded or skips it if it is zero value. 311// Must be used inside a slice or array encoding (does not encode a key) 312func (enc *Encoder) AddSQLNullBoolOmitEmpty(v *sql.NullBool) { 313 if v != nil && v.Valid && v.Bool != false { 314 enc.BoolOmitEmpty(v.Bool) 315 } 316} 317 318// AddSQLNullBoolKey adds a string to be encoded, must be used inside an object as it will encode a key 319func (enc *Encoder) AddSQLNullBoolKey(key string, v *sql.NullBool) { 320 enc.BoolKey(key, v.Bool) 321} 322 323// AddSQLNullBoolKeyOmitEmpty adds a string to be encoded or skips it if it is zero value. 324// Must be used inside an object as it will encode a key 325func (enc *Encoder) AddSQLNullBoolKeyOmitEmpty(key string, v *sql.NullBool) { 326 if v != nil && v.Valid && v.Bool != false { 327 enc.BoolKeyOmitEmpty(key, v.Bool) 328 } 329} 330 331// AddSQLNullBoolKeyNullEmpty adds a string to be encoded or skips it if it is zero value. 332// Must be used inside an object as it will encode a key 333func (enc *Encoder) AddSQLNullBoolKeyNullEmpty(key string, v *sql.NullBool) { 334 if v != nil && v.Valid { 335 enc.BoolKeyNullEmpty(key, v.Bool) 336 } 337} 338 339// SQLNullBool adds a string to be encoded, must be used inside an object as it will encode a key 340func (enc *Encoder) SQLNullBool(v *sql.NullBool) { 341 enc.Bool(v.Bool) 342} 343 344// SQLNullBoolOmitEmpty adds a string to be encoded, must be used inside an object as it will encode a key 345func (enc *Encoder) SQLNullBoolOmitEmpty(v *sql.NullBool) { 346 if v != nil && v.Valid && v.Bool != false { 347 enc.Bool(v.Bool) 348 } 349} 350 351// SQLNullBoolNullEmpty adds a string to be encoded, must be used inside an object as it will encode a key 352func (enc *Encoder) SQLNullBoolNullEmpty(v *sql.NullBool) { 353 if v != nil && v.Valid { 354 enc.BoolNullEmpty(v.Bool) 355 } 356} 357 358// SQLNullBoolKey adds a string to be encoded, must be used inside an object as it will encode a key 359func (enc *Encoder) SQLNullBoolKey(key string, v *sql.NullBool) { 360 enc.BoolKey(key, v.Bool) 361} 362 363// SQLNullBoolKeyOmitEmpty adds a string to be encoded or skips it if it is zero value. 364// Must be used inside an object as it will encode a key 365func (enc *Encoder) SQLNullBoolKeyOmitEmpty(key string, v *sql.NullBool) { 366 if v != nil && v.Valid && v.Bool != false { 367 enc.BoolKeyOmitEmpty(key, v.Bool) 368 } 369} 370 371// SQLNullBoolKeyNullEmpty adds a string to be encoded or skips it if it is zero value. 372// Must be used inside an object as it will encode a key 373func (enc *Encoder) SQLNullBoolKeyNullEmpty(key string, v *sql.NullBool) { 374 if v != nil && v.Valid { 375 enc.BoolKeyNullEmpty(key, v.Bool) 376 } 377} 378