internal/impl: unexport Unwrapper
This interface is only ever used within the impl package.
Unexport it to avoid potential abuse by users.
Change-Id: I58d0cc2e8cb01c8c9d36cdec469c8d2196c4f836
Reviewed-on: https://go-review.googlesource.com/c/protobuf/+/193197
Reviewed-by: Damien Neil <dneil@google.com>
diff --git a/internal/cmd/generate-types/impl.go b/internal/cmd/generate-types/impl.go
index 582ecae..3cf9cae 100644
--- a/internal/cmd/generate-types/impl.go
+++ b/internal/cmd/generate-types/impl.go
@@ -631,15 +631,15 @@
}
func (m *{{.}}) Interface() protoreflect.ProtoMessage {
{{if eq . "messageState" -}}
- return m.ProtoUnwrap().(protoreflect.ProtoMessage)
+ return m.protoUnwrap().(protoreflect.ProtoMessage)
{{- else -}}
- if m, ok := m.ProtoUnwrap().(protoreflect.ProtoMessage); ok {
+ if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok {
return m
}
return (*messageIfaceWrapper)(m)
{{- end -}}
}
-func (m *{{.}}) ProtoUnwrap() interface{} {
+func (m *{{.}}) protoUnwrap() interface{} {
return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
}
func (m *{{.}}) ProtoMethods() *protoiface.Methods {
diff --git a/internal/impl/api_export.go b/internal/impl/api_export.go
index 55c5481..f2b3738 100644
--- a/internal/impl/api_export.go
+++ b/internal/impl/api_export.go
@@ -74,8 +74,8 @@
switch mv := m.(type) {
case piface.MessageV1:
return mv
- case Unwrapper:
- return Export{}.ProtoMessageV1Of(mv.ProtoUnwrap())
+ case unwrapper:
+ return Export{}.ProtoMessageV1Of(mv.protoUnwrap())
case protoreflect.ProtoMessage:
return legacyMessageWrapper{mv}
default:
diff --git a/internal/impl/convert.go b/internal/impl/convert.go
index 2186b26..67cd7f8 100644
--- a/internal/impl/convert.go
+++ b/internal/impl/convert.go
@@ -11,10 +11,10 @@
pref "google.golang.org/protobuf/reflect/protoreflect"
)
-// Unwrapper unwraps the value to the underlying value.
+// unwrapper unwraps the value to the underlying value.
// This is implemented by List and Map.
-type Unwrapper interface {
- ProtoUnwrap() interface{}
+type unwrapper interface {
+ protoUnwrap() interface{}
}
// A Converter coverts to/from Go reflect.Value types and protobuf protoreflect.Value types.
@@ -432,8 +432,8 @@
func (c *messageConverter) GoValueOf(v pref.Value) reflect.Value {
m := v.Message()
var rv reflect.Value
- if u, ok := m.(Unwrapper); ok {
- rv = reflect.ValueOf(u.ProtoUnwrap())
+ if u, ok := m.(unwrapper); ok {
+ rv = reflect.ValueOf(u.protoUnwrap())
} else {
rv = reflect.ValueOf(m.Interface())
}
@@ -446,8 +446,8 @@
func (c *messageConverter) IsValidPB(v pref.Value) bool {
m := v.Message()
var rv reflect.Value
- if u, ok := m.(Unwrapper); ok {
- rv = reflect.ValueOf(u.ProtoUnwrap())
+ if u, ok := m.(unwrapper); ok {
+ rv = reflect.ValueOf(u.protoUnwrap())
} else {
rv = reflect.ValueOf(m.Interface())
}
diff --git a/internal/impl/convert_list.go b/internal/impl/convert_list.go
index fa3a400..cd632cd 100644
--- a/internal/impl/convert_list.go
+++ b/internal/impl/convert_list.go
@@ -128,6 +128,6 @@
func (ls *listReflect) NewElement() pref.Value {
return ls.conv.New()
}
-func (ls *listReflect) ProtoUnwrap() interface{} {
+func (ls *listReflect) protoUnwrap() interface{} {
return ls.v.Interface()
}
diff --git a/internal/impl/convert_map.go b/internal/impl/convert_map.go
index ca51819..68fb506 100644
--- a/internal/impl/convert_map.go
+++ b/internal/impl/convert_map.go
@@ -105,6 +105,6 @@
func (ms *mapReflect) NewValue() pref.Value {
return ms.valConv.New()
}
-func (ms *mapReflect) ProtoUnwrap() interface{} {
+func (ms *mapReflect) protoUnwrap() interface{} {
return ms.v.Interface()
}
diff --git a/internal/impl/legacy_enum.go b/internal/impl/legacy_enum.go
index 4ec31df..c92eadf 100644
--- a/internal/impl/legacy_enum.go
+++ b/internal/impl/legacy_enum.go
@@ -101,7 +101,7 @@
func (e *legacyEnumWrapper) ProtoReflect() pref.Enum {
return e
}
-func (e *legacyEnumWrapper) ProtoUnwrap() interface{} {
+func (e *legacyEnumWrapper) protoUnwrap() interface{} {
v := reflect.New(e.goTyp).Elem()
v.SetInt(int64(e.num))
return v.Interface()
@@ -109,7 +109,7 @@
var (
_ pref.Enum = (*legacyEnumWrapper)(nil)
- _ Unwrapper = (*legacyEnumWrapper)(nil)
+ _ unwrapper = (*legacyEnumWrapper)(nil)
)
var legacyEnumDescCache sync.Map // map[reflect.Type]protoreflect.EnumDescriptor
diff --git a/internal/impl/legacy_extension.go b/internal/impl/legacy_extension.go
index b845f35..bfa6e1b 100644
--- a/internal/impl/legacy_extension.go
+++ b/internal/impl/legacy_extension.go
@@ -54,8 +54,8 @@
// Create a new parent message and unwrap it if possible.
mv := mt.New().Interface()
t := reflect.TypeOf(mv)
- if mv, ok := mv.(Unwrapper); ok {
- t = reflect.TypeOf(mv.ProtoUnwrap())
+ if mv, ok := mv.(unwrapper); ok {
+ t = reflect.TypeOf(mv.protoUnwrap())
}
// Check whether the message implements the legacy v1 Message interface.
diff --git a/internal/impl/message_reflect.go b/internal/impl/message_reflect.go
index 469b255..b34e479 100644
--- a/internal/impl/message_reflect.go
+++ b/internal/impl/message_reflect.go
@@ -221,7 +221,7 @@
var (
_ pref.Message = (*messageState)(nil)
- _ Unwrapper = (*messageState)(nil)
+ _ unwrapper = (*messageState)(nil)
)
// messageDataType is a tuple of a pointer to the message data and
@@ -240,9 +240,9 @@
var (
_ pref.Message = (*messageReflectWrapper)(nil)
- _ Unwrapper = (*messageReflectWrapper)(nil)
+ _ unwrapper = (*messageReflectWrapper)(nil)
_ pref.ProtoMessage = (*messageIfaceWrapper)(nil)
- _ Unwrapper = (*messageIfaceWrapper)(nil)
+ _ unwrapper = (*messageIfaceWrapper)(nil)
)
// MessageOf returns a reflective view over a message. The input must be a
@@ -266,7 +266,7 @@
func (m *messageIfaceWrapper) ProtoReflect() pref.Message {
return (*messageReflectWrapper)(m)
}
-func (m *messageIfaceWrapper) ProtoUnwrap() interface{} {
+func (m *messageIfaceWrapper) protoUnwrap() interface{} {
return m.p.AsIfaceOf(m.mi.GoReflectType.Elem())
}
diff --git a/internal/impl/message_reflect_field.go b/internal/impl/message_reflect_field.go
index 6f7051b..e55b6de 100644
--- a/internal/impl/message_reflect_field.go
+++ b/internal/impl/message_reflect_field.go
@@ -189,7 +189,7 @@
},
set: func(p pointer, v pref.Value) {
rv := p.Apply(fieldOffset).AsValueOf(fs.Type).Elem()
- rv.Set(reflect.ValueOf(v.List().(Unwrapper).ProtoUnwrap()).Elem())
+ rv.Set(reflect.ValueOf(v.List().(unwrapper).protoUnwrap()).Elem())
},
mutable: func(p pointer) pref.Value {
v := p.Apply(fieldOffset).AsValueOf(fs.Type)
diff --git a/internal/impl/message_reflect_gen.go b/internal/impl/message_reflect_gen.go
index 5376920..9968277 100644
--- a/internal/impl/message_reflect_gen.go
+++ b/internal/impl/message_reflect_gen.go
@@ -21,9 +21,9 @@
return m.messageInfo().New()
}
func (m *messageState) Interface() protoreflect.ProtoMessage {
- return m.ProtoUnwrap().(protoreflect.ProtoMessage)
+ return m.protoUnwrap().(protoreflect.ProtoMessage)
}
-func (m *messageState) ProtoUnwrap() interface{} {
+func (m *messageState) protoUnwrap() interface{} {
return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
}
func (m *messageState) ProtoMethods() *protoiface.Methods {
@@ -128,12 +128,12 @@
return m.messageInfo().New()
}
func (m *messageReflectWrapper) Interface() protoreflect.ProtoMessage {
- if m, ok := m.ProtoUnwrap().(protoreflect.ProtoMessage); ok {
+ if m, ok := m.protoUnwrap().(protoreflect.ProtoMessage); ok {
return m
}
return (*messageIfaceWrapper)(m)
}
-func (m *messageReflectWrapper) ProtoUnwrap() interface{} {
+func (m *messageReflectWrapper) protoUnwrap() interface{} {
return m.pointer().AsIfaceOf(m.messageInfo().GoReflectType.Elem())
}
func (m *messageReflectWrapper) ProtoMethods() *protoiface.Methods {