(b []byte, p unsafe.Pointer, t reflect.Type, encodeKey, encodeValue encodeFunc, sortKeys sortFunc)
| 101 | return b, nil |
| 102 | } |
| 103 | func (e encoder) encodeMap(b []byte, p unsafe.Pointer, t reflect.Type, encodeKey, encodeValue encodeFunc, sortKeys sortFunc) (_ []byte, err error) { |
| 104 | m := reflect.NewAt(t, p).Elem() |
| 105 | if m.IsNil() { |
| 106 | return AppendNil(b), nil |
| 107 | } |
| 108 | keys := m.MapKeys() |
| 109 | if sortKeys != nil && (e.flags&SortedMapKeys) != 0 { |
| 110 | sortKeys(keys) |
| 111 | } |
| 112 | b = AppendMapLen(b, len(keys)) |
| 113 | for _, k := range keys { |
| 114 | v := m.MapIndex(k) |
| 115 | if b, err = encodeKey(e, b, (*eface)(unsafe.Pointer(&k)).ptr); err != nil { |
| 116 | return b, err |
| 117 | } |
| 118 | if b, err = encodeValue(e, b, (*eface)(unsafe.Pointer(&v)).ptr); err != nil { |
| 119 | return b, err |
| 120 | } |
| 121 | } |
| 122 | return b, nil |
| 123 | } |
| 124 | func (e encoder) encodeMapInterfaceInterface(b []byte, p unsafe.Pointer) ([]byte, error) { |
| 125 | return AppendMapInterfaceInterface(b, *(*map[any]any)(p), e.flags) |
| 126 | } |
no test coverage detected