(w io.Writer, rv reflect.Value)
| 182 | } |
| 183 | |
| 184 | func 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 | |
| 215 | func encodeReflectInterface(w io.Writer, rv reflect.Value) error { |
| 216 | // Get concrete value and dereference pointers. |
no test coverage detected
searching dependent graphs…