| edition = "2023"; |
| |
| package editions_unittest; |
| |
| import "google/protobuf/unittest_delimited_import.proto"; |
| |
| option java_multiple_files = true; |
| |
| // Test various scenarios that are now possible in edition 2023 that weren't in |
| // google.protobuf. |
| |
| message LengthPrefixed { |
| int32 a = 1; |
| int32 b = 2; |
| } |
| |
| message NotGroupLikeScope { |
| int32 a = 1; |
| int32 b = 2; |
| } |
| |
| message GroupLikeFileScope { |
| int32 a = 1; |
| int32 b = 2; |
| } |
| |
| message TestDelimited { |
| message LengthPrefixed { |
| int32 a = 1; |
| int32 b = 2; |
| } |
| // Non-delimited field that otherwise looks group-like. |
| LengthPrefixed lengthprefixed = 1; |
| |
| // Nested field for nested tests. |
| TestDelimited nested = 2 [features.message_encoding = DELIMITED]; |
| |
| message GroupLike { |
| int32 a = 1; |
| int32 b = 2; |
| } |
| |
| // Truly group-like field. |
| GroupLike grouplike = 3 [features.message_encoding = DELIMITED]; |
| |
| // Delimited field that isn't group-like solely because of its name. |
| GroupLike notgrouplike = 4 [features.message_encoding = DELIMITED]; |
| |
| // Delimited field that isn't group-like because of the scope of its type. |
| NotGroupLikeScope notgrouplikescope = 5 |
| [features.message_encoding = DELIMITED]; |
| |
| // Delimited field that's grouplike except that it's an imported type. |
| MessageImport messageimport = 6 [features.message_encoding = DELIMITED]; |
| |
| extensions 1000 to max; |
| } |
| |
| extend TestDelimited { |
| // Non-delimited field that otherwise looks group-like. |
| LengthPrefixed lengthprefixed = 1004; |
| |
| // Truly group-like extension. |
| GroupLikeFileScope grouplikefilescope = 1000 |
| [features.message_encoding = DELIMITED]; |
| |
| // Delimited extension that isn't group-like because of its name. |
| NotGroupLikeScope not_group_like_scope = 1001 |
| [features.message_encoding = DELIMITED]; |
| |
| // Delimited extension that isn't group-like because of the scope of its type. |
| TestDelimited.GroupLike grouplike = 1002 |
| [features.message_encoding = DELIMITED]; |
| |
| // Delimited extension that's grouplike except that it's an imported type. |
| MessageImport messageimport = 1003 [features.message_encoding = DELIMITED]; |
| } |