| // 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 purpose of this file is to be as hostile as possible to reserved words |
| // to the Rust language and ensure it still works. |
| |
| syntax = "proto2"; |
| |
| // Note: Ideally this test could be 'package type.if.else.true.false' |
| // which would work in Rust but would break the C++ codegen. |
| |
| package type.type; |
| |
| message Self { |
| optional int32 for = 1; |
| optional Self self = 2; |
| optional bool true = 3; |
| optional string false = 4; |
| } |
| |
| message Pub { |
| enum Self { |
| enum = 0; |
| } |
| } |
| |
| message enum {} |
| |
| message Ref { |
| oneof self { |
| .type.type.Pub.Self const = 3; |
| } |
| } |