syntax = "proto2"; message Test { required string f1 = 1; required int64 f2 = 2; repeated uint64 fa = 3; repeated int32 fb = 4; repeated int32 fc = 5 [packed = true]; repeated Pair pairs = 6; optional bytes bbbb = 7; required uint32 uint32 = 10; required uint64 uint64 = 11; required sint32 sint32 = 12; required sint64 sint64 = 13; required bool bool = 14; repeated SomeEnum enum = 15; required fixed64 fixed64 = 16; required sfixed64 sfixed64 = 17; required double double = 18; required fixed32 fixed32 = 19; required sfixed32 sfixed32 = 20; required float float = 21; optional bool gtt = 100; optional double gtg = 101; repeated string ss = 22; repeated bytes bb = 23; } message Pair { required string key = 1; optional string value = 2; } message EmptyMessage { } enum SomeEnum { YES = 0; NO = 1; NEVER = 2; // Some uses of Protobufs prescribe prefixing enum names with the enum type name SOME_ENUM_OTHER_VALUE = 3; }