mirror of
https://github.com/protocolbuffers/protobuf-go.git
synced 2025-01-27 03:35:32 +00:00
68b81c3117
Change the storage type of ExtensionField from interface{} to protoreflect.Value. Replace the codec functions operating on interface{}s with ones operating on Values. Values are potentially more efficient, since they can represent non-pointer types without allocation. This also reduces the number of types used to represent field values. Additionally, this change lays groundwork for changing the user-visible representation of repeated extension fields from *[]T to []T. The storage type for extension fields must support mutation (thus *[]T currently); changing the storage type to a Value permits this without the need to introduce yet another view on field values. Change-Id: Ida336be14112bb940f655236eb58df21bf312525 Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/192218 Reviewed-by: Joe Tsai <thebrokentoaster@gmail.com>