| // Copyright 2019 The Pigweed Authors |
| // |
| // Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| // use this file except in compliance with the License. You may obtain a copy of |
| // the License at |
| // |
| // https://www.apache.org/licenses/LICENSE-2.0 |
| // |
| // Unless required by applicable law or agreed to in writing, software |
| // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| // License for the specific language governing permissions and limitations under |
| // the License. |
| syntax = "proto3"; |
| |
| // This is a test .proto file for pw_protobuf's codegen implementation. |
| |
| package pw.protobuf.test; |
| |
| // Top-level enum definition. |
| enum Bool { |
| TRUE = 0; |
| FALSE = 1; |
| FILE_NOT_FOUND = 2; |
| } |
| |
| // A message! |
| message Pigweed { |
| |
| // Nested messages and enums. |
| message Pigweed { |
| enum Binary { |
| ZERO = 0; |
| ONE = 1; |
| }; |
| |
| Bool status = 1; |
| } |
| |
| message Protobuf { |
| enum Binary { |
| ONE = 0; |
| ZERO = 1; |
| }; |
| |
| // We must go deeper. |
| message Compiler { |
| enum Status { |
| OK = 0; |
| ERROR = 1; |
| FUBAR = 2; |
| } |
| |
| string file_name = 1; |
| Status status = 2; |
| Binary protobuf_bin = 3; |
| Pigweed.Binary pigweed_bin = 4; |
| } |
| |
| Binary binary_value = 1; |
| } |
| |
| // Regular types. |
| uint32 magic_number = 1; |
| sint32 ziggy = 2; |
| fixed64 cycles = 3; |
| float ratio = 4; |
| string error_message = 5; |
| |
| DeviceInfo device_info = 6; |
| |
| // Nested messages and enums as fields. |
| Pigweed pigweed = 7; |
| Protobuf.Binary bin = 8; |
| |
| Proto proto = 9; |
| repeated Proto.ID id = 10; |
| } |
| |
| // Another message. |
| message Proto { |
| enum Binary { |
| OFF = 0; |
| ON = 1; |
| }; |
| |
| message ID { |
| uint32 id = 1; |
| } |
| |
| // Circular dependency with Pigweed. |
| Pigweed pigweed = 1; |
| |
| // Same name, different namespace. |
| Binary bin = 2; |
| Pigweed.Pigweed.Binary pigweed_pigweed_bin = 3; |
| Pigweed.Protobuf.Binary pigweed_protobuf_bin = 4; |
| |
| Pigweed.Protobuf.Compiler meta = 5; |
| } |
| |
| // Yet another message. |
| message DeviceInfo { |
| enum DeviceStatus { |
| OK = 0; |
| ASSERT = 1; |
| FAULT = 2; |
| PANIC = 3; |
| } |
| |
| string device_name = 1; |
| fixed32 device_id = 2; |
| DeviceStatus status = 3; |
| |
| repeated KeyValuePair attributes = 4; |
| } |
| |
| // This might be useful. |
| message KeyValuePair { |
| string key = 1; |
| string value = 2; |
| } |