Protocol Buffers - Google's data interchange format (grpc依赖)
https://developers.google.com/protocol-buffers/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.0 KiB
72 lines
2.0 KiB
// Protocol Buffers - Google's data interchange format |
|
// Copyright 2023 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 |
|
// LINT: LEGACY_NAMES |
|
|
|
// The names in this file are meant to test edge cases. |
|
syntax = "proto3"; |
|
|
|
package enums; |
|
|
|
import "devtools/staticanalysis/pipeline/analyzers/proto_best_practices/proto/optouts.proto"; |
|
|
|
option (proto_best_practices.file_optouts) = { |
|
categories: ENUM_DEFAULT_VALUE_NAME_CONFLICT |
|
categories: ENUM_VALUE_NAMES |
|
}; |
|
|
|
// This should result in an enum with these accessible values: |
|
// - Unknown = 0 |
|
// - Unrecognized = 0 |
|
// - Foo = 1 |
|
// - Bar = 2 |
|
// - DifferentNameAlias = 2 |
|
enum TestEnumWithDuplicateStrippedPrefixNames { |
|
option allow_alias = true; |
|
|
|
UNKNOWN = 0; |
|
TestEnumWithDuplicateStrippedPrefixNamesUNRECOGNIZED = 0; |
|
|
|
TestEnumWithDuplicateStrippedPrefixNames_FOO = 1; |
|
TEST_ENUM_WITH_DUPLICATE_STRIPPED_PREFIX_NAMES_FOO = 1; |
|
FOO = 1; |
|
|
|
TestEnumWithDuplicateStrippedPrefixNamesBAR = 2; |
|
TEST_ENUM_WITH_DUPLICATE_STRIPPED_PREFIX_NAMESBar = 2; |
|
BAR = 2; |
|
TEST_ENUM_WITH_DUPLICATE_STRIPPED_PREFIX_NAMES_DIFFERENT_NAME_ALIAS = 2; |
|
} |
|
|
|
// This should result in an enum with these accessible values: |
|
// - Unknown = 0 |
|
// - _2020 = 1 |
|
// - _2021 = 2 |
|
// - _2022 = 3 |
|
enum TestEnumWithNumericNames { |
|
TestEnumWithNumericNamesUNKNOWN = 0; |
|
TestEnumWithNumericNames_2020 = 1; |
|
TEST_ENUM_WITH_NUMERIC_NAMES_2021 = 2; |
|
TEST_ENUM_WITH_NUMERIC_NAMES2022 = 3; |
|
} |
|
|
|
// This should result in an enum with these accessible values: |
|
// - Unknown = 0 |
|
// - TestEnumValueNameSameAsEnum = 1 |
|
enum TestEnumValueNameSameAsEnum { |
|
TEST_ENUM_VALUE_NAME_SAME_AS_ENUM_UNKNOWN = 0; |
|
TEST_ENUM_VALUE_NAME_SAME_AS_ENUM = 1; |
|
} |
|
|
|
// Regression test for maps with nested enum as value. |
|
message TestMapWithNestedEnum { |
|
message InnerNested { |
|
enum NestedEnum { |
|
UNKNOWN = 0; |
|
FOO = 1; |
|
} |
|
} |
|
map<string, InnerNested.NestedEnum> string_map = 1; |
|
}
|
|
|