syntax = "proto2";

enum TestEnum {
    DARK = 1;
    LIGHT = 2;
}

message TestMessage {
    optional int32 value = 10;
}

message TestTypes {
    optional double double_singular = 1;
    optional float float_singular = 2;
    optional int32 int32_singular = 3;
    optional int64 int64_singular = 4;
    optional uint32 uint32_singular = 5;
    optional uint64 uint64_singular = 6;
    optional sint32 sint32_singular = 7;
    optional sint64 sint64_singular = 8;
    optional fixed32 fixed32_singular = 9;
    optional fixed64 fixed64_singular = 10;
    optional sfixed32 sfixed32_singular = 11;
    optional sfixed64 sfixed64_singular = 12;
    optional bool bool_singular = 13;
    optional string string_singular = 14;
    optional bytes bytes_singular = 15;
    optional TestEnum test_enum_singular = 16;
    optional TestMessage test_message_singular = 17;

    repeated double double_repeated = 31;
    repeated float float_repeated = 32;
    repeated int32 int32_repeated = 33;
    repeated int64 int64_repeated = 34;
    repeated uint32 uint32_repeated = 35;
    repeated uint64 uint64_repeated = 36;
    repeated sint32 sint32_repeated = 37;
    repeated sint64 sint64_repeated = 38;
    repeated fixed32 fixed32_repeated = 39;
    repeated fixed64 fixed64_repeated = 40;
    repeated sfixed32 sfixed32_repeated = 41;
    repeated sfixed64 sfixed64_repeated = 42;
    repeated bool bool_repeated = 43;
    repeated string string_repeated = 44;
    repeated bytes bytes_repeated = 45;
    repeated TestEnum test_enum_repeated = 46;
    repeated TestMessage test_message_repeated = 47;
}

message TestTextFormatRustIdentifier {
    optional bool const = 1;
}
