1syntax = "proto2"; 2option java_package = "kotlinx.serialization.protobuf"; 3 4message TestInt32 { 5 required int32 a = 1; 6} 7 8message TestSignedInt { 9 required sint32 a = 1; 10} 11 12message TestSignedLong { 13 required sint64 a = 1; 14} 15 16message TestFixedInt { 17 required fixed32 a = 1; 18} 19 20message TestDouble { 21 required double a = 1; 22} 23 24message TestBoolean { 25 required bool a = 1; 26} 27 28message TestAllTypes { 29 required int32 i32 = 1; 30 required sint32 si32 = 2; 31 required fixed32 f32 = 3; 32 required int64 i64 = 10; 33 required sint64 si64 = 11; 34 required fixed64 f64 = 12; 35 required float f = 21; 36 required double d = 22; 37 required bool b = 41; 38 required string s = 51; 39} 40 41message TestOuterMessage { 42 required int32 a = 1; 43 required double b = 2; 44 required TestAllTypes inner = 10; 45 required string s = 20; 46} 47 48message TestRepeatedIntMessage { 49 required int32 s = 1; 50 repeated int32 b = 10; 51} 52 53message TestRepeatedObjectMessage { 54 repeated TestAllTypes inner = 1; 55} 56 57message TestEnum { 58 enum Coffee { 59 Americano = 0; 60 Latte = 1; 61 Capuccino = 2; 62 NoCoffee = -1; 63 } 64 required Coffee a = 1; 65} 66 67enum TestEnumWithIds { 68 First = 10; 69 Second = 20; 70} 71 72message EnumHolder { 73 required TestEnumWithIds a = 5; 74} 75 76message TestMap { 77 map<string, string> stringMap = 1; 78 map<int32, TestAllTypes> intObjectMap = 2; 79} 80 81message MessageWithOptionals { 82 optional int32 a = 1; 83 optional string b = 2; 84 optional Position c = 3; 85 optional int32 d = 4 [default = 99]; 86 repeated int32 e = 5; 87 88 enum Position { 89 FIRST = 0; 90 SECOND = 1; 91 } 92} 93