// -*- Protocol-Buffers -*- //============================================================================== /// @file variant.proto /// @brief ProtoBuf message types for Picarro variant values /// @author Tor Slettnes //============================================================================== syntax = "proto3"; package picarro.variant; import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; // Container for a generic ("variant") value: // - one of the following basic types: boolean, signed/unsigned integer, real number, string, byte sequence // - one of the following well-known types: Timestamp, Duration // - one of the nested value containers below: ValueList, TaggedValueList, ValueMap message Value { oneof value { // Scalar types bool value_bool = 4; uint64 value_uint = 5; sint64 value_sint = 6; double value_real = 7; string value_string = 8; bytes value_bytes = 9; google.protobuf.Timestamp value_timestamp = 10; google.protobuf.Duration value_duration = 11; // Nested value containers ValueList value_list = 16; TaggedValueList value_tvlist = 17; KeyValueMap value_kvmap = 18; } } // A sequence of values. message ValueList { repeated Value items = 1; } message TaggedValue { string tag = 1; Value value = 2; } message TaggedValueList { repeated TaggedValue items = 1; } message KeyValueMap { map map = 1; }