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