(e *Encoder, strct reflect.Value)
| 190 | } |
| 191 | |
| 192 | func encodeStructValue(e *Encoder, strct reflect.Value) error { |
| 193 | structFields := structs.Fields(strct.Type(), e.structTag) |
| 194 | if e.flags&arrayEncodedStructsFlag != 0 || structFields.AsArray { |
| 195 | return encodeStructValueAsArray(e, strct, structFields.List) |
| 196 | } |
| 197 | fields := structFields.OmitEmpty(e, strct) |
| 198 | |
| 199 | if err := e.EncodeMapLen(len(fields)); err != nil { |
| 200 | return err |
| 201 | } |
| 202 | |
| 203 | for _, f := range fields { |
| 204 | if err := e.EncodeString(f.name); err != nil { |
| 205 | return err |
| 206 | } |
| 207 | if err := f.EncodeValue(e, strct); err != nil { |
| 208 | return err |
| 209 | } |
| 210 | } |
| 211 | |
| 212 | return nil |
| 213 | } |
| 214 | |
| 215 | func encodeStructValueAsArray(e *Encoder, strct reflect.Value, fields []*field) error { |
| 216 | if err := e.EncodeArrayLen(len(fields)); err != nil { |
nothing calls this directly
no test coverage detected
searching dependent graphs…