| 141 | } |
| 142 | |
| 143 | func (e *encoder) encodeMap(rv reflect.Value) (cbor.Map, error) { |
| 144 | mv := cbor.Map{} |
| 145 | for _, key := range rv.MapKeys() { |
| 146 | keyName := fmt.Sprint(key.Interface()) |
| 147 | if keyName == "" { |
| 148 | return nil, &document.InvalidMarshalError{Message: "map key cannot be empty"} |
| 149 | } |
| 150 | |
| 151 | cv, err := e.encode(rv.MapIndex(key), serde.Tag{}) |
| 152 | if err != nil { |
| 153 | return nil, err |
| 154 | } |
| 155 | |
| 156 | mv[keyName] = cv |
| 157 | } |
| 158 | return mv, nil |
| 159 | } |
| 160 | |
| 161 | func (e *encoder) encodeSlice(rv reflect.Value) (cbor.List, error) { |
| 162 | lv := cbor.List{} |