Index: third_party/protobuf/src/google/protobuf/unittest_well_known_types.proto |
diff --git a/third_party/protobuf/src/google/protobuf/unittest_well_known_types.proto b/third_party/protobuf/src/google/protobuf/unittest_well_known_types.proto |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2cb7775ccfbeaeeba6633672587de5d47fa82634 |
--- /dev/null |
+++ b/third_party/protobuf/src/google/protobuf/unittest_well_known_types.proto |
@@ -0,0 +1,112 @@ |
+syntax = "proto3"; |
+ |
+package protobuf_unittest; |
+ |
+option csharp_namespace = "Google.Protobuf.TestProtos"; |
+option java_multiple_files = true; |
+option java_package = "com.google.protobuf.test"; |
+ |
+import "google/protobuf/any.proto"; |
+import "google/protobuf/api.proto"; |
+import "google/protobuf/duration.proto"; |
+import "google/protobuf/empty.proto"; |
+import "google/protobuf/field_mask.proto"; |
+import "google/protobuf/source_context.proto"; |
+import "google/protobuf/struct.proto"; |
+import "google/protobuf/timestamp.proto"; |
+import "google/protobuf/type.proto"; |
+import "google/protobuf/wrappers.proto"; |
+ |
+// Test that we can include all well-known types. |
+// Each wrapper type is included separately, as languages |
+// map handle different wrappers in different ways. |
+message TestWellKnownTypes { |
+ google.protobuf.Any any_field = 1; |
+ google.protobuf.Api api_field = 2; |
+ google.protobuf.Duration duration_field = 3; |
+ google.protobuf.Empty empty_field = 4; |
+ google.protobuf.FieldMask field_mask_field = 5; |
+ google.protobuf.SourceContext source_context_field = 6; |
+ google.protobuf.Struct struct_field = 7; |
+ google.protobuf.Timestamp timestamp_field = 8; |
+ google.protobuf.Type type_field = 9; |
+ google.protobuf.DoubleValue double_field = 10; |
+ google.protobuf.FloatValue float_field = 11; |
+ google.protobuf.Int64Value int64_field = 12; |
+ google.protobuf.UInt64Value uint64_field = 13; |
+ google.protobuf.Int32Value int32_field = 14; |
+ google.protobuf.UInt32Value uint32_field = 15; |
+ google.protobuf.BoolValue bool_field = 16; |
+ google.protobuf.StringValue string_field = 17; |
+ google.protobuf.BytesValue bytes_field = 18; |
+} |
+ |
+// A repeated field for each well-known type. |
+message RepeatedWellKnownTypes { |
+ repeated google.protobuf.Any any_field = 1; |
+ repeated google.protobuf.Api api_field = 2; |
+ repeated google.protobuf.Duration duration_field = 3; |
+ repeated google.protobuf.Empty empty_field = 4; |
+ repeated google.protobuf.FieldMask field_mask_field = 5; |
+ repeated google.protobuf.SourceContext source_context_field = 6; |
+ repeated google.protobuf.Struct struct_field = 7; |
+ repeated google.protobuf.Timestamp timestamp_field = 8; |
+ repeated google.protobuf.Type type_field = 9; |
+ // These don't actually make a lot of sense, but they're not prohibited... |
+ repeated google.protobuf.DoubleValue double_field = 10; |
+ repeated google.protobuf.FloatValue float_field = 11; |
+ repeated google.protobuf.Int64Value int64_field = 12; |
+ repeated google.protobuf.UInt64Value uint64_field = 13; |
+ repeated google.protobuf.Int32Value int32_field = 14; |
+ repeated google.protobuf.UInt32Value uint32_field = 15; |
+ repeated google.protobuf.BoolValue bool_field = 16; |
+ repeated google.protobuf.StringValue string_field = 17; |
+ repeated google.protobuf.BytesValue bytes_field = 18; |
+} |
+ |
+message OneofWellKnownTypes { |
+ oneof oneof_field { |
+ google.protobuf.Any any_field = 1; |
+ google.protobuf.Api api_field = 2; |
+ google.protobuf.Duration duration_field = 3; |
+ google.protobuf.Empty empty_field = 4; |
+ google.protobuf.FieldMask field_mask_field = 5; |
+ google.protobuf.SourceContext source_context_field = 6; |
+ google.protobuf.Struct struct_field = 7; |
+ google.protobuf.Timestamp timestamp_field = 8; |
+ google.protobuf.Type type_field = 9; |
+ google.protobuf.DoubleValue double_field = 10; |
+ google.protobuf.FloatValue float_field = 11; |
+ google.protobuf.Int64Value int64_field = 12; |
+ google.protobuf.UInt64Value uint64_field = 13; |
+ google.protobuf.Int32Value int32_field = 14; |
+ google.protobuf.UInt32Value uint32_field = 15; |
+ google.protobuf.BoolValue bool_field = 16; |
+ google.protobuf.StringValue string_field = 17; |
+ google.protobuf.BytesValue bytes_field = 18; |
+ } |
+} |
+ |
+// A map field for each well-known type. We only |
+// need to worry about the value part of the map being the |
+// well-known types, as messages can't be map keys. |
+message MapWellKnownTypes { |
+ map<int32,google.protobuf.Any> any_field = 1; |
+ map<int32,google.protobuf.Api> api_field = 2; |
+ map<int32,google.protobuf.Duration> duration_field = 3; |
+ map<int32,google.protobuf.Empty> empty_field = 4; |
+ map<int32,google.protobuf.FieldMask> field_mask_field = 5; |
+ map<int32,google.protobuf.SourceContext> source_context_field = 6; |
+ map<int32,google.protobuf.Struct> struct_field = 7; |
+ map<int32,google.protobuf.Timestamp> timestamp_field = 8; |
+ map<int32,google.protobuf.Type> type_field = 9; |
+ map<int32,google.protobuf.DoubleValue> double_field = 10; |
+ map<int32,google.protobuf.FloatValue> float_field = 11; |
+ map<int32,google.protobuf.Int64Value> int64_field = 12; |
+ map<int32,google.protobuf.UInt64Value> uint64_field = 13; |
+ map<int32,google.protobuf.Int32Value> int32_field = 14; |
+ map<int32,google.protobuf.UInt32Value> uint32_field = 15; |
+ map<int32,google.protobuf.BoolValue> bool_field = 16; |
+ map<int32,google.protobuf.StringValue> string_field = 17; |
+ map<int32,google.protobuf.BytesValue> bytes_field = 18; |
+} |