MCPcopy Create free account
hub / github.com/tendermint/tendermint / encodeReflectStruct

Function encodeReflectStruct

libs/json/encoder.go:184–213  ·  view source on GitHub ↗
(w io.Writer, rv reflect.Value)

Source from the content-addressed store, hash-verified

182}
183
184func encodeReflectStruct(w io.Writer, rv reflect.Value) error {
185 sInfo := makeStructInfo(rv.Type())
186 if err := writeStr(w, "{"); err != nil {
187 return err
188 }
189 writeComma := false
190 for i, fInfo := range sInfo.fields {
191 frv := rv.Field(i)
192 if fInfo.hidden || (fInfo.omitEmpty && frv.IsZero()) {
193 continue
194 }
195
196 if writeComma {
197 if err := writeStr(w, ","); err != nil {
198 return err
199 }
200 }
201 if err := encodeStdlib(w, fInfo.jsonName); err != nil {
202 return err
203 }
204 if err := writeStr(w, ":"); err != nil {
205 return err
206 }
207 if err := encodeReflect(w, frv); err != nil {
208 return err
209 }
210 writeComma = true
211 }
212 return writeStr(w, "}")
213}
214
215func encodeReflectInterface(w io.Writer, rv reflect.Value) error {
216 // Get concrete value and dereference pointers.

Callers 1

encodeReflectFunction · 0.85

Calls 6

makeStructInfoFunction · 0.85
writeStrFunction · 0.85
encodeStdlibFunction · 0.85
encodeReflectFunction · 0.85
TypeMethod · 0.65
IsZeroMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…