[go: up one dir, main page]

protobuf 1.0.10

Rust implementation of Google protocol buffers
Documentation
package shrug;

message Test1 {
    required int32 a = 1;
}

message Test2 {
    required string b = 2;
}

message Test3 {
    required Test1 c = 3;
}

message Test4 {
    repeated int32 d = 4 [packed=true];
}


message TestPackedUnpacked {
    repeated int32 unpacked = 4;
    repeated int32 packed = 5 [packed=true];
}

message TestEmpty {
    optional int32 foo = 10;
}

message TestRequired {
    required bool b = 5;
}

message TestUnknownFields {
    required int32 a = 1;
}

// just check it compiles
message TestSelfReference {
    required TestSelfReference r1 = 1;
    optional TestSelfReference r2 = 2;
}

message TestDefaultInstanceField {
    optional string s = 1;
}

message TestDefaultInstance {
    optional TestDefaultInstanceField field = 1;
}

message TestDescriptor {
    optional int32 stuff = 10;
}

enum TestEnumDescriptor {
    RED = 1;
    BLUE = 2;
    GREEN = 3;
}

message TestTypesSingular {
    optional double double_field = 1;
    optional float float_field = 2;
    optional int32 int32_field = 3;
    optional int64 int64_field = 4;
    optional uint32 uint32_field = 5;
    optional uint64 uint64_field = 6;
    optional sint32 sint32_field = 7;
    optional sint64 sint64_field = 8;
    optional fixed32 fixed32_field = 9;
    optional fixed64 fixed64_field = 10;
    optional sfixed32 sfixed32_field = 11;
    optional sfixed64 sfixed64_field = 12;
    optional bool bool_field = 13;
    optional string string_field = 14;
    optional bytes bytes_field = 15;
    optional TestEnumDescriptor enum_field = 16;
}

message TestTypesRepeated {
    repeated double double_field = 1 [packed=false];
    repeated float float_field = 2 [packed=false];
    repeated int32 int32_field = 3 [packed=false];
    repeated int64 int64_field = 4 [packed=false];
    repeated uint32 uint32_field = 5 [packed=false];
    repeated uint64 uint64_field = 6 [packed=false];
    repeated sint32 sint32_field = 7 [packed=false];
    repeated sint64 sint64_field = 8 [packed=false];
    repeated fixed32 fixed32_field = 9 [packed=false];
    repeated fixed64 fixed64_field = 10 [packed=false];
    repeated sfixed32 sfixed32_field = 11 [packed=false];
    repeated sfixed64 sfixed64_field = 12 [packed=false];
    repeated bool bool_field = 13 [packed=false];
    repeated string string_field = 14;
    repeated bytes bytes_field = 15;
    repeated TestEnumDescriptor enum_field = 16 [packed=false];
}

message TestTypesRepeatedPacked {
    repeated double double_field = 1 [packed=true];
    repeated float float_field = 2 [packed=true];
    repeated int32 int32_field = 3 [packed=true];
    repeated int64 int64_field = 4 [packed=true];
    repeated uint32 uint32_field = 5 [packed=true];
    repeated uint64 uint64_field = 6 [packed=true];
    repeated sint32 sint32_field = 7 [packed=true];
    repeated sint64 sint64_field = 8 [packed=true];
    repeated fixed32 fixed32_field = 9 [packed=true];
    repeated fixed64 fixed64_field = 10 [packed=true];
    repeated sfixed32 sfixed32_field = 11 [packed=true];
    repeated sfixed64 sfixed64_field = 12 [packed=true];
    repeated bool bool_field = 13 [packed=true];
    repeated string string_field = 14;
    repeated bytes bytes_field = 15;
    repeated TestEnumDescriptor enum_field = 16 [packed=true];
}

enum EnumForDefaultValue {
    
    TWO = 2;
    THREE = 3;
}

message TestDefaultValues {
    optional double double_field = 1             [default =  1];
    optional float float_field = 2               [default =  2];
    optional int32 int32_field = 3               [default =  3];
    optional int64 int64_field = 4               [default =  4];
    optional uint32 uint32_field = 5             [default =  5];
    optional uint64 uint64_field = 6             [default =  6];
    optional sint32 sint32_field = 7             [default =  7];
    optional sint64 sint64_field = 8             [default =  8];
    optional fixed32 fixed32_field = 9           [default =  9];
    optional fixed64 fixed64_field = 10          [default = 10];
    optional sfixed32 sfixed32_field = 11        [default = 11];
    optional sfixed64 sfixed64_field = 12        [default = 12];
    optional bool bool_field = 13                [default = true];
    optional string string_field = 14            [default = "abc\n22"];
    optional bytes bytes_field = 15              [default = "cde\n33"];
    optional EnumForDefaultValue enum_field = 16 [default = TWO];
    optional EnumForDefaultValue enum_field_without_default = 17;
}

message TestInvalidTag {
}

message TestTruncated {
    repeated fixed32 ints = 2 [packed=true];
}