aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksii Prokopchuk <prokopchuk@google.com>2022-11-09 02:24:10 +0000
committerMichael Stapelberg <stapelberg@google.com>2022-11-14 16:01:29 +0000
commit4d6d2135eba33eaef1c020129188ce7e82aa4270 (patch)
treeaf40f2d6e79c50721d19321092c58325f4656863
parent7a48e2b66218ba306ed801e42126b374aefce255 (diff)
downloadgolang-protobuf-4d6d2135eba33eaef1c020129188ce7e82aa4270.tar.gz
proto: expose package-private equalField.
There is a demand for comparing protobuf.Value-s. One use case is when one wants to compare just one field via reflection. Another is when one wants to iterate over fields and check for diffs. Existing diff packages are recommended only for tests as they panic on error. Exposing equalField will prevent excessive branching of proto/equal.go code. Change-Id: Iec8843dae96c9ae3c45858e8b97e7aa963473ce2 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/448876 Reviewed-by: Michael Stapelberg <stapelberg@google.com> Run-TryBot: Michael Stapelberg <stapelberg@google.com> TryBot-Bypass: Michael Stapelberg <stapelberg@google.com>
-rw-r--r--proto/equal.go5
1 files changed, 5 insertions, 0 deletions
diff --git a/proto/equal.go b/proto/equal.go
index 67948dd1..12d064d4 100644
--- a/proto/equal.go
+++ b/proto/equal.go
@@ -74,6 +74,11 @@ func equalMessage(mx, my protoreflect.Message) bool {
return equalUnknown(mx.GetUnknown(), my.GetUnknown())
}
+// EqualField compares two fields.
+func EqualField(fd protoreflect.FieldDescriptor, x, y protoreflect.Value) bool {
+ return equalField(fd, x, y)
+}
+
// equalField compares two fields.
func equalField(fd protoreflect.FieldDescriptor, x, y protoreflect.Value) bool {
switch {