encoding/jsonpb: change MarshalOptions.Compact option to Indent
This makes it consistent with jsonpb.MarshalOptions. This does change
the default to be in compact form.
Change-Id: I1b07f06f282c019b30f3f1cbb43f6c8cba18f385
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/168405
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/encoding/textpb/encode.go b/encoding/textpb/encode.go
index ebc33b7..93eab31 100644
--- a/encoding/textpb/encode.go
+++ b/encoding/textpb/encode.go
@@ -27,8 +27,10 @@
type MarshalOptions struct {
pragma.NoUnkeyedLiterals
- // Set Compact to true to have output in a single line with no line breaks.
- Compact bool
+ // If Indent is a non-empty string, it causes entries for a Message to be
+ // preceded by the indent and trailed by a newline. Indent can only be
+ // composed of space or tab characters.
+ Indent string
// Resolver is the registry used for type lookups when marshaling out
// google.protobuf.Any messages in expanded form. If Resolver is not set,
@@ -49,14 +51,9 @@
return nil, err
}
- indent := " "
- if o.Compact {
- indent = ""
- }
delims := [2]byte{'{', '}'}
-
const outputASCII = false
- b, err := text.Marshal(v, indent, delims, outputASCII)
+ b, err := text.Marshal(v, o.Indent, delims, outputASCII)
if !nerr.Merge(err) {
return nil, err
}
diff --git a/encoding/textpb/encode_test.go b/encoding/textpb/encode_test.go
index 6a6cd7a..b2fed47 100644
--- a/encoding/textpb/encode_test.go
+++ b/encoding/textpb/encode_test.go
@@ -1111,7 +1111,8 @@
for _, tt := range tests {
tt := tt
t.Run(tt.desc, func(t *testing.T) {
- t.Parallel()
+ // Use 2-space indentation on all MarshalOptions.
+ tt.mo.Indent = " "
b, err := tt.mo.Marshal(tt.input)
if err != nil && !tt.wantErr {
t.Errorf("Marshal() returned error: %v\n", err)
diff --git a/internal/impl/export.go b/internal/impl/export.go
index 12ce51b..801457b 100644
--- a/internal/impl/export.go
+++ b/internal/impl/export.go
@@ -91,6 +91,6 @@
// MessageStringOf returns the message value as a string,
// which is the message serialized in the protobuf text format.
func (Export) MessageStringOf(m pref.ProtoMessage) string {
- b, _ := textpb.MarshalOptions{Compact: true}.Marshal(m)
+ b, _ := textpb.Marshal(m)
return string(b)
}
diff --git a/protogen/protogen.go b/protogen/protogen.go
index 23bc69a..1aade1b 100644
--- a/protogen/protogen.go
+++ b/protogen/protogen.go
@@ -1110,7 +1110,7 @@
}
}
- b, err := textpb.MarshalOptions{Compact: true}.Marshal(info)
+ b, err := textpb.Marshal(info)
if err != nil {
return "", err
}