blob: 6541ff82062a6fbdf439b0358172d9bd692dd5d4 [file] [log] [blame]
// 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;
}