MCPcopy Create free account
hub / github.com/francoispqt/gojay / AddInterfaceKeyOmitEmpty

Method AddInterfaceKeyOmitEmpty

encode_interface.go:134–173  ·  view source on GitHub ↗

AddInterfaceKeyOmitEmpty adds an interface{} to be encoded, must be used inside an object as it will encode a key

(key string, v interface{})

Source from the content-addressed store, hash-verified

132
133// AddInterfaceKeyOmitEmpty adds an interface{} to be encoded, must be used inside an object as it will encode a key
134func (enc *Encoder) AddInterfaceKeyOmitEmpty(key string, v interface{}) {
135 switch vt := v.(type) {
136 case string:
137 enc.AddStringKeyOmitEmpty(key, vt)
138 case bool:
139 enc.AddBoolKeyOmitEmpty(key, vt)
140 case MarshalerJSONArray:
141 enc.AddArrayKeyOmitEmpty(key, vt)
142 case MarshalerJSONObject:
143 enc.AddObjectKeyOmitEmpty(key, vt)
144 case int:
145 enc.AddIntKeyOmitEmpty(key, vt)
146 case int64:
147 enc.AddIntKeyOmitEmpty(key, int(vt))
148 case int32:
149 enc.AddIntKeyOmitEmpty(key, int(vt))
150 case int16:
151 enc.AddIntKeyOmitEmpty(key, int(vt))
152 case int8:
153 enc.AddIntKeyOmitEmpty(key, int(vt))
154 case uint64:
155 enc.AddIntKeyOmitEmpty(key, int(vt))
156 case uint32:
157 enc.AddIntKeyOmitEmpty(key, int(vt))
158 case uint16:
159 enc.AddIntKeyOmitEmpty(key, int(vt))
160 case uint8:
161 enc.AddIntKeyOmitEmpty(key, int(vt))
162 case float64:
163 enc.AddFloatKeyOmitEmpty(key, vt)
164 case float32:
165 enc.AddFloat32KeyOmitEmpty(key, vt)
166 default:
167 if vt != nil {
168 enc.err = InvalidMarshalError(fmt.Sprintf(invalidMarshalErrorMsg, vt))
169 return
170 }
171 return
172 }
173}

Callers 2

MarshalJSONObjectMethod · 0.80

Calls 8

AddStringKeyOmitEmptyMethod · 0.95
AddBoolKeyOmitEmptyMethod · 0.95
AddArrayKeyOmitEmptyMethod · 0.95
AddObjectKeyOmitEmptyMethod · 0.95
AddIntKeyOmitEmptyMethod · 0.95
AddFloatKeyOmitEmptyMethod · 0.95
InvalidMarshalErrorTypeAlias · 0.85

Tested by 2

MarshalJSONObjectMethod · 0.64