// Example protobuf definition for testing // See Makefile for how to use it syntax = "proto2"; enum VectorType { DOUBLE = 2; FLOAT = 3; INTEGER = 4; INTEGER64 = 5; INTEGER32 = 6; UNSIGNED = 7; BYTES = 8; ATOM = 9; STRING = 10; } message Vector { repeated double double_values = 2; repeated float float_values = 3; repeated sint32 integer_values = 4; repeated fixed64 integer64_values = 5; repeated fixed32 integer32_values = 6; repeated uint32 unsigned_values = 7; repeated bytes bytes_values = 8; repeated string atom_values = 9; repeated string string_values = 10; } // message compound_protobuf { optional group Complex = 12 { required double real = 1; required double img = 2; }; optional group Fraction = 15 { required sint64 num = 1; required sint64 den = 2; }; optional float float = 13; optional double double = 14; optional sint32 integer = 16; } message protobuf_bag { repeated compound_protobuf bag = 1; } // messages used in section "Example: A Simple XML Like Structure" message kv_pair { required string key = 30; optional sint64 int_value = 31; optional double float_value = 32; optional string atom_value = 33; } message aux_xml_element { optional string atom = 43; optional xml_element element = 40; } message xml_element { required string name = 21; repeated kv_pair attributes = 22; repeated aux_xml_element contents = 23; } message XMLFile { repeated xml_element elements = 20; }