1 // Copyright 2023 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4 5 // Package protoadapt bridges the original and new proto APIs.
6 package protoadapt
7 8 import (
9 "google.golang.org/protobuf/proto"
10 "google.golang.org/protobuf/runtime/protoiface"
11 "google.golang.org/protobuf/runtime/protoimpl"
12 )
13 14 // MessageV1 is the original [github.com/golang/protobuf/proto.Message] type.
15 type MessageV1 = protoiface.MessageV1
16 17 // MessageV2 is the [google.golang.org/protobuf/proto.Message] type used by the
18 // current [google.golang.org/protobuf] module, adding support for reflection.
19 type MessageV2 = proto.Message
20 21 // MessageV1Of converts a v2 message to a v1 message.
22 // It returns nil if m is nil.
23 func MessageV1Of(m MessageV2) MessageV1 {
24 return protoimpl.X.ProtoMessageV1Of(m)
25 }
26 27 // MessageV2Of converts a v1 message to a v2 message.
28 // It returns nil if m is nil.
29 func MessageV2Of(m MessageV1) MessageV2 {
30 return protoimpl.X.ProtoMessageV2Of(m)
31 }
32