| Abhay Kumar | 40252eb | 2025-10-13 13:25:53 +0000 | [diff] [blame^] | 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 | } |