diff --git a/value-encoder.go b/value-encoder.go index b56a056..4604320 100644 --- a/value-encoder.go +++ b/value-encoder.go @@ -238,7 +238,7 @@ func (e *ValueEncoder) encodeString(v reflect.Value) error { func (e *ValueEncoder) encodeStruct(v reflect.Value, t reflect.Type) error { if v.NumField() == 0 { - return e.writeString("()") + return e.writeString("(:)") } if err := e.writeString("(\n"); err != nil { @@ -309,7 +309,7 @@ func (e *ValueEncoder) resolveKeyName(v reflect.Value) (string, error) { func (e *ValueEncoder) encodeMap(v reflect.Value) error { if v.Len() == 0 { - return e.writeString("()") + return e.writeString("(:)") } if err := e.writeString("(\n"); err != nil { diff --git a/value-encoder_test.go b/value-encoder_test.go index c80cc11..657a8a8 100644 --- a/value-encoder_test.go +++ b/value-encoder_test.go @@ -134,11 +134,11 @@ func TestValueEncoder(t *testing.T) { Foo string `typst:"foo"` Bar int `typst:"-"` }{"Hey!", 12345}, false, "(\n \"foo\": \"Hey!\",\n)"}, - {"struct empty", struct{}{}, false, "()"}, + {"struct empty", struct{}{}, false, "(:)"}, {"struct empty pointer", (*struct{})(nil), false, "none"}, {"map string string", map[string]string{"Foo": "Bar", "Foo2": "Electric Foogaloo"}, false, "(\n \"Foo\": \"Bar\",\n \"Foo2\": \"Electric Foogaloo\",\n)"}, - {"map string string empty", map[string]string{}, false, "()"}, - {"map string string nil", map[string]string(nil), false, "()"}, + {"map string string empty", map[string]string{}, false, "(:)"}, + {"map string string nil", map[string]string(nil), false, "(:)"}, {"map string string key escape", map[string]string{"A\nNew": "Line"}, false, "(\n \"A\\nNew\": \"Line\",\n)"}, {"map int string", map[int]string{1: "Foo", 2: "Bar"}, false, "(\n \"1\": \"Foo\",\n \"2\": \"Bar\",\n)"}, {"map int string negative keys", map[int]string{-1: "Foo", -2: "Bar"}, false, "(\n \"-1\": \"Foo\",\n \"-2\": \"Bar\",\n)"},