| // Copyright 2024 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // This testproto explicitly configures the API level of each message. |
| // |
| // This allows creating mixed trees of proto messages on different API levels. |
| |
| edition = "2023"; |
| |
| package goproto.proto.test; |
| |
| import "google/protobuf/go_features.proto"; |
| |
| option go_package = "google.golang.org/protobuf/internal/testprotos/mixed"; |
| |
| message Open { |
| option features.(pb.go).api_level = API_OPEN; |
| |
| // These fields allow for arbitrary mixing. |
| Open open = 1; |
| Hybrid hybrid = 2; |
| Opaque opaque = 3; |
| |
| int32 optional_int32 = 4; |
| } |
| |
| message Hybrid { |
| option features.(pb.go).api_level = API_HYBRID; |
| |
| // These fields allow for arbitrary mixing. |
| Open open = 1; |
| Hybrid hybrid = 2; |
| Opaque opaque = 3; |
| |
| int32 optional_int32 = 4; |
| } |
| |
| message Opaque { |
| option features.(pb.go).api_level = API_OPAQUE; |
| |
| // These fields allow for arbitrary mixing. |
| Open open = 1; |
| Hybrid hybrid = 2; |
| Opaque opaque = 3; |
| |
| int32 optional_int32 = 4; |
| } |
| |
| message OpenLazy { |
| option features.(pb.go).api_level = API_OPEN; |
| |
| // These fields allow for arbitrary mixing. |
| OpenLazy open = 1 [lazy = true]; |
| HybridLazy hybrid = 2 [lazy = true]; |
| OpaqueLazy opaque = 3 [lazy = true]; |
| |
| int32 optional_int32 = 4; |
| } |
| |
| message HybridLazy { |
| option features.(pb.go).api_level = API_HYBRID; |
| |
| // These fields allow for arbitrary mixing. |
| OpenLazy open = 1 [lazy = true]; |
| HybridLazy hybrid = 2 [lazy = true]; |
| OpaqueLazy opaque = 3 [lazy = true]; |
| |
| int32 optional_int32 = 4; |
| } |
| |
| message OpaqueLazy { |
| option features.(pb.go).api_level = API_OPAQUE; |
| |
| // These fields allow for arbitrary mixing. |
| OpenLazy open = 1 [lazy = true]; |
| HybridLazy hybrid = 2 [lazy = true]; |
| OpaqueLazy opaque = 3 [lazy = true]; |
| |
| int32 optional_int32 = 4; |
| } |