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

Method ObjectKey

encode_object.go:223–261  ·  view source on GitHub ↗

ObjectKey adds a struct to be encoded, must be used inside an object as it will encode a key value must implement MarshalerJSONObject

(key string, v MarshalerJSONObject)

Source from the content-addressed store, hash-verified

221// ObjectKey adds a struct to be encoded, must be used inside an object as it will encode a key
222// value must implement MarshalerJSONObject
223func (enc *Encoder) ObjectKey(key string, v MarshalerJSONObject) {
224 if enc.hasKeys {
225 if !enc.keyExists(key) {
226 return
227 }
228 }
229 if v.IsNil() {
230 enc.grow(2 + len(key))
231 r := enc.getPreviousRune()
232 if r != '{' {
233 enc.writeByte(',')
234 }
235 enc.writeByte('"')
236 enc.writeStringEscape(key)
237 enc.writeBytes(objKeyObj)
238 enc.writeByte('}')
239 return
240 }
241 enc.grow(5 + len(key))
242 r := enc.getPreviousRune()
243 if r != '{' {
244 enc.writeByte(',')
245 }
246 enc.writeByte('"')
247 enc.writeStringEscape(key)
248 enc.writeBytes(objKeyObj)
249
250 var origHasKeys = enc.hasKeys
251 var origKeys = enc.keys
252 enc.hasKeys = false
253 enc.keys = nil
254
255 v.MarshalJSONObject(enc)
256
257 enc.hasKeys = origHasKeys
258 enc.keys = origKeys
259
260 enc.writeByte('}')
261}
262
263// ObjectKeyWithKeys adds a struct to be encoded, must be used inside an object as it will encode a key.
264// Value must implement MarshalerJSONObject. It will only encode the keys in keys.

Callers 7

AddObjectKeyMethod · 0.95
MarshalJSONObjectMethod · 0.80
MarshalJSONObjectMethod · 0.80
MarshalJSONObjectMethod · 0.80
MarshalJSONObjectMethod · 0.80
MarshalJSONObjectMethod · 0.80
MarshalJSONObjectMethod · 0.80

Calls 8

keyExistsMethod · 0.95
growMethod · 0.95
getPreviousRuneMethod · 0.95
writeByteMethod · 0.95
writeStringEscapeMethod · 0.95
writeBytesMethod · 0.95
IsNilMethod · 0.65
MarshalJSONObjectMethod · 0.65

Tested by 1

MarshalJSONObjectMethod · 0.64