🐛 WriteValue can handle slices and maps
This commit is contained in:
parent
820a2de269
commit
59634f6c3f
2 changed files with 14 additions and 0 deletions
|
|
@ -14,6 +14,18 @@ func WriteValue(buff *bytes.Buffer, val any) (n int, err error) {
|
|||
err = fmt.Errorf("Unsupported type %T", v)
|
||||
case nil:
|
||||
return
|
||||
case []any:
|
||||
var o []byte
|
||||
o, err = json.Marshal(v)
|
||||
if err == nil {
|
||||
return buff.Write(o)
|
||||
}
|
||||
case map[string]any:
|
||||
var o []byte
|
||||
o, err = json.Marshal(v)
|
||||
if err == nil {
|
||||
return buff.Write(o)
|
||||
}
|
||||
case string:
|
||||
return buff.WriteString(v)
|
||||
case int:
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ func TestWriteBuffer(t *testing.T) {
|
|||
{"json.Number", json.Number("42.13"), "42.13", nil},
|
||||
{"json.RawMessage", json.RawMessage("{}"), "{}", nil},
|
||||
{"time", when, when.Format(time.RFC3339), nil},
|
||||
{"slice", []any{1, 2, "foo"}, `[1,2,"foo"]`, nil},
|
||||
{"map", map[string]any{"baz": 42, "foo": "bar"}, `{"baz":42,"foo":"bar"}`, nil},
|
||||
{"struct", struct{}{}, "", errors.New("Unsupported type struct {}")},
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue