encoding: add TODOs for producing better error messages with handling of Any
Change-Id: Iaab531d8ae454715338bf079a2749afeedc978f9
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/175577
Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>
diff --git a/encoding/jsonpb/well_known_types.go b/encoding/jsonpb/well_known_types.go
index f974a0b..a7a30c1 100644
--- a/encoding/jsonpb/well_known_types.go
+++ b/encoding/jsonpb/well_known_types.go
@@ -178,6 +178,9 @@
em := emt.New()
// TODO: Need to set types registry in binary unmarshaling.
+ // TODO: If binary unmarshaling returns required not set error, need to
+ // return another required not set error that contains both the path to this
+ // field and the path inside the embedded message.
err = proto.UnmarshalOptions{
AllowPartial: o.AllowPartial,
}.Unmarshal(valueVal.Bytes(), em.Interface())
@@ -249,6 +252,9 @@
}
// Serialize the embedded message and assign the resulting bytes to the
// proto value field.
+ // TODO: If binary marshaling returns required not set error, need to return
+ // another required not set error that contains both the path to this field
+ // and the path inside the embedded message.
b, err := proto.MarshalOptions{
AllowPartial: o.AllowPartial,
Deterministic: true,
diff --git a/encoding/textpb/decode.go b/encoding/textpb/decode.go
index 863911f..040a0e8 100644
--- a/encoding/textpb/decode.go
+++ b/encoding/textpb/decode.go
@@ -500,6 +500,9 @@
return err
}
// Serialize the embedded message and assign the resulting bytes to the value field.
+ // TODO: If binary marshaling returns required not set error, need to
+ // return another required not set error that contains both the path to this
+ // field and the path inside the embedded message.
b, err := proto.MarshalOptions{
AllowPartial: o.AllowPartial,
Deterministic: true,
diff --git a/encoding/textpb/encode.go b/encoding/textpb/encode.go
index bce34b7..78ed3a2 100644
--- a/encoding/textpb/encode.go
+++ b/encoding/textpb/encode.go
@@ -362,6 +362,9 @@
}
em := emt.New().Interface()
// TODO: Need to set types registry in binary unmarshaling.
+ // TODO: If binary unmarshaling returns required not set error, need to
+ // return another required not set error that contains both the path to this
+ // field and the path inside the embedded message.
err = proto.UnmarshalOptions{
AllowPartial: o.AllowPartial,
}.Unmarshal(value.Bytes(), em)