| // Protocol Buffers - Google's data interchange format | |
| // Copyright 2025 Google LLC. All rights reserved. | |
| // | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file or at | |
| // https://developers.google.com/open-source/licenses/bsd | |
| edition = "2023"; | |
| package upb_test; | |
| enum OpenEnum { | |
| OPEN_ENUM_UNSPECIFIED = 0; | |
| OPEN_ENUM_FOO = 1; | |
| OPEN_ENUM_BAR = 2; | |
| } | |
| enum ClosedEnum { | |
| option features.enum_type = CLOSED; | |
| CLOSED_ENUM_UNSPECIFIED = 0; | |
| CLOSED_ENUM_FOO = 1; | |
| CLOSED_ENUM_BAR = 2; | |
| } | |
| message DebugStringTestMessage { | |
| int32 int32_field = 1; | |
| // Different field modes. | |
| repeated int64 packed_int64_field = 2; | |
| repeated int64 repeated_int64_field = 3 | |
| [features.repeated_field_encoding = EXPANDED]; | |
| map<uint32, uint32> map_field = 4; | |
| // Different field presence. | |
| int32 required_field = 5 [features.field_presence = LEGACY_REQUIRED]; | |
| int32 implicit_presence_field = 6 [features.field_presence = IMPLICIT]; | |
| // Different enum types. | |
| ClosedEnum closed_enum_field = 7; | |
| OpenEnum open_enum_field = 8; | |
| // Different UTF-8 validation types. | |
| string utf8_validated_string_field = 9 [features.utf8_validation = VERIFY]; | |
| string utf8_invalid_string_field = 10 [features.utf8_validation = NONE]; | |
| SubMessage sub_message_field = 11; | |
| bool bool_field = 12; | |
| } | |
| message SubMessage { | |
| // Test that we can handle cyclic messages. | |
| DebugStringTestMessage cycle_field = 1; | |
| } |