(w io.Writer, rv reflect.Value)
| 151 | } |
| 152 | |
| 153 | func encodeReflectMap(w io.Writer, rv reflect.Value) error { |
| 154 | if rv.Type().Key().Kind() != reflect.String { |
| 155 | return errors.New("map key must be string") |
| 156 | } |
| 157 | |
| 158 | // nil maps are not emitted as nil, to retain Amino compatibility. |
| 159 | |
| 160 | if err := writeStr(w, "{"); err != nil { |
| 161 | return err |
| 162 | } |
| 163 | writeComma := false |
| 164 | for _, keyrv := range rv.MapKeys() { |
| 165 | if writeComma { |
| 166 | if err := writeStr(w, ","); err != nil { |
| 167 | return err |
| 168 | } |
| 169 | } |
| 170 | if err := encodeStdlib(w, keyrv.Interface()); err != nil { |
| 171 | return err |
| 172 | } |
| 173 | if err := writeStr(w, ":"); err != nil { |
| 174 | return err |
| 175 | } |
| 176 | if err := encodeReflect(w, rv.MapIndex(keyrv)); err != nil { |
| 177 | return err |
| 178 | } |
| 179 | writeComma = true |
| 180 | } |
| 181 | return writeStr(w, "}") |
| 182 | } |
| 183 | |
| 184 | func encodeReflectStruct(w io.Writer, rv reflect.Value) error { |
| 185 | sInfo := makeStructInfo(rv.Type()) |
no test coverage detected
searching dependent graphs…