diff options
author | Oleksii Prokopchuk <prokopchuk@google.com> | 2022-11-09 02:24:10 +0000 |
---|---|---|
committer | Michael Stapelberg <stapelberg@google.com> | 2022-11-14 16:01:29 +0000 |
commit | 4d6d2135eba33eaef1c020129188ce7e82aa4270 (patch) | |
tree | af40f2d6e79c50721d19321092c58325f4656863 | |
parent | 7a48e2b66218ba306ed801e42126b374aefce255 (diff) | |
download | golang-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.go | 5 |
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 { |