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

Method Object

encode_object.go:102–131  ·  view source on GitHub ↗

Object adds an object to be encoded, must be used inside a slice or array encoding (does not encode a key) value must implement MarshalerJSONObject

(v MarshalerJSONObject)

Source from the content-addressed store, hash-verified

100// Object adds an object to be encoded, must be used inside a slice or array encoding (does not encode a key)
101// value must implement MarshalerJSONObject
102func (enc *Encoder) Object(v MarshalerJSONObject) {
103 if v.IsNil() {
104 enc.grow(2)
105 r := enc.getPreviousRune()
106 if r != '{' && r != '[' {
107 enc.writeByte(',')
108 }
109 enc.writeByte('{')
110 enc.writeByte('}')
111 return
112 }
113 enc.grow(4)
114 r := enc.getPreviousRune()
115 if r != '[' {
116 enc.writeByte(',')
117 }
118 enc.writeByte('{')
119
120 var origHasKeys = enc.hasKeys
121 var origKeys = enc.keys
122 enc.hasKeys = false
123 enc.keys = nil
124
125 v.MarshalJSONObject(enc)
126
127 enc.hasKeys = origHasKeys
128 enc.keys = origKeys
129
130 enc.writeByte('}')
131}
132
133// ObjectWithKeys adds an object to be encoded, must be used inside a slice or array encoding (does not encode a key)
134// value must implement MarshalerJSONObject. It will only encode the keys in keys.

Callers 1

AddObjectMethod · 0.95

Calls 5

growMethod · 0.95
getPreviousRuneMethod · 0.95
writeByteMethod · 0.95
IsNilMethod · 0.65
MarshalJSONObjectMethod · 0.65

Tested by

no test coverage detected