aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--lib/protoc.exebin1079808 -> 1734144 bytes
-rw-r--r--protos/extest/unittest_extras_full.proto72
-rw-r--r--protos/extest/unittest_extras_lite.proto61
-rw-r--r--protos/google/protobuf/descriptor.proto36
-rw-r--r--protos/google/protobuf/unittest.proto122
-rw-r--r--protos/google/protobuf/unittest_custom_options.proto8
-rw-r--r--protos/google/protobuf/unittest_empty.proto43
-rw-r--r--protos/google/protobuf/unittest_enormous_descriptor.proto1052
-rw-r--r--protos/google/protobuf/unittest_import_lite.proto55
-rw-r--r--protos/google/protobuf/unittest_lite.proto318
-rw-r--r--protos/google/protobuf/unittest_lite_imports_nonlite.proto49
-rw-r--r--protos/google/protobuf/unittest_no_generic_services.proto60
-rw-r--r--src/AddressBook/AddressBookProtos.cs2
-rw-r--r--src/ProtoGen.Test/ProtoGen.Test.csproj2
-rw-r--r--src/ProtoGen/EnumFieldGenerator.cs24
-rw-r--r--src/ProtoGen/ExtensionGenerator.cs57
-rw-r--r--src/ProtoGen/FieldGeneratorBase.cs34
-rw-r--r--src/ProtoGen/Helpers.cs6
-rw-r--r--src/ProtoGen/IFieldSourceGenerator.cs4
-rw-r--r--src/ProtoGen/MessageFieldGenerator.cs13
-rw-r--r--src/ProtoGen/MessageGenerator.cs196
-rw-r--r--src/ProtoGen/PrimitiveFieldGenerator.cs12
-rw-r--r--src/ProtoGen/RepeatedEnumFieldGenerator.cs27
-rw-r--r--src/ProtoGen/RepeatedMessageFieldGenerator.cs17
-rw-r--r--src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs17
-rw-r--r--src/ProtoGen/SourceGeneratorBase.cs12
-rw-r--r--src/ProtoGen/UmbrellaClassGenerator.cs36
-rw-r--r--src/ProtocolBuffers.Test/ExtendableMessageTest.cs192
-rw-r--r--src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj50
-rw-r--r--src/ProtocolBuffers.Test/ReflectionTester.cs2
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs2
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs328
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs2
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestEmptyProtoFile.cs44
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs196
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs2
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs2
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs382
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs2
-rw-r--r--src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs4534
-rw-r--r--src/ProtocolBuffers.sln67
-rw-r--r--src/ProtocolBuffers/AbstractBuilder.cs234
-rw-r--r--src/ProtocolBuffers/AbstractBuilderLite.cs232
-rw-r--r--src/ProtocolBuffers/AbstractMessage.cs104
-rw-r--r--src/ProtocolBuffers/AbstractMessageLite.cs133
-rw-r--r--src/ProtocolBuffers/ByteString.cs7
-rw-r--r--src/ProtocolBuffers/CodedInputStream.cs11
-rw-r--r--src/ProtocolBuffers/CodedOutputStream.cs53
-rw-r--r--src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs2
-rw-r--r--src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs238
-rw-r--r--src/ProtocolBuffers/Descriptors/EnumDescriptor.cs14
-rw-r--r--src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs2
-rw-r--r--src/ProtocolBuffers/Descriptors/FieldDescriptor.cs21
-rw-r--r--src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs26
-rw-r--r--src/ProtocolBuffers/DynamicMessage.cs11
-rw-r--r--src/ProtocolBuffers/EnumLite.cs106
-rw-r--r--src/ProtocolBuffers/ExtendableBuilder.cs8
-rw-r--r--src/ProtocolBuffers/ExtendableBuilderLite.cs262
-rw-r--r--src/ProtocolBuffers/ExtendableMessage.cs8
-rw-r--r--src/ProtocolBuffers/ExtendableMessageLite.cs184
-rw-r--r--src/ProtocolBuffers/ExtensionInfo.cs26
-rw-r--r--src/ProtocolBuffers/ExtensionRegistry.cs62
-rw-r--r--src/ProtocolBuffers/ExtensionRegistryLite.cs179
-rw-r--r--src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs2
-rw-r--r--src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs2
-rw-r--r--src/ProtocolBuffers/FieldSet.cs199
-rw-r--r--src/ProtocolBuffers/GeneratedBuilder.cs8
-rw-r--r--src/ProtocolBuffers/GeneratedBuilderLite.cs117
-rw-r--r--src/ProtocolBuffers/GeneratedExtensionBase.cs14
-rw-r--r--src/ProtocolBuffers/GeneratedExtensionLite.cs294
-rw-r--r--src/ProtocolBuffers/GeneratedMessage.cs4
-rw-r--r--src/ProtocolBuffers/GeneratedMessageLite.cs132
-rw-r--r--src/ProtocolBuffers/IBuilder.cs75
-rw-r--r--src/ProtocolBuffers/IBuilderLite.cs210
-rw-r--r--src/ProtocolBuffers/IMessage.cs38
-rw-r--r--src/ProtocolBuffers/IMessageLite.cs179
-rw-r--r--src/ProtocolBuffers/Properties/AssemblyInfo.cs6
-rw-r--r--src/ProtocolBuffers/ProtocolBuffers.csproj23
-rw-r--r--src/ProtocolBuffers/ProtocolBuffersLite.csproj115
-rw-r--r--src/ProtocolBuffers/SortedList.cs12
-rw-r--r--src/ProtocolBuffers/TextFormat.cs14
-rw-r--r--src/ProtocolBuffers/UninitializedMessageException.cs36
-rw-r--r--src/ProtocolBuffers/UnknownField.cs4
-rw-r--r--src/ProtocolBuffers/UnknownFieldSet.cs109
-rw-r--r--src/ProtocolBuffers/WireFormat.cs4
-rw-r--r--src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs268
-rw-r--r--src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs126
-rw-r--r--src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs267
-rw-r--r--src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs304
-rw-r--r--src/ProtocolBuffersLite.Test/InteropLiteTest.cs162
-rw-r--r--src/ProtocolBuffersLite.Test/LiteTest.cs112
-rw-r--r--src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs219
-rw-r--r--src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj110
-rw-r--r--src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj115
-rw-r--r--src/ProtocolBuffersLite.Test/TestLiteByApi.cs116
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs1803
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs1721
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs246
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs280
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs260
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs8162
-rw-r--r--src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs18623
103 files changed, 43494 insertions, 1064 deletions
diff --git a/.gitignore b/.gitignore
index 530bf572..1902bd54 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,6 +8,8 @@ src/ProtocolBuffers/obj/
src/ProtocolBuffers/objCF
src/ProtocolBuffers.Test/bin/
src/ProtocolBuffers.Test/obj/
+src/ProtocolBuffersLite.Test/bin/
+src/ProtocolBuffersLite.Test/obj/
src/ProtoBench/bin/
src/ProtoBench/obj/
src/ProtoDump/bin/
@@ -34,4 +36,4 @@ _ReSharper.*
mono/TestResult.xml
mono/.libs
mono/*.exe
-mono/*.dll \ No newline at end of file
+mono/*.dll
diff --git a/lib/protoc.exe b/lib/protoc.exe
index efda94d6..2c2877b9 100644
--- a/lib/protoc.exe
+++ b/lib/protoc.exe
Binary files differ
diff --git a/protos/extest/unittest_extras_full.proto b/protos/extest/unittest_extras_full.proto
new file mode 100644
index 00000000..a334bbf1
--- /dev/null
+++ b/protos/extest/unittest_extras_full.proto
@@ -0,0 +1,72 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasFullProtoFile";
+
+package protobuf_unittest_extra;
+
+option optimize_for = CODE_SIZE;
+
+option java_package = "com.google.protobuf";
+
+message TestInteropPerson {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+ repeated int32 codes = 10 [packed=true];
+
+ enum PhoneType {
+ MOBILE = 0;
+ HOME = 1;
+ WORK = 2;
+ }
+
+ message PhoneNumber {
+ required string number = 1;
+ optional PhoneType type = 2 [default = HOME];
+ }
+
+ repeated PhoneNumber phone = 4;
+
+ repeated group Addresses = 5 {
+ required string address = 1;
+ optional string address2 = 2;
+ required string city = 3;
+ required string state = 4;
+ required fixed32 zip = 5;
+ }
+
+ extensions 100 to 199;
+}
+
+message TestInteropEmployeeId {
+ required string number = 1;
+}
+
+extend TestInteropPerson {
+ required TestInteropEmployeeId employee_id = 126;
+}
+
+message TestMissingFieldsA {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+
+ message SubA {
+ required int32 count = 5;
+ repeated string values = 6;
+ }
+ optional SubA testA = 11;
+}
+
+message TestMissingFieldsB {
+ required string name = 1;
+ required int32 id = 2;
+ optional string website = 4;
+
+ message SubB {
+ repeated string values = 7;
+ }
+ optional SubB testB = 12;
+}
diff --git a/protos/extest/unittest_extras_lite.proto b/protos/extest/unittest_extras_lite.proto
new file mode 100644
index 00000000..46d5ab91
--- /dev/null
+++ b/protos/extest/unittest_extras_lite.proto
@@ -0,0 +1,61 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestExtrasLiteProtoFile";
+
+package protobuf_unittest_extra;
+
+option optimize_for = LITE_RUNTIME;
+
+option java_package = "com.google.protobuf";
+
+message TestRequiredLite {
+ required int32 d = 1;
+ required ExtraEnum en = 2 [default = DEFAULT];
+}
+
+enum ExtraEnum {
+ DEFAULT = 10;
+ EXLITE_FOO = 7;
+ EXLITE_BAR = 8;
+ EXLITE_BAZ = 9;
+}
+
+message TestInteropPersonLite {
+ required string name = 1;
+ required int32 id = 2;
+ optional string email = 3;
+ repeated int32 codes = 10 [packed=true];
+
+ enum PhoneType {
+ MOBILE = 0;
+ HOME = 1;
+ WORK = 2;
+ }
+
+ message PhoneNumber {
+ required string number = 1;
+ optional PhoneType type = 2 [default = HOME];
+ }
+
+ repeated PhoneNumber phone = 4;
+
+ repeated group Addresses = 5 {
+ required string address = 1;
+ optional string address2 = 2;
+ required string city = 3;
+ required string state = 4;
+ required fixed32 zip = 5;
+ }
+
+ extensions 100 to 199;
+}
+
+message TestInteropEmployeeIdLite {
+ required string number = 1;
+}
+
+extend TestInteropPersonLite {
+ required TestInteropEmployeeIdLite employee_id_lite = 126;
+}
diff --git a/protos/google/protobuf/descriptor.proto b/protos/google/protobuf/descriptor.proto
index 3b858d85..cc04aa8e 100644
--- a/protos/google/protobuf/descriptor.proto
+++ b/protos/google/protobuf/descriptor.proto
@@ -247,13 +247,31 @@ message FileOptions {
// Generated classes can be optimized for speed or code size.
enum OptimizeMode {
- SPEED = 1; // Generate complete code for parsing, serialization, etc.
- CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
+ SPEED = 1; // Generate complete code for parsing, serialization,
+ // etc.
+ CODE_SIZE = 2; // Use ReflectionOps to implement these methods.
+ LITE_RUNTIME = 3; // Generate code using MessageLite and the lite runtime.
}
optional OptimizeMode optimize_for = 9 [default=SPEED];
+
+ // Should generic services be generated in each language? "Generic" services
+ // are not specific to any particular RPC system. They are generated by the
+ // main code generators in each language (without additional plugins).
+ // Generic services were the only kind of service generation supported by
+ // early versions of proto2.
+ //
+ // Generic services are now considered deprecated in favor of using plugins
+ // that generate code specific to your particular RPC system. If you are
+ // using such a plugin, set these to false. In the future, we may change
+ // the default to false, so if you explicitly want generic services, you
+ // should explicitly set these to true.
+ optional bool cc_generic_services = 16 [default=true];
+ optional bool java_generic_services = 17 [default=true];
+ optional bool py_generic_services = 18 [default=true];
+
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
@@ -282,6 +300,11 @@ message MessageOptions {
// the protocol compiler.
optional bool message_set_wire_format = 1 [default=false];
+ // Disables the generation of the standard "descriptor()" accessor, which can
+ // conflict with a field of the same name. This is meant to make migration
+ // from proto1 easier; new code should avoid fields named "descriptor".
+ optional bool no_standard_descriptor_accessor = 2 [default=false];
+
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
@@ -294,8 +317,11 @@ message FieldOptions {
// representation of the field than it normally would. See the specific
// options below. This option is not yet implemented in the open source
// release -- sorry, we'll try to include it in a future version!
- optional CType ctype = 1;
+ optional CType ctype = 1 [default = STRING];
enum CType {
+ // Default mode.
+ STRING = 0;
+
CORD = 1;
STRING_PIECE = 2;
@@ -306,12 +332,13 @@ message FieldOptions {
// a single length-delimited blob.
optional bool packed = 2;
+
// Is this field deprecated?
// Depending on the target platform, this can emit Deprecated annotations
// for accessors, or it will be completely ignored; in the very least, this
// is a formalization for deprecating fields.
optional bool deprecated = 3 [default=false];
-
+
// EXPERIMENTAL. DO NOT USE.
// For "map" fields, the name of the field in the enclosed type that
// is the key for this map. For example, suppose we have:
@@ -334,6 +361,7 @@ message FieldOptions {
}
message EnumOptions {
+
// The parser stores options it doesn't recognize here. See above.
repeated UninterpretedOption uninterpreted_option = 999;
diff --git a/protos/google/protobuf/unittest.proto b/protos/google/protobuf/unittest.proto
index dd583709..a6cd871a 100644
--- a/protos/google/protobuf/unittest.proto
+++ b/protos/google/protobuf/unittest.proto
@@ -161,6 +161,10 @@ message TestAllTypes {
optional string default_cord = 85 [ctype=CORD,default="123"];
}
+message TestDeprecatedFields {
+ optional int32 deprecated_int32 = 1 [deprecated=true];
+}
+
// Define these after TestAllTypes to make sure the compiler can handle
// that.
message ForeignMessage {
@@ -275,6 +279,14 @@ extend TestAllExtensions {
optional string default_cord_extension = 85 [ctype=CORD, default="123"];
}
+message TestNestedExtension {
+ extend TestAllExtensions {
+ // Check for bug where string extensions declared in tested scope did not
+ // compile.
+ optional string test = 1002 [default="test"];
+ }
+}
+
// We have separate messages for testing required fields because it's
// annoying to have to fill in required fields in TestProto in order to
// do anything with it. Note that we don't need to test every type of
@@ -346,6 +358,12 @@ message TestEmptyMessageWithExtensions {
extensions 1 to max;
}
+message TestMultipleExtensionRanges {
+ extensions 42;
+ extensions 4143 to 4243;
+ extensions 65536 to max;
+}
+
// Test that really large tag numbers don't break anything.
message TestReallyLargeTagNumber {
// The largest possible tag number is 2^28 - 1, since the wire format uses
@@ -370,13 +388,14 @@ message TestMutualRecursionB {
}
// Test that groups have disjoint field numbers from their siblings and
-// parents. This is NOT possible in proto1; only proto2. When outputting
-// proto1, the dup fields should be dropped.
-message TestDupFieldNumber {
- optional int32 a = 1;
- optional group Foo = 2 { optional int32 a = 1; }
- optional group Bar = 3 { optional int32 a = 1; }
-}
+// parents. This is NOT possible in proto1; only proto2. When attempting
+// to compile with proto1, this will emit an error; so we only include it
+// in protobuf_unittest_proto.
+message TestDupFieldNumber { // NO_PROTO1
+ optional int32 a = 1; // NO_PROTO1
+ optional group Foo = 2 { optional int32 a = 1; } // NO_PROTO1
+ optional group Bar = 3 { optional int32 a = 1; } // NO_PROTO1
+} // NO_PROTO1
// Needed for a Python test.
@@ -456,8 +475,37 @@ message TestExtremeDefaultValues {
// the UTF-8 text directly into this text file rather than escape it, but
// lots of people use editors that would be confused by this.)
optional string utf8_string = 6 [default = "\341\210\264"];
+
+ // Tests for single-precision floating-point values.
+ optional float zero_float = 7 [default = 0];
+ optional float one_float = 8 [default = 1];
+ optional float small_float = 9 [default = 1.5];
+ optional float negative_one_float = 10 [default = -1];
+ optional float negative_float = 11 [default = -1.5];
+ // Using exponents
+ optional float large_float = 12 [default = 2E8];
+ optional float small_negative_float = 13 [default = -8e-28];
+
+ // Text for nonfinite floating-point values.
+ optional double inf_double = 14 [default = inf];
+ optional double neg_inf_double = 15 [default = -inf];
+ optional double nan_double = 16 [default = nan];
+ optional float inf_float = 17 [default = inf];
+ optional float neg_inf_float = 18 [default = -inf];
+ optional float nan_float = 19 [default = nan];
}
+// Test String and Bytes: string is for valid UTF-8 strings
+message OneString {
+ optional string data = 1;
+}
+
+message OneBytes {
+ optional bytes data = 1;
+}
+
+// Test messages for packed fields
+
message TestPackedTypes {
repeated int32 packed_int32 = 90 [packed = true];
repeated int64 packed_int64 = 91 [packed = true];
@@ -475,6 +523,25 @@ message TestPackedTypes {
repeated ForeignEnum packed_enum = 103 [packed = true];
}
+// A message with the same fields as TestPackedTypes, but without packing. Used
+// to test packed <-> unpacked wire compatibility.
+message TestUnpackedTypes {
+ repeated int32 unpacked_int32 = 90 [packed = false];
+ repeated int64 unpacked_int64 = 91 [packed = false];
+ repeated uint32 unpacked_uint32 = 92 [packed = false];
+ repeated uint64 unpacked_uint64 = 93 [packed = false];
+ repeated sint32 unpacked_sint32 = 94 [packed = false];
+ repeated sint64 unpacked_sint64 = 95 [packed = false];
+ repeated fixed32 unpacked_fixed32 = 96 [packed = false];
+ repeated fixed64 unpacked_fixed64 = 97 [packed = false];
+ repeated sfixed32 unpacked_sfixed32 = 98 [packed = false];
+ repeated sfixed64 unpacked_sfixed64 = 99 [packed = false];
+ repeated float unpacked_float = 100 [packed = false];
+ repeated double unpacked_double = 101 [packed = false];
+ repeated bool unpacked_bool = 102 [packed = false];
+ repeated ForeignEnum unpacked_enum = 103 [packed = false];
+}
+
message TestPackedExtensions {
extensions 1 to max;
}
@@ -496,6 +563,47 @@ extend TestPackedExtensions {
repeated ForeignEnum packed_enum_extension = 103 [packed = true];
}
+// Used by ExtensionSetTest/DynamicExtensions. The test actually builds
+// a set of extensions to TestAllExtensions dynamically, based on the fields
+// of this message type.
+message TestDynamicExtensions {
+ enum DynamicEnumType {
+ DYNAMIC_FOO = 2200;
+ DYNAMIC_BAR = 2201;
+ DYNAMIC_BAZ = 2202;
+ }
+ message DynamicMessageType {
+ optional int32 dynamic_field = 2100;
+ }
+
+ optional fixed32 scalar_extension = 2000;
+ optional ForeignEnum enum_extension = 2001;
+ optional DynamicEnumType dynamic_enum_extension = 2002;
+
+ optional ForeignMessage message_extension = 2003;
+ optional DynamicMessageType dynamic_message_extension = 2004;
+
+ repeated string repeated_extension = 2005;
+ repeated sint32 packed_extension = 2006 [packed = true];
+}
+
+message TestRepeatedScalarDifferentTagSizes {
+ // Parsing repeated fixed size values used to fail. This message needs to be
+ // used in order to get a tag of the right size; all of the repeated fields
+ // in TestAllTypes didn't trigger the check.
+ repeated fixed32 repeated_fixed32 = 12;
+ // Check for a varint type, just for good measure.
+ repeated int32 repeated_int32 = 13;
+
+ // These have two-byte tags.
+ repeated fixed64 repeated_fixed64 = 2046;
+ repeated int64 repeated_int64 = 2047;
+
+ // Three byte tags.
+ repeated float repeated_float = 262142;
+ repeated uint64 repeated_uint64 = 262143;
+}
+
// Test that RPC services work.
message FooRequest {}
message FooResponse {}
diff --git a/protos/google/protobuf/unittest_custom_options.proto b/protos/google/protobuf/unittest_custom_options.proto
index 49b578f4..27ff47c2 100644
--- a/protos/google/protobuf/unittest_custom_options.proto
+++ b/protos/google/protobuf/unittest_custom_options.proto
@@ -72,7 +72,9 @@ extend google.protobuf.EnumOptions {
optional sfixed32 enum_opt1 = 7753576;
}
-// TODO(benjy): Test options on enum values when the parser supports them.
+extend google.protobuf.EnumValueOptions {
+ optional int32 enum_value_opt1 = 1560678;
+}
extend google.protobuf.ServiceOptions {
optional sint64 service_opt1 = 7887650;
@@ -101,7 +103,7 @@ message TestMessageWithCustomOptions {
option (enum_opt1) = -789;
ANENUM_VAL1 = 1;
- ANENUM_VAL2 = 2;
+ ANENUM_VAL2 = 2 [(enum_value_opt1) = 123];
}
}
@@ -208,6 +210,8 @@ message SettingRealsFromNegativeInts {
message ComplexOptionType1 {
optional int32 foo = 1;
+ optional int32 foo2 = 2;
+ optional int32 foo3 = 3;
extensions 100 to max;
}
diff --git a/protos/google/protobuf/unittest_empty.proto b/protos/google/protobuf/unittest_empty.proto
new file mode 100644
index 00000000..f6b532a8
--- /dev/null
+++ b/protos/google/protobuf/unittest_empty.proto
@@ -0,0 +1,43 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestEmptyProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// This file intentionally left blank. (At one point this wouldn't compile
+// correctly.)
+
diff --git a/protos/google/protobuf/unittest_enormous_descriptor.proto b/protos/google/protobuf/unittest_enormous_descriptor.proto
new file mode 100644
index 00000000..fa97778e
--- /dev/null
+++ b/protos/google/protobuf/unittest_enormous_descriptor.proto
@@ -0,0 +1,1052 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestEnormousDescriptorProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+// Based on original Protocol Buffers design by
+// Sanjay Ghemawat, Jeff Dean, and others.
+//
+// A proto file that has an extremely large descriptor. Used to test that
+// descriptors over 64k don't break the string literal length limit in Java.
+
+
+package google.protobuf;
+option java_package = "com.google.protobuf";
+
+// Avoid generating insanely long methods.
+option optimize_for = CODE_SIZE;
+
+message TestEnormousDescriptor {
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_1 = 1 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_2 = 2 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_3 = 3 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_4 = 4 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_5 = 5 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_6 = 6 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_7 = 7 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_8 = 8 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_9 = 9 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_10 = 10 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_11 = 11 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_12 = 12 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_13 = 13 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_14 = 14 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_15 = 15 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_16 = 16 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_17 = 17 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_18 = 18 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_19 = 19 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_20 = 20 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_21 = 21 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_22 = 22 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_23 = 23 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_24 = 24 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_25 = 25 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_26 = 26 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_27 = 27 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_28 = 28 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_29 = 29 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_30 = 30 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_31 = 31 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_32 = 32 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_33 = 33 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_34 = 34 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_35 = 35 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_36 = 36 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_37 = 37 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_38 = 38 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_39 = 39 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_40 = 40 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_41 = 41 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_42 = 42 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_43 = 43 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_44 = 44 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_45 = 45 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_46 = 46 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_47 = 47 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_48 = 48 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_49 = 49 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_50 = 50 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_51 = 51 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_52 = 52 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_53 = 53 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_54 = 54 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_55 = 55 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_56 = 56 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_57 = 57 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_58 = 58 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_59 = 59 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_60 = 60 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_61 = 61 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_62 = 62 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_63 = 63 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_64 = 64 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_65 = 65 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_66 = 66 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_67 = 67 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_68 = 68 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_69 = 69 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_70 = 70 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_71 = 71 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_72 = 72 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_73 = 73 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_74 = 74 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_75 = 75 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_76 = 76 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_77 = 77 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_78 = 78 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_79 = 79 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_80 = 80 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_81 = 81 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_82 = 82 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_83 = 83 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_84 = 84 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_85 = 85 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_86 = 86 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_87 = 87 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_88 = 88 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_89 = 89 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_90 = 90 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_91 = 91 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_92 = 92 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_93 = 93 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_94 = 94 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_95 = 95 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_96 = 96 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_97 = 97 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_98 = 98 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_99 = 99 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_100 = 100 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_101 = 101 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_102 = 102 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_103 = 103 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_104 = 104 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_105 = 105 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_106 = 106 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_107 = 107 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_108 = 108 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_109 = 109 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_110 = 110 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_111 = 111 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_112 = 112 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_113 = 113 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_114 = 114 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_115 = 115 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_116 = 116 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_117 = 117 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_118 = 118 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_119 = 119 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_120 = 120 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_121 = 121 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_122 = 122 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_123 = 123 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_124 = 124 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_125 = 125 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_126 = 126 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_127 = 127 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_128 = 128 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_129 = 129 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_130 = 130 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_131 = 131 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_132 = 132 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_133 = 133 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_134 = 134 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_135 = 135 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_136 = 136 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_137 = 137 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_138 = 138 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_139 = 139 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_140 = 140 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_141 = 141 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_142 = 142 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_143 = 143 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_144 = 144 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_145 = 145 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_146 = 146 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_147 = 147 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_148 = 148 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_149 = 149 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_150 = 150 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_151 = 151 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_152 = 152 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_153 = 153 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_154 = 154 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_155 = 155 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_156 = 156 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_157 = 157 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_158 = 158 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_159 = 159 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_160 = 160 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_161 = 161 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_162 = 162 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_163 = 163 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_164 = 164 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_165 = 165 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_166 = 166 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_167 = 167 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_168 = 168 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_169 = 169 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_170 = 170 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_171 = 171 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_172 = 172 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_173 = 173 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_174 = 174 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_175 = 175 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_176 = 176 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_177 = 177 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_178 = 178 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_179 = 179 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_180 = 180 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_181 = 181 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_182 = 182 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_183 = 183 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_184 = 184 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_185 = 185 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_186 = 186 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_187 = 187 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_188 = 188 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_189 = 189 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_190 = 190 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_191 = 191 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_192 = 192 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_193 = 193 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_194 = 194 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_195 = 195 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_196 = 196 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_197 = 197 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_198 = 198 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_199 = 199 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_200 = 200 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_201 = 201 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_202 = 202 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_203 = 203 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_204 = 204 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_205 = 205 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_206 = 206 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_207 = 207 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_208 = 208 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_209 = 209 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_210 = 210 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_211 = 211 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_212 = 212 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_213 = 213 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_214 = 214 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_215 = 215 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_216 = 216 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_217 = 217 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_218 = 218 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_219 = 219 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_220 = 220 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_221 = 221 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_222 = 222 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_223 = 223 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_224 = 224 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_225 = 225 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_226 = 226 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_227 = 227 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_228 = 228 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_229 = 229 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_230 = 230 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_231 = 231 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_232 = 232 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_233 = 233 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_234 = 234 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_235 = 235 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_236 = 236 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_237 = 237 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_238 = 238 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_239 = 239 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_240 = 240 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_241 = 241 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_242 = 242 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_243 = 243 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_244 = 244 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_245 = 245 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_246 = 246 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_247 = 247 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_248 = 248 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_249 = 249 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_250 = 250 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_251 = 251 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_252 = 252 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_253 = 253 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_254 = 254 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_255 = 255 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_256 = 256 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_257 = 257 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_258 = 258 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_259 = 259 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_260 = 260 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_261 = 261 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_262 = 262 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_263 = 263 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_264 = 264 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_265 = 265 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_266 = 266 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_267 = 267 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_268 = 268 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_269 = 269 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_270 = 270 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_271 = 271 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_272 = 272 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_273 = 273 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_274 = 274 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_275 = 275 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_276 = 276 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_277 = 277 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_278 = 278 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_279 = 279 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_280 = 280 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_281 = 281 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_282 = 282 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_283 = 283 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_284 = 284 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_285 = 285 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_286 = 286 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_287 = 287 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_288 = 288 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_289 = 289 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_290 = 290 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_291 = 291 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_292 = 292 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_293 = 293 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_294 = 294 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_295 = 295 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_296 = 296 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_297 = 297 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_298 = 298 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_299 = 299 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_300 = 300 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_301 = 301 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_302 = 302 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_303 = 303 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_304 = 304 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_305 = 305 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_306 = 306 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_307 = 307 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_308 = 308 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_309 = 309 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_310 = 310 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_311 = 311 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_312 = 312 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_313 = 313 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_314 = 314 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_315 = 315 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_316 = 316 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_317 = 317 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_318 = 318 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_319 = 319 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_320 = 320 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_321 = 321 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_322 = 322 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_323 = 323 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_324 = 324 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_325 = 325 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_326 = 326 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_327 = 327 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_328 = 328 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_329 = 329 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_330 = 330 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_331 = 331 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_332 = 332 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_333 = 333 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_334 = 334 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_335 = 335 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_336 = 336 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_337 = 337 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_338 = 338 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_339 = 339 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_340 = 340 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_341 = 341 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_342 = 342 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_343 = 343 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_344 = 344 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_345 = 345 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_346 = 346 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_347 = 347 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_348 = 348 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_349 = 349 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_350 = 350 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_351 = 351 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_352 = 352 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_353 = 353 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_354 = 354 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_355 = 355 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_356 = 356 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_357 = 357 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_358 = 358 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_359 = 359 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_360 = 360 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_361 = 361 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_362 = 362 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_363 = 363 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_364 = 364 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_365 = 365 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_366 = 366 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_367 = 367 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_368 = 368 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_369 = 369 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_370 = 370 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_371 = 371 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_372 = 372 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_373 = 373 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_374 = 374 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_375 = 375 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_376 = 376 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_377 = 377 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_378 = 378 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_379 = 379 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_380 = 380 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_381 = 381 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_382 = 382 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_383 = 383 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_384 = 384 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_385 = 385 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_386 = 386 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_387 = 387 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_388 = 388 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_389 = 389 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_390 = 390 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_391 = 391 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_392 = 392 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_393 = 393 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_394 = 394 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_395 = 395 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_396 = 396 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_397 = 397 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_398 = 398 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_399 = 399 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_400 = 400 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_401 = 401 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_402 = 402 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_403 = 403 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_404 = 404 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_405 = 405 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_406 = 406 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_407 = 407 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_408 = 408 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_409 = 409 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_410 = 410 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_411 = 411 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_412 = 412 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_413 = 413 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_414 = 414 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_415 = 415 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_416 = 416 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_417 = 417 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_418 = 418 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_419 = 419 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_420 = 420 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_421 = 421 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_422 = 422 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_423 = 423 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_424 = 424 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_425 = 425 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_426 = 426 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_427 = 427 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_428 = 428 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_429 = 429 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_430 = 430 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_431 = 431 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_432 = 432 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_433 = 433 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_434 = 434 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_435 = 435 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_436 = 436 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_437 = 437 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_438 = 438 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_439 = 439 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_440 = 440 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_441 = 441 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_442 = 442 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_443 = 443 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_444 = 444 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_445 = 445 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_446 = 446 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_447 = 447 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_448 = 448 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_449 = 449 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_450 = 450 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_451 = 451 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_452 = 452 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_453 = 453 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_454 = 454 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_455 = 455 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_456 = 456 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_457 = 457 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_458 = 458 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_459 = 459 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_460 = 460 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_461 = 461 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_462 = 462 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_463 = 463 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_464 = 464 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_465 = 465 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_466 = 466 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_467 = 467 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_468 = 468 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_469 = 469 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_470 = 470 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_471 = 471 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_472 = 472 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_473 = 473 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_474 = 474 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_475 = 475 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_476 = 476 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_477 = 477 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_478 = 478 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_479 = 479 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_480 = 480 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_481 = 481 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_482 = 482 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_483 = 483 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_484 = 484 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_485 = 485 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_486 = 486 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_487 = 487 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_488 = 488 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_489 = 489 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_490 = 490 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_491 = 491 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_492 = 492 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_493 = 493 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_494 = 494 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_495 = 495 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_496 = 496 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_497 = 497 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_498 = 498 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_499 = 499 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_500 = 500 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_501 = 501 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_502 = 502 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_503 = 503 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_504 = 504 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_505 = 505 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_506 = 506 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_507 = 507 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_508 = 508 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_509 = 509 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_510 = 510 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_511 = 511 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_512 = 512 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_513 = 513 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_514 = 514 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_515 = 515 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_516 = 516 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_517 = 517 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_518 = 518 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_519 = 519 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_520 = 520 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_521 = 521 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_522 = 522 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_523 = 523 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_524 = 524 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_525 = 525 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_526 = 526 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_527 = 527 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_528 = 528 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_529 = 529 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_530 = 530 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_531 = 531 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_532 = 532 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_533 = 533 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_534 = 534 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_535 = 535 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_536 = 536 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_537 = 537 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_538 = 538 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_539 = 539 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_540 = 540 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_541 = 541 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_542 = 542 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_543 = 543 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_544 = 544 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_545 = 545 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_546 = 546 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_547 = 547 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_548 = 548 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_549 = 549 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_550 = 550 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_551 = 551 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_552 = 552 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_553 = 553 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_554 = 554 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_555 = 555 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_556 = 556 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_557 = 557 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_558 = 558 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_559 = 559 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_560 = 560 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_561 = 561 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_562 = 562 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_563 = 563 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_564 = 564 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_565 = 565 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_566 = 566 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_567 = 567 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_568 = 568 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_569 = 569 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_570 = 570 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_571 = 571 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_572 = 572 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_573 = 573 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_574 = 574 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_575 = 575 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_576 = 576 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_577 = 577 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_578 = 578 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_579 = 579 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_580 = 580 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_581 = 581 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_582 = 582 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_583 = 583 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_584 = 584 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_585 = 585 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_586 = 586 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_587 = 587 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_588 = 588 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_589 = 589 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_590 = 590 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_591 = 591 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_592 = 592 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_593 = 593 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_594 = 594 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_595 = 595 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_596 = 596 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_597 = 597 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_598 = 598 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_599 = 599 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_600 = 600 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_601 = 601 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_602 = 602 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_603 = 603 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_604 = 604 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_605 = 605 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_606 = 606 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_607 = 607 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_608 = 608 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_609 = 609 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_610 = 610 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_611 = 611 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_612 = 612 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_613 = 613 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_614 = 614 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_615 = 615 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_616 = 616 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_617 = 617 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_618 = 618 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_619 = 619 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_620 = 620 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_621 = 621 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_622 = 622 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_623 = 623 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_624 = 624 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_625 = 625 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_626 = 626 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_627 = 627 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_628 = 628 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_629 = 629 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_630 = 630 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_631 = 631 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_632 = 632 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_633 = 633 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_634 = 634 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_635 = 635 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_636 = 636 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_637 = 637 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_638 = 638 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_639 = 639 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_640 = 640 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_641 = 641 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_642 = 642 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_643 = 643 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_644 = 644 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_645 = 645 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_646 = 646 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_647 = 647 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_648 = 648 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_649 = 649 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_650 = 650 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_651 = 651 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_652 = 652 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_653 = 653 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_654 = 654 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_655 = 655 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_656 = 656 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_657 = 657 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_658 = 658 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_659 = 659 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_660 = 660 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_661 = 661 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_662 = 662 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_663 = 663 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_664 = 664 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_665 = 665 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_666 = 666 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_667 = 667 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_668 = 668 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_669 = 669 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_670 = 670 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_671 = 671 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_672 = 672 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_673 = 673 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_674 = 674 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_675 = 675 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_676 = 676 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_677 = 677 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_678 = 678 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_679 = 679 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_680 = 680 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_681 = 681 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_682 = 682 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_683 = 683 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_684 = 684 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_685 = 685 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_686 = 686 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_687 = 687 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_688 = 688 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_689 = 689 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_690 = 690 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_691 = 691 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_692 = 692 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_693 = 693 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_694 = 694 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_695 = 695 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_696 = 696 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_697 = 697 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_698 = 698 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_699 = 699 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_700 = 700 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_701 = 701 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_702 = 702 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_703 = 703 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_704 = 704 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_705 = 705 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_706 = 706 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_707 = 707 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_708 = 708 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_709 = 709 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_710 = 710 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_711 = 711 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_712 = 712 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_713 = 713 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_714 = 714 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_715 = 715 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_716 = 716 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_717 = 717 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_718 = 718 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_719 = 719 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_720 = 720 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_721 = 721 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_722 = 722 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_723 = 723 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_724 = 724 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_725 = 725 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_726 = 726 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_727 = 727 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_728 = 728 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_729 = 729 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_730 = 730 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_731 = 731 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_732 = 732 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_733 = 733 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_734 = 734 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_735 = 735 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_736 = 736 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_737 = 737 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_738 = 738 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_739 = 739 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_740 = 740 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_741 = 741 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_742 = 742 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_743 = 743 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_744 = 744 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_745 = 745 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_746 = 746 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_747 = 747 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_748 = 748 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_749 = 749 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_750 = 750 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_751 = 751 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_752 = 752 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_753 = 753 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_754 = 754 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_755 = 755 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_756 = 756 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_757 = 757 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_758 = 758 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_759 = 759 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_760 = 760 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_761 = 761 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_762 = 762 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_763 = 763 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_764 = 764 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_765 = 765 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_766 = 766 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_767 = 767 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_768 = 768 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_769 = 769 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_770 = 770 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_771 = 771 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_772 = 772 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_773 = 773 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_774 = 774 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_775 = 775 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_776 = 776 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_777 = 777 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_778 = 778 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_779 = 779 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_780 = 780 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_781 = 781 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_782 = 782 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_783 = 783 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_784 = 784 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_785 = 785 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_786 = 786 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_787 = 787 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_788 = 788 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_789 = 789 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_790 = 790 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_791 = 791 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_792 = 792 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_793 = 793 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_794 = 794 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_795 = 795 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_796 = 796 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_797 = 797 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_798 = 798 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_799 = 799 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_800 = 800 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_801 = 801 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_802 = 802 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_803 = 803 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_804 = 804 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_805 = 805 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_806 = 806 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_807 = 807 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_808 = 808 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_809 = 809 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_810 = 810 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_811 = 811 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_812 = 812 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_813 = 813 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_814 = 814 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_815 = 815 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_816 = 816 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_817 = 817 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_818 = 818 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_819 = 819 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_820 = 820 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_821 = 821 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_822 = 822 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_823 = 823 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_824 = 824 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_825 = 825 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_826 = 826 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_827 = 827 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_828 = 828 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_829 = 829 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_830 = 830 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_831 = 831 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_832 = 832 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_833 = 833 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_834 = 834 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_835 = 835 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_836 = 836 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_837 = 837 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_838 = 838 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_839 = 839 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_840 = 840 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_841 = 841 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_842 = 842 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_843 = 843 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_844 = 844 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_845 = 845 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_846 = 846 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_847 = 847 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_848 = 848 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_849 = 849 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_850 = 850 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_851 = 851 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_852 = 852 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_853 = 853 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_854 = 854 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_855 = 855 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_856 = 856 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_857 = 857 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_858 = 858 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_859 = 859 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_860 = 860 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_861 = 861 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_862 = 862 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_863 = 863 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_864 = 864 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_865 = 865 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_866 = 866 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_867 = 867 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_868 = 868 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_869 = 869 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_870 = 870 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_871 = 871 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_872 = 872 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_873 = 873 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_874 = 874 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_875 = 875 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_876 = 876 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_877 = 877 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_878 = 878 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_879 = 879 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_880 = 880 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_881 = 881 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_882 = 882 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_883 = 883 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_884 = 884 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_885 = 885 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_886 = 886 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_887 = 887 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_888 = 888 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_889 = 889 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_890 = 890 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_891 = 891 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_892 = 892 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_893 = 893 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_894 = 894 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_895 = 895 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_896 = 896 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_897 = 897 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_898 = 898 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_899 = 899 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_900 = 900 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_901 = 901 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_902 = 902 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_903 = 903 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_904 = 904 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_905 = 905 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_906 = 906 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_907 = 907 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_908 = 908 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_909 = 909 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_910 = 910 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_911 = 911 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_912 = 912 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_913 = 913 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_914 = 914 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_915 = 915 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_916 = 916 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_917 = 917 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_918 = 918 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_919 = 919 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_920 = 920 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_921 = 921 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_922 = 922 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_923 = 923 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_924 = 924 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_925 = 925 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_926 = 926 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_927 = 927 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_928 = 928 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_929 = 929 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_930 = 930 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_931 = 931 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_932 = 932 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_933 = 933 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_934 = 934 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_935 = 935 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_936 = 936 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_937 = 937 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_938 = 938 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_939 = 939 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_940 = 940 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_941 = 941 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_942 = 942 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_943 = 943 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_944 = 944 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_945 = 945 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_946 = 946 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_947 = 947 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_948 = 948 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_949 = 949 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_950 = 950 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_951 = 951 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_952 = 952 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_953 = 953 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_954 = 954 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_955 = 955 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_956 = 956 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_957 = 957 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_958 = 958 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_959 = 959 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_960 = 960 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_961 = 961 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_962 = 962 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_963 = 963 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_964 = 964 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_965 = 965 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_966 = 966 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_967 = 967 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_968 = 968 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_969 = 969 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_970 = 970 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_971 = 971 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_972 = 972 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_973 = 973 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_974 = 974 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_975 = 975 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_976 = 976 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_977 = 977 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_978 = 978 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_979 = 979 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_980 = 980 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_981 = 981 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_982 = 982 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_983 = 983 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_984 = 984 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_985 = 985 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_986 = 986 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_987 = 987 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_988 = 988 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_989 = 989 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_990 = 990 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_991 = 991 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_992 = 992 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_993 = 993 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_994 = 994 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_995 = 995 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_996 = 996 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_997 = 997 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_998 = 998 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_999 = 999 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+ optional string long_field_name_is_looooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong_1000 = 1000 [default="long default value is also loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong"];
+}
diff --git a/protos/google/protobuf/unittest_import_lite.proto b/protos/google/protobuf/unittest_import_lite.proto
new file mode 100644
index 00000000..d8755d0e
--- /dev/null
+++ b/protos/google/protobuf/unittest_import_lite.proto
@@ -0,0 +1,55 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestImportLiteProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+//
+// This is like unittest_import.proto but with optimize_for = LITE_RUNTIME.
+
+package protobuf_unittest_import;
+
+option optimize_for = LITE_RUNTIME;
+
+option java_package = "com.google.protobuf";
+
+message ImportMessageLite {
+ optional int32 d = 1;
+}
+
+enum ImportEnumLite {
+ IMPORT_LITE_FOO = 7;
+ IMPORT_LITE_BAR = 8;
+ IMPORT_LITE_BAZ = 9;
+}
diff --git a/protos/google/protobuf/unittest_lite.proto b/protos/google/protobuf/unittest_lite.proto
new file mode 100644
index 00000000..823fa1dd
--- /dev/null
+++ b/protos/google/protobuf/unittest_lite.proto
@@ -0,0 +1,318 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestLiteProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+//
+// This is like unittest.proto but with optimize_for = LITE_RUNTIME.
+
+package protobuf_unittest;
+
+import "google/protobuf/unittest_import_lite.proto";
+
+option optimize_for = LITE_RUNTIME;
+
+option java_package = "com.google.protobuf";
+
+// Same as TestAllTypes but with the lite runtime.
+message TestAllTypesLite {
+ message NestedMessage {
+ optional int32 bb = 1;
+ }
+
+ enum NestedEnum {
+ FOO = 1;
+ BAR = 2;
+ BAZ = 3;
+ }
+
+ // Singular
+ optional int32 optional_int32 = 1;
+ optional int64 optional_int64 = 2;
+ optional uint32 optional_uint32 = 3;
+ optional uint64 optional_uint64 = 4;
+ optional sint32 optional_sint32 = 5;
+ optional sint64 optional_sint64 = 6;
+ optional fixed32 optional_fixed32 = 7;
+ optional fixed64 optional_fixed64 = 8;
+ optional sfixed32 optional_sfixed32 = 9;
+ optional sfixed64 optional_sfixed64 = 10;
+ optional float optional_float = 11;
+ optional double optional_double = 12;
+ optional bool optional_bool = 13;
+ optional string optional_string = 14;
+ optional bytes optional_bytes = 15;
+
+ optional group OptionalGroup = 16 {
+ optional int32 a = 17;
+ }
+
+ optional NestedMessage optional_nested_message = 18;
+ optional ForeignMessageLite optional_foreign_message = 19;
+ optional protobuf_unittest_import.ImportMessageLite
+ optional_import_message = 20;
+
+ optional NestedEnum optional_nested_enum = 21;
+ optional ForeignEnumLite optional_foreign_enum = 22;
+ optional protobuf_unittest_import.ImportEnumLite optional_import_enum = 23;
+
+ optional string optional_string_piece = 24 [ctype=STRING_PIECE];
+ optional string optional_cord = 25 [ctype=CORD];
+
+ // Repeated
+ repeated int32 repeated_int32 = 31;
+ repeated int64 repeated_int64 = 32;
+ repeated uint32 repeated_uint32 = 33;
+ repeated uint64 repeated_uint64 = 34;
+ repeated sint32 repeated_sint32 = 35;
+ repeated sint64 repeated_sint64 = 36;
+ repeated fixed32 repeated_fixed32 = 37;
+ repeated fixed64 repeated_fixed64 = 38;
+ repeated sfixed32 repeated_sfixed32 = 39;
+ repeated sfixed64 repeated_sfixed64 = 40;
+ repeated float repeated_float = 41;
+ repeated double repeated_double = 42;
+ repeated bool repeated_bool = 43;
+ repeated string repeated_string = 44;
+ repeated bytes repeated_bytes = 45;
+
+ repeated group RepeatedGroup = 46 {
+ optional int32 a = 47;
+ }
+
+ repeated NestedMessage repeated_nested_message = 48;
+ repeated ForeignMessageLite repeated_foreign_message = 49;
+ repeated protobuf_unittest_import.ImportMessageLite
+ repeated_import_message = 50;
+
+ repeated NestedEnum repeated_nested_enum = 51;
+ repeated ForeignEnumLite repeated_foreign_enum = 52;
+ repeated protobuf_unittest_import.ImportEnumLite repeated_import_enum = 53;
+
+ repeated string repeated_string_piece = 54 [ctype=STRING_PIECE];
+ repeated string repeated_cord = 55 [ctype=CORD];
+
+ // Singular with defaults
+ optional int32 default_int32 = 61 [default = 41 ];
+ optional int64 default_int64 = 62 [default = 42 ];
+ optional uint32 default_uint32 = 63 [default = 43 ];
+ optional uint64 default_uint64 = 64 [default = 44 ];
+ optional sint32 default_sint32 = 65 [default = -45 ];
+ optional sint64 default_sint64 = 66 [default = 46 ];
+ optional fixed32 default_fixed32 = 67 [default = 47 ];
+ optional fixed64 default_fixed64 = 68 [default = 48 ];
+ optional sfixed32 default_sfixed32 = 69 [default = 49 ];
+ optional sfixed64 default_sfixed64 = 70 [default = -50 ];
+ optional float default_float = 71 [default = 51.5 ];
+ optional double default_double = 72 [default = 52e3 ];
+ optional bool default_bool = 73 [default = true ];
+ optional string default_string = 74 [default = "hello"];
+ optional bytes default_bytes = 75 [default = "world"];
+
+ optional NestedEnum default_nested_enum = 81 [default = BAR];
+ optional ForeignEnumLite default_foreign_enum = 82
+ [default = FOREIGN_LITE_BAR];
+ optional protobuf_unittest_import.ImportEnumLite
+ default_import_enum = 83 [default = IMPORT_LITE_BAR];
+
+ optional string default_string_piece = 84 [ctype=STRING_PIECE,default="abc"];
+ optional string default_cord = 85 [ctype=CORD,default="123"];
+}
+
+message ForeignMessageLite {
+ optional int32 c = 1;
+}
+
+enum ForeignEnumLite {
+ FOREIGN_LITE_FOO = 4;
+ FOREIGN_LITE_BAR = 5;
+ FOREIGN_LITE_BAZ = 6;
+}
+
+message TestPackedTypesLite {
+ repeated int32 packed_int32 = 90 [packed = true];
+ repeated int64 packed_int64 = 91 [packed = true];
+ repeated uint32 packed_uint32 = 92 [packed = true];
+ repeated uint64 packed_uint64 = 93 [packed = true];
+ repeated sint32 packed_sint32 = 94 [packed = true];
+ repeated sint64 packed_sint64 = 95 [packed = true];
+ repeated fixed32 packed_fixed32 = 96 [packed = true];
+ repeated fixed64 packed_fixed64 = 97 [packed = true];
+ repeated sfixed32 packed_sfixed32 = 98 [packed = true];
+ repeated sfixed64 packed_sfixed64 = 99 [packed = true];
+ repeated float packed_float = 100 [packed = true];
+ repeated double packed_double = 101 [packed = true];
+ repeated bool packed_bool = 102 [packed = true];
+ repeated ForeignEnumLite packed_enum = 103 [packed = true];
+}
+
+message TestAllExtensionsLite {
+ extensions 1 to max;
+}
+
+extend TestAllExtensionsLite {
+ // Singular
+ optional int32 optional_int32_extension_lite = 1;
+ optional int64 optional_int64_extension_lite = 2;
+ optional uint32 optional_uint32_extension_lite = 3;
+ optional uint64 optional_uint64_extension_lite = 4;
+ optional sint32 optional_sint32_extension_lite = 5;
+ optional sint64 optional_sint64_extension_lite = 6;
+ optional fixed32 optional_fixed32_extension_lite = 7;
+ optional fixed64 optional_fixed64_extension_lite = 8;
+ optional sfixed32 optional_sfixed32_extension_lite = 9;
+ optional sfixed64 optional_sfixed64_extension_lite = 10;
+ optional float optional_float_extension_lite = 11;
+ optional double optional_double_extension_lite = 12;
+ optional bool optional_bool_extension_lite = 13;
+ optional string optional_string_extension_lite = 14;
+ optional bytes optional_bytes_extension_lite = 15;
+
+ optional group OptionalGroup_extension_lite = 16 {
+ optional int32 a = 17;
+ }
+
+ optional TestAllTypesLite.NestedMessage optional_nested_message_extension_lite
+ = 18;
+ optional ForeignMessageLite optional_foreign_message_extension_lite = 19;
+ optional protobuf_unittest_import.ImportMessageLite
+ optional_import_message_extension_lite = 20;
+
+ optional TestAllTypesLite.NestedEnum optional_nested_enum_extension_lite = 21;
+ optional ForeignEnumLite optional_foreign_enum_extension_lite = 22;
+ optional protobuf_unittest_import.ImportEnumLite
+ optional_import_enum_extension_lite = 23;
+
+ optional string optional_string_piece_extension_lite = 24
+ [ctype=STRING_PIECE];
+ optional string optional_cord_extension_lite = 25 [ctype=CORD];
+
+ // Repeated
+ repeated int32 repeated_int32_extension_lite = 31;
+ repeated int64 repeated_int64_extension_lite = 32;
+ repeated uint32 repeated_uint32_extension_lite = 33;
+ repeated uint64 repeated_uint64_extension_lite = 34;
+ repeated sint32 repeated_sint32_extension_lite = 35;
+ repeated sint64 repeated_sint64_extension_lite = 36;
+ repeated fixed32 repeated_fixed32_extension_lite = 37;
+ repeated fixed64 repeated_fixed64_extension_lite = 38;
+ repeated sfixed32 repeated_sfixed32_extension_lite = 39;
+ repeated sfixed64 repeated_sfixed64_extension_lite = 40;
+ repeated float repeated_float_extension_lite = 41;
+ repeated double repeated_double_extension_lite = 42;
+ repeated bool repeated_bool_extension_lite = 43;
+ repeated string repeated_string_extension_lite = 44;
+ repeated bytes repeated_bytes_extension_lite = 45;
+
+ repeated group RepeatedGroup_extension_lite = 46 {
+ optional int32 a = 47;
+ }
+
+ repeated TestAllTypesLite.NestedMessage repeated_nested_message_extension_lite
+ = 48;
+ repeated ForeignMessageLite repeated_foreign_message_extension_lite = 49;
+ repeated protobuf_unittest_import.ImportMessageLite
+ repeated_import_message_extension_lite = 50;
+
+ repeated TestAllTypesLite.NestedEnum repeated_nested_enum_extension_lite = 51;
+ repeated ForeignEnumLite repeated_foreign_enum_extension_lite = 52;
+ repeated protobuf_unittest_import.ImportEnumLite
+ repeated_import_enum_extension_lite = 53;
+
+ repeated string repeated_string_piece_extension_lite = 54
+ [ctype=STRING_PIECE];
+ repeated string repeated_cord_extension_lite = 55 [ctype=CORD];
+
+ // Singular with defaults
+ optional int32 default_int32_extension_lite = 61 [default = 41 ];
+ optional int64 default_int64_extension_lite = 62 [default = 42 ];
+ optional uint32 default_uint32_extension_lite = 63 [default = 43 ];
+ optional uint64 default_uint64_extension_lite = 64 [default = 44 ];
+ optional sint32 default_sint32_extension_lite = 65 [default = -45 ];
+ optional sint64 default_sint64_extension_lite = 66 [default = 46 ];
+ optional fixed32 default_fixed32_extension_lite = 67 [default = 47 ];
+ optional fixed64 default_fixed64_extension_lite = 68 [default = 48 ];
+ optional sfixed32 default_sfixed32_extension_lite = 69 [default = 49 ];
+ optional sfixed64 default_sfixed64_extension_lite = 70 [default = -50 ];
+ optional float default_float_extension_lite = 71 [default = 51.5 ];
+ optional double default_double_extension_lite = 72 [default = 52e3 ];
+ optional bool default_bool_extension_lite = 73 [default = true ];
+ optional string default_string_extension_lite = 74 [default = "hello"];
+ optional bytes default_bytes_extension_lite = 75 [default = "world"];
+
+ optional TestAllTypesLite.NestedEnum
+ default_nested_enum_extension_lite = 81 [default = BAR];
+ optional ForeignEnumLite
+ default_foreign_enum_extension_lite = 82 [default = FOREIGN_LITE_BAR];
+ optional protobuf_unittest_import.ImportEnumLite
+ default_import_enum_extension_lite = 83 [default = IMPORT_LITE_BAR];
+
+ optional string default_string_piece_extension_lite = 84 [ctype=STRING_PIECE,
+ default="abc"];
+ optional string default_cord_extension_lite = 85 [ctype=CORD, default="123"];
+}
+
+message TestPackedExtensionsLite {
+ extensions 1 to max;
+}
+
+extend TestPackedExtensionsLite {
+ repeated int32 packed_int32_extension_lite = 90 [packed = true];
+ repeated int64 packed_int64_extension_lite = 91 [packed = true];
+ repeated uint32 packed_uint32_extension_lite = 92 [packed = true];
+ repeated uint64 packed_uint64_extension_lite = 93 [packed = true];
+ repeated sint32 packed_sint32_extension_lite = 94 [packed = true];
+ repeated sint64 packed_sint64_extension_lite = 95 [packed = true];
+ repeated fixed32 packed_fixed32_extension_lite = 96 [packed = true];
+ repeated fixed64 packed_fixed64_extension_lite = 97 [packed = true];
+ repeated sfixed32 packed_sfixed32_extension_lite = 98 [packed = true];
+ repeated sfixed64 packed_sfixed64_extension_lite = 99 [packed = true];
+ repeated float packed_float_extension_lite = 100 [packed = true];
+ repeated double packed_double_extension_lite = 101 [packed = true];
+ repeated bool packed_bool_extension_lite = 102 [packed = true];
+ repeated ForeignEnumLite packed_enum_extension_lite = 103 [packed = true];
+}
+
+message TestNestedExtensionLite {
+ extend TestAllExtensionsLite {
+ optional int32 nested_extension = 12345;
+ }
+}
+
+// Test that deprecated fields work. We only verify that they compile (at one
+// point this failed).
+message TestDeprecatedLite {
+ optional int32 deprecated_field = 1 [deprecated = true];
+}
diff --git a/protos/google/protobuf/unittest_lite_imports_nonlite.proto b/protos/google/protobuf/unittest_lite_imports_nonlite.proto
new file mode 100644
index 00000000..8f18f4d6
--- /dev/null
+++ b/protos/google/protobuf/unittest_lite_imports_nonlite.proto
@@ -0,0 +1,49 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestLiteImportNonLiteProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+//
+// Tests that a "lite" message can import a regular message.
+
+package protobuf_unittest;
+
+import "google/protobuf/unittest.proto";
+
+option optimize_for = LITE_RUNTIME;
+
+message TestLiteImportsNonlite {
+ optional TestAllTypes message = 1;
+}
diff --git a/protos/google/protobuf/unittest_no_generic_services.proto b/protos/google/protobuf/unittest_no_generic_services.proto
new file mode 100644
index 00000000..3f7af0b8
--- /dev/null
+++ b/protos/google/protobuf/unittest_no_generic_services.proto
@@ -0,0 +1,60 @@
+// Additional options required for C# generation. File from copyright
+// line onwards is as per original distribution.
+import "google/protobuf/csharp_options.proto";
+option (google.protobuf.csharp_file_options).namespace = "Google.ProtocolBuffers.TestProtos.NoGenericService";
+option (google.protobuf.csharp_file_options).umbrella_classname = "UnitTestNoGenericServicesProtoFile";
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+// Author: kenton@google.com (Kenton Varda)
+
+package google.protobuf.no_generic_services_test;
+
+option cc_generic_services = false;
+option java_generic_services = false;
+option py_generic_services = false;
+
+message TestMessage {
+ optional int32 a = 1;
+ extensions 1000 to max;
+}
+
+enum TestEnum {
+ FOO = 1;
+}
+
+extend TestMessage {
+ optional int32 test_extension = 1000;
+}
+
+service TestService {
+ rpc Foo(TestMessage) returns(TestMessage);
+}
diff --git a/src/AddressBook/AddressBookProtos.cs b/src/AddressBook/AddressBookProtos.cs
index cc3905d1..2e845e6d 100644
--- a/src/AddressBook/AddressBookProtos.cs
+++ b/src/AddressBook/AddressBookProtos.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
diff --git a/src/ProtoGen.Test/ProtoGen.Test.csproj b/src/ProtoGen.Test/ProtoGen.Test.csproj
index 869e7318..d032b3e7 100644
--- a/src/ProtoGen.Test/ProtoGen.Test.csproj
+++ b/src/ProtoGen.Test/ProtoGen.Test.csproj
@@ -78,7 +78,7 @@
<ItemGroup>
<Reference Include="nunit.framework, Version=2.2.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\lib\nunit.framework.dll</HintPath>
+ <HintPath>..\..\lib\NUnit 2.2.8.0\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
diff --git a/src/ProtoGen/EnumFieldGenerator.cs b/src/ProtoGen/EnumFieldGenerator.cs
index 5fc24b56..6cd59869 100644
--- a/src/ProtoGen/EnumFieldGenerator.cs
+++ b/src/ProtoGen/EnumFieldGenerator.cs
@@ -88,10 +88,12 @@ namespace Google.ProtocolBuffers.ProtoGen {
// TODO(jonskeet): Make a more efficient way of doing this
writer.WriteLine("int rawValue = input.ReadEnum();");
writer.WriteLine("if (!global::System.Enum.IsDefined(typeof({0}), rawValue)) {{", TypeName);
- writer.WriteLine(" if (unknownFields == null) {"); // First unknown field - create builder now
- writer.WriteLine(" unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);");
- writer.WriteLine(" }");
- writer.WriteLine(" unknownFields.MergeVarintField({0}, (ulong) rawValue);", Number);
+ if (!UseLiteRuntime) {
+ writer.WriteLine(" if (unknownFields == null) {"); // First unknown field - create builder now
+ writer.WriteLine(" unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);");
+ writer.WriteLine(" }");
+ writer.WriteLine(" unknownFields.MergeVarintField({0}, (ulong) rawValue);", Number);
+ }
writer.WriteLine("} else {");
writer.WriteLine(" {0} = ({1}) rawValue;", PropertyName, TypeName);
writer.WriteLine("}");
@@ -106,7 +108,19 @@ namespace Google.ProtocolBuffers.ProtoGen {
public void GenerateSerializedSizeCode(TextGenerator writer) {
writer.WriteLine("if (Has{0}) {{", PropertyName);
writer.WriteLine(" size += pb::CodedOutputStream.ComputeEnumSize({0}, (int) {1});", Number, PropertyName);
- writer.WriteLine("}");
+ writer.WriteLine("}");
+ }
+
+ public override void WriteHash(TextGenerator writer) {
+ writer.WriteLine("if (has{0}) hash ^= {1}_.GetHashCode();", PropertyName, Name);
+ }
+
+ public override void WriteEquals(TextGenerator writer) {
+ writer.WriteLine("if (has{0} != other.has{0} || (has{0} && !{1}_.Equals(other.{1}_))) return false;", PropertyName, Name);
+ }
+
+ public override void WriteToString(TextGenerator writer) {
+ writer.WriteLine("PrintField(\"{0}\", has{1}, {2}_, writer);", Descriptor.Name, PropertyName, Name);
}
}
}
diff --git a/src/ProtoGen/ExtensionGenerator.cs b/src/ProtoGen/ExtensionGenerator.cs
index 6970e69a..57713bf7 100644
--- a/src/ProtoGen/ExtensionGenerator.cs
+++ b/src/ProtoGen/ExtensionGenerator.cs
@@ -32,16 +32,20 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#endregion
+using System;
+using System.Globalization;
using Google.ProtocolBuffers.Descriptors;
namespace Google.ProtocolBuffers.ProtoGen {
- internal class ExtensionGenerator : SourceGeneratorBase<FieldDescriptor>, ISourceGenerator {
+ internal class ExtensionGenerator : FieldGeneratorBase, ISourceGenerator {
+ private readonly string extends;
private readonly string scope;
private readonly string type;
private readonly string name;
- internal ExtensionGenerator(FieldDescriptor descriptor) : base(descriptor) {
+ internal ExtensionGenerator(FieldDescriptor descriptor)
+ : base(descriptor) {
if (Descriptor.ExtensionScope != null) {
scope = GetClassName(Descriptor.ExtensionScope);
} else {
@@ -58,14 +62,24 @@ namespace Google.ProtocolBuffers.ProtoGen {
type = DescriptorUtil.GetMappedTypeName(Descriptor.MappedType);
break;
}
+ extends = GetClassName(Descriptor.ContainingType);
name = Descriptor.CSharpOptions.PropertyName;
}
public void Generate(TextGenerator writer) {
- writer.WriteLine ("public const int {0} = {1};", GetFieldConstantName(Descriptor), Descriptor.FieldNumber);
- if (Descriptor.IsRepeated) {
- if (!Descriptor.IsCLSCompliant && Descriptor.File.CSharpOptions.ClsCompliance)
- {
+ writer.WriteLine("public const int {0} = {1};", GetFieldConstantName(Descriptor), Descriptor.FieldNumber);
+
+ if (UseLiteRuntime) {
+ if (Descriptor.MappedType == MappedType.Message && Descriptor.MessageType.Options.MessageSetWireFormat) {
+ throw new ArgumentException("option message_set_wire_format = true; is not supported in Lite runtime extensions.");
+ }
+ if (!Descriptor.IsCLSCompliant && Descriptor.File.CSharpOptions.ClsCompliance) {
+ writer.WriteLine("[global::System.CLSCompliant(false)]");
+ }
+ writer.WriteLine("{0} static pb::{4}<{1}, {2}> {3};", ClassAccessLevel, extends, type, name,
+ Descriptor.IsRepeated ? "GeneratedRepeatExtensionLite" : "GeneratedExtensionLite");
+ } else if (Descriptor.IsRepeated) {
+ if (!Descriptor.IsCLSCompliant && Descriptor.File.CSharpOptions.ClsCompliance) {
writer.WriteLine("[global::System.CLSCompliant(false)]");
}
writer.WriteLine("{0} static pb::GeneratedExtensionBase<scg::IList<{1}>> {2};", ClassAccessLevel, type, name);
@@ -78,7 +92,27 @@ namespace Google.ProtocolBuffers.ProtoGen {
}
internal void GenerateStaticVariableInitializers(TextGenerator writer) {
- if (Descriptor.IsRepeated) {
+ if (UseLiteRuntime) {
+ writer.WriteLine("{0}.{1} = ", scope, name);
+ writer.Indent();
+ writer.WriteLine("new pb::{0}<{1}, {2}>(", Descriptor.IsRepeated ? "GeneratedRepeatExtensionLite" : "GeneratedExtensionLite", extends, type);
+ writer.Indent();
+ writer.WriteLine("\"{0}\",", Descriptor.FullName);
+ writer.WriteLine("{0}.DefaultInstance,", extends);
+ if(!Descriptor.IsRepeated)
+ writer.WriteLine("{0},", Descriptor.HasDefaultValue ? DefaultValue : IsNullableType ? "null" : "default(" + type + ")");
+ writer.WriteLine("{0},", (Descriptor.MappedType == MappedType.Message) ? type + ".DefaultInstance" : "null");
+ writer.WriteLine("{0},", (Descriptor.MappedType == MappedType.Enum) ? "new EnumLiteMap<" + type + ">()" : "null");
+ writer.WriteLine("{0}.{1}FieldNumber,", scope, name);
+ writer.Write("pbd::FieldType.{0}", Descriptor.FieldType);
+ if (Descriptor.IsRepeated) {
+ writer.WriteLine(",");
+ writer.Write(Descriptor.IsPacked ? "true" : "false");
+ }
+ writer.Outdent();
+ writer.WriteLine(");");
+ writer.Outdent();
+ } else if (Descriptor.IsRepeated) {
writer.WriteLine("{0}.{1} = pb::GeneratedRepeatExtension<{2}>.CreateInstance({0}.Descriptor.Extensions[{3}]);", scope, name, type, Descriptor.Index);
} else {
writer.WriteLine("{0}.{1} = pb::GeneratedSingleExtension<{2}>.CreateInstance({0}.Descriptor.Extensions[{3}]);", scope, name, type, Descriptor.Index);
@@ -88,5 +122,14 @@ namespace Google.ProtocolBuffers.ProtoGen {
internal void GenerateExtensionRegistrationCode(TextGenerator writer) {
writer.WriteLine("registry.Add({0}.{1});", scope, name);
}
+
+ public override void WriteHash(TextGenerator writer) {
+ }
+
+ public override void WriteEquals(TextGenerator writer) {
+ }
+
+ public override void WriteToString(TextGenerator writer) {
+ }
}
}
diff --git a/src/ProtoGen/FieldGeneratorBase.cs b/src/ProtoGen/FieldGeneratorBase.cs
index 1c273b18..45a096a0 100644
--- a/src/ProtoGen/FieldGeneratorBase.cs
+++ b/src/ProtoGen/FieldGeneratorBase.cs
@@ -42,6 +42,10 @@ namespace Google.ProtocolBuffers.ProtoGen {
: base(descriptor) {
}
+ public abstract void WriteHash(TextGenerator writer);
+ public abstract void WriteEquals(TextGenerator writer);
+ public abstract void WriteToString(TextGenerator writer);
+
private static bool AllPrintableAscii(string text) {
foreach (char c in text) {
if (c < 0x20 || c > 0x7e) {
@@ -51,6 +55,7 @@ namespace Google.ProtocolBuffers.ProtoGen {
return true;
}
+ /// <remarks>Copy exists in ExtensionGenerator.cs</remarks>
protected string DefaultValue {
get {
string suffix = "";
@@ -72,11 +77,30 @@ namespace Google.ProtocolBuffers.ProtoGen {
case FieldType.UInt32:
case FieldType.UInt64:
case FieldType.Fixed32:
- case FieldType.Fixed64:
+ case FieldType.Fixed64:
+ {
// The simple Object.ToString converts using the current culture.
// We want to always use the invariant culture so it's predictable.
IConvertible value = (IConvertible) Descriptor.DefaultValue;
+ //a few things that must be handled explicitly
+ if (Descriptor.FieldType == FieldType.Double && value is double) {
+ if (double.IsNaN((double) value))
+ return "double.NaN";
+ if (double.IsPositiveInfinity((double) value))
+ return "double.PositiveInfinity";
+ if (double.IsNegativeInfinity((double) value))
+ return "double.NegativeInfinity";
+ }
+ else if (Descriptor.FieldType == FieldType.Float && value is float) {
+ if (float.IsNaN((float)value))
+ return "float.NaN";
+ if (float.IsPositiveInfinity((float)value))
+ return "float.PositiveInfinity";
+ if (float.IsNegativeInfinity((float)value))
+ return "float.NegativeInfinity";
+ }
return value.ToString(CultureInfo.InvariantCulture) + suffix;
+ }
case FieldType.Bool:
return (bool) Descriptor.DefaultValue ? "true" : "false";
@@ -84,6 +108,10 @@ namespace Google.ProtocolBuffers.ProtoGen {
if (!Descriptor.HasDefaultValue) {
return "pb::ByteString.Empty";
}
+ if (UseLiteRuntime && Descriptor.DefaultValue is ByteString) {
+ string temp = Convert.ToBase64String(((ByteString)Descriptor.DefaultValue).ToByteArray());
+ return String.Format("ByteString.FromBase64(\"{0}\")", temp);
+ }
return string.Format("(pb::ByteString) {0}.Descriptor.Fields[{1}].DefaultValue", GetClassName(Descriptor.ContainingType), Descriptor.Index);
case FieldType.String:
if (AllPrintableAscii(Descriptor.Proto.DefaultValue)) {
@@ -95,6 +123,10 @@ namespace Google.ProtocolBuffers.ProtoGen {
.Replace("\"", "\\\"")
+ "\"";
}
+ if (UseLiteRuntime && Descriptor.DefaultValue is String) {
+ string temp = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes((String)Descriptor.DefaultValue));
+ return String.Format("ByteString.FromBase64(\"{0}\").ToStringUtf8()", temp);
+ }
return string.Format("(string) {0}.Descriptor.Fields[{1}].DefaultValue", GetClassName(Descriptor.ContainingType), Descriptor.Index);
case FieldType.Enum:
return TypeName + "." + ((EnumValueDescriptor) Descriptor.DefaultValue).Name;
diff --git a/src/ProtoGen/Helpers.cs b/src/ProtoGen/Helpers.cs
index 7fb7d8fd..6b6e3163 100644
--- a/src/ProtoGen/Helpers.cs
+++ b/src/ProtoGen/Helpers.cs
@@ -38,11 +38,5 @@ namespace Google.ProtocolBuffers.ProtoGen {
/// Helpers to resolve class names etc.
/// </summary>
internal static class Helpers {
- internal static void WriteNamespaces(TextGenerator writer) {
- writer.WriteLine("using pb = global::Google.ProtocolBuffers;");
- writer.WriteLine("using pbc = global::Google.ProtocolBuffers.Collections;");
- writer.WriteLine("using pbd = global::Google.ProtocolBuffers.Descriptors;");
- writer.WriteLine("using scg = global::System.Collections.Generic;");
- }
}
}
diff --git a/src/ProtoGen/IFieldSourceGenerator.cs b/src/ProtoGen/IFieldSourceGenerator.cs
index 0753c5da..9c71a579 100644
--- a/src/ProtoGen/IFieldSourceGenerator.cs
+++ b/src/ProtoGen/IFieldSourceGenerator.cs
@@ -41,5 +41,9 @@ namespace Google.ProtocolBuffers.ProtoGen {
void GenerateParsingCode(TextGenerator writer);
void GenerateSerializationCode(TextGenerator writer);
void GenerateSerializedSizeCode(TextGenerator writer);
+
+ void WriteHash(TextGenerator writer);
+ void WriteEquals(TextGenerator writer);
+ void WriteToString(TextGenerator writer);
}
}
diff --git a/src/ProtoGen/MessageFieldGenerator.cs b/src/ProtoGen/MessageFieldGenerator.cs
index c2b5372e..d952984a 100644
--- a/src/ProtoGen/MessageFieldGenerator.cs
+++ b/src/ProtoGen/MessageFieldGenerator.cs
@@ -125,5 +125,18 @@ namespace Google.ProtocolBuffers.ProtoGen {
MessageOrGroup, Number, PropertyName);
writer.WriteLine("}");
}
+
+ public override void WriteHash(TextGenerator writer) {
+ writer.WriteLine("if (has{0}) hash ^= {1}_.GetHashCode();", PropertyName, Name);
+ }
+
+ public override void WriteEquals(TextGenerator writer) {
+ writer.WriteLine("if (has{0} != other.has{0} || (has{0} && !{1}_.Equals(other.{1}_))) return false;", PropertyName, Name);
+ }
+
+ public override void WriteToString(TextGenerator writer) {
+ writer.WriteLine("PrintField(\"{2}\", has{0}, {1}_, writer);", PropertyName, Name,
+ Descriptor.FieldType == FieldType.Group ? Descriptor.MessageType.Name : Descriptor.Name);
+ }
}
}
diff --git a/src/ProtoGen/MessageGenerator.cs b/src/ProtoGen/MessageGenerator.cs
index 3488cdc9..43b8b7eb 100644
--- a/src/ProtoGen/MessageGenerator.cs
+++ b/src/ProtoGen/MessageGenerator.cs
@@ -32,6 +32,7 @@
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#endregion
+using System;
using System.Collections.Generic;
using Google.ProtocolBuffers.DescriptorProtos;
using Google.ProtocolBuffers.Descriptors;
@@ -69,12 +70,13 @@ namespace Google.ProtocolBuffers.ProtoGen {
string identifier = GetUniqueFileScopeIdentifier(Descriptor);
- // The descriptor for this type.
- string access = Descriptor.File.CSharpOptions.NestClasses ? "private" : "internal";
- writer.WriteLine("{0} static pbd::MessageDescriptor internal__{1}__Descriptor;", access, identifier);
- writer.WriteLine("{0} static pb::FieldAccess.FieldAccessorTable<{1}, {1}.Builder> internal__{2}__FieldAccessorTable;",
- access, FullClassName, identifier);
-
+ if (!UseLiteRuntime) {
+ // The descriptor for this type.
+ string access = Descriptor.File.CSharpOptions.NestClasses ? "private" : "internal";
+ writer.WriteLine("{0} static pbd::MessageDescriptor internal__{1}__Descriptor;", access, identifier);
+ writer.WriteLine("{0} static pb::FieldAccess.FieldAccessorTable<{1}, {1}.Builder> internal__{2}__FieldAccessorTable;",
+ access, FullClassName, identifier);
+ }
// Generate static members for all nested types.
foreach (MessageDescriptor nestedMessage in Descriptor.NestedTypes) {
new MessageGenerator(nestedMessage).GenerateStaticVariables(writer);
@@ -84,21 +86,23 @@ namespace Google.ProtocolBuffers.ProtoGen {
internal void GenerateStaticVariableInitializers(TextGenerator writer) {
string identifier = GetUniqueFileScopeIdentifier(Descriptor);
- writer.Write("internal__{0}__Descriptor = ", identifier);
- if (Descriptor.ContainingType == null) {
- writer.WriteLine("Descriptor.MessageTypes[{0}];", Descriptor.Index);
- } else {
- writer.WriteLine("internal__{0}__Descriptor.NestedTypes[{1}];", GetUniqueFileScopeIdentifier(Descriptor.ContainingType), Descriptor.Index);
- }
+ if (!UseLiteRuntime) {
+ writer.Write("internal__{0}__Descriptor = ", identifier);
+ if (Descriptor.ContainingType == null) {
+ writer.WriteLine("Descriptor.MessageTypes[{0}];", Descriptor.Index);
+ } else {
+ writer.WriteLine("internal__{0}__Descriptor.NestedTypes[{1}];", GetUniqueFileScopeIdentifier(Descriptor.ContainingType), Descriptor.Index);
+ }
- writer.WriteLine("internal__{0}__FieldAccessorTable = ", identifier);
- writer.WriteLine(" new pb::FieldAccess.FieldAccessorTable<{1}, {1}.Builder>(internal__{0}__Descriptor,",
- identifier, FullClassName);
- writer.Print(" new string[] { ");
- foreach (FieldDescriptor field in Descriptor.Fields) {
- writer.Write("\"{0}\", ", field.CSharpOptions.PropertyName);
+ writer.WriteLine("internal__{0}__FieldAccessorTable = ", identifier);
+ writer.WriteLine(" new pb::FieldAccess.FieldAccessorTable<{1}, {1}.Builder>(internal__{0}__Descriptor,",
+ identifier, FullClassName);
+ writer.Print(" new string[] { ");
+ foreach (FieldDescriptor field in Descriptor.Fields) {
+ writer.Write("\"{0}\", ", field.CSharpOptions.PropertyName);
+ }
+ writer.WriteLine("});");
}
- writer.WriteLine("});");
// Generate static member initializers for all nested types.
foreach (MessageDescriptor nestedMessage in Descriptor.NestedTypes) {
@@ -111,8 +115,10 @@ namespace Google.ProtocolBuffers.ProtoGen {
}
public void Generate(TextGenerator writer) {
- writer.WriteLine("{0} sealed partial class {1} : pb::{2}Message<{1}, {1}.Builder> {{",
- ClassAccessLevel, ClassName, Descriptor.Proto.ExtensionRangeCount > 0 ? "Extendable" : "Generated");
+ writer.WriteLine("{0} sealed partial class {1} : pb::{2}Message{3}<{1}, {1}.Builder> {{",
+ ClassAccessLevel, ClassName,
+ Descriptor.Proto.ExtensionRangeCount > 0 ? "Extendable" : "Generated",
+ RuntimeSuffix);
writer.Indent();
// Must call BuildPartial() to make sure all lists are made read-only
writer.WriteLine("private static readonly {0} defaultInstance = new Builder().BuildPartial();", ClassName);
@@ -128,16 +134,18 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine(" get { return this; }");
writer.WriteLine("}");
writer.WriteLine();
- writer.WriteLine("public static pbd::MessageDescriptor Descriptor {");
- writer.WriteLine(" get {{ return {0}.internal__{1}__Descriptor; }}", DescriptorUtil.GetFullUmbrellaClassName(Descriptor),
- GetUniqueFileScopeIdentifier(Descriptor));
- writer.WriteLine("}");
- writer.WriteLine();
- writer.WriteLine("protected override pb::FieldAccess.FieldAccessorTable<{0}, {0}.Builder> InternalFieldAccessors {{", ClassName);
- writer.WriteLine(" get {{ return {0}.internal__{1}__FieldAccessorTable; }}", DescriptorUtil.GetFullUmbrellaClassName(Descriptor),
- GetUniqueFileScopeIdentifier(Descriptor));
- writer.WriteLine("}");
- writer.WriteLine();
+ if (!UseLiteRuntime) {
+ writer.WriteLine("public static pbd::MessageDescriptor Descriptor {");
+ writer.WriteLine(" get {{ return {0}.internal__{1}__Descriptor; }}", DescriptorUtil.GetFullUmbrellaClassName(Descriptor),
+ GetUniqueFileScopeIdentifier(Descriptor));
+ writer.WriteLine("}");
+ writer.WriteLine();
+ writer.WriteLine("protected override pb::FieldAccess.FieldAccessorTable<{0}, {0}.Builder> InternalFieldAccessors {{", ClassName);
+ writer.WriteLine(" get {{ return {0}.internal__{1}__FieldAccessorTable; }}", DescriptorUtil.GetFullUmbrellaClassName(Descriptor),
+ GetUniqueFileScopeIdentifier(Descriptor));
+ writer.WriteLine("}");
+ writer.WriteLine();
+ }
// Extensions don't need to go in an extra nested type
WriteChildren(writer, null, Descriptor.Extensions);
@@ -161,10 +169,13 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine();
}
- if (Descriptor.File.Options.OptimizeFor == FileOptions.Types.OptimizeMode.SPEED) {
+ if (OptimizeSpeed) {
GenerateIsInitialized(writer);
GenerateMessageSerializationMethods(writer);
}
+ if (UseLiteRuntime) {
+ GenerateLiteRuntimeMethods(writer);
+ }
GenerateParseFromMethods(writer);
GenerateBuilder(writer);
@@ -184,6 +195,49 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine();
}
+ private void GenerateLiteRuntimeMethods(TextGenerator writer) {
+
+ bool callbase = Descriptor.Proto.ExtensionRangeCount > 0;
+ writer.WriteLine("#region Lite runtime methods");
+ writer.WriteLine("public override int GetHashCode() {");
+ writer.Indent();
+ writer.WriteLine("int hash = GetType().GetHashCode();");
+ foreach (FieldDescriptor fieldDescriptor in Descriptor.Fields) {
+ SourceGenerators.CreateFieldGenerator(fieldDescriptor).WriteHash(writer);
+ }
+ if (callbase) writer.WriteLine("hash ^= base.GetHashCode();");
+ writer.WriteLine("return hash;");
+ writer.Outdent();
+ writer.WriteLine("}");
+ writer.WriteLine();
+
+ writer.WriteLine("public override bool Equals(object obj) {");
+ writer.Indent();
+ writer.WriteLine("{0} other = obj as {0};", ClassName);
+ writer.WriteLine("if (other == null) return false;");
+ foreach (FieldDescriptor fieldDescriptor in Descriptor.Fields) {
+ SourceGenerators.CreateFieldGenerator(fieldDescriptor).WriteEquals(writer);
+ }
+ if (callbase) writer.WriteLine("if (!base.Equals(other)) return false;");
+ writer.WriteLine("return true;");
+ writer.Outdent();
+ writer.WriteLine("}");
+ writer.WriteLine();
+
+ writer.WriteLine("public override void PrintTo(global::System.IO.TextWriter writer) {");
+ writer.Indent();
+ List<FieldDescriptor> sorted = new List<FieldDescriptor>(Descriptor.Fields);
+ sorted.Sort(new Comparison<FieldDescriptor>(delegate(FieldDescriptor a, FieldDescriptor b) { return a.FieldNumber.CompareTo(b.FieldNumber); }));
+ foreach (FieldDescriptor fieldDescriptor in sorted) {
+ SourceGenerators.CreateFieldGenerator(fieldDescriptor).WriteToString(writer);
+ }
+ if (callbase) writer.WriteLine("base.PrintTo(writer);");
+ writer.Outdent();
+ writer.WriteLine("}");
+ writer.WriteLine("#endregion");
+ writer.WriteLine();
+ }
+
private void GenerateMessageSerializationMethods(TextGenerator writer) {
List<FieldDescriptor> sortedFields = new List<FieldDescriptor>(Descriptor.Fields);
sortedFields.Sort((f1, f2) => f1.FieldNumber.CompareTo(f2.FieldNumber));
@@ -196,8 +250,8 @@ namespace Google.ProtocolBuffers.ProtoGen {
// Make sure we've computed the serialized length, so that packed fields are generated correctly.
writer.WriteLine("int size = SerializedSize;");
if (Descriptor.Proto.ExtensionRangeList.Count > 0) {
- writer.WriteLine("pb::ExtendableMessage<{0}, {0}.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);",
- ClassName);
+ writer.WriteLine("pb::ExtendableMessage{1}<{0}, {0}.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);",
+ ClassName, RuntimeSuffix);
}
// Merge the fields and the extension ranges, both sorted by field number.
@@ -213,10 +267,12 @@ namespace Google.ProtocolBuffers.ProtoGen {
}
}
- if (Descriptor.Proto.Options.MessageSetWireFormat) {
- writer.WriteLine("UnknownFields.WriteAsMessageSetTo(output);");
- } else {
- writer.WriteLine("UnknownFields.WriteTo(output);");
+ if (!UseLiteRuntime) {
+ if (Descriptor.Proto.Options.MessageSetWireFormat) {
+ writer.WriteLine("UnknownFields.WriteAsMessageSetTo(output);");
+ } else {
+ writer.WriteLine("UnknownFields.WriteTo(output);");
+ }
}
writer.Outdent();
@@ -238,10 +294,12 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine("size += ExtensionsSerializedSize;");
}
- if (Descriptor.Options.MessageSetWireFormat) {
- writer.WriteLine("size += UnknownFields.SerializedSizeAsMessageSet;");
- } else {
- writer.WriteLine("size += UnknownFields.SerializedSize;");
+ if (!UseLiteRuntime) {
+ if (Descriptor.Options.MessageSetWireFormat) {
+ writer.WriteLine("size += UnknownFields.SerializedSizeAsMessageSet;");
+ } else {
+ writer.WriteLine("size += UnknownFields.SerializedSize;");
+ }
}
writer.WriteLine("memoizedSerializedSize = size;");
writer.WriteLine("return size;");
@@ -345,14 +403,14 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine(" return (Builder) new Builder().MergeFrom(prototype);");
writer.WriteLine("}");
writer.WriteLine();
- writer.WriteLine("{0} sealed partial class Builder : pb::{2}Builder<{1}, Builder> {{",
- ClassAccessLevel, ClassName, Descriptor.Proto.ExtensionRangeCount > 0 ? "Extendable" : "Generated");
+ writer.WriteLine("{0} sealed partial class Builder : pb::{2}Builder{3}<{1}, Builder> {{",
+ ClassAccessLevel, ClassName, Descriptor.Proto.ExtensionRangeCount > 0 ? "Extendable" : "Generated", RuntimeSuffix);
writer.Indent();
writer.WriteLine("protected override Builder ThisBuilder {");
writer.WriteLine(" get { return this; }");
writer.WriteLine("}");
GenerateCommonBuilderMethods(writer);
- if (Descriptor.File.Options.OptimizeFor == FileOptions.Types.OptimizeMode.SPEED) {
+ if (OptimizeSpeed) {
GenerateBuilderParsingMethods(writer);
}
foreach (FieldDescriptor field in Descriptor.Fields) {
@@ -382,10 +440,12 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine(" return new Builder().MergeFrom(result);");
writer.WriteLine("}");
writer.WriteLine();
- writer.WriteLine("public override pbd::MessageDescriptor DescriptorForType {");
- writer.WriteLine(" get {{ return {0}.Descriptor; }}", FullClassName);
- writer.WriteLine("}");
- writer.WriteLine();
+ if (!UseLiteRuntime) {
+ writer.WriteLine("public override pbd::MessageDescriptor DescriptorForType {");
+ writer.WriteLine(" get {{ return {0}.Descriptor; }}", FullClassName);
+ writer.WriteLine("}");
+ writer.WriteLine();
+ }
writer.WriteLine("public override {0} DefaultInstanceForType {{", ClassName);
writer.WriteLine(" get {{ return {0}.DefaultInstance; }}", FullClassName);
writer.WriteLine("}");
@@ -406,8 +466,8 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine("}");
writer.WriteLine();
- if (Descriptor.File.Options.OptimizeFor == FileOptions.Types.OptimizeMode.SPEED) {
- writer.WriteLine("public override Builder MergeFrom(pb::IMessage other) {");
+ if (OptimizeSpeed) {
+ writer.WriteLine("public override Builder MergeFrom(pb::IMessage{0} other) {{", RuntimeSuffix);
writer.WriteLine(" if (other is {0}) {{", ClassName);
writer.WriteLine(" return MergeFrom(({0}) other);", ClassName);
writer.WriteLine(" } else {");
@@ -428,7 +488,9 @@ namespace Google.ProtocolBuffers.ProtoGen {
if (Descriptor.Proto.ExtensionRangeCount > 0) {
writer.WriteLine(" this.MergeExtensionFields(other);");
}
- writer.WriteLine("this.MergeUnknownFields(other.UnknownFields);");
+ if (!UseLiteRuntime) {
+ writer.WriteLine("this.MergeUnknownFields(other.UnknownFields);");
+ }
writer.WriteLine("return this;");
writer.Outdent();
writer.WriteLine("}");
@@ -446,29 +508,37 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine();
writer.WriteLine("public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {");
writer.Indent();
- writer.WriteLine("pb::UnknownFieldSet.Builder unknownFields = null;");
+ if (!UseLiteRuntime) {
+ writer.WriteLine("pb::UnknownFieldSet.Builder unknownFields = null;");
+ }
writer.WriteLine("while (true) {");
writer.Indent();
writer.WriteLine("uint tag = input.ReadTag();");
writer.WriteLine("switch (tag) {");
writer.Indent();
writer.WriteLine("case 0: {"); // 0 signals EOF / limit reached
- writer.WriteLine(" if (unknownFields != null) {");
- writer.WriteLine(" this.UnknownFields = unknownFields.Build();");
- writer.WriteLine(" }");
+ if (!UseLiteRuntime) {
+ writer.WriteLine(" if (unknownFields != null) {");
+ writer.WriteLine(" this.UnknownFields = unknownFields.Build();");
+ writer.WriteLine(" }");
+ }
writer.WriteLine(" return this;");
writer.WriteLine("}");
writer.WriteLine("default: {");
writer.WriteLine(" if (pb::WireFormat.IsEndGroupTag(tag)) {");
- writer.WriteLine(" if (unknownFields != null) {");
- writer.WriteLine(" this.UnknownFields = unknownFields.Build();");
- writer.WriteLine(" }");
+ if (!UseLiteRuntime) {
+ writer.WriteLine(" if (unknownFields != null) {");
+ writer.WriteLine(" this.UnknownFields = unknownFields.Build();");
+ writer.WriteLine(" }");
+ }
writer.WriteLine(" return this;"); // it's an endgroup tag
writer.WriteLine(" }");
- writer.WriteLine(" if (unknownFields == null) {"); // First unknown field - create builder now
- writer.WriteLine(" unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);");
- writer.WriteLine(" }");
- writer.WriteLine(" ParseUnknownField(input, unknownFields, extensionRegistry, tag);");
+ if (!UseLiteRuntime) {
+ writer.WriteLine(" if (unknownFields == null) {"); // First unknown field - create builder now
+ writer.WriteLine(" unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);");
+ writer.WriteLine(" }");
+ }
+ writer.WriteLine(" ParseUnknownField(input, {0}extensionRegistry, tag);", UseLiteRuntime ? "" : "unknownFields, ");
writer.WriteLine(" break;");
writer.WriteLine("}");
foreach (FieldDescriptor field in sortedFields) {
diff --git a/src/ProtoGen/PrimitiveFieldGenerator.cs b/src/ProtoGen/PrimitiveFieldGenerator.cs
index ce3fd238..dbc203d0 100644
--- a/src/ProtoGen/PrimitiveFieldGenerator.cs
+++ b/src/ProtoGen/PrimitiveFieldGenerator.cs
@@ -103,5 +103,17 @@ namespace Google.ProtocolBuffers.ProtoGen {
CapitalizedTypeName, Number, PropertyName);
writer.WriteLine("}");
}
+
+ public override void WriteHash(TextGenerator writer) {
+ writer.WriteLine("if (has{0}) hash ^= {1}_.GetHashCode();", PropertyName, Name);
+ }
+
+ public override void WriteEquals(TextGenerator writer) {
+ writer.WriteLine("if (has{0} != other.has{0} || (has{0} && !{1}_.Equals(other.{1}_))) return false;", PropertyName, Name);
+ }
+
+ public override void WriteToString(TextGenerator writer) {
+ writer.WriteLine("PrintField(\"{0}\", has{1}, {2}_, writer);", Descriptor.Name, PropertyName, Name);
+ }
}
}
diff --git a/src/ProtoGen/RepeatedEnumFieldGenerator.cs b/src/ProtoGen/RepeatedEnumFieldGenerator.cs
index b2f2aa53..c500d38b 100644
--- a/src/ProtoGen/RepeatedEnumFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedEnumFieldGenerator.cs
@@ -43,7 +43,7 @@ namespace Google.ProtocolBuffers.ProtoGen {
}
public void GenerateMembers(TextGenerator writer) {
- if (Descriptor.IsPacked && Descriptor.File.Options.OptimizeFor == FileOptions.Types.OptimizeMode.SPEED) {
+ if (Descriptor.IsPacked && OptimizeSpeed) {
writer.WriteLine("private int {0}MemoizedSerializedSize;", Name);
}
writer.WriteLine("private pbc::PopsicleList<{0}> {1}_ = new pbc::PopsicleList<{0}>();", TypeName, Name);
@@ -114,10 +114,12 @@ namespace Google.ProtocolBuffers.ProtoGen {
// TODO(jonskeet): Make a more efficient way of doing this
writer.WriteLine("int rawValue = input.ReadEnum();");
writer.WriteLine("if (!global::System.Enum.IsDefined(typeof({0}), rawValue)) {{", TypeName);
- writer.WriteLine(" if (unknownFields == null) {"); // First unknown field - create builder now
- writer.WriteLine(" unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);");
- writer.WriteLine(" }");
- writer.WriteLine(" unknownFields.MergeVarintField({0}, (ulong) rawValue);", Number);
+ if (!UseLiteRuntime) {
+ writer.WriteLine(" if (unknownFields == null) {"); // First unknown field - create builder now
+ writer.WriteLine(" unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);");
+ writer.WriteLine(" }");
+ writer.WriteLine(" unknownFields.MergeVarintField({0}, (ulong) rawValue);", Number);
+ }
writer.WriteLine("} else {");
writer.WriteLine(" Add{0}(({1}) rawValue);", PropertyName, TypeName);
writer.WriteLine("}");
@@ -173,5 +175,20 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.Outdent();
writer.WriteLine("}");
}
+
+ public override void WriteHash(TextGenerator writer) {
+ writer.WriteLine("foreach({0} i in {1}_)", TypeName, Name);
+ writer.WriteLine(" hash ^= i.GetHashCode();");
+ }
+
+ public override void WriteEquals(TextGenerator writer) {
+ writer.WriteLine("if({0}_.Count != other.{0}_.Count) return false;", Name);
+ writer.WriteLine("for(int ix=0; ix < {0}_.Count; ix++)", Name);
+ writer.WriteLine(" if(!{0}_[ix].Equals(other.{0}_[ix])) return false;", Name);
+ }
+
+ public override void WriteToString(TextGenerator writer) {
+ writer.WriteLine("PrintField(\"{0}\", {1}_, writer);", Descriptor.Name, Name);
+ }
}
}
diff --git a/src/ProtoGen/RepeatedMessageFieldGenerator.cs b/src/ProtoGen/RepeatedMessageFieldGenerator.cs
index 3eac8090..4461190f 100644
--- a/src/ProtoGen/RepeatedMessageFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedMessageFieldGenerator.cs
@@ -132,5 +132,22 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine(" size += pb::CodedOutputStream.Compute{0}Size({1}, element);", MessageOrGroup, Number);
writer.WriteLine("}");
}
+
+ public override void WriteHash(TextGenerator writer) {
+ writer.WriteLine("foreach({0} i in {1}_)", TypeName, Name);
+ writer.WriteLine(" hash ^= i.GetHashCode();");
+ }
+
+ public override void WriteEquals(TextGenerator writer) {
+ writer.WriteLine("if({0}_.Count != other.{0}_.Count) return false;", Name);
+ writer.WriteLine("for(int ix=0; ix < {0}_.Count; ix++)", Name);
+ writer.WriteLine(" if(!{0}_[ix].Equals(other.{0}_[ix])) return false;", Name);
+ }
+
+ public override void WriteToString(TextGenerator writer) {
+ writer.WriteLine("PrintField(\"{0}\", {1}_, writer);",
+ Descriptor.FieldType == FieldType.Group ? Descriptor.MessageType.Name : Descriptor.Name, Name);
+ }
+
}
}
diff --git a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
index af49b611..d670c4ce 100644
--- a/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
+++ b/src/ProtoGen/RepeatedPrimitiveFieldGenerator.cs
@@ -43,7 +43,7 @@ namespace Google.ProtocolBuffers.ProtoGen {
}
public void GenerateMembers(TextGenerator writer) {
- if (Descriptor.IsPacked && Descriptor.File.Options.OptimizeFor == FileOptions.Types.OptimizeMode.SPEED) {
+ if (Descriptor.IsPacked && OptimizeSpeed) {
writer.WriteLine("private int {0}MemoizedSerializedSize;", Name);
}
writer.WriteLine("private pbc::PopsicleList<{0}> {1}_ = new pbc::PopsicleList<{0}>();", TypeName, Name);
@@ -168,5 +168,20 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.Outdent();
writer.WriteLine("}");
}
+
+ public override void WriteHash(TextGenerator writer) {
+ writer.WriteLine("foreach({0} i in {1}_)", TypeName, Name);
+ writer.WriteLine(" hash ^= i.GetHashCode();");
+ }
+
+ public override void WriteEquals(TextGenerator writer) {
+ writer.WriteLine("if({0}_.Count != other.{0}_.Count) return false;", Name);
+ writer.WriteLine("for(int ix=0; ix < {0}_.Count; ix++)", Name);
+ writer.WriteLine(" if(!{0}_[ix].Equals(other.{0}_[ix])) return false;", Name);
+ }
+
+ public override void WriteToString(TextGenerator writer) {
+ writer.WriteLine("PrintField(\"{0}\", {1}_, writer);", Descriptor.Name, Name);
+ }
}
}
diff --git a/src/ProtoGen/SourceGeneratorBase.cs b/src/ProtoGen/SourceGeneratorBase.cs
index 02f84577..a7dc2f93 100644
--- a/src/ProtoGen/SourceGeneratorBase.cs
+++ b/src/ProtoGen/SourceGeneratorBase.cs
@@ -40,8 +40,20 @@ namespace Google.ProtocolBuffers.ProtoGen {
private readonly T descriptor;
+ protected readonly bool OptimizeSpeed;
+ protected readonly bool OptimizeSize;
+ protected readonly bool UseLiteRuntime;
+ protected readonly string RuntimeSuffix;
+
protected SourceGeneratorBase(T descriptor) {
this.descriptor = descriptor;
+
+ OptimizeSize = descriptor.File.Options.OptimizeFor == Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode.CODE_SIZE;
+ OptimizeSpeed = descriptor.File.Options.OptimizeFor == Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode.SPEED;
+ UseLiteRuntime = descriptor.File.Options.OptimizeFor == Google.ProtocolBuffers.DescriptorProtos.FileOptions.Types.OptimizeMode.LITE_RUNTIME;
+ //Lite runtime uses OptimizeSpeed code branches
+ OptimizeSpeed |= UseLiteRuntime;
+ RuntimeSuffix = UseLiteRuntime ? "Lite" : "";
}
protected T Descriptor {
diff --git a/src/ProtoGen/UmbrellaClassGenerator.cs b/src/ProtoGen/UmbrellaClassGenerator.cs
index cdc275c6..e1bbee5d 100644
--- a/src/ProtoGen/UmbrellaClassGenerator.cs
+++ b/src/ProtoGen/UmbrellaClassGenerator.cs
@@ -74,10 +74,6 @@ namespace Google.ProtocolBuffers.ProtoGen {
return false;
}
- public string UmbrellaClassName {
- get { throw new NotImplementedException(); }
- }
-
public void Generate(TextGenerator writer) {
WriteIntroduction(writer);
WriteExtensionRegistration(writer);
@@ -87,7 +83,11 @@ namespace Google.ProtocolBuffers.ProtoGen {
new MessageGenerator(message).GenerateStaticVariables(writer);
}
writer.WriteLine("#endregion");
- WriteDescriptor(writer);
+ if (!UseLiteRuntime) {
+ WriteDescriptor(writer);
+ } else {
+ WriteLiteExtensions(writer);
+ }
// The class declaration either gets closed before or after the children are written.
if (!Descriptor.CSharpOptions.NestClasses) {
writer.Outdent();
@@ -113,9 +113,12 @@ namespace Google.ProtocolBuffers.ProtoGen {
}
private void WriteIntroduction(TextGenerator writer) {
- writer.WriteLine("// Generated by the protocol buffer compiler. DO NOT EDIT!");
+ writer.WriteLine("// Generated by {0}. DO NOT EDIT!", this.GetType().Assembly.FullName);
writer.WriteLine();
- Helpers.WriteNamespaces(writer);
+ writer.WriteLine("using pb = global::Google.ProtocolBuffers;");
+ writer.WriteLine("using pbc = global::Google.ProtocolBuffers.Collections;");
+ writer.WriteLine("using pbd = global::Google.ProtocolBuffers.Descriptors;");
+ writer.WriteLine("using scg = global::System.Collections.Generic;");
if (Descriptor.CSharpOptions.Namespace != "") {
writer.WriteLine("namespace {0} {{", Descriptor.CSharpOptions.Namespace);
@@ -215,5 +218,24 @@ namespace Google.ProtocolBuffers.ProtoGen {
writer.WriteLine("#endregion");
writer.WriteLine();
}
+
+ private void WriteLiteExtensions(TextGenerator writer) {
+ writer.WriteLine("#region Extensions");
+ writer.WriteLine("internal static readonly object Descriptor;");
+ writer.WriteLine("static {0}() {{", Descriptor.CSharpOptions.UmbrellaClassname);
+ writer.Indent();
+ writer.WriteLine("Descriptor = null;");
+
+ foreach (MessageDescriptor message in Descriptor.MessageTypes) {
+ new MessageGenerator(message).GenerateStaticVariableInitializers(writer);
+ }
+ foreach (FieldDescriptor extension in Descriptor.Extensions) {
+ new ExtensionGenerator(extension).GenerateStaticVariableInitializers(writer);
+ }
+ writer.Outdent();
+ writer.WriteLine("}");
+ writer.WriteLine("#endregion");
+ writer.WriteLine();
+ }
}
}
diff --git a/src/ProtocolBuffers.Test/ExtendableMessageTest.cs b/src/ProtocolBuffers.Test/ExtendableMessageTest.cs
new file mode 100644
index 00000000..6ec0cf16
--- /dev/null
+++ b/src/ProtocolBuffers.Test/ExtendableMessageTest.cs
@@ -0,0 +1,192 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class ExtendableMessageTest {
+
+ [Test, ExpectedException(typeof(ArgumentException))]
+ public void ExtensionWriterInvalidExtension() {
+ TestPackedExtensions.CreateBuilder()[UnitTestProtoFile.OptionalForeignMessageExtension.Descriptor] =
+ ForeignMessage.DefaultInstance;
+ }
+
+ [Test]
+ public void ExtensionWriterTest() {
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder()
+ .SetExtension(UnitTestProtoFile.DefaultBoolExtension, true)
+ .SetExtension(UnitTestProtoFile.DefaultBytesExtension, ByteString.CopyFromUtf8("123"))
+ .SetExtension(UnitTestProtoFile.DefaultCordExtension, "123")
+ .SetExtension(UnitTestProtoFile.DefaultDoubleExtension, 123)
+ .SetExtension(UnitTestProtoFile.DefaultFixed32Extension, 123u)
+ .SetExtension(UnitTestProtoFile.DefaultFixed64Extension, 123u)
+ .SetExtension(UnitTestProtoFile.DefaultFloatExtension, 123)
+ .SetExtension(UnitTestProtoFile.DefaultForeignEnumExtension, ForeignEnum.FOREIGN_BAZ)
+ .SetExtension(UnitTestProtoFile.DefaultImportEnumExtension, ImportEnum.IMPORT_BAZ)
+ .SetExtension(UnitTestProtoFile.DefaultInt32Extension, 123)
+ .SetExtension(UnitTestProtoFile.DefaultInt64Extension, 123)
+ .SetExtension(UnitTestProtoFile.DefaultNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO)
+ .SetExtension(UnitTestProtoFile.DefaultSfixed32Extension, 123)
+ .SetExtension(UnitTestProtoFile.DefaultSfixed64Extension, 123)
+ .SetExtension(UnitTestProtoFile.DefaultSint32Extension, 123)
+ .SetExtension(UnitTestProtoFile.DefaultSint64Extension, 123)
+ .SetExtension(UnitTestProtoFile.DefaultStringExtension, "123")
+ .SetExtension(UnitTestProtoFile.DefaultStringPieceExtension, "123")
+ .SetExtension(UnitTestProtoFile.DefaultUint32Extension, 123u)
+ .SetExtension(UnitTestProtoFile.DefaultUint64Extension, 123u)
+ //Optional
+ .SetExtension(UnitTestProtoFile.OptionalBoolExtension, true)
+ .SetExtension(UnitTestProtoFile.OptionalBytesExtension, ByteString.CopyFromUtf8("123"))
+ .SetExtension(UnitTestProtoFile.OptionalCordExtension, "123")
+ .SetExtension(UnitTestProtoFile.OptionalDoubleExtension, 123)
+ .SetExtension(UnitTestProtoFile.OptionalFixed32Extension, 123u)
+ .SetExtension(UnitTestProtoFile.OptionalFixed64Extension, 123u)
+ .SetExtension(UnitTestProtoFile.OptionalFloatExtension, 123)
+ .SetExtension(UnitTestProtoFile.OptionalForeignEnumExtension, ForeignEnum.FOREIGN_BAZ)
+ .SetExtension(UnitTestProtoFile.OptionalImportEnumExtension, ImportEnum.IMPORT_BAZ)
+ .SetExtension(UnitTestProtoFile.OptionalInt32Extension, 123)
+ .SetExtension(UnitTestProtoFile.OptionalInt64Extension, 123)
+ .SetExtension(UnitTestProtoFile.OptionalNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO)
+ .SetExtension(UnitTestProtoFile.OptionalSfixed32Extension, 123)
+ .SetExtension(UnitTestProtoFile.OptionalSfixed64Extension, 123)
+ .SetExtension(UnitTestProtoFile.OptionalSint32Extension, 123)
+ .SetExtension(UnitTestProtoFile.OptionalSint64Extension, 123)
+ .SetExtension(UnitTestProtoFile.OptionalStringExtension, "123")
+ .SetExtension(UnitTestProtoFile.OptionalStringPieceExtension, "123")
+ .SetExtension(UnitTestProtoFile.OptionalUint32Extension, 123u)
+ .SetExtension(UnitTestProtoFile.OptionalUint64Extension, 123u)
+ //Repeated
+ .AddExtension(UnitTestProtoFile.RepeatedBoolExtension, true)
+ .AddExtension(UnitTestProtoFile.RepeatedBytesExtension, ByteString.CopyFromUtf8("123"))
+ .AddExtension(UnitTestProtoFile.RepeatedCordExtension, "123")
+ .AddExtension(UnitTestProtoFile.RepeatedDoubleExtension, 123)
+ .AddExtension(UnitTestProtoFile.RepeatedFixed32Extension, 123u)
+ .AddExtension(UnitTestProtoFile.RepeatedFixed64Extension, 123u)
+ .AddExtension(UnitTestProtoFile.RepeatedFloatExtension, 123)
+ .AddExtension(UnitTestProtoFile.RepeatedForeignEnumExtension, ForeignEnum.FOREIGN_BAZ)
+ .AddExtension(UnitTestProtoFile.RepeatedImportEnumExtension, ImportEnum.IMPORT_BAZ)
+ .AddExtension(UnitTestProtoFile.RepeatedInt32Extension, 123)
+ .AddExtension(UnitTestProtoFile.RepeatedInt64Extension, 123)
+ .AddExtension(UnitTestProtoFile.RepeatedNestedEnumExtension, TestAllTypes.Types.NestedEnum.FOO)
+ .AddExtension(UnitTestProtoFile.RepeatedSfixed32Extension, 123)
+ .AddExtension(UnitTestProtoFile.RepeatedSfixed64Extension, 123)
+ .AddExtension(UnitTestProtoFile.RepeatedSint32Extension, 123)
+ .AddExtension(UnitTestProtoFile.RepeatedSint64Extension, 123)
+ .AddExtension(UnitTestProtoFile.RepeatedStringExtension, "123")
+ .AddExtension(UnitTestProtoFile.RepeatedStringPieceExtension, "123")
+ .AddExtension(UnitTestProtoFile.RepeatedUint32Extension, 123u)
+ .AddExtension(UnitTestProtoFile.RepeatedUint64Extension, 123u)
+ ;
+ TestAllExtensions msg = builder.Build();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestProtoFile.RegisterAllExtensions(registry);
+
+ TestAllExtensions.Builder copyBuilder = TestAllExtensions.CreateBuilder().MergeFrom(msg.ToByteArray(), registry);
+ TestAllExtensions copy = copyBuilder.Build();
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Assert.AreEqual(true, copy.GetExtension(UnitTestProtoFile.DefaultBoolExtension));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestProtoFile.DefaultBytesExtension));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.DefaultCordExtension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultDoubleExtension));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.DefaultFixed32Extension));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.DefaultFixed64Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultFloatExtension));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(UnitTestProtoFile.DefaultForeignEnumExtension));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(UnitTestProtoFile.DefaultImportEnumExtension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultInt32Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultInt64Extension));
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, copy.GetExtension(UnitTestProtoFile.DefaultNestedEnumExtension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultSfixed32Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultSfixed64Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultSint32Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.DefaultSint64Extension));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.DefaultStringExtension));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.DefaultStringPieceExtension));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.DefaultUint32Extension));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.DefaultUint64Extension));
+
+ Assert.AreEqual(true, copy.GetExtension(UnitTestProtoFile.OptionalBoolExtension));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestProtoFile.OptionalBytesExtension));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.OptionalCordExtension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalDoubleExtension));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.OptionalFixed32Extension));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.OptionalFixed64Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalFloatExtension));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(UnitTestProtoFile.OptionalForeignEnumExtension));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(UnitTestProtoFile.OptionalImportEnumExtension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalInt32Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalInt64Extension));
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, copy.GetExtension(UnitTestProtoFile.OptionalNestedEnumExtension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalSfixed32Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalSfixed64Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalSint32Extension));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.OptionalSint64Extension));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.OptionalStringExtension));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.OptionalStringPieceExtension));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.OptionalUint32Extension));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.OptionalUint64Extension));
+
+ Assert.AreEqual(true, copy.GetExtension(UnitTestProtoFile.RepeatedBoolExtension, 0));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestProtoFile.RepeatedBytesExtension, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.RepeatedCordExtension, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedDoubleExtension, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.RepeatedFixed32Extension, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.RepeatedFixed64Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedFloatExtension, 0));
+ Assert.AreEqual(ForeignEnum.FOREIGN_BAZ, copy.GetExtension(UnitTestProtoFile.RepeatedForeignEnumExtension, 0));
+ Assert.AreEqual(ImportEnum.IMPORT_BAZ, copy.GetExtension(UnitTestProtoFile.RepeatedImportEnumExtension, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedInt32Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedInt64Extension, 0));
+ Assert.AreEqual(TestAllTypes.Types.NestedEnum.FOO, copy.GetExtension(UnitTestProtoFile.RepeatedNestedEnumExtension, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedSfixed32Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedSfixed64Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedSint32Extension, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestProtoFile.RepeatedSint64Extension, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.RepeatedStringExtension, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestProtoFile.RepeatedStringPieceExtension, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.RepeatedUint32Extension, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestProtoFile.RepeatedUint64Extension, 0));
+ }
+
+ }
+}
diff --git a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
index 2f2f3ef6..b795df09 100644
--- a/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
+++ b/src/ProtocolBuffers.Test/ProtocolBuffers.Test.csproj
@@ -54,37 +54,37 @@
<WarningLevel>4</WarningLevel>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug_Silverlight2|AnyCPU'">
- <DebugSymbols>true</DebugSymbols>
- <DebugType>full</DebugType>
- <Optimize>false</Optimize>
- <OutputPath>bin\Debug_Silverlight2\</OutputPath>
- <DefineConstants>DEBUG;TRACE;SILVERLIGHT2</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <NoStdLib>true</NoStdLib>
- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_Silverlight2|AnyCPU'">
- <DebugType>pdbonly</DebugType>
- <Optimize>true</Optimize>
- <OutputPath>bin\Release_Silverlight2\</OutputPath>
- <DefineConstants>TRACE;SILVERLIGHT2</DefineConstants>
- <ErrorReport>prompt</ErrorReport>
- <WarningLevel>4</WarningLevel>
- <NoStdLib>true</NoStdLib>
- <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
- </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug_Silverlight2|AnyCPU'">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug_Silverlight2\</OutputPath>
+ <DefineConstants>DEBUG;TRACE;SILVERLIGHT2</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_Silverlight2|AnyCPU'">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release_Silverlight2\</OutputPath>
+ <DefineConstants>TRACE;SILVERLIGHT2</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
<ItemGroup>
<Reference Include="nunit.framework, Version=2.2.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
<SpecificVersion>False</SpecificVersion>
- <HintPath>..\..\lib\nunit.framework.dll</HintPath>
+ <HintPath>..\..\lib\NUnit 2.2.8.0\nunit.framework.dll</HintPath>
</Reference>
<Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\lib\Rhino.Mocks.dll</HintPath>
</Reference>
- <Reference Include="mscorlib" />
+ <Reference Include="mscorlib" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
@@ -99,6 +99,7 @@
<Compile Include="DescriptorsTest.cs" />
<Compile Include="Descriptors\MessageDescriptorTest.cs" />
<Compile Include="DynamicMessageTest.cs" />
+ <Compile Include="ExtendableMessageTest.cs" />
<Compile Include="GeneratedMessageTest.cs" />
<Compile Include="MessageStreamIteratorTest.cs" />
<Compile Include="MessageStreamWriterTest.cs" />
@@ -111,8 +112,11 @@
<Compile Include="TestProtos\UnitTestCSharpOptionsProtoFile.cs" />
<Compile Include="TestProtos\UnitTestCustomOptionsProtoFile.cs" />
<Compile Include="TestProtos\UnitTestEmbedOptimizeForProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestEmptyProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestImportLiteProtoFile.cs" />
<Compile Include="TestProtos\UnitTestImportProtoFile.cs" />
<Compile Include="TestProtos\UnitTestMessageSetProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestNoGenericServicesProtoFile.cs" />
<Compile Include="TestProtos\UnitTestOptimizeForProtoFile.cs" />
<Compile Include="TestProtos\UnitTestProtoFile.cs" />
<Compile Include="TestUtil.cs" />
diff --git a/src/ProtocolBuffers.Test/ReflectionTester.cs b/src/ProtocolBuffers.Test/ReflectionTester.cs
index 32b64465..3e7ed390 100644
--- a/src/ProtocolBuffers.Test/ReflectionTester.cs
+++ b/src/ProtocolBuffers.Test/ReflectionTester.cs
@@ -213,7 +213,7 @@ namespace Google.ProtocolBuffers {
ExtensionInfo extension = extensionRegistry[field.ContainingType, field.FieldNumber];
Assert.IsNotNull(extension);
Assert.IsNotNull(extension.DefaultInstance);
- return extension.DefaultInstance.WeakCreateBuilderForType();
+ return (IBuilder)extension.DefaultInstance.WeakCreateBuilderForType();
}
}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
index 341dcb2f..5fdcb5b4 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCSharpOptionsProtoFile.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
index 40ac8d3f..c588a819 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestCustomOptionsProtoFile.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
@@ -15,6 +15,7 @@ namespace Google.ProtocolBuffers.TestProtos {
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FieldOpt1);
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FieldOpt2);
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumOpt1);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumValueOpt1);
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ServiceOpt1);
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MethodOpt1);
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BoolOpt);
@@ -58,6 +59,8 @@ namespace Google.ProtocolBuffers.TestProtos {
public static pb::GeneratedExtensionBase<int> FieldOpt2;
public const int EnumOpt1FieldNumber = 7753576;
public static pb::GeneratedExtensionBase<int> EnumOpt1;
+ public const int EnumValueOpt1FieldNumber = 1560678;
+ public static pb::GeneratedExtensionBase<int> EnumValueOpt1;
public const int ServiceOpt1FieldNumber = 7887650;
public static pb::GeneratedExtensionBase<long> ServiceOpt1;
public const int MethodOpt1FieldNumber = 7890860;
@@ -165,97 +168,99 @@ namespace Google.ProtocolBuffers.TestProtos {
"Ci1nb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfY3VzdG9tX29wdGlvbnMucHJv" +
"dG8SEXByb3RvYnVmX3VuaXR0ZXN0GiRnb29nbGUvcHJvdG9idWYvY3NoYXJw" +
"X29wdGlvbnMucHJvdG8aIGdvb2dsZS9wcm90b2J1Zi9kZXNjcmlwdG9yLnBy" +
- "b3RvIoYBChxUZXN0TWVzc2FnZVdpdGhDdXN0b21PcHRpb25zEh4KBmZpZWxk" +
- "MRgBIAEoCUIOCAHB4MMdLeF1CgIAAAAiNAoGQW5FbnVtEg8KC0FORU5VTV9W" +
- "QUwxEAESDwoLQU5FTlVNX1ZBTDIQAhoIxfbJHev8//86EAgA4OnCHcj/////" +
- "/////wEiGAoWQ3VzdG9tT3B0aW9uRm9vUmVxdWVzdCIZChdDdXN0b21PcHRp" +
- "b25Gb29SZXNwb25zZSJtChpEdW1teU1lc3NhZ2VDb250YWluaW5nRW51bSJP" +
- "CgxUZXN0RW51bVR5cGUSGgoWVEVTVF9PUFRJT05fRU5VTV9UWVBFMRAWEiMK" +
- "FlRFU1RfT1BUSU9OX0VOVU1fVFlQRTIQ6f//////////ASIhCh9EdW1teU1l" +
- "c3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlIooBChxDdXN0b21PcHRpb25NaW5J" +
- "bnRlZ2VyVmFsdWVzOmqZ1qgdAAAAAAAAAICtja8dAAAAgJHurx0AAAAAAAAA" +
- "AJ31rx0AAAAA+JewHf///////////wGAxLAd/////w/49bAdAICTsh0AsLyy" +
- "HYCAgICAgICAgAHoxrIdgICAgPj/////AdDesh0AIpEBChxDdXN0b21PcHRp" +
- "b25NYXhJbnRlZ2VyVmFsdWVzOnGZ1qgd/////////3+tja8d////f5Hurx3/" +
- "/////////531rx3/////+JewHf7//////////wGAxLAd/v///w/49bAd////" +
- "////////AYCTsh3/////D7C8sh3//////////3/oxrId/////wfQ3rIdASJu" +
- "ChdDdXN0b21PcHRpb25PdGhlclZhbHVlczpTiNmiHen//////////wGy2aId" +
- "C0hlbGxvAFdvcmxkqtyiHQ5IZWxsbywgIldvcmxkIuncoh37WYxCysDzP/Xf" +
- "ox3nh0VB6MayHZz//////////wEiNAocU2V0dGluZ1JlYWxzRnJvbVBvc2l0" +
- "aXZlSW50czoU6dyiHQAAAAAAQGNA9d+jHQAAQEEiNAocU2V0dGluZ1JlYWxz" +
- "RnJvbU5lZ2F0aXZlSW50czoU6dyiHQAAAAAAQGPA9d+jHQAAQMEiKwoSQ29t" +
- "cGxleE9wdGlvblR5cGUxEgsKA2ZvbxgBIAEoBSoICGQQgICAgAIiwQIKEkNv" +
- "bXBsZXhPcHRpb25UeXBlMhIyCgNiYXIYASABKAsyJS5wcm90b2J1Zl91bml0" +
- "dGVzdC5Db21wbGV4T3B0aW9uVHlwZTESCwoDYmF6GAIgASgFEkYKBGZyZWQY" +
- "AyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIu" +
- "Q29tcGxleE9wdGlvblR5cGU0GpcBChJDb21wbGV4T3B0aW9uVHlwZTQSDQoF" +
- "d2FsZG8YASABKAUycgoMY29tcGxleF9vcHQ0Eh8uZ29vZ2xlLnByb3RvYnVm" +
- "Lk1lc3NhZ2VPcHRpb25zGIr10QMgASgLMjgucHJvdG9idWZfdW5pdHRlc3Qu" +
- "Q29tcGxleE9wdGlvblR5cGUyLkNvbXBsZXhPcHRpb25UeXBlNCoICGQQgICA" +
- "gAIinAEKEkNvbXBsZXhPcHRpb25UeXBlMxILCgNxdXgYASABKAUSVAoSY29t" +
- "cGxleG9wdGlvbnR5cGU1GAIgASgKMjgucHJvdG9idWZfdW5pdHRlc3QuQ29t" +
- "cGxleE9wdGlvblR5cGUzLkNvbXBsZXhPcHRpb25UeXBlNRojChJDb21wbGV4" +
- "T3B0aW9uVHlwZTUSDQoFcGx1Z2gYAyABKAUiHwoLQ29tcGxleE9wdDYSEAoF" +
- "eHl6enkY37/PAyABKAUi0AEKFVZhcmlvdXNDb21wbGV4T3B0aW9uczq2AePc" +
- "/Bz4/fscGOTc/BzSqI8dAwizD/rekB0CCAn63pAdBBMYFhSq/ZAdAxDbB6r9" +
- "kB0G+OaXHY4Fqv2QHQUKAwjnBar9kB0ICgbYhZ4dzw+q/ZAdCgoIkvWdHQMI" +
- "2A+q/ZAdCMKslx0DCOUFqv2QHQvCrJcdBtiFnh3OD6r9kB0NwqyXHQiS9Z0d" +
- "AwjJEKr9kB0FGgMIwQKi4pUdAggqouKVHQbYhZ4dxAKi4pUdCJL1nR0DCOwG" +
- "KjYKCk1ldGhvZE9wdDESEwoPTUVUSE9ET1BUMV9WQUwxEAESEwoPTUVUSE9E" +
- "T1BUMV9WQUwyEAIyjgEKHFRlc3RTZXJ2aWNlV2l0aEN1c3RvbU9wdGlvbnMS" +
- "YwoDRm9vEikucHJvdG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVx" +
- "dWVzdBoqLnByb3RvYnVmX3VuaXR0ZXN0LkN1c3RvbU9wdGlvbkZvb1Jlc3Bv" +
- "bnNlIgXg+oweAhoJkLKLHtPbgMtJOjIKCWZpbGVfb3B0MRIcLmdvb2dsZS5w" +
- "cm90b2J1Zi5GaWxlT3B0aW9ucxiOndgDIAEoBDo4CgxtZXNzYWdlX29wdDES" +
- "Hy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYnK3YAyABKAU6NAoK" +
- "ZmllbGRfb3B0MRIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMYiLzY" +
- "AyABKAY6OAoKZmllbGRfb3B0MhIdLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9w" +
- "dGlvbnMYuaHZAyABKAU6AjQyOjIKCWVudW1fb3B0MRIcLmdvb2dsZS5wcm90" +
- "b2J1Zi5FbnVtT3B0aW9ucxjontkDIAEoDzo4CgxzZXJ2aWNlX29wdDESHy5n" +
- "b29nbGUucHJvdG9idWYuU2VydmljZU9wdGlvbnMYorbhAyABKBI6VQoLbWV0" +
- "aG9kX29wdDESHi5nb29nbGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxisz+ED" +
- "IAEoDjIdLnByb3RvYnVmX3VuaXR0ZXN0Lk1ldGhvZE9wdDE6NAoIYm9vbF9v" +
- "cHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY6qvWAyABKAg6" +
- "NQoJaW50MzJfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25z" +
- "GO2o1gMgASgFOjUKCWludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNz" +
- "YWdlT3B0aW9ucxjGp9YDIAEoAzo2Cgp1aW50MzJfb3B0Eh8uZ29vZ2xlLnBy" +
- "b3RvYnVmLk1lc3NhZ2VPcHRpb25zGLCi1gMgASgNOjYKCnVpbnQ2NF9vcHQS" +
- "Hy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY347WAyABKAQ6NgoK" +
- "c2ludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjA" +
- "iNYDIAEoETo2CgpzaW50NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3Nh" +
- "Z2VPcHRpb25zGP+C1gMgASgSOjcKC2ZpeGVkMzJfb3B0Eh8uZ29vZ2xlLnBy" +
- "b3RvYnVmLk1lc3NhZ2VPcHRpb25zGNP+1QMgASgHOjcKC2ZpeGVkNjRfb3B0" +
- "Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOL91QMgASgGOjgK" +
- "DHNmaXhlZDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9u" +
- "cxjV8dUDIAEoDzo4CgxzZml4ZWQ2NF9vcHQSHy5nb29nbGUucHJvdG9idWYu" +
- "TWVzc2FnZU9wdGlvbnMY44rVAyABKBA6NQoJZmxvYXRfb3B0Eh8uZ29vZ2xl" +
- "LnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGP671AMgASgCOjYKCmRvdWJsZV9v" +
- "cHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYzavUAyABKAE6" +
- "NgoKc3RyaW5nX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9u" +
- "cxjFq9QDIAEoCTo1CglieXRlc19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVz" +
- "c2FnZU9wdGlvbnMYlqvUAyABKAw6cAoIZW51bV9vcHQSHy5nb29nbGUucHJv" +
- "dG9idWYuTWVzc2FnZU9wdGlvbnMYkavUAyABKA4yOi5wcm90b2J1Zl91bml0" +
- "dGVzdC5EdW1teU1lc3NhZ2VDb250YWluaW5nRW51bS5UZXN0RW51bVR5cGU6" +
- "cAoQbWVzc2FnZV90eXBlX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdl" +
- "T3B0aW9ucxiv8tMDIAEoCzIyLnByb3RvYnVmX3VuaXR0ZXN0LkR1bW15TWVz" +
- "c2FnZUludmFsaWRBc09wdGlvblR5cGU6NgoEcXV1eBIlLnByb3RvYnVmX3Vu" +
- "aXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMRjb4NMDIAEoBTpeCgVjb3JnZRIl" +
- "LnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMRjS3tMDIAEo" +
- "CzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMzo4CgZn" +
- "cmF1bHQSJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTIY" +
- "7/zSAyABKAU6XwoGZ2FycGx5EiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxl" +
- "eE9wdGlvblR5cGUyGMj10gMgASgLMiUucHJvdG9idWZfdW5pdHRlc3QuQ29t" +
- "cGxleE9wdGlvblR5cGUxOl8KDGNvbXBsZXhfb3B0MRIfLmdvb2dsZS5wcm90" +
- "b2J1Zi5NZXNzYWdlT3B0aW9ucxik3NIDIAEoCzIlLnByb3RvYnVmX3VuaXR0" +
- "ZXN0LkNvbXBsZXhPcHRpb25UeXBlMTpfCgxjb21wbGV4X29wdDISHy5nb29n" +
- "bGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMY1Y/SAyABKAsyJS5wcm90b2J1" +
- "Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTI6XwoMY29tcGxleF9vcHQz" +
- "Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGO+L0gMgASgLMiUu" +
- "cHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUzOlcKC2NvbXBs" +
- "ZXhvcHQ2Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGMzLzwMg" +
- "ASgKMh4ucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdDZCT8I+QwohR29v" +
- "Z2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9zEh5Vbml0VGVzdEN1c3Rv" +
- "bU9wdGlvbnNQcm90b0ZpbGXw6MEd6q3A5SQ=");
+ "b3RvIo0BChxUZXN0TWVzc2FnZVdpdGhDdXN0b21PcHRpb25zEh4KBmZpZWxk" +
+ "MRgBIAEoCUIOCAHB4MMdLeF1CgIAAAAiOwoGQW5FbnVtEg8KC0FORU5VTV9W" +
+ "QUwxEAESFgoLQU5FTlVNX1ZBTDIQAhoFsIb6BXsaCMX2yR3r/P//OhAIAODp" +
+ "wh3I//////////8BIhgKFkN1c3RvbU9wdGlvbkZvb1JlcXVlc3QiGQoXQ3Vz" +
+ "dG9tT3B0aW9uRm9vUmVzcG9uc2UibQoaRHVtbXlNZXNzYWdlQ29udGFpbmlu" +
+ "Z0VudW0iTwoMVGVzdEVudW1UeXBlEhoKFlRFU1RfT1BUSU9OX0VOVU1fVFlQ" +
+ "RTEQFhIjChZURVNUX09QVElPTl9FTlVNX1RZUEUyEOn//////////wEiIQof" +
+ "RHVtbXlNZXNzYWdlSW52YWxpZEFzT3B0aW9uVHlwZSKKAQocQ3VzdG9tT3B0" +
+ "aW9uTWluSW50ZWdlclZhbHVlczpqmdaoHQAAAAAAAACArY2vHQAAAICR7q8d" +
+ "AAAAAAAAAACd9a8dAAAAAPiXsB3///////////8BgMSwHf////8P+PWwHQCA" +
+ "k7IdALC8sh2AgICAgICAgIAB6MayHYCAgID4/////wHQ3rIdACKRAQocQ3Vz" +
+ "dG9tT3B0aW9uTWF4SW50ZWdlclZhbHVlczpxmdaoHf////////9/rY2vHf//" +
+ "/3+R7q8d//////////+d9a8d//////iXsB3+//////////8BgMSwHf7///8P" +
+ "+PWwHf///////////wGAk7Id/////w+wvLId//////////9/6MayHf////8H" +
+ "0N6yHQEibgoXQ3VzdG9tT3B0aW9uT3RoZXJWYWx1ZXM6U4jZoh3p////////" +
+ "//8BstmiHQtIZWxsbwBXb3JsZKrcoh0OSGVsbG8sICJXb3JsZCLp3KId+1mM" +
+ "QsrA8z/136Md54dFQejGsh2c//////////8BIjQKHFNldHRpbmdSZWFsc0Zy" +
+ "b21Qb3NpdGl2ZUludHM6FOncoh0AAAAAAEBjQPXfox0AAEBBIjQKHFNldHRp" +
+ "bmdSZWFsc0Zyb21OZWdhdGl2ZUludHM6FOncoh0AAAAAAEBjwPXfox0AAEDB" +
+ "IkcKEkNvbXBsZXhPcHRpb25UeXBlMRILCgNmb28YASABKAUSDAoEZm9vMhgC" +
+ "IAEoBRIMCgRmb28zGAMgASgFKggIZBCAgICAAiLBAgoSQ29tcGxleE9wdGlv" +
+ "blR5cGUyEjIKA2JhchgBIAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBs" +
+ "ZXhPcHRpb25UeXBlMRILCgNiYXoYAiABKAUSRgoEZnJlZBgDIAEoCzI4LnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMi5Db21wbGV4T3B0" +
+ "aW9uVHlwZTQalwEKEkNvbXBsZXhPcHRpb25UeXBlNBINCgV3YWxkbxgBIAEo" +
+ "BTJyCgxjb21wbGV4X29wdDQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9w" +
+ "dGlvbnMYivXRAyABKAsyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0" +
+ "aW9uVHlwZTIuQ29tcGxleE9wdGlvblR5cGU0KggIZBCAgICAAiKcAQoSQ29t" +
+ "cGxleE9wdGlvblR5cGUzEgsKA3F1eBgBIAEoBRJUChJjb21wbGV4b3B0aW9u" +
+ "dHlwZTUYAiABKAoyOC5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9u" +
+ "VHlwZTMuQ29tcGxleE9wdGlvblR5cGU1GiMKEkNvbXBsZXhPcHRpb25UeXBl" +
+ "NRINCgVwbHVnaBgDIAEoBSIfCgtDb21wbGV4T3B0NhIQCgV4eXp6eRjfv88D" +
+ "IAEoBSLQAQoVVmFyaW91c0NvbXBsZXhPcHRpb25zOrYB49z8HPj9+xwY5Nz8" +
+ "HNKojx0DCLMP+t6QHQIICfrekB0EExgWFKr9kB0DENsHqv2QHQb45pcdjgWq" +
+ "/ZAdBQoDCOcFqv2QHQgKBtiFnh3PD6r9kB0KCgiS9Z0dAwjYD6r9kB0IwqyX" +
+ "HQMI5QWq/ZAdC8Kslx0G2IWeHc4Pqv2QHQ3CrJcdCJL1nR0DCMkQqv2QHQUa" +
+ "AwjBAqLilR0CCCqi4pUdBtiFnh3EAqLilR0IkvWdHQMI7AYqNgoKTWV0aG9k" +
+ "T3B0MRITCg9NRVRIT0RPUFQxX1ZBTDEQARITCg9NRVRIT0RPUFQxX1ZBTDIQ" +
+ "AjKOAQocVGVzdFNlcnZpY2VXaXRoQ3VzdG9tT3B0aW9ucxJjCgNGb28SKS5w" +
+ "cm90b2J1Zl91bml0dGVzdC5DdXN0b21PcHRpb25Gb29SZXF1ZXN0GioucHJv" +
+ "dG9idWZfdW5pdHRlc3QuQ3VzdG9tT3B0aW9uRm9vUmVzcG9uc2UiBeD6jB4C" +
+ "GgmQsose09uAy0k6MgoJZmlsZV9vcHQxEhwuZ29vZ2xlLnByb3RvYnVmLkZp" +
+ "bGVPcHRpb25zGI6d2AMgASgEOjgKDG1lc3NhZ2Vfb3B0MRIfLmdvb2dsZS5w" +
+ "cm90b2J1Zi5NZXNzYWdlT3B0aW9ucxicrdgDIAEoBTo0CgpmaWVsZF9vcHQx" +
+ "Eh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxiIvNgDIAEoBjo4Cgpm" +
+ "aWVsZF9vcHQyEh0uZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucxi5odkD" +
+ "IAEoBToCNDI6MgoJZW51bV9vcHQxEhwuZ29vZ2xlLnByb3RvYnVmLkVudW1P" +
+ "cHRpb25zGOie2QMgASgPOjwKD2VudW1fdmFsdWVfb3B0MRIhLmdvb2dsZS5w" +
+ "cm90b2J1Zi5FbnVtVmFsdWVPcHRpb25zGOagXyABKAU6OAoMc2VydmljZV9v" +
+ "cHQxEh8uZ29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zGKK24QMgASgS" +
+ "OlUKC21ldGhvZF9vcHQxEh4uZ29vZ2xlLnByb3RvYnVmLk1ldGhvZE9wdGlv" +
+ "bnMYrM/hAyABKA4yHS5wcm90b2J1Zl91bml0dGVzdC5NZXRob2RPcHQxOjQK" +
+ "CGJvb2xfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGOqr" +
+ "1gMgASgIOjUKCWludDMyX29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdl" +
+ "T3B0aW9ucxjtqNYDIAEoBTo1CglpbnQ2NF9vcHQSHy5nb29nbGUucHJvdG9i" +
+ "dWYuTWVzc2FnZU9wdGlvbnMYxqfWAyABKAM6NgoKdWludDMyX29wdBIfLmdv" +
+ "b2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxiwotYDIAEoDTo2Cgp1aW50" +
+ "NjRfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGN+O1gMg" +
+ "ASgEOjYKCnNpbnQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2FnZU9w" +
+ "dGlvbnMYwIjWAyABKBE6NgoKc2ludDY0X29wdBIfLmdvb2dsZS5wcm90b2J1" +
+ "Zi5NZXNzYWdlT3B0aW9ucxj/gtYDIAEoEjo3CgtmaXhlZDMyX29wdBIfLmdv" +
+ "b2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjT/tUDIAEoBzo3CgtmaXhl" +
+ "ZDY0X29wdBIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxji/dUD" +
+ "IAEoBjo4CgxzZml4ZWQzMl9vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2Fn" +
+ "ZU9wdGlvbnMY1fHVAyABKA86OAoMc2ZpeGVkNjRfb3B0Eh8uZ29vZ2xlLnBy" +
+ "b3RvYnVmLk1lc3NhZ2VPcHRpb25zGOOK1QMgASgQOjUKCWZsb2F0X29wdBIf" +
+ "Lmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxj+u9QDIAEoAjo2Cgpk" +
+ "b3VibGVfb3B0Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGM2r" +
+ "1AMgASgBOjYKCnN0cmluZ19vcHQSHy5nb29nbGUucHJvdG9idWYuTWVzc2Fn" +
+ "ZU9wdGlvbnMYxavUAyABKAk6NQoJYnl0ZXNfb3B0Eh8uZ29vZ2xlLnByb3Rv" +
+ "YnVmLk1lc3NhZ2VPcHRpb25zGJar1AMgASgMOnAKCGVudW1fb3B0Eh8uZ29v" +
+ "Z2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGJGr1AMgASgOMjoucHJvdG9i" +
+ "dWZfdW5pdHRlc3QuRHVtbXlNZXNzYWdlQ29udGFpbmluZ0VudW0uVGVzdEVu" +
+ "dW1UeXBlOnAKEG1lc3NhZ2VfdHlwZV9vcHQSHy5nb29nbGUucHJvdG9idWYu" +
+ "TWVzc2FnZU9wdGlvbnMYr/LTAyABKAsyMi5wcm90b2J1Zl91bml0dGVzdC5E" +
+ "dW1teU1lc3NhZ2VJbnZhbGlkQXNPcHRpb25UeXBlOjYKBHF1dXgSJS5wcm90" +
+ "b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTEY2+DTAyABKAU6XgoF" +
+ "Y29yZ2USJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTEY" +
+ "0t7TAyABKAsyJS5wcm90b2J1Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlw" +
+ "ZTM6OAoGZ3JhdWx0EiUucHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlv" +
+ "blR5cGUyGO/80gMgASgFOl8KBmdhcnBseRIlLnByb3RvYnVmX3VuaXR0ZXN0" +
+ "LkNvbXBsZXhPcHRpb25UeXBlMhjI9dIDIAEoCzIlLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LkNvbXBsZXhPcHRpb25UeXBlMTpfCgxjb21wbGV4X29wdDESHy5nb29n" +
+ "bGUucHJvdG9idWYuTWVzc2FnZU9wdGlvbnMYpNzSAyABKAsyJS5wcm90b2J1" +
+ "Zl91bml0dGVzdC5Db21wbGV4T3B0aW9uVHlwZTE6XwoMY29tcGxleF9vcHQy" +
+ "Eh8uZ29vZ2xlLnByb3RvYnVmLk1lc3NhZ2VPcHRpb25zGNWP0gMgASgLMiUu" +
+ "cHJvdG9idWZfdW5pdHRlc3QuQ29tcGxleE9wdGlvblR5cGUyOl8KDGNvbXBs" +
+ "ZXhfb3B0MxIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9ucxjvi9ID" +
+ "IAEoCzIlLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHRpb25UeXBlMzpX" +
+ "Cgtjb21wbGV4b3B0NhIfLmdvb2dsZS5wcm90b2J1Zi5NZXNzYWdlT3B0aW9u" +
+ "cxjMy88DIAEoCjIeLnByb3RvYnVmX3VuaXR0ZXN0LkNvbXBsZXhPcHQ2Qk/C" +
+ "PkMKIUdvb2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFByb3RvcxIeVW5pdFRl" +
+ "c3RDdXN0b21PcHRpb25zUHJvdG9GaWxl8OjBHeqtwOUk");
pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
descriptor = root;
internal__static_protobuf_unittest_TestMessageWithCustomOptions__Descriptor = Descriptor.MessageTypes[0];
@@ -301,7 +306,7 @@ namespace Google.ProtocolBuffers.TestProtos {
internal__static_protobuf_unittest_ComplexOptionType1__Descriptor = Descriptor.MessageTypes[10];
internal__static_protobuf_unittest_ComplexOptionType1__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1.Builder>(internal__static_protobuf_unittest_ComplexOptionType1__Descriptor,
- new string[] { "Foo", });
+ new string[] { "Foo", "Foo2", "Foo3", });
internal__static_protobuf_unittest_ComplexOptionType2__Descriptor = Descriptor.MessageTypes[11];
internal__static_protobuf_unittest_ComplexOptionType2__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2, global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2.Builder>(internal__static_protobuf_unittest_ComplexOptionType2__Descriptor,
@@ -332,33 +337,34 @@ namespace Google.ProtocolBuffers.TestProtos {
global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FieldOpt1 = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[2]);
global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FieldOpt2 = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[3]);
global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumOpt1 = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[4]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ServiceOpt1 = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[5]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MethodOpt1 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.MethodOpt1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[6]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BoolOpt = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[7]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Int32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[8]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Int64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[9]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Uint32Opt = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[10]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Uint64Opt = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[11]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sint32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[12]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sint64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[13]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Fixed32Opt = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[14]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Fixed64Opt = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[15]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sfixed32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[16]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sfixed64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[17]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FloatOpt = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[18]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.DoubleOpt = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[19]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.StringOpt = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[20]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BytesOpt = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[21]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumOpt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Types.TestEnumType>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[22]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MessageTypeOpt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[23]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Quux = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[24]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Corge = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[25]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Grault = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[26]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Garply = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[27]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt1 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[28]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt2 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[29]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt3 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[30]);
- global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt6 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOpt6>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[31]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumValueOpt1 = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[5]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ServiceOpt1 = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[6]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MethodOpt1 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.MethodOpt1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[7]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BoolOpt = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[8]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Int32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[9]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Int64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[10]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Uint32Opt = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[11]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Uint64Opt = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[12]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sint32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[13]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sint64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[14]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Fixed32Opt = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[15]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Fixed64Opt = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[16]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sfixed32Opt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[17]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Sfixed64Opt = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[18]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.FloatOpt = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[19]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.DoubleOpt = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[20]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.StringOpt = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[21]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.BytesOpt = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[22]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.EnumOpt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.DummyMessageContainingEnum.Types.TestEnumType>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[23]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.MessageTypeOpt = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.DummyMessageInvalidAsOptionType>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[24]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Quux = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[25]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Corge = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[26]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Grault = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[27]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Garply = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[28]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt1 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType1>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[29]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt2 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType2>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[30]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt3 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOptionType3>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[31]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.ComplexOpt6 = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ComplexOpt6>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor.Extensions[32]);
pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
RegisterAllExtensions(registry);
global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
@@ -2217,6 +2223,26 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return foo_; }
}
+ public const int Foo2FieldNumber = 2;
+ private bool hasFoo2;
+ private int foo2_ = 0;
+ public bool HasFoo2 {
+ get { return hasFoo2; }
+ }
+ public int Foo2 {
+ get { return foo2_; }
+ }
+
+ public const int Foo3FieldNumber = 3;
+ private bool hasFoo3;
+ private int foo3_ = 0;
+ public bool HasFoo3 {
+ get { return hasFoo3; }
+ }
+ public int Foo3 {
+ get { return foo3_; }
+ }
+
public override bool IsInitialized {
get {
if (!ExtensionsAreInitialized) return false;
@@ -2230,6 +2256,12 @@ namespace Google.ProtocolBuffers.TestProtos {
if (HasFoo) {
output.WriteInt32(1, Foo);
}
+ if (HasFoo2) {
+ output.WriteInt32(2, Foo2);
+ }
+ if (HasFoo3) {
+ output.WriteInt32(3, Foo3);
+ }
extensionWriter.WriteUntil(536870912, output);
UnknownFields.WriteTo(output);
}
@@ -2244,6 +2276,12 @@ namespace Google.ProtocolBuffers.TestProtos {
if (HasFoo) {
size += pb::CodedOutputStream.ComputeInt32Size(1, Foo);
}
+ if (HasFoo2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Foo2);
+ }
+ if (HasFoo3) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Foo3);
+ }
size += ExtensionsSerializedSize;
size += UnknownFields.SerializedSize;
memoizedSerializedSize = size;
@@ -2340,6 +2378,12 @@ namespace Google.ProtocolBuffers.TestProtos {
if (other.HasFoo) {
Foo = other.Foo;
}
+ if (other.HasFoo2) {
+ Foo2 = other.Foo2;
+ }
+ if (other.HasFoo3) {
+ Foo3 = other.Foo3;
+ }
this.MergeExtensionFields(other);
this.MergeUnknownFields(other.UnknownFields);
return this;
@@ -2377,6 +2421,14 @@ namespace Google.ProtocolBuffers.TestProtos {
Foo = input.ReadInt32();
break;
}
+ case 16: {
+ Foo2 = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ Foo3 = input.ReadInt32();
+ break;
+ }
}
}
}
@@ -2399,6 +2451,42 @@ namespace Google.ProtocolBuffers.TestProtos {
result.foo_ = 0;
return this;
}
+
+ public bool HasFoo2 {
+ get { return result.HasFoo2; }
+ }
+ public int Foo2 {
+ get { return result.Foo2; }
+ set { SetFoo2(value); }
+ }
+ public Builder SetFoo2(int value) {
+ result.hasFoo2 = true;
+ result.foo2_ = value;
+ return this;
+ }
+ public Builder ClearFoo2() {
+ result.hasFoo2 = false;
+ result.foo2_ = 0;
+ return this;
+ }
+
+ public bool HasFoo3 {
+ get { return result.HasFoo3; }
+ }
+ public int Foo3 {
+ get { return result.Foo3; }
+ set { SetFoo3(value); }
+ }
+ public Builder SetFoo3(int value) {
+ result.hasFoo3 = true;
+ result.foo3_ = value;
+ return this;
+ }
+ public Builder ClearFoo3() {
+ result.hasFoo3 = false;
+ result.foo3_ = 0;
+ return this;
+ }
}
static ComplexOptionType1() {
object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestCustomOptionsProtoFile.Descriptor, null);
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
index f3e012ab..5f4e87a8 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmbedOptimizeForProtoFile.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestEmptyProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmptyProtoFile.cs
new file mode 100644
index 00000000..f02d670e
--- /dev/null
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestEmptyProtoFile.cs
@@ -0,0 +1,44 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestEmptyProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestEmptyProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "CiRnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfZW1wdHkucHJvdG8aJGdvb2ds" +
+ "ZS9wcm90b2J1Zi9jc2hhcnBfb3B0aW9ucy5wcm90b0I+wj47CiFHb29nbGUu" +
+ "UHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3MSFlVuaXRUZXN0RW1wdHlQcm90" +
+ "b0ZpbGU=");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
new file mode 100644
index 00000000..a98fb924
--- /dev/null
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportLiteProtoFile.cs
@@ -0,0 +1,196 @@
+// Generated by the protocol buffer compiler. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestImportLiteProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_ImportMessageLite__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder> internal__static_protobuf_unittest_import_ImportMessageLite__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestImportLiteProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "Cipnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0X2xpdGUucHJvdG8S" +
+ "GHByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydBokZ29vZ2xlL3Byb3RvYnVmL2Nz" +
+ "aGFycF9vcHRpb25zLnByb3RvIh4KEUltcG9ydE1lc3NhZ2VMaXRlEgkKAWQY" +
+ "ASABKAUqTwoOSW1wb3J0RW51bUxpdGUSEwoPSU1QT1JUX0xJVEVfRk9PEAcS" +
+ "EwoPSU1QT1JUX0xJVEVfQkFSEAgSEwoPSU1QT1JUX0xJVEVfQkFaEAlCWgoT" +
+ "Y29tLmdvb2dsZS5wcm90b2J1ZkgDwj5ACiFHb29nbGUuUHJvdG9jb2xCdWZm" +
+ "ZXJzLlRlc3RQcm90b3MSG1VuaXRUZXN0SW1wb3J0TGl0ZVByb3RvRmlsZQ==");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_ImportMessageLite__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_ImportMessageLite__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder>(internal__static_protobuf_unittest_import_ImportMessageLite__Descriptor,
+ new string[] { "D", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ImportEnumLite {
+ IMPORT_LITE_FOO = 7,
+ IMPORT_LITE_BAR = 8,
+ IMPORT_LITE_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ public sealed partial class ImportMessageLite : pb::GeneratedMessage<ImportMessageLite, ImportMessageLite.Builder> {
+ private static readonly ImportMessageLite defaultInstance = new Builder().BuildPartial();
+ public static ImportMessageLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ImportMessageLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override ImportMessageLite ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestImportLiteProtoFile.internal__static_protobuf_unittest_import_ImportMessageLite__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ImportMessageLite, ImportMessageLite.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestImportLiteProtoFile.internal__static_protobuf_unittest_import_ImportMessageLite__FieldAccessorTable; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_ = 0;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public static ImportMessageLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ImportMessageLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ImportMessageLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<ImportMessageLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ ImportMessageLite result = new ImportMessageLite();
+
+ protected override ImportMessageLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new ImportMessageLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Descriptor; }
+ }
+
+ public override ImportMessageLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance; }
+ }
+
+ public override ImportMessageLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ ImportMessageLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasD {
+ get { return result.HasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+ }
+ static ImportMessageLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestImportLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
index 43a98a4d..235a05a7 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestImportProtoFile.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
index 8b2a9117..bf5274fe 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestMessageSetProtoFile.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
new file mode 100644
index 00000000..5b231b62
--- /dev/null
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestNoGenericServicesProtoFile.cs
@@ -0,0 +1,382 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos.NoGenericService {
+
+ public static partial class UnitTestNoGenericServicesProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.NoGenericService.UnitTestNoGenericServicesProtoFile.TestExtension);
+ }
+ #endregion
+ #region Extensions
+ public const int TestExtensionFieldNumber = 1000;
+ public static pb::GeneratedExtensionBase<int> TestExtension;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_google_protobuf_no_generic_services_test_TestMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage, global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.Builder> internal__static_google_protobuf_no_generic_services_test_TestMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestNoGenericServicesProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "CjJnb29nbGUvcHJvdG9idWYvdW5pdHRlc3Rfbm9fZ2VuZXJpY19zZXJ2aWNl" +
+ "cy5wcm90bxIoZ29vZ2xlLnByb3RvYnVmLm5vX2dlbmVyaWNfc2VydmljZXNf" +
+ "dGVzdBokZ29vZ2xlL3Byb3RvYnVmL2NzaGFycF9vcHRpb25zLnByb3RvIiMK" +
+ "C1Rlc3RNZXNzYWdlEgkKAWEYASABKAUqCQjoBxCAgICAAioTCghUZXN0RW51" +
+ "bRIHCgNGT08QATKCAQoLVGVzdFNlcnZpY2UScwoDRm9vEjUuZ29vZ2xlLnBy" +
+ "b3RvYnVmLm5vX2dlbmVyaWNfc2VydmljZXNfdGVzdC5UZXN0TWVzc2FnZRo1" +
+ "Lmdvb2dsZS5wcm90b2J1Zi5ub19nZW5lcmljX3NlcnZpY2VzX3Rlc3QuVGVz" +
+ "dE1lc3NhZ2U6TgoOdGVzdF9leHRlbnNpb24SNS5nb29nbGUucHJvdG9idWYu" +
+ "bm9fZ2VuZXJpY19zZXJ2aWNlc190ZXN0LlRlc3RNZXNzYWdlGOgHIAEoBUJk" +
+ "gAEAiAEAkAEAwj5YCjJHb29nbGUuUHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90" +
+ "b3MuTm9HZW5lcmljU2VydmljZRIiVW5pdFRlc3ROb0dlbmVyaWNTZXJ2aWNl" +
+ "c1Byb3RvRmlsZQ==");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_google_protobuf_no_generic_services_test_TestMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_google_protobuf_no_generic_services_test_TestMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage, global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.Builder>(internal__static_google_protobuf_no_generic_services_test_TestMessage__Descriptor,
+ new string[] { "A", });
+ global::Google.ProtocolBuffers.TestProtos.NoGenericService.UnitTestNoGenericServicesProtoFile.TestExtension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.NoGenericService.UnitTestNoGenericServicesProtoFile.Descriptor.Extensions[0]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum TestEnum {
+ FOO = 1,
+ }
+
+ #endregion
+
+ #region Messages
+ public sealed partial class TestMessage : pb::ExtendableMessage<TestMessage, TestMessage.Builder> {
+ private static readonly TestMessage defaultInstance = new Builder().BuildPartial();
+ public static TestMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.NoGenericService.UnitTestNoGenericServicesProtoFile.internal__static_google_protobuf_no_generic_services_test_TestMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMessage, TestMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.NoGenericService.UnitTestNoGenericServicesProtoFile.internal__static_google_protobuf_no_generic_services_test_TestMessage__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessage<TestMessage, TestMessage.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (HasA) {
+ output.WriteInt32(1, A);
+ }
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilder<TestMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestMessage result = new TestMessage();
+
+ protected override TestMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.Descriptor; }
+ }
+
+ public override TestMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.DefaultInstance; }
+ }
+
+ public override TestMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMessage) {
+ return MergeFrom((TestMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static TestMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.NoGenericService.UnitTestNoGenericServicesProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+ #region Services
+ public abstract class TestService : pb::IService {
+ public abstract void Foo(
+ pb::IRpcController controller,
+ global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage request,
+ global::System.Action<global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage> done);
+
+ public static pbd::ServiceDescriptor Descriptor {
+ get { return UnitTestNoGenericServicesProtoFile.Descriptor.Services[0]; }
+ }
+ public pbd::ServiceDescriptor DescriptorForType {
+ get { return Descriptor; }
+ }
+
+ public void CallMethod(
+ pbd::MethodDescriptor method,
+ pb::IRpcController controller,
+ pb::IMessage request,
+ global::System.Action<pb::IMessage> done) {
+ if (method.Service != Descriptor) {
+ throw new global::System.ArgumentException(
+ "Service.CallMethod() given method descriptor for wrong service type.");
+ }
+ switch(method.Index) {
+ case 0:
+ this.Foo(controller, (global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage) request,
+ pb::RpcUtil.SpecializeCallback<global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage>(
+ done));
+ return;
+ default:
+ throw new global::System.InvalidOperationException("Can't get here.");
+ }
+ }
+
+ public pb::IMessage GetRequestPrototype(pbd::MethodDescriptor method) {
+ if (method.Service != Descriptor) {
+ throw new global::System.ArgumentException(
+ "Service.GetRequestPrototype() given method descriptor for wrong service type.");
+ }
+ switch(method.Index) {
+ case 0:
+ return global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.DefaultInstance;
+ default:
+ throw new global::System.InvalidOperationException("Can't get here.");
+ }
+ }
+
+ public pb::IMessage GetResponsePrototype(pbd::MethodDescriptor method) {
+ if (method.Service != Descriptor) {
+ throw new global::System.ArgumentException(
+ "Service.GetResponsePrototype() given method descriptor for wrong service type.");
+ }
+ switch(method.Index) {
+ case 0:
+ return global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.DefaultInstance;
+ default:
+ throw new global::System.InvalidOperationException("Can't get here.");
+ }
+ }
+
+ public static Stub CreateStub(pb::IRpcChannel channel) {
+ return new Stub(channel);
+ }
+
+ public class Stub : global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestService {
+ internal Stub(pb::IRpcChannel channel) {
+ this.channel = channel;
+ }
+
+ private readonly pb::IRpcChannel channel;
+
+ public pb::IRpcChannel Channel {
+ get { return channel; }
+ }
+
+ public override void Foo(
+ pb::IRpcController controller,
+ global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage request,
+ global::System.Action<global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage> done) {
+ channel.CallMethod(Descriptor.Methods[0],
+ controller, request, global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.DefaultInstance,
+ pb::RpcUtil.GeneralizeCallback<global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage, global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.Builder>(done, global::Google.ProtocolBuffers.TestProtos.NoGenericService.TestMessage.DefaultInstance));
+ }
+ }
+ }
+ #endregion
+
+}
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
index f703887d..ce20d142 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestOptimizeForProtoFile.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
diff --git a/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs b/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
index 40d1047b..5acb333d 100644
--- a/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
+++ b/src/ProtocolBuffers.Test/TestProtos/UnitTestProtoFile.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
@@ -94,6 +94,7 @@ namespace Google.ProtocolBuffers.TestProtos {
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedDoubleExtension);
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedBoolExtension);
registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test);
registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Single);
registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi);
}
@@ -294,6 +295,8 @@ namespace Google.ProtocolBuffers.TestProtos {
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder> internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ForeignMessage__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder> internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllExtensions__Descriptor;
@@ -302,6 +305,8 @@ namespace Google.ProtocolBuffers.TestProtos {
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder> internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder> internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedExtension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder> internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequired__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder> internal__static_protobuf_unittest_TestRequired__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredForeign__Descriptor;
@@ -312,6 +317,8 @@ namespace Google.ProtocolBuffers.TestProtos {
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder> internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder> internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder> internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder> internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor;
@@ -336,10 +343,22 @@ namespace Google.ProtocolBuffers.TestProtos {
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder> internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder> internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneString__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder> internal__static_protobuf_unittest_OneString__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneBytes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder> internal__static_protobuf_unittest_OneBytes__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedTypes__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder> internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder> internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedExtensions__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder> internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder> internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder> internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder> internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooRequest__Descriptor;
internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder> internal__static_protobuf_unittest_FooRequest__FieldAccessorTable;
internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooResponse__Descriptor;
@@ -420,251 +439,290 @@ namespace Google.ProtocolBuffers.TestProtos {
"X3BpZWNlGFQgASgJOgNhYmNCAggCEh0KDGRlZmF1bHRfY29yZBhVIAEoCToD" +
"MTIzQgIIARobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGhoKDU9wdGlv" +
"bmFsR3JvdXASCQoBYRgRIAEoBRoaCg1SZXBlYXRlZEdyb3VwEgkKAWEYLyAB" +
- "KAUiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAyIb" +
- "Cg5Gb3JlaWduTWVzc2FnZRIJCgFjGAEgASgFIh0KEVRlc3RBbGxFeHRlbnNp" +
- "b25zKggIARCAgICAAiIkChdPcHRpb25hbEdyb3VwX2V4dGVuc2lvbhIJCgFh" +
- "GBEgASgFIiQKF1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgkKAWEYLyABKAUi" +
- "1QUKDFRlc3RSZXF1aXJlZBIJCgFhGAEgAigFEg4KBmR1bW15MhgCIAEoBRIJ" +
- "CgFiGAMgAigFEg4KBmR1bW15NBgEIAEoBRIOCgZkdW1teTUYBSABKAUSDgoG" +
- "ZHVtbXk2GAYgASgFEg4KBmR1bW15NxgHIAEoBRIOCgZkdW1teTgYCCABKAUS" +
- "DgoGZHVtbXk5GAkgASgFEg8KB2R1bW15MTAYCiABKAUSDwoHZHVtbXkxMRgL" +
- "IAEoBRIPCgdkdW1teTEyGAwgASgFEg8KB2R1bW15MTMYDSABKAUSDwoHZHVt" +
- "bXkxNBgOIAEoBRIPCgdkdW1teTE1GA8gASgFEg8KB2R1bW15MTYYECABKAUS" +
- "DwoHZHVtbXkxNxgRIAEoBRIPCgdkdW1teTE4GBIgASgFEg8KB2R1bW15MTkY" +
- "EyABKAUSDwoHZHVtbXkyMBgUIAEoBRIPCgdkdW1teTIxGBUgASgFEg8KB2R1" +
- "bW15MjIYFiABKAUSDwoHZHVtbXkyMxgXIAEoBRIPCgdkdW1teTI0GBggASgF" +
- "Eg8KB2R1bW15MjUYGSABKAUSDwoHZHVtbXkyNhgaIAEoBRIPCgdkdW1teTI3" +
- "GBsgASgFEg8KB2R1bW15MjgYHCABKAUSDwoHZHVtbXkyORgdIAEoBRIPCgdk" +
- "dW1teTMwGB4gASgFEg8KB2R1bW15MzEYHyABKAUSDwoHZHVtbXkzMhggIAEo" +
- "BRIJCgFjGCEgAigFMlYKBnNpbmdsZRIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl" +
- "c3RBbGxFeHRlbnNpb25zGOgHIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRl" +
- "c3RSZXF1aXJlZDJVCgVtdWx0aRIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB" +
- "bGxFeHRlbnNpb25zGOkHIAMoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RS" +
- "ZXF1aXJlZCKaAQoTVGVzdFJlcXVpcmVkRm9yZWlnbhI5ChBvcHRpb25hbF9t" +
- "ZXNzYWdlGAEgASgLMh8ucHJvdG9idWZfdW5pdHRlc3QuVGVzdFJlcXVpcmVk" +
- "EjkKEHJlcGVhdGVkX21lc3NhZ2UYAiADKAsyHy5wcm90b2J1Zl91bml0dGVz" +
- "dC5UZXN0UmVxdWlyZWQSDQoFZHVtbXkYAyABKAUiWgoRVGVzdEZvcmVpZ25O" +
- "ZXN0ZWQSRQoOZm9yZWlnbl9uZXN0ZWQYASABKAsyLS5wcm90b2J1Zl91bml0" +
- "dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZSISChBUZXN0RW1wdHlN" +
- "ZXNzYWdlIioKHlRlc3RFbXB0eU1lc3NhZ2VXaXRoRXh0ZW5zaW9ucyoICAEQ" +
- "gICAgAIiNAoYVGVzdFJlYWxseUxhcmdlVGFnTnVtYmVyEgkKAWEYASABKAUS" +
- "DQoCYmIY////fyABKAUiVQoUVGVzdFJlY3Vyc2l2ZU1lc3NhZ2USMgoBYRgB" +
- "IAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZWN1cnNpdmVNZXNzYWdl" +
- "EgkKAWkYAiABKAUiSwoUVGVzdE11dHVhbFJlY3Vyc2lvbkESMwoCYmIYASAB" +
- "KAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0TXV0dWFsUmVjdXJzaW9uQiJi" +
- "ChRUZXN0TXV0dWFsUmVjdXJzaW9uQhIyCgFhGAEgASgLMicucHJvdG9idWZf" +
- "dW5pdHRlc3QuVGVzdE11dHVhbFJlY3Vyc2lvbkESFgoOb3B0aW9uYWxfaW50" +
- "MzIYAiABKAUiswEKElRlc3REdXBGaWVsZE51bWJlchIJCgFhGAEgASgFEjYK" +
- "A2ZvbxgCIAEoCjIpLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REdXBGaWVsZE51" +
- "bWJlci5Gb28SNgoDYmFyGAMgASgKMikucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
- "dER1cEZpZWxkTnVtYmVyLkJhchoQCgNGb28SCQoBYRgBIAEoBRoQCgNCYXIS" +
- "CQoBYRgBIAEoBSKAAgoYVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzEloKF29w" +
- "dGlvbmFsX25lc3RlZF9tZXNzYWdlGAEgASgLMjkucHJvdG9idWZfdW5pdHRl" +
- "c3QuVGVzdE5lc3RlZE1lc3NhZ2VIYXNCaXRzLk5lc3RlZE1lc3NhZ2UahwEK" +
- "DU5lc3RlZE1lc3NhZ2USJAocbmVzdGVkbWVzc2FnZV9yZXBlYXRlZF9pbnQz" +
- "MhgBIAMoBRJQCiVuZXN0ZWRtZXNzYWdlX3JlcGVhdGVkX2ZvcmVpZ25tZXNz" +
- "YWdlGAIgAygLMiEucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2Ui" +
- "5QMKF1Rlc3RDYW1lbENhc2VGaWVsZE5hbWVzEhYKDlByaW1pdGl2ZUZpZWxk" +
- "GAEgASgFEhMKC1N0cmluZ0ZpZWxkGAIgASgJEjEKCUVudW1GaWVsZBgDIAEo" +
- "DjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtEjcKDE1lc3NhZ2VG" +
- "aWVsZBgEIAEoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25NZXNzYWdl" +
- "EhwKEFN0cmluZ1BpZWNlRmllbGQYBSABKAlCAggCEhUKCUNvcmRGaWVsZBgG" +
- "IAEoCUICCAESHgoWUmVwZWF0ZWRQcmltaXRpdmVGaWVsZBgHIAMoBRIbChNS" +
- "ZXBlYXRlZFN0cmluZ0ZpZWxkGAggAygJEjkKEVJlcGVhdGVkRW51bUZpZWxk" +
- "GAkgAygOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW0SPwoUUmVw" +
- "ZWF0ZWRNZXNzYWdlRmllbGQYCiADKAsyIS5wcm90b2J1Zl91bml0dGVzdC5G" +
- "b3JlaWduTWVzc2FnZRIkChhSZXBlYXRlZFN0cmluZ1BpZWNlRmllbGQYCyAD" +
- "KAlCAggCEh0KEVJlcGVhdGVkQ29yZEZpZWxkGAwgAygJQgIIASJVChJUZXN0" +
- "RmllbGRPcmRlcmluZ3MSEQoJbXlfc3RyaW5nGAsgASgJEg4KBm15X2ludBgB" +
- "IAEoAxIQCghteV9mbG9hdBhlIAEoAioECAIQCyoECAwQZSKQAgoYVGVzdEV4" +
- "dHJlbWVEZWZhdWx0VmFsdWVzEj8KDWVzY2FwZWRfYnl0ZXMYASABKAw6KFww" +
- "MDBcMDAxXDAwN1wwMTBcMDE0XG5cclx0XDAxM1xcXCdcIlwzNzYSIAoMbGFy" +
- "Z2VfdWludDMyGAIgASgNOgo0Mjk0OTY3Mjk1EioKDGxhcmdlX3VpbnQ2NBgD" +
- "IAEoBDoUMTg0NDY3NDQwNzM3MDk1NTE2MTUSIAoLc21hbGxfaW50MzIYBCAB" +
- "KAU6Cy0yMTQ3NDgzNjQ3EikKC3NtYWxsX2ludDY0GAUgASgDOhQtOTIyMzM3" +
- "MjAzNjg1NDc3NTgwNxIYCgt1dGY4X3N0cmluZxgGIAEoCToD4Yi0IqoDCg9U" +
- "ZXN0UGFja2VkVHlwZXMSGAoMcGFja2VkX2ludDMyGFogAygFQgIQARIYCgxw" +
- "YWNrZWRfaW50NjQYWyADKANCAhABEhkKDXBhY2tlZF91aW50MzIYXCADKA1C" +
- "AhABEhkKDXBhY2tlZF91aW50NjQYXSADKARCAhABEhkKDXBhY2tlZF9zaW50" +
- "MzIYXiADKBFCAhABEhkKDXBhY2tlZF9zaW50NjQYXyADKBJCAhABEhoKDnBh" +
- "Y2tlZF9maXhlZDMyGGAgAygHQgIQARIaCg5wYWNrZWRfZml4ZWQ2NBhhIAMo" +
- "BkICEAESGwoPcGFja2VkX3NmaXhlZDMyGGIgAygPQgIQARIbCg9wYWNrZWRf" +
- "c2ZpeGVkNjQYYyADKBBCAhABEhgKDHBhY2tlZF9mbG9hdBhkIAMoAkICEAES" +
- "GQoNcGFja2VkX2RvdWJsZRhlIAMoAUICEAESFwoLcGFja2VkX2Jvb2wYZiAD" +
- "KAhCAhABEjcKC3BhY2tlZF9lbnVtGGcgAygOMh4ucHJvdG9idWZfdW5pdHRl" +
- "c3QuRm9yZWlnbkVudW1CAhABIiAKFFRlc3RQYWNrZWRFeHRlbnNpb25zKggI" +
- "ARCAgICAAiIMCgpGb29SZXF1ZXN0Ig0KC0Zvb1Jlc3BvbnNlIgwKCkJhclJl" +
- "cXVlc3QiDQoLQmFyUmVzcG9uc2UqQAoLRm9yZWlnbkVudW0SDwoLRk9SRUlH" +
- "Tl9GT08QBBIPCgtGT1JFSUdOX0JBUhAFEg8KC0ZPUkVJR05fQkFaEAYqRwoU" +
- "VGVzdEVudW1XaXRoRHVwVmFsdWUSCAoERk9PMRABEggKBEJBUjEQAhIHCgNC" +
- "QVoQAxIICgRGT08yEAESCAoEQkFSMhACKokBCg5UZXN0U3BhcnNlRW51bRIM" +
- "CghTUEFSU0VfQRB7Eg4KCFNQQVJTRV9CEKbnAxIPCghTUEFSU0VfQxCysYAG" +
- "EhUKCFNQQVJTRV9EEPH//////////wESFQoIU1BBUlNFX0UQtN78////////" +
- "ARIMCghTUEFSU0VfRhAAEgwKCFNQQVJTRV9HEAIymQEKC1Rlc3RTZXJ2aWNl" +
- "EkQKA0ZvbxIdLnByb3RvYnVmX3VuaXR0ZXN0LkZvb1JlcXVlc3QaHi5wcm90" +
- "b2J1Zl91bml0dGVzdC5Gb29SZXNwb25zZRJECgNCYXISHS5wcm90b2J1Zl91" +
- "bml0dGVzdC5CYXJSZXF1ZXN0Gh4ucHJvdG9idWZfdW5pdHRlc3QuQmFyUmVz" +
- "cG9uc2U6RgoYb3B0aW9uYWxfaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
- "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYASABKAU6RgoYb3B0aW9uYWxf" +
- "aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4" +
- "dGVuc2lvbnMYAiABKAM6RwoZb3B0aW9uYWxfdWludDMyX2V4dGVuc2lvbhIk" +
- "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAMgASgNOkcK" +
- "GW9wdGlvbmFsX3VpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVz" +
- "dC5UZXN0QWxsRXh0ZW5zaW9ucxgEIAEoBDpHChlvcHRpb25hbF9zaW50MzJf" +
+ "KAUiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAyI0" +
+ "ChRUZXN0RGVwcmVjYXRlZEZpZWxkcxIcChBkZXByZWNhdGVkX2ludDMyGAEg" +
+ "ASgFQgIYASIbCg5Gb3JlaWduTWVzc2FnZRIJCgFjGAEgASgFIh0KEVRlc3RB" +
+ "bGxFeHRlbnNpb25zKggIARCAgICAAiIkChdPcHRpb25hbEdyb3VwX2V4dGVu" +
+ "c2lvbhIJCgFhGBEgASgFIiQKF1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgkK" +
+ "AWEYLyABKAUiUAoTVGVzdE5lc3RlZEV4dGVuc2lvbjI5CgR0ZXN0EiQucHJv" +
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6gcgASgJOgR0ZXN0" +
+ "ItUFCgxUZXN0UmVxdWlyZWQSCQoBYRgBIAIoBRIOCgZkdW1teTIYAiABKAUS" +
+ "CQoBYhgDIAIoBRIOCgZkdW1teTQYBCABKAUSDgoGZHVtbXk1GAUgASgFEg4K" +
+ "BmR1bW15NhgGIAEoBRIOCgZkdW1teTcYByABKAUSDgoGZHVtbXk4GAggASgF" +
+ "Eg4KBmR1bW15ORgJIAEoBRIPCgdkdW1teTEwGAogASgFEg8KB2R1bW15MTEY" +
+ "CyABKAUSDwoHZHVtbXkxMhgMIAEoBRIPCgdkdW1teTEzGA0gASgFEg8KB2R1" +
+ "bW15MTQYDiABKAUSDwoHZHVtbXkxNRgPIAEoBRIPCgdkdW1teTE2GBAgASgF" +
+ "Eg8KB2R1bW15MTcYESABKAUSDwoHZHVtbXkxOBgSIAEoBRIPCgdkdW1teTE5" +
+ "GBMgASgFEg8KB2R1bW15MjAYFCABKAUSDwoHZHVtbXkyMRgVIAEoBRIPCgdk" +
+ "dW1teTIyGBYgASgFEg8KB2R1bW15MjMYFyABKAUSDwoHZHVtbXkyNBgYIAEo" +
+ "BRIPCgdkdW1teTI1GBkgASgFEg8KB2R1bW15MjYYGiABKAUSDwoHZHVtbXky" +
+ "NxgbIAEoBRIPCgdkdW1teTI4GBwgASgFEg8KB2R1bW15MjkYHSABKAUSDwoH" +
+ "ZHVtbXkzMBgeIAEoBRIPCgdkdW1teTMxGB8gASgFEg8KB2R1bW15MzIYICAB" +
+ "KAUSCQoBYxghIAIoBTJWCgZzaW5nbGUSJC5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0QWxsRXh0ZW5zaW9ucxjoByABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0UmVxdWlyZWQyVQoFbXVsdGkSJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
+ "QWxsRXh0ZW5zaW9ucxjpByADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
+ "UmVxdWlyZWQimgEKE1Rlc3RSZXF1aXJlZEZvcmVpZ24SOQoQb3B0aW9uYWxf" +
+ "bWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJl" +
+ "ZBI5ChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMh8ucHJvdG9idWZfdW5pdHRl" +
+ "c3QuVGVzdFJlcXVpcmVkEg0KBWR1bW15GAMgASgFIloKEVRlc3RGb3JlaWdu" +
+ "TmVzdGVkEkUKDmZvcmVpZ25fbmVzdGVkGAEgASgLMi0ucHJvdG9idWZfdW5p" +
+ "dHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2UiEgoQVGVzdEVtcHR5" +
+ "TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4dGVuc2lvbnMqCAgB" +
+ "EICAgIACIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJhbmdlcyoECCoQKyoG" +
+ "CK8gEJQhKgoIgIAEEICAgIACIjQKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJl" +
+ "chIJCgFhGAEgASgFEg0KAmJiGP///38gASgFIlUKFFRlc3RSZWN1cnNpdmVN" +
+ "ZXNzYWdlEjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVj" +
+ "dXJzaXZlTWVzc2FnZRIJCgFpGAIgASgFIksKFFRlc3RNdXR1YWxSZWN1cnNp" +
+ "b25BEjMKAmJiGAEgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdE11dHVh" +
+ "bFJlY3Vyc2lvbkIiYgoUVGVzdE11dHVhbFJlY3Vyc2lvbkISMgoBYRgBIAEo" +
+ "CzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25BEhYK" +
+ "Dm9wdGlvbmFsX2ludDMyGAIgASgFIrMBChJUZXN0RHVwRmllbGROdW1iZXIS" +
+ "CQoBYRgBIAEoBRI2CgNmb28YAiABKAoyKS5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0RHVwRmllbGROdW1iZXIuRm9vEjYKA2JhchgDIAEoCjIpLnByb3RvYnVm" +
+ "X3VuaXR0ZXN0LlRlc3REdXBGaWVsZE51bWJlci5CYXIaEAoDRm9vEgkKAWEY" +
+ "ASABKAUaEAoDQmFyEgkKAWEYASABKAUigAIKGFRlc3ROZXN0ZWRNZXNzYWdl" +
+ "SGFzQml0cxJaChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgBIAEoCzI5LnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cy5OZXN0" +
+ "ZWRNZXNzYWdlGocBCg1OZXN0ZWRNZXNzYWdlEiQKHG5lc3RlZG1lc3NhZ2Vf" +
+ "cmVwZWF0ZWRfaW50MzIYASADKAUSUAolbmVzdGVkbWVzc2FnZV9yZXBlYXRl" +
+ "ZF9mb3JlaWdubWVzc2FnZRgCIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZv" +
+ "cmVpZ25NZXNzYWdlIuUDChdUZXN0Q2FtZWxDYXNlRmllbGROYW1lcxIWCg5Q" +
+ "cmltaXRpdmVGaWVsZBgBIAEoBRITCgtTdHJpbmdGaWVsZBgCIAEoCRIxCglF" +
+ "bnVtRmllbGQYAyABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51" +
+ "bRI3CgxNZXNzYWdlRmllbGQYBCABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5G" +
+ "b3JlaWduTWVzc2FnZRIcChBTdHJpbmdQaWVjZUZpZWxkGAUgASgJQgIIAhIV" +
+ "CglDb3JkRmllbGQYBiABKAlCAggBEh4KFlJlcGVhdGVkUHJpbWl0aXZlRmll" +
+ "bGQYByADKAUSGwoTUmVwZWF0ZWRTdHJpbmdGaWVsZBgIIAMoCRI5ChFSZXBl" +
+ "YXRlZEVudW1GaWVsZBgJIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVp" +
+ "Z25FbnVtEj8KFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMiEucHJvdG9i" +
+ "dWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USJAoYUmVwZWF0ZWRTdHJpbmdQ" +
+ "aWVjZUZpZWxkGAsgAygJQgIIAhIdChFSZXBlYXRlZENvcmRGaWVsZBgMIAMo" +
+ "CUICCAEiVQoSVGVzdEZpZWxkT3JkZXJpbmdzEhEKCW15X3N0cmluZxgLIAEo" +
+ "CRIOCgZteV9pbnQYASABKAMSEAoIbXlfZmxvYXQYZSABKAIqBAgCEAsqBAgM" +
+ "EGUi9gQKGFRlc3RFeHRyZW1lRGVmYXVsdFZhbHVlcxI/Cg1lc2NhcGVkX2J5" +
+ "dGVzGAEgASgMOihcMDAwXDAwMVwwMDdcMDEwXDAxNFxuXHJcdFwwMTNcXFwn" +
+ "XCJcMzc2EiAKDGxhcmdlX3VpbnQzMhgCIAEoDToKNDI5NDk2NzI5NRIqCgxs" +
+ "YXJnZV91aW50NjQYAyABKAQ6FDE4NDQ2NzQ0MDczNzA5NTUxNjE1EiAKC3Nt" +
+ "YWxsX2ludDMyGAQgASgFOgstMjE0NzQ4MzY0NxIpCgtzbWFsbF9pbnQ2NBgF" +
+ "IAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDcSGAoLdXRmOF9zdHJpbmcYBiAB" +
+ "KAk6A+GItBIVCgp6ZXJvX2Zsb2F0GAcgASgCOgEwEhQKCW9uZV9mbG9hdBgI" +
+ "IAEoAjoBMRIYCgtzbWFsbF9mbG9hdBgJIAEoAjoDMS41Eh4KEm5lZ2F0aXZl" +
+ "X29uZV9mbG9hdBgKIAEoAjoCLTESHAoObmVnYXRpdmVfZmxvYXQYCyABKAI6" +
+ "BC0xLjUSGwoLbGFyZ2VfZmxvYXQYDCABKAI6BjJlKzAwOBIlChRzbWFsbF9u" +
+ "ZWdhdGl2ZV9mbG9hdBgNIAEoAjoHLThlLTAyOBIXCgppbmZfZG91YmxlGA4g" +
+ "ASgBOgNpbmYSHAoObmVnX2luZl9kb3VibGUYDyABKAE6BC1pbmYSFwoKbmFu" +
+ "X2RvdWJsZRgQIAEoAToDbmFuEhYKCWluZl9mbG9hdBgRIAEoAjoDaW5mEhsK" +
+ "DW5lZ19pbmZfZmxvYXQYEiABKAI6BC1pbmYSFgoJbmFuX2Zsb2F0GBMgASgC" +
+ "OgNuYW4iGQoJT25lU3RyaW5nEgwKBGRhdGEYASABKAkiGAoIT25lQnl0ZXMS" +
+ "DAoEZGF0YRgBIAEoDCKqAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9p" +
+ "bnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1w" +
+ "YWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygE" +
+ "QgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2lu" +
+ "dDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoO" +
+ "cGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhi" +
+ "IAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNr" +
+ "ZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhAB" +
+ "EhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI3CgtwYWNrZWRfZW51bRhnIAMo" +
+ "DjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQASLIAwoRVGVz" +
+ "dFVucGFja2VkVHlwZXMSGgoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAEhoK" +
+ "DnVucGFja2VkX2ludDY0GFsgAygDQgIQABIbCg91bnBhY2tlZF91aW50MzIY" +
+ "XCADKA1CAhAAEhsKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEAASGwoPdW5w" +
+ "YWNrZWRfc2ludDMyGF4gAygRQgIQABIbCg91bnBhY2tlZF9zaW50NjQYXyAD" +
+ "KBJCAhAAEhwKEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAEhwKEHVucGFj" +
+ "a2VkX2ZpeGVkNjQYYSADKAZCAhAAEh0KEXVucGFja2VkX3NmaXhlZDMyGGIg" +
+ "AygPQgIQABIdChF1bnBhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAASGgoOdW5w" +
+ "YWNrZWRfZmxvYXQYZCADKAJCAhAAEhsKD3VucGFja2VkX2RvdWJsZRhlIAMo" +
+ "AUICEAASGQoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEAASOQoNdW5wYWNrZWRf" +
+ "ZW51bRhnIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQ" +
+ "ACIgChRUZXN0UGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIimQQKFVRlc3RE" +
+ "eW5hbWljRXh0ZW5zaW9ucxIZChBzY2FsYXJfZXh0ZW5zaW9uGNAPIAEoBxI3" +
+ "Cg5lbnVtX2V4dGVuc2lvbhjRDyABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5G" +
+ "b3JlaWduRW51bRJZChZkeW5hbWljX2VudW1fZXh0ZW5zaW9uGNIPIAEoDjI4" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5h" +
+ "bWljRW51bVR5cGUSPQoRbWVzc2FnZV9leHRlbnNpb24Y0w8gASgLMiEucHJv" +
+ "dG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USXwoZZHluYW1pY19tZXNz" +
+ "YWdlX2V4dGVuc2lvbhjUDyABKAsyOy5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
+ "RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY01lc3NhZ2VUeXBlEhsKEnJlcGVh" +
+ "dGVkX2V4dGVuc2lvbhjVDyADKAkSHQoQcGFja2VkX2V4dGVuc2lvbhjWDyAD" +
+ "KBFCAhABGiwKEkR5bmFtaWNNZXNzYWdlVHlwZRIWCg1keW5hbWljX2ZpZWxk" +
+ "GLQQIAEoBSJHCg9EeW5hbWljRW51bVR5cGUSEAoLRFlOQU1JQ19GT08QmBES" +
+ "EAoLRFlOQU1JQ19CQVIQmRESEAoLRFlOQU1JQ19CQVoQmhEiwAEKI1Rlc3RS" +
+ "ZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEhgKEHJlcGVhdGVkX2Zp" +
+ "eGVkMzIYDCADKAcSFgoOcmVwZWF0ZWRfaW50MzIYDSADKAUSGQoQcmVwZWF0" +
+ "ZWRfZml4ZWQ2NBj+DyADKAYSFwoOcmVwZWF0ZWRfaW50NjQY/w8gAygDEhgK" +
+ "DnJlcGVhdGVkX2Zsb2F0GP7/DyADKAISGQoPcmVwZWF0ZWRfdWludDY0GP//" +
+ "DyADKAQiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSIMCgpCYXJSZXF1" +
+ "ZXN0Ig0KC0JhclJlc3BvbnNlKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05f" +
+ "Rk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGKkcKFFRl" +
+ "c3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFa" +
+ "EAMSCAoERk9PMhABEggKBEJBUjIQAiqJAQoOVGVzdFNwYXJzZUVudW0SDAoI" +
+ "U1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIV" +
+ "CghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wES" +
+ "DAoIU1BBUlNFX0YQABIMCghTUEFSU0VfRxACMpkBCgtUZXN0U2VydmljZRJE" +
+ "CgNGb28SHS5wcm90b2J1Zl91bml0dGVzdC5Gb29SZXF1ZXN0Gh4ucHJvdG9i" +
+ "dWZfdW5pdHRlc3QuRm9vUmVzcG9uc2USRAoDQmFyEh0ucHJvdG9idWZfdW5p" +
+ "dHRlc3QuQmFyUmVxdWVzdBoeLnByb3RvYnVmX3VuaXR0ZXN0LkJhclJlc3Bv" +
+ "bnNlOkYKGG9wdGlvbmFsX2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu" +
+ "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAEgASgFOkYKGG9wdGlvbmFsX2lu" +
+ "dDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl" +
+ "bnNpb25zGAIgASgDOkcKGW9wdGlvbmFsX3VpbnQzMl9leHRlbnNpb24SJC5w" +
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgDIAEoDTpHChlv" +
+ "cHRpb25hbF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3Qu" +
+ "VGVzdEFsbEV4dGVuc2lvbnMYBCABKAQ6RwoZb3B0aW9uYWxfc2ludDMyX2V4" +
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z" +
+ "GAUgASgROkcKGW9wdGlvbmFsX3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1" +
+ "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgGIAEoEjpIChpvcHRpb25h" +
+ "bF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB" +
+ "bGxFeHRlbnNpb25zGAcgASgHOkgKGm9wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5z" +
+ "aW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYCCAB" +
+ "KAY6SQobb3B0aW9uYWxfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYCSABKA86SQobb3B0aW9uYWxf" +
+ "c2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFs" +
+ "bEV4dGVuc2lvbnMYCiABKBA6RgoYb3B0aW9uYWxfZmxvYXRfZXh0ZW5zaW9u" +
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYCyABKAI6" +
+ "RwoZb3B0aW9uYWxfZG91YmxlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAwgASgBOkUKF29wdGlvbmFsX2Jvb2xf" +
"ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv" +
- "bnMYBSABKBE6RwoZb3B0aW9uYWxfc2ludDY0X2V4dGVuc2lvbhIkLnByb3Rv" +
- "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAYgASgSOkgKGm9wdGlv" +
- "bmFsX2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
- "dEFsbEV4dGVuc2lvbnMYByABKAc6SAoab3B0aW9uYWxfZml4ZWQ2NF9leHRl" +
- "bnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgI" +
- "IAEoBjpJChtvcHRpb25hbF9zZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1" +
- "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgJIAEoDzpJChtvcHRpb25h" +
- "bF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
- "QWxsRXh0ZW5zaW9ucxgKIAEoEDpGChhvcHRpb25hbF9mbG9hdF9leHRlbnNp" +
- "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgLIAEo" +
- "AjpHChlvcHRpb25hbF9kb3VibGVfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5p" +
- "dHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDCABKAE6RQoXb3B0aW9uYWxfYm9v" +
- "bF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5z" +
- "aW9ucxgNIAEoCDpHChlvcHRpb25hbF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJv" +
- "dG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYDiABKAk6RgoYb3B0" +
- "aW9uYWxfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
- "dEFsbEV4dGVuc2lvbnMYDyABKAw6cQoXb3B0aW9uYWxncm91cF9leHRlbnNp" +
- "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgQIAEo" +
- "CjIqLnByb3RvYnVmX3VuaXR0ZXN0Lk9wdGlvbmFsR3JvdXBfZXh0ZW5zaW9u" +
- "On4KIW9wdGlvbmFsX25lc3RlZF9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3Rv" +
- "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBIgASgLMi0ucHJvdG9i" +
- "dWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2U6cwoib3B0" +
- "aW9uYWxfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu" +
- "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBMgASgLMiEucHJvdG9idWZfdW5p" +
- "dHRlc3QuRm9yZWlnbk1lc3NhZ2U6eAohb3B0aW9uYWxfaW1wb3J0X21lc3Nh" +
- "Z2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu" +
- "c2lvbnMYFCABKAsyJy5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0" +
- "TWVzc2FnZTp4Ch5vcHRpb25hbF9uZXN0ZWRfZW51bV9leHRlbnNpb24SJC5w" +
- "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgVIAEoDjIqLnBy" +
- "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRFbnVtOm0KH29w" +
- "dGlvbmFsX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0" +
- "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgWIAEoDjIeLnByb3RvYnVmX3VuaXR0" +
- "ZXN0LkZvcmVpZ25FbnVtOnIKHm9wdGlvbmFsX2ltcG9ydF9lbnVtX2V4dGVu" +
- "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBcg" +
- "ASgOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydEVudW06UQof" +
- "b3B0aW9uYWxfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu" +
- "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGBggASgJQgIIAjpJChdvcHRpb25h" +
- "bF9jb3JkX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF" +
- "eHRlbnNpb25zGBkgASgJQgIIATpGChhyZXBlYXRlZF9pbnQzMl9leHRlbnNp" +
- "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgfIAMo" +
- "BTpGChhyZXBlYXRlZF9pbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0" +
- "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxggIAMoAzpHChlyZXBlYXRlZF91aW50" +
- "MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu" +
- "c2lvbnMYISADKA06RwoZcmVwZWF0ZWRfdWludDY0X2V4dGVuc2lvbhIkLnBy" +
- "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCIgAygEOkcKGXJl" +
- "cGVhdGVkX3NpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5U" +
- "ZXN0QWxsRXh0ZW5zaW9ucxgjIAMoETpHChlyZXBlYXRlZF9zaW50NjRfZXh0" +
+ "bnMYDSABKAg6RwoZb3B0aW9uYWxfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3Rv" +
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGA4gASgJOkYKGG9wdGlv" +
+ "bmFsX2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB" +
+ "bGxFeHRlbnNpb25zGA8gASgMOnEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9u" +
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYECABKAoy" +
+ "Ki5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25hbEdyb3VwX2V4dGVuc2lvbjp+" +
+ "CiFvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1" +
+ "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgSIAEoCzItLnByb3RvYnVm" +
+ "X3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlOnMKIm9wdGlv" +
+ "bmFsX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgTIAEoCzIhLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LkZvcmVpZ25NZXNzYWdlOngKIW9wdGlvbmFsX2ltcG9ydF9tZXNzYWdl" +
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp" +
+ "b25zGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1l" +
+ "c3NhZ2U6eAoeb3B0aW9uYWxfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJv" +
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFSABKA4yKi5wcm90" +
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bTptCh9vcHRp" +
+ "b25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl" +
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYFiABKA4yHi5wcm90b2J1Zl91bml0dGVz" +
+ "dC5Gb3JlaWduRW51bTpyCh5vcHRpb25hbF9pbXBvcnRfZW51bV9leHRlbnNp" +
+ "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgXIAEo" +
+ "DjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtOlEKH29w" +
+ "dGlvbmFsX3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgYIAEoCUICCAI6SQoXb3B0aW9uYWxf" +
+ "Y29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0" +
+ "ZW5zaW9ucxgZIAEoCUICCAE6RgoYcmVwZWF0ZWRfaW50MzJfZXh0ZW5zaW9u" +
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYHyADKAU6" +
+ "RgoYcmVwZWF0ZWRfaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl" +
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYICADKAM6RwoZcmVwZWF0ZWRfdWludDMy" +
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp" +
+ "b25zGCEgAygNOkcKGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SJC5wcm90" +
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgiIAMoBDpHChlyZXBl" +
+ "YXRlZF9zaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
+ "dEFsbEV4dGVuc2lvbnMYIyADKBE6RwoZcmVwZWF0ZWRfc2ludDY0X2V4dGVu" +
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCQg" +
+ "AygSOkgKGnJlcGVhdGVkX2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJSADKAc6SAoacmVwZWF0ZWRf" +
+ "Zml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs" +
+ "RXh0ZW5zaW9ucxgmIAMoBjpJChtyZXBlYXRlZF9zZml4ZWQzMl9leHRlbnNp" +
+ "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgnIAMo" +
+ "DzpJChtyZXBlYXRlZF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91" +
+ "bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgoIAMoEDpGChhyZXBlYXRlZF9m" +
+ "bG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0" +
+ "ZW5zaW9ucxgpIAMoAjpHChlyZXBlYXRlZF9kb3VibGVfZXh0ZW5zaW9uEiQu" +
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKiADKAE6RQoX" +
+ "cmVwZWF0ZWRfYm9vbF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0QWxsRXh0ZW5zaW9ucxgrIAMoCDpHChlyZXBlYXRlZF9zdHJpbmdfZXh0" +
"ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY" +
- "JCADKBI6SAoacmVwZWF0ZWRfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1" +
- "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxglIAMoBzpIChpyZXBlYXRl" +
- "ZF9maXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB" +
- "bGxFeHRlbnNpb25zGCYgAygGOkkKG3JlcGVhdGVkX3NmaXhlZDMyX2V4dGVu" +
- "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCcg" +
- "AygPOkkKG3JlcGVhdGVkX3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVm" +
- "X3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCggAygQOkYKGHJlcGVhdGVk" +
- "X2Zsb2F0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF" +
- "eHRlbnNpb25zGCkgAygCOkcKGXJlcGVhdGVkX2RvdWJsZV9leHRlbnNpb24S" +
- "JC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgqIAMoATpF" +
- "ChdyZXBlYXRlZF9ib29sX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0" +
- "LlRlc3RBbGxFeHRlbnNpb25zGCsgAygIOkcKGXJlcGVhdGVkX3N0cmluZ19l" +
+ "LCADKAk6RgoYcmVwZWF0ZWRfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYLSADKAw6cQoXcmVwZWF0ZWRn" +
+ "cm91cF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0" +
+ "ZW5zaW9ucxguIAMoCjIqLnByb3RvYnVmX3VuaXR0ZXN0LlJlcGVhdGVkR3Jv" +
+ "dXBfZXh0ZW5zaW9uOn4KIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdlX2V4dGVu" +
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDAg" +
+ "AygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1l" +
+ "c3NhZ2U6cwoicmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIk" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDEgAygLMiEu" +
+ "cHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2U6eAohcmVwZWF0ZWRf" +
+ "aW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3Qu" +
+ "VGVzdEFsbEV4dGVuc2lvbnMYMiADKAsyJy5wcm90b2J1Zl91bml0dGVzdF9p" +
+ "bXBvcnQuSW1wb3J0TWVzc2FnZTp4Ch5yZXBlYXRlZF9uZXN0ZWRfZW51bV9l" +
"eHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9u" +
- "cxgsIAMoCTpGChhyZXBlYXRlZF9ieXRlc19leHRlbnNpb24SJC5wcm90b2J1" +
- "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgtIAMoDDpxChdyZXBlYXRl" +
- "ZGdyb3VwX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF" +
- "eHRlbnNpb25zGC4gAygKMioucHJvdG9idWZfdW5pdHRlc3QuUmVwZWF0ZWRH" +
- "cm91cF9leHRlbnNpb246fgohcmVwZWF0ZWRfbmVzdGVkX21lc3NhZ2VfZXh0" +
- "ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY" +
- "MCADKAsyLS5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVk" +
- "TWVzc2FnZTpzCiJyZXBlYXRlZF9mb3JlaWduX21lc3NhZ2VfZXh0ZW5zaW9u" +
- "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYMSADKAsy" +
- "IS5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduTWVzc2FnZTp4CiFyZXBlYXRl" +
- "ZF9pbXBvcnRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVz" +
- "dC5UZXN0QWxsRXh0ZW5zaW9ucxgyIAMoCzInLnByb3RvYnVmX3VuaXR0ZXN0" +
- "X2ltcG9ydC5JbXBvcnRNZXNzYWdlOngKHnJlcGVhdGVkX25lc3RlZF9lbnVt" +
+ "cxgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0" +
+ "ZWRFbnVtOm0KH3JlcGVhdGVkX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5w" +
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg0IAMoDjIeLnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtOnIKHnJlcGVhdGVkX2ltcG9y" +
+ "dF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF" +
+ "eHRlbnNpb25zGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0Lklt" +
+ "cG9ydEVudW06UQofcmVwZWF0ZWRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIk" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDYgAygJQgII" +
+ "AjpJChdyZXBlYXRlZF9jb3JkX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDcgAygJQgIIATpJChdkZWZhdWx0X2lu" +
+ "dDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl" +
+ "bnNpb25zGD0gASgFOgI0MTpJChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIk" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0" +
+ "MjpKChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDM6SgoYZGVmYXVsdF91" +
+ "aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4" +
+ "dGVuc2lvbnMYQCABKAQ6AjQ0OksKGGRlZmF1bHRfc2ludDMyX2V4dGVuc2lv" +
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEEgASgR" +
+ "OgMtNDU6SgoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2OksKGWRlZmF1" +
+ "bHRfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
+ "QWxsRXh0ZW5zaW9ucxhDIAEoBzoCNDc6SwoZZGVmYXVsdF9maXhlZDY0X2V4" +
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z" +
+ "GEQgASgGOgI0ODpMChpkZWZhdWx0X3NmaXhlZDMyX2V4dGVuc2lvbhIkLnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OTpN" +
+ "ChpkZWZhdWx0X3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTA6SwoXZGVmYXVsdF9m" +
+ "bG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0" +
+ "ZW5zaW9ucxhHIAEoAjoENTEuNTpNChhkZWZhdWx0X2RvdWJsZV9leHRlbnNp" +
+ "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEo" +
+ "AToFNTIwMDA6SgoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIkLnByb3RvYnVm" +
+ "X3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEkgASgIOgR0cnVlOk0KGGRl" +
+ "ZmF1bHRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl" +
+ "c3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsbzpMChdkZWZhdWx0X2J5dGVz" +
"X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp" +
- "b25zGDMgAygOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5l" +
- "c3RlZEVudW06bQofcmVwZWF0ZWRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIk" +
- "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDQgAygOMh4u" +
- "cHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW06cgoecmVwZWF0ZWRfaW1w" +
- "b3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFs" +
- "bEV4dGVuc2lvbnMYNSADKA4yJC5wcm90b2J1Zl91bml0dGVzdF9pbXBvcnQu" +
- "SW1wb3J0RW51bTpRCh9yZXBlYXRlZF9zdHJpbmdfcGllY2VfZXh0ZW5zaW9u" +
- "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNiADKAlC" +
- "AggCOkkKF3JlcGVhdGVkX2NvcmRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5p" +
- "dHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYNyADKAlCAggBOkkKF2RlZmF1bHRf" +
- "aW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4" +
- "dGVuc2lvbnMYPSABKAU6AjQxOkkKF2RlZmF1bHRfaW50NjRfZXh0ZW5zaW9u" +
- "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYPiABKAM6" +
- "AjQyOkoKGGRlZmF1bHRfdWludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu" +
- "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD8gASgNOgI0MzpKChhkZWZhdWx0" +
- "X3VpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs" +
- "RXh0ZW5zaW9ucxhAIAEoBDoCNDQ6SwoYZGVmYXVsdF9zaW50MzJfZXh0ZW5z" +
- "aW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQSAB" +
- "KBE6Ay00NTpKChhkZWZhdWx0X3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1" +
- "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhCIAEoEjoCNDY6SwoZZGVm" +
- "YXVsdF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl" +
- "c3RBbGxFeHRlbnNpb25zGEMgASgHOgI0NzpLChlkZWZhdWx0X2ZpeGVkNjRf" +
- "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv" +
- "bnMYRCABKAY6AjQ4OkwKGmRlZmF1bHRfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQu" +
- "cHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYRSABKA86AjQ5" +
- "Ok0KGmRlZmF1bHRfc2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5p" +
- "dHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYRiABKBA6Ay01MDpLChdkZWZhdWx0" +
- "X2Zsb2F0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF" +
- "eHRlbnNpb25zGEcgASgCOgQ1MS41Ok0KGGRlZmF1bHRfZG91YmxlX2V4dGVu" +
- "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEgg" +
- "ASgBOgU1MjAwMDpKChZkZWZhdWx0X2Jvb2xfZXh0ZW5zaW9uEiQucHJvdG9i" +
- "dWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYSSABKAg6BHRydWU6TQoY" +
- "ZGVmYXVsdF9zdHJpbmdfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3Qu" +
- "VGVzdEFsbEV4dGVuc2lvbnMYSiABKAk6BWhlbGxvOkwKF2RlZmF1bHRfYnl0" +
- "ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu" +
- "c2lvbnMYSyABKAw6BXdvcmxkOnwKHWRlZmF1bHRfbmVzdGVkX2VudW1fZXh0" +
- "ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY" +
- "USABKA4yKi5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVk" +
- "RW51bToDQkFSOnkKHmRlZmF1bHRfZm9yZWlnbl9lbnVtX2V4dGVuc2lvbhIk" +
- "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFIgASgOMh4u" +
- "cHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbkVudW06C0ZPUkVJR05fQkFSOn0K" +
- "HWRlZmF1bHRfaW1wb3J0X2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5p" +
- "dHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYUyABKA4yJC5wcm90b2J1Zl91bml0" +
- "dGVzdF9pbXBvcnQuSW1wb3J0RW51bToKSU1QT1JUX0JBUjpVCh5kZWZhdWx0" +
- "X3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5U" +
- "ZXN0QWxsRXh0ZW5zaW9ucxhUIAEoCToDYWJjQgIIAjpNChZkZWZhdWx0X2Nv" +
- "cmRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVu" +
- "c2lvbnMYVSABKAk6AzEyM0ICCAE6QgoTbXlfZXh0ZW5zaW9uX3N0cmluZxIl" +
- "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVsZE9yZGVyaW5ncxgyIAEoCTo/" +
- "ChBteV9leHRlbnNpb25faW50EiUucHJvdG9idWZfdW5pdHRlc3QuVGVzdEZp" +
- "ZWxkT3JkZXJpbmdzGAUgASgFOksKFnBhY2tlZF9pbnQzMl9leHRlbnNpb24S" +
- "Jy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhaIAMo" +
- "BUICEAE6SwoWcGFja2VkX2ludDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3Vu" +
- "aXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGFsgAygDQgIQATpMChdwYWNr" +
- "ZWRfdWludDMyX2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQ" +
- "YWNrZWRFeHRlbnNpb25zGFwgAygNQgIQATpMChdwYWNrZWRfdWludDY0X2V4" +
- "dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNp" +
- "b25zGF0gAygEQgIQATpMChdwYWNrZWRfc2ludDMyX2V4dGVuc2lvbhInLnBy" +
- "b3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGF4gAygRQgIQ" +
- "ATpMChdwYWNrZWRfc2ludDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0" +
- "ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGF8gAygSQgIQATpNChhwYWNrZWRf" +
- "Zml4ZWQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFj" +
- "a2VkRXh0ZW5zaW9ucxhgIAMoB0ICEAE6TQoYcGFja2VkX2ZpeGVkNjRfZXh0" +
- "ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lv" +
- "bnMYYSADKAZCAhABOk4KGXBhY2tlZF9zZml4ZWQzMl9leHRlbnNpb24SJy5w" +
- "cm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhiIAMoD0IC" +
- "EAE6TgoZcGFja2VkX3NmaXhlZDY0X2V4dGVuc2lvbhInLnByb3RvYnVmX3Vu" +
- "aXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGMgAygQQgIQATpLChZwYWNr" +
- "ZWRfZmxvYXRfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBh" +
- "Y2tlZEV4dGVuc2lvbnMYZCADKAJCAhABOkwKF3BhY2tlZF9kb3VibGVfZXh0" +
- "ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lv" +
- "bnMYZSADKAFCAhABOkoKFXBhY2tlZF9ib29sX2V4dGVuc2lvbhInLnByb3Rv" +
- "YnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25zGGYgAygIQgIQATpq" +
- "ChVwYWNrZWRfZW51bV9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5U" +
- "ZXN0UGFja2VkRXh0ZW5zaW9ucxhnIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0" +
- "LkZvcmVpZ25FbnVtQgIQAUJKQg1Vbml0dGVzdFByb3RvSAHCPjYKIUdvb2ds" +
- "ZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFByb3RvcxIRVW5pdFRlc3RQcm90b0Zp" +
- "bGU=");
+ "b25zGEsgASgMOgV3b3JsZDp8Ch1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVu" +
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFEg" +
+ "ASgOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVu" +
+ "dW06A0JBUjp5Ch5kZWZhdWx0X2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5w" +
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIeLnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUjp9Ch1k" +
+ "ZWZhdWx0X2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFMgASgOMiQucHJvdG9idWZfdW5pdHRl" +
+ "c3RfaW1wb3J0LkltcG9ydEVudW06CklNUE9SVF9CQVI6VQoeZGVmYXVsdF9z" +
+ "dHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
+ "dEFsbEV4dGVuc2lvbnMYVCABKAk6A2FiY0ICCAI6TQoWZGVmYXVsdF9jb3Jk" +
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp" +
+ "b25zGFUgASgJOgMxMjNCAggBOkIKE215X2V4dGVuc2lvbl9zdHJpbmcSJS5w" +
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0RmllbGRPcmRlcmluZ3MYMiABKAk6PwoQ" +
+ "bXlfZXh0ZW5zaW9uX2ludBIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVs" +
+ "ZE9yZGVyaW5ncxgFIAEoBTpLChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEicu" +
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWiADKAVC" +
+ "AhABOksKFnBhY2tlZF9pbnQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEAE6TAoXcGFja2Vk" +
+ "X3VpbnQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFj" +
+ "a2VkRXh0ZW5zaW9ucxhcIAMoDUICEAE6TAoXcGFja2VkX3VpbnQ2NF9leHRl" +
+ "bnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9u" +
+ "cxhdIAMoBEICEAE6TAoXcGFja2VkX3NpbnQzMl9leHRlbnNpb24SJy5wcm90" +
+ "b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxheIAMoEUICEAE6" +
+ "TAoXcGFja2VkX3NpbnQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVz" +
+ "dC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhfIAMoEkICEAE6TQoYcGFja2VkX2Zp" +
+ "eGVkMzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tl" +
+ "ZEV4dGVuc2lvbnMYYCADKAdCAhABOk0KGHBhY2tlZF9maXhlZDY0X2V4dGVu" +
+ "c2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25z" +
+ "GGEgAygGQgIQATpOChlwYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEicucHJv" +
+ "dG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhAB" +
+ "Ok4KGXBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAE6SwoWcGFja2Vk" +
+ "X2Zsb2F0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNr" +
+ "ZWRFeHRlbnNpb25zGGQgAygCQgIQATpMChdwYWNrZWRfZG91YmxlX2V4dGVu" +
+ "c2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25z" +
+ "GGUgAygBQgIQATpKChVwYWNrZWRfYm9vbF9leHRlbnNpb24SJy5wcm90b2J1" +
+ "Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAE6agoV" +
+ "cGFja2VkX2VudW1fZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
+ "dFBhY2tlZEV4dGVuc2lvbnMYZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5G" +
+ "b3JlaWduRW51bUICEAFCSkINVW5pdHRlc3RQcm90b0gBwj42CiFHb29nbGUu" +
+ "UHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3MSEVVuaXRUZXN0UHJvdG9GaWxl");
pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
descriptor = root;
internal__static_protobuf_unittest_TestAllTypes__Descriptor = Descriptor.MessageTypes[0];
@@ -683,61 +741,74 @@ namespace Google.ProtocolBuffers.TestProtos {
internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor,
new string[] { "A", });
- internal__static_protobuf_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder>(internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor,
+ new string[] { "DeprecatedInt32", });
+ internal__static_protobuf_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[2];
internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder>(internal__static_protobuf_unittest_ForeignMessage__Descriptor,
new string[] { "C", });
- internal__static_protobuf_unittest_TestAllExtensions__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_TestAllExtensions__Descriptor = Descriptor.MessageTypes[3];
internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder>(internal__static_protobuf_unittest_TestAllExtensions__Descriptor,
new string[] { });
- internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor = Descriptor.MessageTypes[4];
internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder>(internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor,
new string[] { "A", });
- internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor = Descriptor.MessageTypes[5];
internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder>(internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor,
new string[] { "A", });
- internal__static_protobuf_unittest_TestRequired__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_protobuf_unittest_TestNestedExtension__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder>(internal__static_protobuf_unittest_TestNestedExtension__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor.Extensions[0]);
+ internal__static_protobuf_unittest_TestRequired__Descriptor = Descriptor.MessageTypes[7];
internal__static_protobuf_unittest_TestRequired__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder>(internal__static_protobuf_unittest_TestRequired__Descriptor,
new string[] { "A", "Dummy2", "B", "Dummy4", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "Dummy9", "Dummy10", "Dummy11", "Dummy12", "Dummy13", "Dummy14", "Dummy15", "Dummy16", "Dummy17", "Dummy18", "Dummy19", "Dummy20", "Dummy21", "Dummy22", "Dummy23", "Dummy24", "Dummy25", "Dummy26", "Dummy27", "Dummy28", "Dummy29", "Dummy30", "Dummy31", "Dummy32", "C", });
global::Google.ProtocolBuffers.TestProtos.TestRequired.Single = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[0]);
global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[1]);
- internal__static_protobuf_unittest_TestRequiredForeign__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_protobuf_unittest_TestRequiredForeign__Descriptor = Descriptor.MessageTypes[8];
internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder>(internal__static_protobuf_unittest_TestRequiredForeign__Descriptor,
new string[] { "OptionalMessage", "RepeatedMessage", "Dummy", });
- internal__static_protobuf_unittest_TestForeignNested__Descriptor = Descriptor.MessageTypes[7];
+ internal__static_protobuf_unittest_TestForeignNested__Descriptor = Descriptor.MessageTypes[9];
internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder>(internal__static_protobuf_unittest_TestForeignNested__Descriptor,
new string[] { "ForeignNested", });
- internal__static_protobuf_unittest_TestEmptyMessage__Descriptor = Descriptor.MessageTypes[8];
+ internal__static_protobuf_unittest_TestEmptyMessage__Descriptor = Descriptor.MessageTypes[10];
internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder>(internal__static_protobuf_unittest_TestEmptyMessage__Descriptor,
new string[] { });
- internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor = Descriptor.MessageTypes[9];
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor = Descriptor.MessageTypes[11];
internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder>(internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor,
new string[] { });
- internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor = Descriptor.MessageTypes[10];
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder>(internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor = Descriptor.MessageTypes[13];
internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder>(internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor,
new string[] { "A", "Bb", });
- internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor = Descriptor.MessageTypes[11];
+ internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor = Descriptor.MessageTypes[14];
internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder>(internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor,
new string[] { "A", "I", });
- internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor = Descriptor.MessageTypes[15];
internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder>(internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor,
new string[] { "Bb", });
- internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor = Descriptor.MessageTypes[13];
+ internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor = Descriptor.MessageTypes[16];
internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder>(internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor,
new string[] { "A", "OptionalInt32", });
- internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor = Descriptor.MessageTypes[14];
+ internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor = Descriptor.MessageTypes[17];
internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor,
new string[] { "A", "Foo", "Bar", });
@@ -749,7 +820,7 @@ namespace Google.ProtocolBuffers.TestProtos {
internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor,
new string[] { "A", });
- internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor = Descriptor.MessageTypes[15];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor = Descriptor.MessageTypes[18];
internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor,
new string[] { "OptionalNestedMessage", });
@@ -757,39 +828,63 @@ namespace Google.ProtocolBuffers.TestProtos {
internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor,
new string[] { "NestedmessageRepeatedInt32", "NestedmessageRepeatedForeignmessage", });
- internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor = Descriptor.MessageTypes[16];
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor = Descriptor.MessageTypes[19];
internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder>(internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor,
new string[] { "PrimitiveField", "StringField", "EnumField", "MessageField", "StringPieceField", "CordField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedStringPieceField", "RepeatedCordField", });
- internal__static_protobuf_unittest_TestFieldOrderings__Descriptor = Descriptor.MessageTypes[17];
+ internal__static_protobuf_unittest_TestFieldOrderings__Descriptor = Descriptor.MessageTypes[20];
internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder>(internal__static_protobuf_unittest_TestFieldOrderings__Descriptor,
new string[] { "MyString", "MyInt", "MyFloat", });
- internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor = Descriptor.MessageTypes[18];
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor = Descriptor.MessageTypes[21];
internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder>(internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor,
- new string[] { "EscapedBytes", "LargeUint32", "LargeUint64", "SmallInt32", "SmallInt64", "Utf8String", });
- internal__static_protobuf_unittest_TestPackedTypes__Descriptor = Descriptor.MessageTypes[19];
+ new string[] { "EscapedBytes", "LargeUint32", "LargeUint64", "SmallInt32", "SmallInt64", "Utf8String", "ZeroFloat", "OneFloat", "SmallFloat", "NegativeOneFloat", "NegativeFloat", "LargeFloat", "SmallNegativeFloat", "InfDouble", "NegInfDouble", "NanDouble", "InfFloat", "NegInfFloat", "NanFloat", });
+ internal__static_protobuf_unittest_OneString__Descriptor = Descriptor.MessageTypes[22];
+ internal__static_protobuf_unittest_OneString__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder>(internal__static_protobuf_unittest_OneString__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_OneBytes__Descriptor = Descriptor.MessageTypes[23];
+ internal__static_protobuf_unittest_OneBytes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder>(internal__static_protobuf_unittest_OneBytes__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_TestPackedTypes__Descriptor = Descriptor.MessageTypes[24];
internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder>(internal__static_protobuf_unittest_TestPackedTypes__Descriptor,
new string[] { "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum", });
- internal__static_protobuf_unittest_TestPackedExtensions__Descriptor = Descriptor.MessageTypes[20];
+ internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor = Descriptor.MessageTypes[25];
+ internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder>(internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor,
+ new string[] { "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum", });
+ internal__static_protobuf_unittest_TestPackedExtensions__Descriptor = Descriptor.MessageTypes[26];
internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder>(internal__static_protobuf_unittest_TestPackedExtensions__Descriptor,
new string[] { });
- internal__static_protobuf_unittest_FooRequest__Descriptor = Descriptor.MessageTypes[21];
+ internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor = Descriptor.MessageTypes[27];
+ internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor,
+ new string[] { "ScalarExtension", "EnumExtension", "DynamicEnumExtension", "MessageExtension", "DynamicMessageExtension", "RepeatedExtension", "PackedExtension", });
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor = internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor,
+ new string[] { "DynamicField", });
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor = Descriptor.MessageTypes[28];
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder>(internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor,
+ new string[] { "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64", });
+ internal__static_protobuf_unittest_FooRequest__Descriptor = Descriptor.MessageTypes[29];
internal__static_protobuf_unittest_FooRequest__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder>(internal__static_protobuf_unittest_FooRequest__Descriptor,
new string[] { });
- internal__static_protobuf_unittest_FooResponse__Descriptor = Descriptor.MessageTypes[22];
+ internal__static_protobuf_unittest_FooResponse__Descriptor = Descriptor.MessageTypes[30];
internal__static_protobuf_unittest_FooResponse__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder>(internal__static_protobuf_unittest_FooResponse__Descriptor,
new string[] { });
- internal__static_protobuf_unittest_BarRequest__Descriptor = Descriptor.MessageTypes[23];
+ internal__static_protobuf_unittest_BarRequest__Descriptor = Descriptor.MessageTypes[31];
internal__static_protobuf_unittest_BarRequest__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder>(internal__static_protobuf_unittest_BarRequest__Descriptor,
new string[] { });
- internal__static_protobuf_unittest_BarResponse__Descriptor = Descriptor.MessageTypes[24];
+ internal__static_protobuf_unittest_BarResponse__Descriptor = Descriptor.MessageTypes[32];
internal__static_protobuf_unittest_BarResponse__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder>(internal__static_protobuf_unittest_BarResponse__Descriptor,
new string[] { });
@@ -5222,6 +5317,221 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
+ private static readonly TestDeprecatedFields defaultInstance = new Builder().BuildPartial();
+ public static TestDeprecatedFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestDeprecatedFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDeprecatedFields, TestDeprecatedFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable; }
+ }
+
+ public const int DeprecatedInt32FieldNumber = 1;
+ private bool hasDeprecatedInt32;
+ private int deprecatedInt32_ = 0;
+ public bool HasDeprecatedInt32 {
+ get { return hasDeprecatedInt32; }
+ }
+ public int DeprecatedInt32 {
+ get { return deprecatedInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasDeprecatedInt32) {
+ output.WriteInt32(1, DeprecatedInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasDeprecatedInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDeprecatedFields prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDeprecatedFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestDeprecatedFields result = new TestDeprecatedFields();
+
+ protected override TestDeprecatedFields MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestDeprecatedFields();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Descriptor; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance; }
+ }
+
+ public override TestDeprecatedFields BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestDeprecatedFields returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDeprecatedFields) {
+ return MergeFrom((TestDeprecatedFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDeprecatedFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance) return this;
+ if (other.HasDeprecatedInt32) {
+ DeprecatedInt32 = other.DeprecatedInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ DeprecatedInt32 = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasDeprecatedInt32 {
+ get { return result.HasDeprecatedInt32; }
+ }
+ public int DeprecatedInt32 {
+ get { return result.DeprecatedInt32; }
+ set { SetDeprecatedInt32(value); }
+ }
+ public Builder SetDeprecatedInt32(int value) {
+ result.hasDeprecatedInt32 = true;
+ result.deprecatedInt32_ = value;
+ return this;
+ }
+ public Builder ClearDeprecatedInt32() {
+ result.hasDeprecatedInt32 = false;
+ result.deprecatedInt32_ = 0;
+ return this;
+ }
+ }
+ static TestDeprecatedFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
private static readonly ForeignMessage defaultInstance = new Builder().BuildPartial();
public static ForeignMessage DefaultInstance {
@@ -6046,6 +6356,182 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
+ private static readonly TestNestedExtension defaultInstance = new Builder().BuildPartial();
+ public static TestNestedExtension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestNestedExtension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestNestedExtension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedExtension, TestNestedExtension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable; }
+ }
+
+ public const int TestFieldNumber = 1002;
+ public static pb::GeneratedExtensionBase<string> Test;
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestNestedExtension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedExtension prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedExtension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestNestedExtension result = new TestNestedExtension();
+
+ protected override TestNestedExtension MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestNestedExtension();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance; }
+ }
+
+ public override TestNestedExtension BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestNestedExtension returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedExtension) {
+ return MergeFrom((TestNestedExtension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedExtension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance) return this;
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestNestedExtension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
private static readonly TestRequired defaultInstance = new Builder().BuildPartial();
public static TestRequired DefaultInstance {
@@ -8522,6 +9008,187 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
+ private static readonly TestMultipleExtensionRanges defaultInstance = new Builder().BuildPartial();
+ public static TestMultipleExtensionRanges DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestMultipleExtensionRanges ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(43, output);
+ extensionWriter.WriteUntil(4244, output);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMultipleExtensionRanges prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilder<TestMultipleExtensionRanges, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestMultipleExtensionRanges result = new TestMultipleExtensionRanges();
+
+ protected override TestMultipleExtensionRanges MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestMultipleExtensionRanges();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Descriptor; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestMultipleExtensionRanges returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMultipleExtensionRanges) {
+ return MergeFrom((TestMultipleExtensionRanges) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMultipleExtensionRanges other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance) return this;
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestMultipleExtensionRanges() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
private static readonly TestReallyLargeTagNumber defaultInstance = new Builder().BuildPartial();
public static TestReallyLargeTagNumber DefaultInstance {
@@ -12113,6 +12780,136 @@ namespace Google.ProtocolBuffers.TestProtos {
get { return utf8String_; }
}
+ public const int ZeroFloatFieldNumber = 7;
+ private bool hasZeroFloat;
+ private float zeroFloat_ = 0F;
+ public bool HasZeroFloat {
+ get { return hasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return zeroFloat_; }
+ }
+
+ public const int OneFloatFieldNumber = 8;
+ private bool hasOneFloat;
+ private float oneFloat_ = 1F;
+ public bool HasOneFloat {
+ get { return hasOneFloat; }
+ }
+ public float OneFloat {
+ get { return oneFloat_; }
+ }
+
+ public const int SmallFloatFieldNumber = 9;
+ private bool hasSmallFloat;
+ private float smallFloat_ = 1.5F;
+ public bool HasSmallFloat {
+ get { return hasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return smallFloat_; }
+ }
+
+ public const int NegativeOneFloatFieldNumber = 10;
+ private bool hasNegativeOneFloat;
+ private float negativeOneFloat_ = -1F;
+ public bool HasNegativeOneFloat {
+ get { return hasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return negativeOneFloat_; }
+ }
+
+ public const int NegativeFloatFieldNumber = 11;
+ private bool hasNegativeFloat;
+ private float negativeFloat_ = -1.5F;
+ public bool HasNegativeFloat {
+ get { return hasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return negativeFloat_; }
+ }
+
+ public const int LargeFloatFieldNumber = 12;
+ private bool hasLargeFloat;
+ private float largeFloat_ = 2E+08F;
+ public bool HasLargeFloat {
+ get { return hasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return largeFloat_; }
+ }
+
+ public const int SmallNegativeFloatFieldNumber = 13;
+ private bool hasSmallNegativeFloat;
+ private float smallNegativeFloat_ = -8E-28F;
+ public bool HasSmallNegativeFloat {
+ get { return hasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return smallNegativeFloat_; }
+ }
+
+ public const int InfDoubleFieldNumber = 14;
+ private bool hasInfDouble;
+ private double infDouble_ = double.PositiveInfinity;
+ public bool HasInfDouble {
+ get { return hasInfDouble; }
+ }
+ public double InfDouble {
+ get { return infDouble_; }
+ }
+
+ public const int NegInfDoubleFieldNumber = 15;
+ private bool hasNegInfDouble;
+ private double negInfDouble_ = double.NegativeInfinity;
+ public bool HasNegInfDouble {
+ get { return hasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return negInfDouble_; }
+ }
+
+ public const int NanDoubleFieldNumber = 16;
+ private bool hasNanDouble;
+ private double nanDouble_ = double.NaN;
+ public bool HasNanDouble {
+ get { return hasNanDouble; }
+ }
+ public double NanDouble {
+ get { return nanDouble_; }
+ }
+
+ public const int InfFloatFieldNumber = 17;
+ private bool hasInfFloat;
+ private float infFloat_ = float.PositiveInfinity;
+ public bool HasInfFloat {
+ get { return hasInfFloat; }
+ }
+ public float InfFloat {
+ get { return infFloat_; }
+ }
+
+ public const int NegInfFloatFieldNumber = 18;
+ private bool hasNegInfFloat;
+ private float negInfFloat_ = float.NegativeInfinity;
+ public bool HasNegInfFloat {
+ get { return hasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return negInfFloat_; }
+ }
+
+ public const int NanFloatFieldNumber = 19;
+ private bool hasNanFloat;
+ private float nanFloat_ = float.NaN;
+ public bool HasNanFloat {
+ get { return hasNanFloat; }
+ }
+ public float NanFloat {
+ get { return nanFloat_; }
+ }
+
public override bool IsInitialized {
get {
return true;
@@ -12139,6 +12936,45 @@ namespace Google.ProtocolBuffers.TestProtos {
if (HasUtf8String) {
output.WriteString(6, Utf8String);
}
+ if (HasZeroFloat) {
+ output.WriteFloat(7, ZeroFloat);
+ }
+ if (HasOneFloat) {
+ output.WriteFloat(8, OneFloat);
+ }
+ if (HasSmallFloat) {
+ output.WriteFloat(9, SmallFloat);
+ }
+ if (HasNegativeOneFloat) {
+ output.WriteFloat(10, NegativeOneFloat);
+ }
+ if (HasNegativeFloat) {
+ output.WriteFloat(11, NegativeFloat);
+ }
+ if (HasLargeFloat) {
+ output.WriteFloat(12, LargeFloat);
+ }
+ if (HasSmallNegativeFloat) {
+ output.WriteFloat(13, SmallNegativeFloat);
+ }
+ if (HasInfDouble) {
+ output.WriteDouble(14, InfDouble);
+ }
+ if (HasNegInfDouble) {
+ output.WriteDouble(15, NegInfDouble);
+ }
+ if (HasNanDouble) {
+ output.WriteDouble(16, NanDouble);
+ }
+ if (HasInfFloat) {
+ output.WriteFloat(17, InfFloat);
+ }
+ if (HasNegInfFloat) {
+ output.WriteFloat(18, NegInfFloat);
+ }
+ if (HasNanFloat) {
+ output.WriteFloat(19, NanFloat);
+ }
UnknownFields.WriteTo(output);
}
@@ -12167,6 +13003,45 @@ namespace Google.ProtocolBuffers.TestProtos {
if (HasUtf8String) {
size += pb::CodedOutputStream.ComputeStringSize(6, Utf8String);
}
+ if (HasZeroFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(7, ZeroFloat);
+ }
+ if (HasOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(8, OneFloat);
+ }
+ if (HasSmallFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(9, SmallFloat);
+ }
+ if (HasNegativeOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(10, NegativeOneFloat);
+ }
+ if (HasNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, NegativeFloat);
+ }
+ if (HasLargeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(12, LargeFloat);
+ }
+ if (HasSmallNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(13, SmallNegativeFloat);
+ }
+ if (HasInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(14, InfDouble);
+ }
+ if (HasNegInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(15, NegInfDouble);
+ }
+ if (HasNanDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(16, NanDouble);
+ }
+ if (HasInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(17, InfFloat);
+ }
+ if (HasNegInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(18, NegInfFloat);
+ }
+ if (HasNanFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(19, NanFloat);
+ }
size += UnknownFields.SerializedSize;
memoizedSerializedSize = size;
return size;
@@ -12277,6 +13152,45 @@ namespace Google.ProtocolBuffers.TestProtos {
if (other.HasUtf8String) {
Utf8String = other.Utf8String;
}
+ if (other.HasZeroFloat) {
+ ZeroFloat = other.ZeroFloat;
+ }
+ if (other.HasOneFloat) {
+ OneFloat = other.OneFloat;
+ }
+ if (other.HasSmallFloat) {
+ SmallFloat = other.SmallFloat;
+ }
+ if (other.HasNegativeOneFloat) {
+ NegativeOneFloat = other.NegativeOneFloat;
+ }
+ if (other.HasNegativeFloat) {
+ NegativeFloat = other.NegativeFloat;
+ }
+ if (other.HasLargeFloat) {
+ LargeFloat = other.LargeFloat;
+ }
+ if (other.HasSmallNegativeFloat) {
+ SmallNegativeFloat = other.SmallNegativeFloat;
+ }
+ if (other.HasInfDouble) {
+ InfDouble = other.InfDouble;
+ }
+ if (other.HasNegInfDouble) {
+ NegInfDouble = other.NegInfDouble;
+ }
+ if (other.HasNanDouble) {
+ NanDouble = other.NanDouble;
+ }
+ if (other.HasInfFloat) {
+ InfFloat = other.InfFloat;
+ }
+ if (other.HasNegInfFloat) {
+ NegInfFloat = other.NegInfFloat;
+ }
+ if (other.HasNanFloat) {
+ NanFloat = other.NanFloat;
+ }
this.MergeUnknownFields(other.UnknownFields);
return this;
}
@@ -12333,6 +13247,58 @@ namespace Google.ProtocolBuffers.TestProtos {
Utf8String = input.ReadString();
break;
}
+ case 61: {
+ ZeroFloat = input.ReadFloat();
+ break;
+ }
+ case 69: {
+ OneFloat = input.ReadFloat();
+ break;
+ }
+ case 77: {
+ SmallFloat = input.ReadFloat();
+ break;
+ }
+ case 85: {
+ NegativeOneFloat = input.ReadFloat();
+ break;
+ }
+ case 93: {
+ NegativeFloat = input.ReadFloat();
+ break;
+ }
+ case 101: {
+ LargeFloat = input.ReadFloat();
+ break;
+ }
+ case 109: {
+ SmallNegativeFloat = input.ReadFloat();
+ break;
+ }
+ case 113: {
+ InfDouble = input.ReadDouble();
+ break;
+ }
+ case 121: {
+ NegInfDouble = input.ReadDouble();
+ break;
+ }
+ case 129: {
+ NanDouble = input.ReadDouble();
+ break;
+ }
+ case 141: {
+ InfFloat = input.ReadFloat();
+ break;
+ }
+ case 149: {
+ NegInfFloat = input.ReadFloat();
+ break;
+ }
+ case 157: {
+ NanFloat = input.ReadFloat();
+ break;
+ }
}
}
}
@@ -12451,12 +13417,678 @@ namespace Google.ProtocolBuffers.TestProtos {
result.utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[5].DefaultValue;
return this;
}
+
+ public bool HasZeroFloat {
+ get { return result.HasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return result.ZeroFloat; }
+ set { SetZeroFloat(value); }
+ }
+ public Builder SetZeroFloat(float value) {
+ result.hasZeroFloat = true;
+ result.zeroFloat_ = value;
+ return this;
+ }
+ public Builder ClearZeroFloat() {
+ result.hasZeroFloat = false;
+ result.zeroFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOneFloat {
+ get { return result.HasOneFloat; }
+ }
+ public float OneFloat {
+ get { return result.OneFloat; }
+ set { SetOneFloat(value); }
+ }
+ public Builder SetOneFloat(float value) {
+ result.hasOneFloat = true;
+ result.oneFloat_ = value;
+ return this;
+ }
+ public Builder ClearOneFloat() {
+ result.hasOneFloat = false;
+ result.oneFloat_ = 1F;
+ return this;
+ }
+
+ public bool HasSmallFloat {
+ get { return result.HasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return result.SmallFloat; }
+ set { SetSmallFloat(value); }
+ }
+ public Builder SetSmallFloat(float value) {
+ result.hasSmallFloat = true;
+ result.smallFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallFloat() {
+ result.hasSmallFloat = false;
+ result.smallFloat_ = 1.5F;
+ return this;
+ }
+
+ public bool HasNegativeOneFloat {
+ get { return result.HasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return result.NegativeOneFloat; }
+ set { SetNegativeOneFloat(value); }
+ }
+ public Builder SetNegativeOneFloat(float value) {
+ result.hasNegativeOneFloat = true;
+ result.negativeOneFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeOneFloat() {
+ result.hasNegativeOneFloat = false;
+ result.negativeOneFloat_ = -1F;
+ return this;
+ }
+
+ public bool HasNegativeFloat {
+ get { return result.HasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return result.NegativeFloat; }
+ set { SetNegativeFloat(value); }
+ }
+ public Builder SetNegativeFloat(float value) {
+ result.hasNegativeFloat = true;
+ result.negativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeFloat() {
+ result.hasNegativeFloat = false;
+ result.negativeFloat_ = -1.5F;
+ return this;
+ }
+
+ public bool HasLargeFloat {
+ get { return result.HasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return result.LargeFloat; }
+ set { SetLargeFloat(value); }
+ }
+ public Builder SetLargeFloat(float value) {
+ result.hasLargeFloat = true;
+ result.largeFloat_ = value;
+ return this;
+ }
+ public Builder ClearLargeFloat() {
+ result.hasLargeFloat = false;
+ result.largeFloat_ = 2E+08F;
+ return this;
+ }
+
+ public bool HasSmallNegativeFloat {
+ get { return result.HasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return result.SmallNegativeFloat; }
+ set { SetSmallNegativeFloat(value); }
+ }
+ public Builder SetSmallNegativeFloat(float value) {
+ result.hasSmallNegativeFloat = true;
+ result.smallNegativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallNegativeFloat() {
+ result.hasSmallNegativeFloat = false;
+ result.smallNegativeFloat_ = -8E-28F;
+ return this;
+ }
+
+ public bool HasInfDouble {
+ get { return result.HasInfDouble; }
+ }
+ public double InfDouble {
+ get { return result.InfDouble; }
+ set { SetInfDouble(value); }
+ }
+ public Builder SetInfDouble(double value) {
+ result.hasInfDouble = true;
+ result.infDouble_ = value;
+ return this;
+ }
+ public Builder ClearInfDouble() {
+ result.hasInfDouble = false;
+ result.infDouble_ = double.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfDouble {
+ get { return result.HasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return result.NegInfDouble; }
+ set { SetNegInfDouble(value); }
+ }
+ public Builder SetNegInfDouble(double value) {
+ result.hasNegInfDouble = true;
+ result.negInfDouble_ = value;
+ return this;
+ }
+ public Builder ClearNegInfDouble() {
+ result.hasNegInfDouble = false;
+ result.negInfDouble_ = double.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanDouble {
+ get { return result.HasNanDouble; }
+ }
+ public double NanDouble {
+ get { return result.NanDouble; }
+ set { SetNanDouble(value); }
+ }
+ public Builder SetNanDouble(double value) {
+ result.hasNanDouble = true;
+ result.nanDouble_ = value;
+ return this;
+ }
+ public Builder ClearNanDouble() {
+ result.hasNanDouble = false;
+ result.nanDouble_ = double.NaN;
+ return this;
+ }
+
+ public bool HasInfFloat {
+ get { return result.HasInfFloat; }
+ }
+ public float InfFloat {
+ get { return result.InfFloat; }
+ set { SetInfFloat(value); }
+ }
+ public Builder SetInfFloat(float value) {
+ result.hasInfFloat = true;
+ result.infFloat_ = value;
+ return this;
+ }
+ public Builder ClearInfFloat() {
+ result.hasInfFloat = false;
+ result.infFloat_ = float.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfFloat {
+ get { return result.HasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return result.NegInfFloat; }
+ set { SetNegInfFloat(value); }
+ }
+ public Builder SetNegInfFloat(float value) {
+ result.hasNegInfFloat = true;
+ result.negInfFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegInfFloat() {
+ result.hasNegInfFloat = false;
+ result.negInfFloat_ = float.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanFloat {
+ get { return result.HasNanFloat; }
+ }
+ public float NanFloat {
+ get { return result.NanFloat; }
+ set { SetNanFloat(value); }
+ }
+ public Builder SetNanFloat(float value) {
+ result.hasNanFloat = true;
+ result.nanFloat_ = value;
+ return this;
+ }
+ public Builder ClearNanFloat() {
+ result.hasNanFloat = false;
+ result.nanFloat_ = float.NaN;
+ return this;
+ }
}
static TestExtremeDefaultValues() {
object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
}
}
+ public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
+ private static readonly OneString defaultInstance = new Builder().BuildPartial();
+ public static OneString DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OneString ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OneString__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneString, OneString.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OneString__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private string data_ = "";
+ public bool HasData {
+ get { return hasData; }
+ }
+ public string Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasData) {
+ output.WriteString(1, Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasData) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static OneString ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneString prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<OneString, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OneString result = new OneString();
+
+ protected override OneString MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OneString();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.Descriptor; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance; }
+ }
+
+ public override OneString BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OneString returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneString) {
+ return MergeFrom((OneString) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneString other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance) return this;
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ Data = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasData {
+ get { return result.HasData; }
+ }
+ public string Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ result.hasData = false;
+ result.data_ = "";
+ return this;
+ }
+ }
+ static OneString() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
+ private static readonly OneBytes defaultInstance = new Builder().BuildPartial();
+ public static OneBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OneBytes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OneBytes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneBytes, OneBytes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OneBytes__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private pb::ByteString data_ = pb::ByteString.Empty;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public pb::ByteString Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasData) {
+ output.WriteBytes(1, Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasData) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static OneBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneBytes prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<OneBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OneBytes result = new OneBytes();
+
+ protected override OneBytes MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OneBytes();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.Descriptor; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance; }
+ }
+
+ public override OneBytes BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OneBytes returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneBytes) {
+ return MergeFrom((OneBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance) return this;
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ Data = input.ReadBytes();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasData {
+ get { return result.HasData; }
+ }
+ public pb::ByteString Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ result.hasData = false;
+ result.data_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static OneBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
private static readonly TestPackedTypes defaultInstance = new Builder().BuildPartial();
public static TestPackedTypes DefaultInstance {
@@ -13634,6 +15266,1030 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
+ private static readonly TestUnpackedTypes defaultInstance = new Builder().BuildPartial();
+ public static TestUnpackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestUnpackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestUnpackedTypes, TestUnpackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable; }
+ }
+
+ public const int UnpackedInt32FieldNumber = 90;
+ private pbc::PopsicleList<int> unpackedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedInt32List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt32_); }
+ }
+ public int UnpackedInt32Count {
+ get { return unpackedInt32_.Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return unpackedInt32_[index];
+ }
+
+ public const int UnpackedInt64FieldNumber = 91;
+ private pbc::PopsicleList<long> unpackedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedInt64List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt64_); }
+ }
+ public int UnpackedInt64Count {
+ get { return unpackedInt64_.Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return unpackedInt64_[index];
+ }
+
+ public const int UnpackedUint32FieldNumber = 92;
+ private pbc::PopsicleList<uint> unpackedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> UnpackedUint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint32_); }
+ }
+ public int UnpackedUint32Count {
+ get { return unpackedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedUint32(int index) {
+ return unpackedUint32_[index];
+ }
+
+ public const int UnpackedUint64FieldNumber = 93;
+ private pbc::PopsicleList<ulong> unpackedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> UnpackedUint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint64_); }
+ }
+ public int UnpackedUint64Count {
+ get { return unpackedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedUint64(int index) {
+ return unpackedUint64_[index];
+ }
+
+ public const int UnpackedSint32FieldNumber = 94;
+ private pbc::PopsicleList<int> unpackedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint32_); }
+ }
+ public int UnpackedSint32Count {
+ get { return unpackedSint32_.Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return unpackedSint32_[index];
+ }
+
+ public const int UnpackedSint64FieldNumber = 95;
+ private pbc::PopsicleList<long> unpackedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint64_); }
+ }
+ public int UnpackedSint64Count {
+ get { return unpackedSint64_.Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return unpackedSint64_[index];
+ }
+
+ public const int UnpackedFixed32FieldNumber = 96;
+ private pbc::PopsicleList<uint> unpackedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> UnpackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed32_); }
+ }
+ public int UnpackedFixed32Count {
+ get { return unpackedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedFixed32(int index) {
+ return unpackedFixed32_[index];
+ }
+
+ public const int UnpackedFixed64FieldNumber = 97;
+ private pbc::PopsicleList<ulong> unpackedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> UnpackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed64_); }
+ }
+ public int UnpackedFixed64Count {
+ get { return unpackedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedFixed64(int index) {
+ return unpackedFixed64_[index];
+ }
+
+ public const int UnpackedSfixed32FieldNumber = 98;
+ private pbc::PopsicleList<int> unpackedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed32_); }
+ }
+ public int UnpackedSfixed32Count {
+ get { return unpackedSfixed32_.Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return unpackedSfixed32_[index];
+ }
+
+ public const int UnpackedSfixed64FieldNumber = 99;
+ private pbc::PopsicleList<long> unpackedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed64_); }
+ }
+ public int UnpackedSfixed64Count {
+ get { return unpackedSfixed64_.Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return unpackedSfixed64_[index];
+ }
+
+ public const int UnpackedFloatFieldNumber = 100;
+ private pbc::PopsicleList<float> unpackedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> UnpackedFloatList {
+ get { return pbc::Lists.AsReadOnly(unpackedFloat_); }
+ }
+ public int UnpackedFloatCount {
+ get { return unpackedFloat_.Count; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return unpackedFloat_[index];
+ }
+
+ public const int UnpackedDoubleFieldNumber = 101;
+ private pbc::PopsicleList<double> unpackedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> UnpackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(unpackedDouble_); }
+ }
+ public int UnpackedDoubleCount {
+ get { return unpackedDouble_.Count; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return unpackedDouble_[index];
+ }
+
+ public const int UnpackedBoolFieldNumber = 102;
+ private pbc::PopsicleList<bool> unpackedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> UnpackedBoolList {
+ get { return pbc::Lists.AsReadOnly(unpackedBool_); }
+ }
+ public int UnpackedBoolCount {
+ get { return unpackedBool_.Count; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return unpackedBool_[index];
+ }
+
+ public const int UnpackedEnumFieldNumber = 103;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> unpackedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return pbc::Lists.AsReadOnly(unpackedEnum_); }
+ }
+ public int UnpackedEnumCount {
+ get { return unpackedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return unpackedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (unpackedInt32_.Count > 0) {
+ foreach (int element in unpackedInt32_) {
+ output.WriteInt32(90, element);
+ }
+ }
+ if (unpackedInt64_.Count > 0) {
+ foreach (long element in unpackedInt64_) {
+ output.WriteInt64(91, element);
+ }
+ }
+ if (unpackedUint32_.Count > 0) {
+ foreach (uint element in unpackedUint32_) {
+ output.WriteUInt32(92, element);
+ }
+ }
+ if (unpackedUint64_.Count > 0) {
+ foreach (ulong element in unpackedUint64_) {
+ output.WriteUInt64(93, element);
+ }
+ }
+ if (unpackedSint32_.Count > 0) {
+ foreach (int element in unpackedSint32_) {
+ output.WriteSInt32(94, element);
+ }
+ }
+ if (unpackedSint64_.Count > 0) {
+ foreach (long element in unpackedSint64_) {
+ output.WriteSInt64(95, element);
+ }
+ }
+ if (unpackedFixed32_.Count > 0) {
+ foreach (uint element in unpackedFixed32_) {
+ output.WriteFixed32(96, element);
+ }
+ }
+ if (unpackedFixed64_.Count > 0) {
+ foreach (ulong element in unpackedFixed64_) {
+ output.WriteFixed64(97, element);
+ }
+ }
+ if (unpackedSfixed32_.Count > 0) {
+ foreach (int element in unpackedSfixed32_) {
+ output.WriteSFixed32(98, element);
+ }
+ }
+ if (unpackedSfixed64_.Count > 0) {
+ foreach (long element in unpackedSfixed64_) {
+ output.WriteSFixed64(99, element);
+ }
+ }
+ if (unpackedFloat_.Count > 0) {
+ foreach (float element in unpackedFloat_) {
+ output.WriteFloat(100, element);
+ }
+ }
+ if (unpackedDouble_.Count > 0) {
+ foreach (double element in unpackedDouble_) {
+ output.WriteDouble(101, element);
+ }
+ }
+ if (unpackedBool_.Count > 0) {
+ foreach (bool element in unpackedBool_) {
+ output.WriteBool(102, element);
+ }
+ }
+ if (unpackedEnum_.Count > 0) {
+ foreach (int element in unpackedEnum_) {
+ output.WriteEnum(103, element);
+ }
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in UnpackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in UnpackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedFixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFloat_.Count;
+ size += dataSize;
+ size += 2 * unpackedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedDouble_.Count;
+ size += dataSize;
+ size += 2 * unpackedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * unpackedBool_.Count;
+ size += dataSize;
+ size += 2 * unpackedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (unpackedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in unpackedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * unpackedEnum_.Count;
+ }
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedTypes prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestUnpackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestUnpackedTypes result = new TestUnpackedTypes();
+
+ protected override TestUnpackedTypes MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestUnpackedTypes();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Descriptor; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance; }
+ }
+
+ public override TestUnpackedTypes BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.unpackedInt32_.MakeReadOnly();
+ result.unpackedInt64_.MakeReadOnly();
+ result.unpackedUint32_.MakeReadOnly();
+ result.unpackedUint64_.MakeReadOnly();
+ result.unpackedSint32_.MakeReadOnly();
+ result.unpackedSint64_.MakeReadOnly();
+ result.unpackedFixed32_.MakeReadOnly();
+ result.unpackedFixed64_.MakeReadOnly();
+ result.unpackedSfixed32_.MakeReadOnly();
+ result.unpackedSfixed64_.MakeReadOnly();
+ result.unpackedFloat_.MakeReadOnly();
+ result.unpackedDouble_.MakeReadOnly();
+ result.unpackedBool_.MakeReadOnly();
+ result.unpackedEnum_.MakeReadOnly();
+ TestUnpackedTypes returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestUnpackedTypes) {
+ return MergeFrom((TestUnpackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance) return this;
+ if (other.unpackedInt32_.Count != 0) {
+ base.AddRange(other.unpackedInt32_, result.unpackedInt32_);
+ }
+ if (other.unpackedInt64_.Count != 0) {
+ base.AddRange(other.unpackedInt64_, result.unpackedInt64_);
+ }
+ if (other.unpackedUint32_.Count != 0) {
+ base.AddRange(other.unpackedUint32_, result.unpackedUint32_);
+ }
+ if (other.unpackedUint64_.Count != 0) {
+ base.AddRange(other.unpackedUint64_, result.unpackedUint64_);
+ }
+ if (other.unpackedSint32_.Count != 0) {
+ base.AddRange(other.unpackedSint32_, result.unpackedSint32_);
+ }
+ if (other.unpackedSint64_.Count != 0) {
+ base.AddRange(other.unpackedSint64_, result.unpackedSint64_);
+ }
+ if (other.unpackedFixed32_.Count != 0) {
+ base.AddRange(other.unpackedFixed32_, result.unpackedFixed32_);
+ }
+ if (other.unpackedFixed64_.Count != 0) {
+ base.AddRange(other.unpackedFixed64_, result.unpackedFixed64_);
+ }
+ if (other.unpackedSfixed32_.Count != 0) {
+ base.AddRange(other.unpackedSfixed32_, result.unpackedSfixed32_);
+ }
+ if (other.unpackedSfixed64_.Count != 0) {
+ base.AddRange(other.unpackedSfixed64_, result.unpackedSfixed64_);
+ }
+ if (other.unpackedFloat_.Count != 0) {
+ base.AddRange(other.unpackedFloat_, result.unpackedFloat_);
+ }
+ if (other.unpackedDouble_.Count != 0) {
+ base.AddRange(other.unpackedDouble_, result.unpackedDouble_);
+ }
+ if (other.unpackedBool_.Count != 0) {
+ base.AddRange(other.unpackedBool_, result.unpackedBool_);
+ }
+ if (other.unpackedEnum_.Count != 0) {
+ base.AddRange(other.unpackedEnum_, result.unpackedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 720: {
+ AddUnpackedInt32(input.ReadInt32());
+ break;
+ }
+ case 728: {
+ AddUnpackedInt64(input.ReadInt64());
+ break;
+ }
+ case 736: {
+ AddUnpackedUint32(input.ReadUInt32());
+ break;
+ }
+ case 744: {
+ AddUnpackedUint64(input.ReadUInt64());
+ break;
+ }
+ case 752: {
+ AddUnpackedSint32(input.ReadSInt32());
+ break;
+ }
+ case 760: {
+ AddUnpackedSint64(input.ReadSInt64());
+ break;
+ }
+ case 773: {
+ AddUnpackedFixed32(input.ReadFixed32());
+ break;
+ }
+ case 777: {
+ AddUnpackedFixed64(input.ReadFixed64());
+ break;
+ }
+ case 789: {
+ AddUnpackedSfixed32(input.ReadSFixed32());
+ break;
+ }
+ case 793: {
+ AddUnpackedSfixed64(input.ReadSFixed64());
+ break;
+ }
+ case 805: {
+ AddUnpackedFloat(input.ReadFloat());
+ break;
+ }
+ case 809: {
+ AddUnpackedDouble(input.ReadDouble());
+ break;
+ }
+ case 816: {
+ AddUnpackedBool(input.ReadBool());
+ break;
+ }
+ case 824: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(103, (ulong) rawValue);
+ } else {
+ AddUnpackedEnum((global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue);
+ }
+ break;
+ }
+ }
+ }
+ }
+
+
+ public pbc::IPopsicleList<int> UnpackedInt32List {
+ get { return result.unpackedInt32_; }
+ }
+ public int UnpackedInt32Count {
+ get { return result.UnpackedInt32Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return result.GetUnpackedInt32(index);
+ }
+ public Builder SetUnpackedInt32(int index, int value) {
+ result.unpackedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt32(int value) {
+ result.unpackedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.unpackedInt32_);
+ return this;
+ }
+ public Builder ClearUnpackedInt32() {
+ result.unpackedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedInt64List {
+ get { return result.unpackedInt64_; }
+ }
+ public int UnpackedInt64Count {
+ get { return result.UnpackedInt64Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return result.GetUnpackedInt64(index);
+ }
+ public Builder SetUnpackedInt64(int index, long value) {
+ result.unpackedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt64(long value) {
+ result.unpackedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.unpackedInt64_);
+ return this;
+ }
+ public Builder ClearUnpackedInt64() {
+ result.unpackedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> UnpackedUint32List {
+ get { return result.unpackedUint32_; }
+ }
+ public int UnpackedUint32Count {
+ get { return result.UnpackedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedUint32(int index) {
+ return result.GetUnpackedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedUint32(int index, uint value) {
+ result.unpackedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedUint32(uint value) {
+ result.unpackedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedUint32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.unpackedUint32_);
+ return this;
+ }
+ public Builder ClearUnpackedUint32() {
+ result.unpackedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> UnpackedUint64List {
+ get { return result.unpackedUint64_; }
+ }
+ public int UnpackedUint64Count {
+ get { return result.UnpackedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedUint64(int index) {
+ return result.GetUnpackedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedUint64(int index, ulong value) {
+ result.unpackedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedUint64(ulong value) {
+ result.unpackedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedUint64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.unpackedUint64_);
+ return this;
+ }
+ public Builder ClearUnpackedUint64() {
+ result.unpackedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSint32List {
+ get { return result.unpackedSint32_; }
+ }
+ public int UnpackedSint32Count {
+ get { return result.UnpackedSint32Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return result.GetUnpackedSint32(index);
+ }
+ public Builder SetUnpackedSint32(int index, int value) {
+ result.unpackedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint32(int value) {
+ result.unpackedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.unpackedSint32_);
+ return this;
+ }
+ public Builder ClearUnpackedSint32() {
+ result.unpackedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSint64List {
+ get { return result.unpackedSint64_; }
+ }
+ public int UnpackedSint64Count {
+ get { return result.UnpackedSint64Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return result.GetUnpackedSint64(index);
+ }
+ public Builder SetUnpackedSint64(int index, long value) {
+ result.unpackedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint64(long value) {
+ result.unpackedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.unpackedSint64_);
+ return this;
+ }
+ public Builder ClearUnpackedSint64() {
+ result.unpackedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> UnpackedFixed32List {
+ get { return result.unpackedFixed32_; }
+ }
+ public int UnpackedFixed32Count {
+ get { return result.UnpackedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedFixed32(int index) {
+ return result.GetUnpackedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedFixed32(int index, uint value) {
+ result.unpackedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedFixed32(uint value) {
+ result.unpackedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedFixed32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.unpackedFixed32_);
+ return this;
+ }
+ public Builder ClearUnpackedFixed32() {
+ result.unpackedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> UnpackedFixed64List {
+ get { return result.unpackedFixed64_; }
+ }
+ public int UnpackedFixed64Count {
+ get { return result.UnpackedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedFixed64(int index) {
+ return result.GetUnpackedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedFixed64(int index, ulong value) {
+ result.unpackedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedFixed64(ulong value) {
+ result.unpackedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedFixed64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.unpackedFixed64_);
+ return this;
+ }
+ public Builder ClearUnpackedFixed64() {
+ result.unpackedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSfixed32List {
+ get { return result.unpackedSfixed32_; }
+ }
+ public int UnpackedSfixed32Count {
+ get { return result.UnpackedSfixed32Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return result.GetUnpackedSfixed32(index);
+ }
+ public Builder SetUnpackedSfixed32(int index, int value) {
+ result.unpackedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed32(int value) {
+ result.unpackedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.unpackedSfixed32_);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed32() {
+ result.unpackedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSfixed64List {
+ get { return result.unpackedSfixed64_; }
+ }
+ public int UnpackedSfixed64Count {
+ get { return result.UnpackedSfixed64Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return result.GetUnpackedSfixed64(index);
+ }
+ public Builder SetUnpackedSfixed64(int index, long value) {
+ result.unpackedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed64(long value) {
+ result.unpackedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.unpackedSfixed64_);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed64() {
+ result.unpackedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> UnpackedFloatList {
+ get { return result.unpackedFloat_; }
+ }
+ public int UnpackedFloatCount {
+ get { return result.UnpackedFloatCount; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return result.GetUnpackedFloat(index);
+ }
+ public Builder SetUnpackedFloat(int index, float value) {
+ result.unpackedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFloat(float value) {
+ result.unpackedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFloat(scg::IEnumerable<float> values) {
+ base.AddRange(values, result.unpackedFloat_);
+ return this;
+ }
+ public Builder ClearUnpackedFloat() {
+ result.unpackedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> UnpackedDoubleList {
+ get { return result.unpackedDouble_; }
+ }
+ public int UnpackedDoubleCount {
+ get { return result.UnpackedDoubleCount; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return result.GetUnpackedDouble(index);
+ }
+ public Builder SetUnpackedDouble(int index, double value) {
+ result.unpackedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedDouble(double value) {
+ result.unpackedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedDouble(scg::IEnumerable<double> values) {
+ base.AddRange(values, result.unpackedDouble_);
+ return this;
+ }
+ public Builder ClearUnpackedDouble() {
+ result.unpackedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> UnpackedBoolList {
+ get { return result.unpackedBool_; }
+ }
+ public int UnpackedBoolCount {
+ get { return result.UnpackedBoolCount; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return result.GetUnpackedBool(index);
+ }
+ public Builder SetUnpackedBool(int index, bool value) {
+ result.unpackedBool_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedBool(bool value) {
+ result.unpackedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedBool(scg::IEnumerable<bool> values) {
+ base.AddRange(values, result.unpackedBool_);
+ return this;
+ }
+ public Builder ClearUnpackedBool() {
+ result.unpackedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return result.unpackedEnum_; }
+ }
+ public int UnpackedEnumCount {
+ get { return result.UnpackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return result.GetUnpackedEnum(index);
+ }
+ public Builder SetUnpackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.unpackedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.unpackedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ base.AddRange(values, result.unpackedEnum_);
+ return this;
+ }
+ public Builder ClearUnpackedEnum() {
+ result.unpackedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestUnpackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
private static readonly TestPackedExtensions defaultInstance = new Builder().BuildPartial();
public static TestPackedExtensions DefaultInstance {
@@ -13813,6 +16469,1350 @@ namespace Google.ProtocolBuffers.TestProtos {
}
}
+ public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
+ private static readonly TestDynamicExtensions defaultInstance = new Builder().BuildPartial();
+ public static TestDynamicExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestDynamicExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDynamicExtensions, TestDynamicExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public enum DynamicEnumType {
+ DYNAMIC_FOO = 2200,
+ DYNAMIC_BAR = 2201,
+ DYNAMIC_BAZ = 2202,
+ }
+
+ public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
+ private static readonly DynamicMessageType defaultInstance = new Builder().BuildPartial();
+ public static DynamicMessageType DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override DynamicMessageType ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DynamicMessageType, DynamicMessageType.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable; }
+ }
+
+ public const int DynamicFieldFieldNumber = 2100;
+ private bool hasDynamicField;
+ private int dynamicField_ = 0;
+ public bool HasDynamicField {
+ get { return hasDynamicField; }
+ }
+ public int DynamicField {
+ get { return dynamicField_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasDynamicField) {
+ output.WriteInt32(2100, DynamicField);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasDynamicField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2100, DynamicField);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static DynamicMessageType ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DynamicMessageType prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<DynamicMessageType, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ DynamicMessageType result = new DynamicMessageType();
+
+ protected override DynamicMessageType MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new DynamicMessageType();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Descriptor; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
+ }
+
+ public override DynamicMessageType BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ DynamicMessageType returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DynamicMessageType) {
+ return MergeFrom((DynamicMessageType) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DynamicMessageType other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) return this;
+ if (other.HasDynamicField) {
+ DynamicField = other.DynamicField;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 16800: {
+ DynamicField = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasDynamicField {
+ get { return result.HasDynamicField; }
+ }
+ public int DynamicField {
+ get { return result.DynamicField; }
+ set { SetDynamicField(value); }
+ }
+ public Builder SetDynamicField(int value) {
+ result.hasDynamicField = true;
+ result.dynamicField_ = value;
+ return this;
+ }
+ public Builder ClearDynamicField() {
+ result.hasDynamicField = false;
+ result.dynamicField_ = 0;
+ return this;
+ }
+ }
+ static DynamicMessageType() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int ScalarExtensionFieldNumber = 2000;
+ private bool hasScalarExtension;
+ private uint scalarExtension_ = 0;
+ public bool HasScalarExtension {
+ get { return hasScalarExtension; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint ScalarExtension {
+ get { return scalarExtension_; }
+ }
+
+ public const int EnumExtensionFieldNumber = 2001;
+ private bool hasEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumExtension {
+ get { return hasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return enumExtension_; }
+ }
+
+ public const int DynamicEnumExtensionFieldNumber = 2002;
+ private bool hasDynamicEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ public bool HasDynamicEnumExtension {
+ get { return hasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return dynamicEnumExtension_; }
+ }
+
+ public const int MessageExtensionFieldNumber = 2003;
+ private bool hasMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ public bool HasMessageExtension {
+ get { return hasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return messageExtension_; }
+ }
+
+ public const int DynamicMessageExtensionFieldNumber = 2004;
+ private bool hasDynamicMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance;
+ public bool HasDynamicMessageExtension {
+ get { return hasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return dynamicMessageExtension_; }
+ }
+
+ public const int RepeatedExtensionFieldNumber = 2005;
+ private pbc::PopsicleList<string> repeatedExtension_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedExtensionList {
+ get { return pbc::Lists.AsReadOnly(repeatedExtension_); }
+ }
+ public int RepeatedExtensionCount {
+ get { return repeatedExtension_.Count; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return repeatedExtension_[index];
+ }
+
+ public const int PackedExtensionFieldNumber = 2006;
+ private int packedExtensionMemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedExtension_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedExtensionList {
+ get { return pbc::Lists.AsReadOnly(packedExtension_); }
+ }
+ public int PackedExtensionCount {
+ get { return packedExtension_.Count; }
+ }
+ public int GetPackedExtension(int index) {
+ return packedExtension_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasScalarExtension) {
+ output.WriteFixed32(2000, ScalarExtension);
+ }
+ if (HasEnumExtension) {
+ output.WriteEnum(2001, (int) EnumExtension);
+ }
+ if (HasDynamicEnumExtension) {
+ output.WriteEnum(2002, (int) DynamicEnumExtension);
+ }
+ if (HasMessageExtension) {
+ output.WriteMessage(2003, MessageExtension);
+ }
+ if (HasDynamicMessageExtension) {
+ output.WriteMessage(2004, DynamicMessageExtension);
+ }
+ if (repeatedExtension_.Count > 0) {
+ foreach (string element in repeatedExtension_) {
+ output.WriteString(2005, element);
+ }
+ }
+ if (packedExtension_.Count > 0) {
+ output.WriteRawVarint32(16050);
+ output.WriteRawVarint32((uint) packedExtensionMemoizedSerializedSize);
+ foreach (int element in packedExtension_) {
+ output.WriteSInt32NoTag(element);
+ }
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasScalarExtension) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(2000, ScalarExtension);
+ }
+ if (HasEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2001, (int) EnumExtension);
+ }
+ if (HasDynamicEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2002, (int) DynamicEnumExtension);
+ }
+ if (HasMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2003, MessageExtension);
+ }
+ if (HasDynamicMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2004, DynamicMessageExtension);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedExtension_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedExtension_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedExtensionMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDynamicExtensions prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDynamicExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestDynamicExtensions result = new TestDynamicExtensions();
+
+ protected override TestDynamicExtensions MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestDynamicExtensions();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Descriptor; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance; }
+ }
+
+ public override TestDynamicExtensions BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.repeatedExtension_.MakeReadOnly();
+ result.packedExtension_.MakeReadOnly();
+ TestDynamicExtensions returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDynamicExtensions) {
+ return MergeFrom((TestDynamicExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDynamicExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance) return this;
+ if (other.HasScalarExtension) {
+ ScalarExtension = other.ScalarExtension;
+ }
+ if (other.HasEnumExtension) {
+ EnumExtension = other.EnumExtension;
+ }
+ if (other.HasDynamicEnumExtension) {
+ DynamicEnumExtension = other.DynamicEnumExtension;
+ }
+ if (other.HasMessageExtension) {
+ MergeMessageExtension(other.MessageExtension);
+ }
+ if (other.HasDynamicMessageExtension) {
+ MergeDynamicMessageExtension(other.DynamicMessageExtension);
+ }
+ if (other.repeatedExtension_.Count != 0) {
+ base.AddRange(other.repeatedExtension_, result.repeatedExtension_);
+ }
+ if (other.packedExtension_.Count != 0) {
+ base.AddRange(other.packedExtension_, result.packedExtension_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 16005: {
+ ScalarExtension = input.ReadFixed32();
+ break;
+ }
+ case 16008: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2001, (ulong) rawValue);
+ } else {
+ EnumExtension = (global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue;
+ }
+ break;
+ }
+ case 16016: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2002, (ulong) rawValue);
+ } else {
+ DynamicEnumExtension = (global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType) rawValue;
+ }
+ break;
+ }
+ case 16026: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (HasMessageExtension) {
+ subBuilder.MergeFrom(MessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16034: {
+ global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder();
+ if (HasDynamicMessageExtension) {
+ subBuilder.MergeFrom(DynamicMessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ DynamicMessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16042: {
+ AddRepeatedExtension(input.ReadString());
+ break;
+ }
+ case 16050: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedExtension(input.ReadSInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasScalarExtension {
+ get { return result.HasScalarExtension; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint ScalarExtension {
+ get { return result.ScalarExtension; }
+ set { SetScalarExtension(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetScalarExtension(uint value) {
+ result.hasScalarExtension = true;
+ result.scalarExtension_ = value;
+ return this;
+ }
+ public Builder ClearScalarExtension() {
+ result.hasScalarExtension = false;
+ result.scalarExtension_ = 0;
+ return this;
+ }
+
+ public bool HasEnumExtension {
+ get { return result.HasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return result.EnumExtension; }
+ set { SetEnumExtension(value); }
+ }
+ public Builder SetEnumExtension(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.hasEnumExtension = true;
+ result.enumExtension_ = value;
+ return this;
+ }
+ public Builder ClearEnumExtension() {
+ result.hasEnumExtension = false;
+ result.enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasDynamicEnumExtension {
+ get { return result.HasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return result.DynamicEnumExtension; }
+ set { SetDynamicEnumExtension(value); }
+ }
+ public Builder SetDynamicEnumExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType value) {
+ result.hasDynamicEnumExtension = true;
+ result.dynamicEnumExtension_ = value;
+ return this;
+ }
+ public Builder ClearDynamicEnumExtension() {
+ result.hasDynamicEnumExtension = false;
+ result.dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ return this;
+ }
+
+ public bool HasMessageExtension {
+ get { return result.HasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return result.MessageExtension; }
+ set { SetMessageExtension(value); }
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasMessageExtension = true;
+ result.messageExtension_ = value;
+ return this;
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasMessageExtension = true;
+ result.messageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasMessageExtension &&
+ result.messageExtension_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageExtension_ = value;
+ }
+ result.hasMessageExtension = true;
+ return this;
+ }
+ public Builder ClearMessageExtension() {
+ result.hasMessageExtension = false;
+ result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ return this;
+ }
+
+ public bool HasDynamicMessageExtension {
+ get { return result.HasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return result.DynamicMessageExtension; }
+ set { SetDynamicMessageExtension(value); }
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = value;
+ return this;
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasDynamicMessageExtension &&
+ result.dynamicMessageExtension_ != global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) {
+ result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder(result.dynamicMessageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.dynamicMessageExtension_ = value;
+ }
+ result.hasDynamicMessageExtension = true;
+ return this;
+ }
+ public Builder ClearDynamicMessageExtension() {
+ result.hasDynamicMessageExtension = false;
+ result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedExtensionList {
+ get { return result.repeatedExtension_; }
+ }
+ public int RepeatedExtensionCount {
+ get { return result.RepeatedExtensionCount; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return result.GetRepeatedExtension(index);
+ }
+ public Builder SetRepeatedExtension(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedExtension(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedExtension(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedExtension_);
+ return this;
+ }
+ public Builder ClearRepeatedExtension() {
+ result.repeatedExtension_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedExtensionList {
+ get { return result.packedExtension_; }
+ }
+ public int PackedExtensionCount {
+ get { return result.PackedExtensionCount; }
+ }
+ public int GetPackedExtension(int index) {
+ return result.GetPackedExtension(index);
+ }
+ public Builder SetPackedExtension(int index, int value) {
+ result.packedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddPackedExtension(int value) {
+ result.packedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedExtension(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.packedExtension_);
+ return this;
+ }
+ public Builder ClearPackedExtension() {
+ result.packedExtension_.Clear();
+ return this;
+ }
+ }
+ static TestDynamicExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
+ private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new Builder().BuildPartial();
+ public static TestRepeatedScalarDifferentTagSizes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestRepeatedScalarDifferentTagSizes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable; }
+ }
+
+ public const int RepeatedFixed32FieldNumber = 12;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedInt32FieldNumber = 13;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 2046;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 2047;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 262142;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 262143;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (repeatedFixed32_.Count > 0) {
+ foreach (uint element in repeatedFixed32_) {
+ output.WriteFixed32(12, element);
+ }
+ }
+ if (repeatedInt32_.Count > 0) {
+ foreach (int element in repeatedInt32_) {
+ output.WriteInt32(13, element);
+ }
+ }
+ if (repeatedFixed64_.Count > 0) {
+ foreach (ulong element in repeatedFixed64_) {
+ output.WriteFixed64(2046, element);
+ }
+ }
+ if (repeatedInt64_.Count > 0) {
+ foreach (long element in repeatedInt64_) {
+ output.WriteInt64(2047, element);
+ }
+ }
+ if (repeatedFloat_.Count > 0) {
+ foreach (float element in repeatedFloat_) {
+ output.WriteFloat(262142, element);
+ }
+ }
+ if (repeatedUint64_.Count > 0) {
+ foreach (ulong element in repeatedUint64_) {
+ output.WriteUInt64(262143, element);
+ }
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 1 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 3 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 3 * repeatedUint64_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRepeatedScalarDifferentTagSizes prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRepeatedScalarDifferentTagSizes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestRepeatedScalarDifferentTagSizes result = new TestRepeatedScalarDifferentTagSizes();
+
+ protected override TestRepeatedScalarDifferentTagSizes MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestRepeatedScalarDifferentTagSizes();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Descriptor; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.repeatedFixed32_.MakeReadOnly();
+ result.repeatedInt32_.MakeReadOnly();
+ result.repeatedFixed64_.MakeReadOnly();
+ result.repeatedInt64_.MakeReadOnly();
+ result.repeatedFloat_.MakeReadOnly();
+ result.repeatedUint64_.MakeReadOnly();
+ TestRepeatedScalarDifferentTagSizes returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRepeatedScalarDifferentTagSizes) {
+ return MergeFrom((TestRepeatedScalarDifferentTagSizes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRepeatedScalarDifferentTagSizes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance) return this;
+ if (other.repeatedFixed32_.Count != 0) {
+ base.AddRange(other.repeatedFixed32_, result.repeatedFixed32_);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ base.AddRange(other.repeatedInt32_, result.repeatedInt32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ base.AddRange(other.repeatedFixed64_, result.repeatedFixed64_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ base.AddRange(other.repeatedInt64_, result.repeatedInt64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ base.AddRange(other.repeatedFloat_, result.repeatedFloat_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ base.AddRange(other.repeatedUint64_, result.repeatedUint64_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 101: {
+ AddRepeatedFixed32(input.ReadFixed32());
+ break;
+ }
+ case 104: {
+ AddRepeatedInt32(input.ReadInt32());
+ break;
+ }
+ case 16369: {
+ AddRepeatedFixed64(input.ReadFixed64());
+ break;
+ }
+ case 16376: {
+ AddRepeatedInt64(input.ReadInt64());
+ break;
+ }
+ case 2097141: {
+ AddRepeatedFloat(input.ReadFloat());
+ break;
+ }
+ case 2097144: {
+ AddRepeatedUint64(input.ReadUInt64());
+ break;
+ }
+ }
+ }
+ }
+
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return result.repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed32(uint value) {
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.repeatedFixed32_);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return result.repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedInt32_);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return result.repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed64(ulong value) {
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.repeatedFixed64_);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return result.repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.repeatedInt64_);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return result.repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ base.AddRange(values, result.repeatedFloat_);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return result.repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint64(ulong value) {
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.repeatedUint64_);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+ }
+ static TestRepeatedScalarDifferentTagSizes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
private static readonly FooRequest defaultInstance = new Builder().BuildPartial();
public static FooRequest DefaultInstance {
diff --git a/src/ProtocolBuffers.sln b/src/ProtocolBuffers.sln
index 8782dde9..b338f9fd 100644
--- a/src/ProtocolBuffers.sln
+++ b/src/ProtocolBuffers.sln
@@ -1,6 +1,34 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "proto", "proto", "{1F896D5C-5FC2-4671-9216-781CB8187EC7}"
+ ProjectSection(SolutionItems) = preProject
+ ..\protos\tutorial\addressbook.proto = ..\protos\tutorial\addressbook.proto
+ ..\protos\google\protobuf\csharp_options.proto = ..\protos\google\protobuf\csharp_options.proto
+ ..\protos\google\protobuf\descriptor.proto = ..\protos\google\protobuf\descriptor.proto
+ ..\ProtocolBuffers.build = ..\ProtocolBuffers.build
+ ..\todo.txt = ..\todo.txt
+ EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "unittest", "unittest", "{C8D3015A-EA39-4F03-AEEC-3FF1F2087A12}"
+ ProjectSection(SolutionItems) = preProject
+ ..\..\..\DotNet\ProtoFiles\Test\Protos\SampleComplex.proto = ..\..\..\DotNet\ProtoFiles\Test\Protos\SampleComplex.proto
+ ..\protos\google\protobuf\unittest.proto = ..\protos\google\protobuf\unittest.proto
+ ..\protos\google\protobuf\unittest_csharp_options.proto = ..\protos\google\protobuf\unittest_csharp_options.proto
+ ..\protos\google\protobuf\unittest_custom_options.proto = ..\protos\google\protobuf\unittest_custom_options.proto
+ ..\protos\google\protobuf\unittest_embed_optimize_for.proto = ..\protos\google\protobuf\unittest_embed_optimize_for.proto
+ ..\protos\google\protobuf\unittest_empty.proto = ..\protos\google\protobuf\unittest_empty.proto
+ ..\protos\google\protobuf\unittest_enormous_descriptor.proto = ..\protos\google\protobuf\unittest_enormous_descriptor.proto
+ ..\protos\extest\unittest_extras_lite.proto = ..\protos\extest\unittest_extras_lite.proto
+ ..\protos\google\protobuf\unittest_import.proto = ..\protos\google\protobuf\unittest_import.proto
+ ..\protos\google\protobuf\unittest_import_lite.proto = ..\protos\google\protobuf\unittest_import_lite.proto
+ ..\protos\google\protobuf\unittest_lite.proto = ..\protos\google\protobuf\unittest_lite.proto
+ ..\protos\google\protobuf\unittest_lite_imports_nonlite.proto = ..\protos\google\protobuf\unittest_lite_imports_nonlite.proto
+ ..\protos\google\protobuf\unittest_mset.proto = ..\protos\google\protobuf\unittest_mset.proto
+ ..\protos\google\protobuf\unittest_no_generic_services.proto = ..\protos\google\protobuf\unittest_no_generic_services.proto
+ ..\protos\google\protobuf\unittest_optimize_for.proto = ..\protos\google\protobuf\unittest_optimize_for.proto
+ EndProjectSection
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers", "ProtocolBuffers\ProtocolBuffers.csproj", "{6908BDCE-D925-43F3-94AC-A531E6DF2591}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffers.Test", "ProtocolBuffers.Test\ProtocolBuffers.Test.csproj", "{DD01ED24-3750-4567-9A23-1DB676A15610}"
@@ -17,13 +45,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoBench", "ProtoBench\Pr
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtoDump", "ProtoDump\ProtoDump.csproj", "{D7282E99-2DC3-405B-946F-177DB2FD2AE2}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "proto", "proto", "{1F896D5C-5FC2-4671-9216-781CB8187EC7}"
- ProjectSection(SolutionItems) = preProject
- ..\protos\tutorial\addressbook.proto = ..\protos\tutorial\addressbook.proto
- ..\protos\google\protobuf\csharp_options.proto = ..\protos\google\protobuf\csharp_options.proto
- ..\protos\google\protobuf\descriptor.proto = ..\protos\google\protobuf\descriptor.proto
- ..\todo.txt = ..\todo.txt
- EndProjectSection
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite", "ProtocolBuffers\ProtocolBuffersLite.csproj", "{6969BDCE-D925-43F3-94AC-A531E6DF2591}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLite.Test", "ProtocolBuffersLite.Test\ProtocolBuffersLite.Test.csproj", "{EE01ED24-3750-4567-9A23-1DB676A15610}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProtocolBuffersLiteMixed.Test", "ProtocolBuffersLite.Test\ProtocolBuffersLiteMixed.Test.csproj", "{EEFFED24-3750-4567-9A23-1DB676A15610}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -97,8 +123,35 @@ Global
{D7282E99-2DC3-405B-946F-177DB2FD2AE2}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
{D7282E99-2DC3-405B-946F-177DB2FD2AE2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D7282E99-2DC3-405B-946F-177DB2FD2AE2}.Release|Any CPU.Build.0 = Release|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Debug_Silverlight2|Any CPU.ActiveCfg = Debug_Silverlight2|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Debug_Silverlight2|Any CPU.Build.0 = Debug_Silverlight2|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Release_Silverlight2|Any CPU.ActiveCfg = Release_Silverlight2|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {6969BDCE-D925-43F3-94AC-A531E6DF2591}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Debug_Silverlight2|Any CPU.ActiveCfg = Debug_Silverlight2|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Debug_Silverlight2|Any CPU.Build.0 = Debug_Silverlight2|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Release_Silverlight2|Any CPU.ActiveCfg = Release_Silverlight2|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EE01ED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Debug_Silverlight2|Any CPU.ActiveCfg = Debug_Silverlight2|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Debug_Silverlight2|Any CPU.Build.0 = Debug_Silverlight2|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Release_Silverlight2|Any CPU.ActiveCfg = Release_Silverlight2|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Release_Silverlight2|Any CPU.Build.0 = Release_Silverlight2|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {EEFFED24-3750-4567-9A23-1DB676A15610}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
+ GlobalSection(NestedProjects) = preSolution
+ {C8D3015A-EA39-4F03-AEEC-3FF1F2087A12} = {1F896D5C-5FC2-4671-9216-781CB8187EC7}
+ EndGlobalSection
EndGlobal
diff --git a/src/ProtocolBuffers/AbstractBuilder.cs b/src/ProtocolBuffers/AbstractBuilder.cs
index a60ff0aa..0d1279c7 100644
--- a/src/ProtocolBuffers/AbstractBuilder.cs
+++ b/src/ProtocolBuffers/AbstractBuilder.cs
@@ -42,93 +42,57 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Implementation of the non-generic IMessage interface as far as possible.
/// </summary>
- public abstract class AbstractBuilder<TMessage, TBuilder> : IBuilder<TMessage, TBuilder>
+ public abstract class AbstractBuilder<TMessage, TBuilder> : AbstractBuilderLite<TMessage, TBuilder>, IBuilder<TMessage, TBuilder>
where TMessage : AbstractMessage<TMessage, TBuilder>
where TBuilder : AbstractBuilder<TMessage, TBuilder> {
- protected abstract TBuilder ThisBuilder { get; }
-
#region Unimplemented members of IBuilder
public abstract UnknownFieldSet UnknownFields { get; set; }
- public abstract TBuilder MergeFrom(TMessage other);
- public abstract bool IsInitialized { get; }
public abstract IDictionary<FieldDescriptor, object> AllFields { get; }
public abstract object this[FieldDescriptor field] { get; set; }
public abstract MessageDescriptor DescriptorForType { get; }
public abstract int GetRepeatedFieldCount(FieldDescriptor field);
public abstract object this[FieldDescriptor field, int index] { get; set; }
public abstract bool HasField(FieldDescriptor field);
- public abstract TMessage Build();
- public abstract TMessage BuildPartial();
- public abstract TBuilder Clone();
- public abstract TMessage DefaultInstanceForType { get; }
public abstract IBuilder CreateBuilderForField(FieldDescriptor field);
public abstract TBuilder ClearField(FieldDescriptor field);
public abstract TBuilder AddRepeatedField(FieldDescriptor field, object value);
#endregion
- #region Implementation of methods which don't require type parameter information
- public IMessage WeakBuild() {
- return Build();
- }
-
- public IBuilder WeakAddRepeatedField(FieldDescriptor field, object value) {
- return AddRepeatedField(field, value);
- }
-
- public IBuilder WeakClear() {
- return Clear();
- }
-
- public IBuilder WeakMergeFrom(IMessage message) {
- return MergeFrom(message);
- }
-
- public IBuilder WeakMergeFrom(CodedInputStream input) {
- return MergeFrom(input);
- }
-
- public IBuilder WeakMergeFrom(CodedInputStream input, ExtensionRegistry registry) {
- return MergeFrom(input, registry);
- }
-
- public IBuilder WeakMergeFrom(ByteString data) {
- return MergeFrom(data);
- }
-
- public IBuilder WeakMergeFrom(ByteString data, ExtensionRegistry registry) {
- return MergeFrom(data, registry);
- }
-
- public IMessage WeakBuildPartial() {
- return BuildPartial();
- }
-
- public IBuilder WeakClone() {
- return Clone();
- }
-
- public IMessage WeakDefaultInstanceForType {
- get { return DefaultInstanceForType; }
- }
-
- public IBuilder WeakClearField(FieldDescriptor field) {
- return ClearField(field);
- }
- #endregion
-
public TBuilder SetUnknownFields(UnknownFieldSet fields) {
UnknownFields = fields;
return ThisBuilder;
}
- public virtual TBuilder Clear() {
+ public override TBuilder Clear() {
foreach(FieldDescriptor field in AllFields.Keys) {
ClearField(field);
}
return ThisBuilder;
}
+ public sealed override TBuilder MergeFrom(IMessageLite other) {
+ if (other is IMessage) {
+ return MergeFrom((IMessage) other);
+ }
+ throw new ArgumentException("MergeFrom(Message) can only merge messages of the same type.");
+ }
+
+ /// <summary>
+ /// Merge the specified other message into the message being
+ /// built. Merging occurs as follows. For each field:
+ /// For singular primitive fields, if the field is set in <paramref name="other"/>,
+ /// then <paramref name="other"/>'s value overwrites the value in this message.
+ /// For singular message fields, if the field is set in <paramref name="other"/>,
+ /// it is merged into the corresponding sub-message of this message using the same
+ /// merging rules.
+ /// For repeated fields, the elements in <paramref name="other"/> are concatenated
+ /// with the elements in this message.
+ /// </summary>
+ /// <param name="other"></param>
+ /// <returns></returns>
+ public abstract TBuilder MergeFrom(TMessage other);
+
public virtual TBuilder MergeFrom(IMessage other) {
if (other.DescriptorForType != DescriptorForType) {
throw new ArgumentException("MergeFrom(IMessage) can only merge messages of the same type.");
@@ -151,13 +115,13 @@ namespace Google.ProtocolBuffers {
}
} else if (field.MappedType == MappedType.Message) {
// Merge singular messages
- IMessage existingValue = (IMessage) this[field];
+ IMessageLite existingValue = (IMessageLite)this[field];
if (existingValue == existingValue.WeakDefaultInstanceForType) {
this[field] = entry.Value;
} else {
this[field] = existingValue.WeakCreateBuilderForType()
.WeakMergeFrom(existingValue)
- .WeakMergeFrom((IMessage) entry.Value)
+ .WeakMergeFrom((IMessageLite)entry.Value)
.WeakBuild();
}
} else {
@@ -165,14 +129,14 @@ namespace Google.ProtocolBuffers {
this[field] = entry.Value;
}
}
- return ThisBuilder;
- }
- public virtual TBuilder MergeFrom(CodedInputStream input) {
- return MergeFrom(input, ExtensionRegistry.Empty);
+ //Fix for unknown fields not merging, see java's AbstractMessage.Builder<T> line 236
+ MergeUnknownFields(other.UnknownFields);
+
+ return ThisBuilder;
}
- public virtual TBuilder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry) {
+ public override TBuilder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry) {
UnknownFieldSet.Builder unknownFields = UnknownFieldSet.CreateBuilder(UnknownFields);
unknownFields.MergeFrom(input, extensionRegistry, this);
UnknownFields = unknownFields.Build();
@@ -186,131 +150,65 @@ namespace Google.ProtocolBuffers {
return ThisBuilder;
}
- public virtual TBuilder MergeFrom(ByteString data) {
- CodedInputStream input = data.CreateCodedInput();
- MergeFrom(input);
- input.CheckLastTagWas(0);
+ public virtual IBuilder SetField(FieldDescriptor field, object value) {
+ this[field] = value;
return ThisBuilder;
}
- public virtual TBuilder MergeFrom(ByteString data, ExtensionRegistry extensionRegistry) {
- CodedInputStream input = data.CreateCodedInput();
- MergeFrom(input, extensionRegistry);
- input.CheckLastTagWas(0);
+ public virtual IBuilder SetRepeatedField(FieldDescriptor field, int index, object value) {
+ this[field, index] = value;
return ThisBuilder;
- }
+ }
- public virtual TBuilder MergeFrom(byte[] data) {
- CodedInputStream input = CodedInputStream.CreateInstance(data);
- MergeFrom(input);
- input.CheckLastTagWas(0);
- return ThisBuilder;
- }
+ #region Explicit Implementations
- public virtual TBuilder MergeFrom(byte[] data, ExtensionRegistry extensionRegistry) {
- CodedInputStream input = CodedInputStream.CreateInstance(data);
- MergeFrom(input, extensionRegistry);
- input.CheckLastTagWas(0);
- return ThisBuilder;
+ IMessage IBuilder.WeakBuild() {
+ return Build();
}
- public virtual TBuilder MergeFrom(Stream input) {
- CodedInputStream codedInput = CodedInputStream.CreateInstance(input);
- MergeFrom(codedInput);
- codedInput.CheckLastTagWas(0);
- return ThisBuilder;
+ IBuilder IBuilder.WeakAddRepeatedField(FieldDescriptor field, object value) {
+ return AddRepeatedField(field, value);
}
- public virtual TBuilder MergeFrom(Stream input, ExtensionRegistry extensionRegistry) {
- CodedInputStream codedInput = CodedInputStream.CreateInstance(input);
- MergeFrom(codedInput, extensionRegistry);
- codedInput.CheckLastTagWas(0);
- return ThisBuilder;
+ IBuilder IBuilder.WeakClear() {
+ return Clear();
}
- public TBuilder MergeDelimitedFrom(Stream input, ExtensionRegistry extensionRegistry) {
- int size = (int) CodedInputStream.ReadRawVarint32(input);
- Stream limitedStream = new LimitedInputStream(input, size);
- return MergeFrom(limitedStream, extensionRegistry);
+ IBuilder IBuilder.WeakMergeFrom(IMessage message) {
+ return MergeFrom(message);
}
- public TBuilder MergeDelimitedFrom(Stream input) {
- return MergeDelimitedFrom(input, ExtensionRegistry.Empty);
+ IBuilder IBuilder.WeakMergeFrom(CodedInputStream input) {
+ return MergeFrom(input);
}
- public virtual IBuilder SetField(FieldDescriptor field, object value) {
- this[field] = value;
- return ThisBuilder;
+ IBuilder IBuilder.WeakMergeFrom(CodedInputStream input, ExtensionRegistry registry) {
+ return MergeFrom(input, registry);
}
- public virtual IBuilder SetRepeatedField(FieldDescriptor field, int index, object value) {
- this[field, index] = value;
- return ThisBuilder;
+ IBuilder IBuilder.WeakMergeFrom(ByteString data) {
+ return MergeFrom(data);
}
- /// <summary>
- /// Stream implementation which proxies another stream, only allowing a certain amount
- /// of data to be read. Note that this is only used to read delimited streams, so it
- /// doesn't attempt to implement everything.
- /// </summary>
- private class LimitedInputStream : Stream {
-
- private readonly Stream proxied;
- private int bytesLeft;
-
- internal LimitedInputStream(Stream proxied, int size) {
- this.proxied = proxied;
- bytesLeft = size;
- }
-
- public override bool CanRead {
- get { return true; }
- }
-
- public override bool CanSeek {
- get { return false; }
- }
-
- public override bool CanWrite {
- get { return false; }
- }
-
- public override void Flush() {
- }
-
- public override long Length {
- get { throw new NotImplementedException(); }
- }
-
- public override long Position {
- get {
- throw new NotImplementedException();
- }
- set {
- throw new NotImplementedException();
- }
- }
+ IBuilder IBuilder.WeakMergeFrom(ByteString data, ExtensionRegistry registry) {
+ return MergeFrom(data, registry);
+ }
- public override int Read(byte[] buffer, int offset, int count) {
- if (bytesLeft > 0) {
- int bytesRead = proxied.Read(buffer, offset, Math.Min(bytesLeft, count));
- bytesLeft -= bytesRead;
- return bytesRead;
- }
- return 0;
- }
+ IMessage IBuilder.WeakBuildPartial() {
+ return BuildPartial();
+ }
- public override long Seek(long offset, SeekOrigin origin) {
- throw new NotImplementedException();
- }
+ IBuilder IBuilder.WeakClone() {
+ return Clone();
+ }
- public override void SetLength(long value) {
- throw new NotImplementedException();
- }
+ IMessage IBuilder.WeakDefaultInstanceForType {
+ get { return DefaultInstanceForType; }
+ }
- public override void Write(byte[] buffer, int offset, int count) {
- throw new NotImplementedException();
- }
+ IBuilder IBuilder.WeakClearField(FieldDescriptor field) {
+ return ClearField(field);
}
+ #endregion
}
}
diff --git a/src/ProtocolBuffers/AbstractBuilderLite.cs b/src/ProtocolBuffers/AbstractBuilderLite.cs
new file mode 100644
index 00000000..c5fbf0ce
--- /dev/null
+++ b/src/ProtocolBuffers/AbstractBuilderLite.cs
@@ -0,0 +1,232 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+
+namespace Google.ProtocolBuffers {
+ /// <summary>
+ /// Implementation of the non-generic IMessage interface as far as possible.
+ /// </summary>
+ public abstract class AbstractBuilderLite<TMessage, TBuilder> : IBuilderLite<TMessage, TBuilder>
+ where TMessage : AbstractMessageLite<TMessage, TBuilder>
+ where TBuilder : AbstractBuilderLite<TMessage, TBuilder> {
+
+ protected abstract TBuilder ThisBuilder { get; }
+
+ public abstract bool IsInitialized { get; }
+
+ public abstract TBuilder Clear();
+
+ public abstract TBuilder Clone();
+
+ public abstract TMessage Build();
+
+ public abstract TMessage BuildPartial();
+
+ public abstract TBuilder MergeFrom(IMessageLite other);
+
+ public abstract TBuilder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry);
+
+ public abstract TMessage DefaultInstanceForType { get; }
+
+ #region IBuilderLite<TMessage,TBuilder> Members
+
+ public virtual TBuilder MergeFrom(CodedInputStream input) {
+ return MergeFrom(input, ExtensionRegistry.CreateInstance());
+ }
+
+ public TBuilder MergeDelimitedFrom(Stream input) {
+ return MergeDelimitedFrom(input, ExtensionRegistry.CreateInstance());
+ }
+
+ public TBuilder MergeDelimitedFrom(Stream input, ExtensionRegistry extensionRegistry) {
+ int size = (int)CodedInputStream.ReadRawVarint32(input);
+ Stream limitedStream = new LimitedInputStream(input, size);
+ return MergeFrom(limitedStream, extensionRegistry);
+ }
+
+ public TBuilder MergeFrom(ByteString data) {
+ return MergeFrom(data, ExtensionRegistry.CreateInstance());
+ }
+
+ public TBuilder MergeFrom(ByteString data, ExtensionRegistry extensionRegistry) {
+ CodedInputStream input = data.CreateCodedInput();
+ MergeFrom(input, extensionRegistry);
+ input.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ public TBuilder MergeFrom(byte[] data) {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ MergeFrom(input);
+ input.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ public TBuilder MergeFrom(byte[] data, ExtensionRegistry extensionRegistry) {
+ CodedInputStream input = CodedInputStream.CreateInstance(data);
+ MergeFrom(input, extensionRegistry);
+ input.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ public TBuilder MergeFrom(Stream input) {
+ CodedInputStream codedInput = CodedInputStream.CreateInstance(input);
+ MergeFrom(codedInput);
+ codedInput.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ public TBuilder MergeFrom(Stream input, ExtensionRegistry extensionRegistry) {
+ CodedInputStream codedInput = CodedInputStream.CreateInstance(input);
+ MergeFrom(codedInput, extensionRegistry);
+ codedInput.CheckLastTagWas(0);
+ return ThisBuilder;
+ }
+
+ #endregion
+ #region Explicit definitions
+
+ IBuilderLite IBuilderLite.WeakClear() {
+ return Clear();
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(IMessageLite message) {
+ return MergeFrom(message);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ByteString data) {
+ return MergeFrom(data);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ByteString data, ExtensionRegistry registry) {
+ return MergeFrom(data, registry);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(CodedInputStream input) {
+ return MergeFrom(input);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(CodedInputStream input, ExtensionRegistry registry) {
+ return MergeFrom(input, registry);
+ }
+
+ IMessageLite IBuilderLite.WeakBuild() {
+ return Build();
+ }
+
+ IMessageLite IBuilderLite.WeakBuildPartial() {
+ return BuildPartial();
+ }
+
+ IBuilderLite IBuilderLite.WeakClone() {
+ return Clone();
+ }
+
+ IMessageLite IBuilderLite.WeakDefaultInstanceForType {
+ get { return DefaultInstanceForType; }
+ }
+
+ #endregion
+ #region LimitedInputStream
+ /// <summary>
+ /// Stream implementation which proxies another stream, only allowing a certain amount
+ /// of data to be read. Note that this is only used to read delimited streams, so it
+ /// doesn't attempt to implement everything.
+ /// </summary>
+ private class LimitedInputStream : Stream {
+
+ private readonly Stream proxied;
+ private int bytesLeft;
+
+ internal LimitedInputStream(Stream proxied, int size) {
+ this.proxied = proxied;
+ bytesLeft = size;
+ }
+
+ public override bool CanRead {
+ get { return true; }
+ }
+
+ public override bool CanSeek {
+ get { return false; }
+ }
+
+ public override bool CanWrite {
+ get { return false; }
+ }
+
+ public override void Flush() {
+ }
+
+ public override long Length {
+ get { throw new NotSupportedException(); }
+ }
+
+ public override long Position {
+ get {
+ throw new NotSupportedException();
+ }
+ set {
+ throw new NotSupportedException();
+ }
+ }
+
+ public override int Read(byte[] buffer, int offset, int count) {
+ if (bytesLeft > 0) {
+ int bytesRead = proxied.Read(buffer, offset, Math.Min(bytesLeft, count));
+ bytesLeft -= bytesRead;
+ return bytesRead;
+ }
+ return 0;
+ }
+
+ public override long Seek(long offset, SeekOrigin origin) {
+ throw new NotSupportedException();
+ }
+
+ public override void SetLength(long value) {
+ throw new NotSupportedException();
+ }
+
+ public override void Write(byte[] buffer, int offset, int count) {
+ throw new NotSupportedException();
+ }
+ }
+ #endregion
+ }
+}
diff --git a/src/ProtocolBuffers/AbstractMessage.cs b/src/ProtocolBuffers/AbstractMessage.cs
index 086aac82..203b71a4 100644
--- a/src/ProtocolBuffers/AbstractMessage.cs
+++ b/src/ProtocolBuffers/AbstractMessage.cs
@@ -42,7 +42,7 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Implementation of the non-generic IMessage interface as far as possible.
/// </summary>
- public abstract class AbstractMessage<TMessage, TBuilder> : IMessage<TMessage, TBuilder>
+ public abstract class AbstractMessage<TMessage, TBuilder> : AbstractMessageLite<TMessage, TBuilder>, IMessage<TMessage, TBuilder>
where TMessage : AbstractMessage<TMessage, TBuilder>
where TBuilder : AbstractBuilder<TMessage, TBuilder> {
/// <summary>
@@ -59,24 +59,13 @@ namespace Google.ProtocolBuffers {
public abstract int GetRepeatedFieldCount(FieldDescriptor field);
public abstract object this[FieldDescriptor field, int index] { get; }
public abstract UnknownFieldSet UnknownFields { get; }
- public abstract TMessage DefaultInstanceForType { get; }
- public abstract TBuilder CreateBuilderForType();
- public abstract TBuilder ToBuilder();
#endregion
-
- public IBuilder WeakCreateBuilderForType() {
- return CreateBuilderForType();
- }
-
- public IBuilder WeakToBuilder() {
- return ToBuilder();
- }
- public IMessage WeakDefaultInstanceForType {
- get { return DefaultInstanceForType; }
- }
-
- public virtual bool IsInitialized {
+ /// <summary>
+ /// Returns true iff all required fields in the message and all embedded
+ /// messages are set.
+ /// </summary>
+ public override bool IsInitialized {
get {
// Check that all required fields are present.
foreach (FieldDescriptor field in DescriptorForType.Fields) {
@@ -92,13 +81,13 @@ namespace Google.ProtocolBuffers {
if (field.IsRepeated) {
// We know it's an IList<T>, but not the exact type - so
// IEnumerable is the best we can do. (C# generics aren't covariant yet.)
- foreach (IMessage element in (IEnumerable) entry.Value) {
+ foreach (IMessageLite element in (IEnumerable)entry.Value) {
if (!element.IsInitialized) {
return false;
}
}
} else {
- if (!((IMessage)entry.Value).IsInitialized) {
+ if (!((IMessageLite)entry.Value).IsInitialized) {
return false;
}
}
@@ -112,7 +101,23 @@ namespace Google.ProtocolBuffers {
return TextFormat.PrintToString(this);
}
- public virtual void WriteTo(CodedOutputStream output) {
+ public sealed override void PrintTo(TextWriter writer) {
+ TextFormat.Print(this, writer);
+ }
+
+ /// <summary>
+ /// Serializes the message and writes it to the given output stream.
+ /// This does not flush or close the stream.
+ /// </summary>
+ /// <remarks>
+ /// Protocol Buffers are not self-delimiting. Therefore, if you write
+ /// any more data to the stream after the message, you must somehow ensure
+ /// that the parser on the receiving end does not interpret this as being
+ /// part of the protocol message. One way of doing this is by writing the size
+ /// of the message before the data, then making sure you limit the input to
+ /// that size when receiving the data. Alternatively, use WriteDelimitedTo(Stream).
+ /// </remarks>
+ public override void WriteTo(CodedOutputStream output) {
foreach (KeyValuePair<FieldDescriptor, object> entry in AllFields) {
FieldDescriptor field = entry.Key;
if (field.IsRepeated) {
@@ -147,7 +152,11 @@ namespace Google.ProtocolBuffers {
}
}
- public virtual int SerializedSize {
+ /// <summary>
+ /// Returns the number of bytes required to encode this message.
+ /// The result is only computed on the first call and memoized after that.
+ /// </summary>
+ public override int SerializedSize {
get {
if (memoizedSize != null) {
return memoizedSize.Value;
@@ -188,33 +197,12 @@ namespace Google.ProtocolBuffers {
}
}
- public ByteString ToByteString() {
- ByteString.CodedBuilder output = new ByteString.CodedBuilder(SerializedSize);
- WriteTo(output.CodedOutput);
- return output.Build();
- }
-
- public byte[] ToByteArray() {
- byte[] result = new byte[SerializedSize];
- CodedOutputStream output = CodedOutputStream.CreateInstance(result);
- WriteTo(output);
- output.CheckNoSpaceLeft();
- return result;
- }
-
- public void WriteTo(Stream output) {
- CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
- WriteTo(codedOutput);
- codedOutput.Flush();
- }
-
- public void WriteDelimitedTo(Stream output) {
- CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
- codedOutput.WriteRawVarint32((uint) SerializedSize);
- WriteTo(codedOutput);
- codedOutput.Flush();
- }
-
+ /// <summary>
+ /// Compares the specified object with this message for equality.
+ /// Returns true iff the given object is a message of the same type
+ /// (as defined by DescriptorForType) and has identical values
+ /// for all its fields.
+ /// </summary>
public override bool Equals(object other) {
if (other == this) {
return true;
@@ -226,6 +214,10 @@ namespace Google.ProtocolBuffers {
return Dictionaries.Equals(AllFields, otherMessage.AllFields) && UnknownFields.Equals(otherMessage.UnknownFields);
}
+ /// <summary>
+ /// Returns the hash code value for this message.
+ /// TODO(jonskeet): Specify the hash algorithm, but better than the Java one!
+ /// </summary>
public override int GetHashCode() {
int hash = 41;
hash = (19 * hash) + DescriptorForType.GetHashCode();
@@ -233,5 +225,21 @@ namespace Google.ProtocolBuffers {
hash = (29 * hash) + UnknownFields.GetHashCode();
return hash;
}
+
+ #region Explicit Members
+
+ IBuilder IMessage.WeakCreateBuilderForType() {
+ return CreateBuilderForType();
+ }
+
+ IBuilder IMessage.WeakToBuilder() {
+ return ToBuilder();
+ }
+
+ IMessage IMessage.WeakDefaultInstanceForType {
+ get { return DefaultInstanceForType; }
+ }
+
+ #endregion
}
}
diff --git a/src/ProtocolBuffers/AbstractMessageLite.cs b/src/ProtocolBuffers/AbstractMessageLite.cs
new file mode 100644
index 00000000..ee75f3dd
--- /dev/null
+++ b/src/ProtocolBuffers/AbstractMessageLite.cs
@@ -0,0 +1,133 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+
+namespace Google.ProtocolBuffers {
+ /// <summary>
+ /// Implementation of the non-generic IMessage interface as far as possible.
+ /// </summary>
+ public abstract class AbstractMessageLite<TMessage, TBuilder> : IMessageLite<TMessage, TBuilder>
+ where TMessage : AbstractMessageLite<TMessage, TBuilder>
+ where TBuilder : AbstractBuilderLite<TMessage, TBuilder> {
+
+
+ public abstract TBuilder CreateBuilderForType();
+
+ public abstract TBuilder ToBuilder();
+
+ public abstract TMessage DefaultInstanceForType { get; }
+
+ public abstract bool IsInitialized { get; }
+
+ public abstract void WriteTo(CodedOutputStream output);
+
+ public abstract int SerializedSize { get; }
+
+ //public override bool Equals(object other) {
+ //}
+
+ //public override int GetHashCode() {
+ //}
+
+ public abstract void PrintTo(TextWriter writer);
+
+ #region IMessageLite<TMessage,TBuilder> Members
+
+ /// <summary>
+ /// Serializes the message to a ByteString. This is a trivial wrapper
+ /// around WriteTo(CodedOutputStream).
+ /// </summary>
+ public ByteString ToByteString() {
+ ByteString.CodedBuilder output = new ByteString.CodedBuilder(SerializedSize);
+ WriteTo(output.CodedOutput);
+ return output.Build();
+ }
+
+ /// <summary>
+ /// Serializes the message to a byte array. This is a trivial wrapper
+ /// around WriteTo(CodedOutputStream).
+ /// </summary>
+ public byte[] ToByteArray() {
+ byte[] result = new byte[SerializedSize];
+ CodedOutputStream output = CodedOutputStream.CreateInstance(result);
+ WriteTo(output);
+ output.CheckNoSpaceLeft();
+ return result;
+ }
+
+ /// <summary>
+ /// Serializes the message and writes it to the given stream.
+ /// This is just a wrapper around WriteTo(CodedOutputStream). This
+ /// does not flush or close the stream.
+ /// </summary>
+ /// <param name="output"></param>
+ public void WriteTo(Stream output) {
+ CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
+ WriteTo(codedOutput);
+ codedOutput.Flush();
+ }
+
+ /// <summary>
+ /// Like WriteTo(Stream) but writes the size of the message as a varint before
+ /// writing the data. This allows more data to be written to the stream after the
+ /// message without the need to delimit the message data yourself. Use
+ /// IBuilder.MergeDelimitedFrom(Stream) or the static method
+ /// YourMessageType.ParseDelimitedFrom(Stream) to parse messages written by this method.
+ /// </summary>
+ /// <param name="output"></param>
+ public void WriteDelimitedTo(Stream output) {
+ CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
+ codedOutput.WriteRawVarint32((uint)SerializedSize);
+ WriteTo(codedOutput);
+ codedOutput.Flush();
+ }
+
+ IBuilderLite IMessageLite.WeakCreateBuilderForType() {
+ return CreateBuilderForType();
+ }
+
+ IBuilderLite IMessageLite.WeakToBuilder() {
+ return ToBuilder();
+ }
+
+ IMessageLite IMessageLite.WeakDefaultInstanceForType {
+ get { return DefaultInstanceForType; }
+ }
+
+ #endregion
+ }
+}
diff --git a/src/ProtocolBuffers/ByteString.cs b/src/ProtocolBuffers/ByteString.cs
index 78b946bb..5add171e 100644
--- a/src/ProtocolBuffers/ByteString.cs
+++ b/src/ProtocolBuffers/ByteString.cs
@@ -79,6 +79,13 @@ namespace Google.ProtocolBuffers {
}
/// <summary>
+ /// Constructs a ByteString from the Base64 Encoded String.
+ /// </summary>
+ public static ByteString FromBase64(string bytes) {
+ return new ByteString(System.Convert.FromBase64String(bytes));
+ }
+
+ /// <summary>
/// Constructs a ByteString from the given array. The contents
/// are copied, so further modifications to the array will not
/// be reflected in the returned ByteString.
diff --git a/src/ProtocolBuffers/CodedInputStream.cs b/src/ProtocolBuffers/CodedInputStream.cs
index 3306f309..922957f2 100644
--- a/src/ProtocolBuffers/CodedInputStream.cs
+++ b/src/ProtocolBuffers/CodedInputStream.cs
@@ -258,7 +258,7 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Reads a group field value from the stream.
/// </summary>
- public void ReadGroup(int fieldNumber, IBuilder builder,
+ public void ReadGroup(int fieldNumber, IBuilderLite builder,
ExtensionRegistry extensionRegistry) {
if (recursionDepth >= recursionLimit) {
throw InvalidProtocolBufferException.RecursionLimitExceeded();
@@ -273,12 +273,14 @@ namespace Google.ProtocolBuffers {
/// Reads a group field value from the stream and merges it into the given
/// UnknownFieldSet.
/// </summary>
- public void ReadUnknownGroup(int fieldNumber, UnknownFieldSet.Builder builder) {
+ [Obsolete]
+ public void ReadUnknownGroup(int fieldNumber, IBuilderLite builder)
+ {
if (recursionDepth >= recursionLimit) {
throw InvalidProtocolBufferException.RecursionLimitExceeded();
}
++recursionDepth;
- builder.MergeFrom(this);
+ builder.WeakMergeFrom(this);
CheckLastTagWas(WireFormat.MakeTag(fieldNumber, WireFormat.WireType.EndGroup));
--recursionDepth;
}
@@ -286,7 +288,7 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Reads an embedded message field value from the stream.
/// </summary>
- public void ReadMessage(IBuilder builder, ExtensionRegistry extensionRegistry) {
+ public void ReadMessage(IBuilderLite builder, ExtensionRegistry extensionRegistry) {
int length = (int) ReadRawVarint32();
if (recursionDepth >= recursionLimit) {
throw InvalidProtocolBufferException.RecursionLimitExceeded();
@@ -393,7 +395,6 @@ namespace Google.ProtocolBuffers {
throw new ArgumentOutOfRangeException("Invalid field type " + fieldType);
}
}
-
#endregion
#region Underlying reading primitives
diff --git a/src/ProtocolBuffers/CodedOutputStream.cs b/src/ProtocolBuffers/CodedOutputStream.cs
index a7e1eca6..264ca6ef 100644
--- a/src/ProtocolBuffers/CodedOutputStream.cs
+++ b/src/ProtocolBuffers/CodedOutputStream.cs
@@ -206,19 +206,20 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Writes a group field value, including tag, to the stream.
/// </summary>
- public void WriteGroup(int fieldNumber, IMessage value) {
+ public void WriteGroup(int fieldNumber, IMessageLite value) {
WriteTag(fieldNumber, WireFormat.WireType.StartGroup);
value.WriteTo(this);
WriteTag(fieldNumber, WireFormat.WireType.EndGroup);
}
- public void WriteUnknownGroup(int fieldNumber, UnknownFieldSet value) {
+ [Obsolete]
+ public void WriteUnknownGroup(int fieldNumber, IMessageLite value) {
WriteTag(fieldNumber, WireFormat.WireType.StartGroup);
value.WriteTo(this);
WriteTag(fieldNumber, WireFormat.WireType.EndGroup);
}
- public void WriteMessage(int fieldNumber, IMessage value) {
+ public void WriteMessage(int fieldNumber, IMessageLite value) {
WriteTag(fieldNumber, WireFormat.WireType.LengthDelimited);
WriteRawVarint32((uint)value.SerializedSize);
value.WriteTo(this);
@@ -263,7 +264,7 @@ namespace Google.ProtocolBuffers {
WriteRawVarint64(EncodeZigZag64(value));
}
- public void WriteMessageSetExtension(int fieldNumber, IMessage value) {
+ public void WriteMessageSetExtension(int fieldNumber, IMessageLite value) {
WriteTag(WireFormat.MessageSetField.Item, WireFormat.WireType.StartGroup);
WriteUInt32(WireFormat.MessageSetField.TypeID, (uint)fieldNumber);
WriteMessage(WireFormat.MessageSetField.Message, value);
@@ -288,15 +289,15 @@ namespace Google.ProtocolBuffers {
case FieldType.Fixed32: WriteFixed32(fieldNumber, (uint)value); break;
case FieldType.Bool: WriteBool(fieldNumber, (bool)value); break;
case FieldType.String: WriteString(fieldNumber, (string)value); break;
- case FieldType.Group: WriteGroup(fieldNumber, (IMessage)value); break;
- case FieldType.Message: WriteMessage(fieldNumber, (IMessage)value); break;
+ case FieldType.Group: WriteGroup(fieldNumber, (IMessageLite)value); break;
+ case FieldType.Message: WriteMessage(fieldNumber, (IMessageLite)value); break;
case FieldType.Bytes: WriteBytes(fieldNumber, (ByteString)value); break;
case FieldType.UInt32: WriteUInt32(fieldNumber, (uint)value); break;
case FieldType.SFixed32: WriteSFixed32(fieldNumber, (int)value); break;
case FieldType.SFixed64: WriteSFixed64(fieldNumber, (long)value); break;
case FieldType.SInt32: WriteSInt32(fieldNumber, (int)value); break;
case FieldType.SInt64: WriteSInt64(fieldNumber, (long)value); break;
- case FieldType.Enum: WriteEnum(fieldNumber, ((EnumValueDescriptor)value).Number);
+ case FieldType.Enum: WriteEnum(fieldNumber, ((IEnumLite)value).Number);
break;
}
}
@@ -312,15 +313,15 @@ namespace Google.ProtocolBuffers {
case FieldType.Fixed32: WriteFixed32NoTag((uint)value); break;
case FieldType.Bool: WriteBoolNoTag((bool)value); break;
case FieldType.String: WriteStringNoTag((string)value); break;
- case FieldType.Group: WriteGroupNoTag((IMessage)value); break;
- case FieldType.Message: WriteMessageNoTag((IMessage)value); break;
+ case FieldType.Group: WriteGroupNoTag((IMessageLite)value); break;
+ case FieldType.Message: WriteMessageNoTag((IMessageLite)value); break;
case FieldType.Bytes: WriteBytesNoTag((ByteString)value); break;
case FieldType.UInt32: WriteUInt32NoTag((uint)value); break;
case FieldType.SFixed32: WriteSFixed32NoTag((int)value); break;
case FieldType.SFixed64: WriteSFixed64NoTag((long)value); break;
case FieldType.SInt32: WriteSInt32NoTag((int)value); break;
case FieldType.SInt64: WriteSInt64NoTag((long)value); break;
- case FieldType.Enum: WriteEnumNoTag(((EnumValueDescriptor)value).Number);
+ case FieldType.Enum: WriteEnumNoTag(((IEnumLite)value).Number);
break;
}
}
@@ -420,11 +421,11 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Writes a group field value, without a tag, to the stream.
/// </summary>
- public void WriteGroupNoTag(IMessage value) {
+ public void WriteGroupNoTag(IMessageLite value) {
value.WriteTo(this);
}
- public void WriteMessageNoTag(IMessage value) {
+ public void WriteMessageNoTag(IMessageLite value) {
WriteRawVarint32((uint)value.SerializedSize);
value.WriteTo(this);
}
@@ -685,7 +686,7 @@ namespace Google.ProtocolBuffers {
/// Compute the number of bytes that would be needed to encode a
/// group field, including the tag.
/// </summary>
- public static int ComputeGroupSize(int fieldNumber, IMessage value) {
+ public static int ComputeGroupSize(int fieldNumber, IMessageLite value) {
return ComputeTagSize(fieldNumber) * 2 + value.SerializedSize;
}
@@ -693,8 +694,9 @@ namespace Google.ProtocolBuffers {
/// Compute the number of bytes that would be needed to encode a
/// group field represented by an UnknownFieldSet, including the tag.
/// </summary>
+ [Obsolete]
public static int ComputeUnknownGroupSize(int fieldNumber,
- UnknownFieldSet value) {
+ IMessageLite value) {
return ComputeTagSize(fieldNumber) * 2 + value.SerializedSize;
}
@@ -702,7 +704,7 @@ namespace Google.ProtocolBuffers {
/// Compute the number of bytes that would be needed to encode an
/// embedded message field, including the tag.
/// </summary>
- public static int ComputeMessageSize(int fieldNumber, IMessage value) {
+ public static int ComputeMessageSize(int fieldNumber, IMessageLite value) {
int size = value.SerializedSize;
return ComputeTagSize(fieldNumber) + ComputeRawVarint32Size((uint)size) + size;
}
@@ -853,7 +855,7 @@ namespace Google.ProtocolBuffers {
/// Compute the number of bytes that would be needed to encode a
/// group field, including the tag.
/// </summary>
- public static int ComputeGroupSizeNoTag(IMessage value) {
+ public static int ComputeGroupSizeNoTag(IMessageLite value) {
return value.SerializedSize;
}
@@ -861,7 +863,8 @@ namespace Google.ProtocolBuffers {
/// Compute the number of bytes that would be needed to encode a
/// group field represented by an UnknownFieldSet, including the tag.
/// </summary>
- public static int ComputeUnknownGroupSizeNoTag(UnknownFieldSet value) {
+ [Obsolete]
+ public static int ComputeUnknownGroupSizeNoTag(IMessageLite value) {
return value.SerializedSize;
}
@@ -869,7 +872,7 @@ namespace Google.ProtocolBuffers {
/// Compute the number of bytes that would be needed to encode an
/// embedded message field, including the tag.
/// </summary>
- public static int ComputeMessageSizeNoTag(IMessage value) {
+ public static int ComputeMessageSizeNoTag(IMessageLite value) {
int size = value.SerializedSize;
return ComputeRawVarint32Size((uint)size) + size;
}
@@ -943,7 +946,7 @@ namespace Google.ProtocolBuffers {
/// MessageSet extension to the stream. For historical reasons,
/// the wire format differs from normal fields.
/// </summary>
- public static int ComputeMessageSetExtensionSize(int fieldNumber, IMessage value) {
+ public static int ComputeMessageSetExtensionSize(int fieldNumber, IMessageLite value) {
return ComputeTagSize(WireFormat.MessageSetField.Item) * 2 +
ComputeUInt32Size(WireFormat.MessageSetField.TypeID, (uint) fieldNumber) +
ComputeMessageSize(WireFormat.MessageSetField.Message, value);
@@ -1004,15 +1007,15 @@ namespace Google.ProtocolBuffers {
case FieldType.Fixed32: return ComputeFixed32Size(fieldNumber, (uint)value);
case FieldType.Bool: return ComputeBoolSize(fieldNumber, (bool)value);
case FieldType.String: return ComputeStringSize(fieldNumber, (string)value);
- case FieldType.Group: return ComputeGroupSize(fieldNumber, (IMessage)value);
- case FieldType.Message: return ComputeMessageSize(fieldNumber, (IMessage)value);
+ case FieldType.Group: return ComputeGroupSize(fieldNumber, (IMessageLite)value);
+ case FieldType.Message: return ComputeMessageSize(fieldNumber, (IMessageLite)value);
case FieldType.Bytes: return ComputeBytesSize(fieldNumber, (ByteString)value);
case FieldType.UInt32: return ComputeUInt32Size(fieldNumber, (uint)value);
case FieldType.SFixed32: return ComputeSFixed32Size(fieldNumber, (int)value);
case FieldType.SFixed64: return ComputeSFixed64Size(fieldNumber, (long)value);
case FieldType.SInt32: return ComputeSInt32Size(fieldNumber, (int)value);
case FieldType.SInt64: return ComputeSInt64Size(fieldNumber, (long)value);
- case FieldType.Enum: return ComputeEnumSize(fieldNumber, ((EnumValueDescriptor)value).Number);
+ case FieldType.Enum: return ComputeEnumSize(fieldNumber, ((IEnumLite)value).Number);
default:
throw new ArgumentOutOfRangeException("Invalid field type " + fieldType);
}
@@ -1033,15 +1036,15 @@ namespace Google.ProtocolBuffers {
case FieldType.Fixed32: return ComputeFixed32SizeNoTag((uint)value);
case FieldType.Bool: return ComputeBoolSizeNoTag((bool)value);
case FieldType.String: return ComputeStringSizeNoTag((string)value);
- case FieldType.Group: return ComputeGroupSizeNoTag((IMessage)value);
- case FieldType.Message: return ComputeMessageSizeNoTag((IMessage)value);
+ case FieldType.Group: return ComputeGroupSizeNoTag((IMessageLite)value);
+ case FieldType.Message: return ComputeMessageSizeNoTag((IMessageLite)value);
case FieldType.Bytes: return ComputeBytesSizeNoTag((ByteString)value);
case FieldType.UInt32: return ComputeUInt32SizeNoTag((uint)value);
case FieldType.SFixed32: return ComputeSFixed32SizeNoTag((int)value);
case FieldType.SFixed64: return ComputeSFixed64SizeNoTag((long)value);
case FieldType.SInt32: return ComputeSInt32SizeNoTag((int)value);
case FieldType.SInt64: return ComputeSInt64SizeNoTag((long)value);
- case FieldType.Enum: return ComputeEnumSizeNoTag(((EnumValueDescriptor)value).Number);
+ case FieldType.Enum: return ComputeEnumSizeNoTag(((IEnumLite)value).Number);
default:
throw new ArgumentOutOfRangeException("Invalid field type " + fieldType);
}
diff --git a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
index ae13b5ac..61d52fdc 100644
--- a/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
+++ b/src/ProtocolBuffers/DescriptorProtos/CSharpOptions.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
diff --git a/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs b/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
index 0c6be671..09a00c97 100644
--- a/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
+++ b/src/ProtocolBuffers/DescriptorProtos/DescriptorProtoFile.cs
@@ -1,4 +1,4 @@
-// Generated by the protocol buffer compiler. DO NOT EDIT!
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
using pb = global::Google.ProtocolBuffers;
using pbc = global::Google.ProtocolBuffers.Collections;
@@ -104,38 +104,42 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
"Lmdvb2dsZS5wcm90b2J1Zi5TZXJ2aWNlT3B0aW9ucyJ/ChVNZXRob2REZXNj" +
"cmlwdG9yUHJvdG8SDAoEbmFtZRgBIAEoCRISCgppbnB1dF90eXBlGAIgASgJ" +
"EhMKC291dHB1dF90eXBlGAMgASgJEi8KB29wdGlvbnMYBCABKAsyHi5nb29n" +
- "bGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucyKnAgoLRmlsZU9wdGlvbnMSFAoM" +
+ "bGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucyKkAwoLRmlsZU9wdGlvbnMSFAoM" +
"amF2YV9wYWNrYWdlGAEgASgJEhwKFGphdmFfb3V0ZXJfY2xhc3NuYW1lGAgg" +
"ASgJEiIKE2phdmFfbXVsdGlwbGVfZmlsZXMYCiABKAg6BWZhbHNlEkYKDG9w" +
"dGltaXplX2ZvchgJIAEoDjIpLmdvb2dsZS5wcm90b2J1Zi5GaWxlT3B0aW9u" +
- "cy5PcHRpbWl6ZU1vZGU6BVNQRUVEEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9u" +
- "GOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9u" +
- "IigKDE9wdGltaXplTW9kZRIJCgVTUEVFRBABEg0KCUNPREVfU0laRRACKgkI" +
- "6AcQgICAgAIiiAEKDk1lc3NhZ2VPcHRpb25zEiYKF21lc3NhZ2Vfc2V0X3dp" +
- "cmVfZm9ybWF0GAEgASgIOgVmYWxzZRJDChR1bmludGVycHJldGVkX29wdGlv" +
- "bhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlv" +
- "bioJCOgHEICAgIACIoACCgxGaWVsZE9wdGlvbnMSMgoFY3R5cGUYASABKA4y" +
- "Iy5nb29nbGUucHJvdG9idWYuRmllbGRPcHRpb25zLkNUeXBlEg4KBnBhY2tl" +
- "ZBgCIAEoCBIZCgpkZXByZWNhdGVkGAMgASgIOgVmYWxzZRIcChRleHBlcmlt" +
- "ZW50YWxfbWFwX2tleRgJIAEoCRJDChR1bmludGVycHJldGVkX29wdGlvbhjn" +
- "ByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbiIj" +
- "CgVDVHlwZRIICgRDT1JEEAESEAoMU1RSSU5HX1BJRUNFEAIqCQjoBxCAgICA" +
- "AiJdCgtFbnVtT3B0aW9ucxJDChR1bmludGVycHJldGVkX29wdGlvbhjnByAD" +
- "KAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbioJCOgH" +
- "EICAgIACImIKEEVudW1WYWx1ZU9wdGlvbnMSQwoUdW5pbnRlcnByZXRlZF9v" +
- "cHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRP" +
- "cHRpb24qCQjoBxCAgICAAiJgCg5TZXJ2aWNlT3B0aW9ucxJDChR1bmludGVy" +
- "cHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRl" +
- "cnByZXRlZE9wdGlvbioJCOgHEICAgIACIl8KDU1ldGhvZE9wdGlvbnMSQwoU" +
- "dW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVm" +
- "LlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiKFAgoTVW5pbnRlcnBy" +
- "ZXRlZE9wdGlvbhI7CgRuYW1lGAIgAygLMi0uZ29vZ2xlLnByb3RvYnVmLlVu" +
- "aW50ZXJwcmV0ZWRPcHRpb24uTmFtZVBhcnQSGAoQaWRlbnRpZmllcl92YWx1" +
- "ZRgDIAEoCRIaChJwb3NpdGl2ZV9pbnRfdmFsdWUYBCABKAQSGgoSbmVnYXRp" +
- "dmVfaW50X3ZhbHVlGAUgASgDEhQKDGRvdWJsZV92YWx1ZRgGIAEoARIUCgxz" +
- "dHJpbmdfdmFsdWUYByABKAwaMwoITmFtZVBhcnQSEQoJbmFtZV9wYXJ0GAEg" +
- "AigJEhQKDGlzX2V4dGVuc2lvbhgCIAIoCEIpChNjb20uZ29vZ2xlLnByb3Rv" +
- "YnVmQhBEZXNjcmlwdG9yUHJvdG9zSAE=");
+ "cy5PcHRpbWl6ZU1vZGU6BVNQRUVEEiEKE2NjX2dlbmVyaWNfc2VydmljZXMY" +
+ "ECABKAg6BHRydWUSIwoVamF2YV9nZW5lcmljX3NlcnZpY2VzGBEgASgIOgR0" +
+ "cnVlEiEKE3B5X2dlbmVyaWNfc2VydmljZXMYEiABKAg6BHRydWUSQwoUdW5p" +
+ "bnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVu" +
+ "aW50ZXJwcmV0ZWRPcHRpb24iOgoMT3B0aW1pemVNb2RlEgkKBVNQRUVEEAES" +
+ "DQoJQ09ERV9TSVpFEAISEAoMTElURV9SVU5USU1FEAMqCQjoBxCAgICAAiK4" +
+ "AQoOTWVzc2FnZU9wdGlvbnMSJgoXbWVzc2FnZV9zZXRfd2lyZV9mb3JtYXQY" +
+ "ASABKAg6BWZhbHNlEi4KH25vX3N0YW5kYXJkX2Rlc2NyaXB0b3JfYWNjZXNz" +
+ "b3IYAiABKAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMo" +
+ "CzIkLmdvb2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQ" +
+ "gICAgAIilAIKDEZpZWxkT3B0aW9ucxI6CgVjdHlwZRgBIAEoDjIjLmdvb2ds" +
+ "ZS5wcm90b2J1Zi5GaWVsZE9wdGlvbnMuQ1R5cGU6BlNUUklORxIOCgZwYWNr" +
+ "ZWQYAiABKAgSGQoKZGVwcmVjYXRlZBgDIAEoCDoFZmFsc2USHAoUZXhwZXJp" +
+ "bWVudGFsX21hcF9rZXkYCSABKAkSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y" +
+ "5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24i" +
+ "LwoFQ1R5cGUSCgoGU1RSSU5HEAASCAoEQ09SRBABEhAKDFNUUklOR19QSUVD" +
+ "RRACKgkI6AcQgICAgAIiXQoLRW51bU9wdGlvbnMSQwoUdW5pbnRlcnByZXRl" +
+ "ZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnByb3RvYnVmLlVuaW50ZXJwcmV0" +
+ "ZWRPcHRpb24qCQjoBxCAgICAAiJiChBFbnVtVmFsdWVPcHRpb25zEkMKFHVu" +
+ "aW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5V" +
+ "bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiYAoOU2VydmljZU9wdGlv" +
+ "bnMSQwoUdW5pbnRlcnByZXRlZF9vcHRpb24Y5wcgAygLMiQuZ29vZ2xlLnBy" +
+ "b3RvYnVmLlVuaW50ZXJwcmV0ZWRPcHRpb24qCQjoBxCAgICAAiJfCg1NZXRo" +
+ "b2RPcHRpb25zEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdv" +
+ "b2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi" +
+ "hQIKE1VuaW50ZXJwcmV0ZWRPcHRpb24SOwoEbmFtZRgCIAMoCzItLmdvb2ds" +
+ "ZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uLk5hbWVQYXJ0EhgKEGlk" +
+ "ZW50aWZpZXJfdmFsdWUYAyABKAkSGgoScG9zaXRpdmVfaW50X3ZhbHVlGAQg" +
+ "ASgEEhoKEm5lZ2F0aXZlX2ludF92YWx1ZRgFIAEoAxIUCgxkb3VibGVfdmFs" +
+ "dWUYBiABKAESFAoMc3RyaW5nX3ZhbHVlGAcgASgMGjMKCE5hbWVQYXJ0EhEK" +
+ "CW5hbWVfcGFydBgBIAIoCRIUCgxpc19leHRlbnNpb24YAiACKAhCKQoTY29t" +
+ "Lmdvb2dsZS5wcm90b2J1ZkIQRGVzY3JpcHRvclByb3Rvc0gB");
pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
descriptor = root;
internal__static_google_protobuf_FileDescriptorSet__Descriptor = Descriptor.MessageTypes[0];
@@ -177,11 +181,11 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
internal__static_google_protobuf_FileOptions__Descriptor = Descriptor.MessageTypes[8];
internal__static_google_protobuf_FileOptions__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FileOptions, global::Google.ProtocolBuffers.DescriptorProtos.FileOptions.Builder>(internal__static_google_protobuf_FileOptions__Descriptor,
- new string[] { "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "OptimizeFor", "UninterpretedOption", });
+ new string[] { "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "OptimizeFor", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "UninterpretedOption", });
internal__static_google_protobuf_MessageOptions__Descriptor = Descriptor.MessageTypes[9];
internal__static_google_protobuf_MessageOptions__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions, global::Google.ProtocolBuffers.DescriptorProtos.MessageOptions.Builder>(internal__static_google_protobuf_MessageOptions__Descriptor,
- new string[] { "MessageSetWireFormat", "UninterpretedOption", });
+ new string[] { "MessageSetWireFormat", "NoStandardDescriptorAccessor", "UninterpretedOption", });
internal__static_google_protobuf_FieldOptions__Descriptor = Descriptor.MessageTypes[10];
internal__static_google_protobuf_FieldOptions__FieldAccessorTable =
new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions, global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Builder>(internal__static_google_protobuf_FieldOptions__Descriptor,
@@ -4013,6 +4017,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public enum OptimizeMode {
SPEED = 1,
CODE_SIZE = 2,
+ LITE_RUNTIME = 3,
}
}
@@ -4058,6 +4063,36 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return optimizeFor_; }
}
+ public const int CcGenericServicesFieldNumber = 16;
+ private bool hasCcGenericServices;
+ private bool ccGenericServices_ = true;
+ public bool HasCcGenericServices {
+ get { return hasCcGenericServices; }
+ }
+ public bool CcGenericServices {
+ get { return ccGenericServices_; }
+ }
+
+ public const int JavaGenericServicesFieldNumber = 17;
+ private bool hasJavaGenericServices;
+ private bool javaGenericServices_ = true;
+ public bool HasJavaGenericServices {
+ get { return hasJavaGenericServices; }
+ }
+ public bool JavaGenericServices {
+ get { return javaGenericServices_; }
+ }
+
+ public const int PyGenericServicesFieldNumber = 18;
+ private bool hasPyGenericServices;
+ private bool pyGenericServices_ = true;
+ public bool HasPyGenericServices {
+ get { return hasPyGenericServices; }
+ }
+ public bool PyGenericServices {
+ get { return pyGenericServices_; }
+ }
+
public const int UninterpretedOptionFieldNumber = 999;
private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
@@ -4095,6 +4130,15 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (HasJavaMultipleFiles) {
output.WriteBool(10, JavaMultipleFiles);
}
+ if (HasCcGenericServices) {
+ output.WriteBool(16, CcGenericServices);
+ }
+ if (HasJavaGenericServices) {
+ output.WriteBool(17, JavaGenericServices);
+ }
+ if (HasPyGenericServices) {
+ output.WriteBool(18, PyGenericServices);
+ }
foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
output.WriteMessage(999, element);
}
@@ -4121,6 +4165,15 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (HasOptimizeFor) {
size += pb::CodedOutputStream.ComputeEnumSize(9, (int) OptimizeFor);
}
+ if (HasCcGenericServices) {
+ size += pb::CodedOutputStream.ComputeBoolSize(16, CcGenericServices);
+ }
+ if (HasJavaGenericServices) {
+ size += pb::CodedOutputStream.ComputeBoolSize(17, JavaGenericServices);
+ }
+ if (HasPyGenericServices) {
+ size += pb::CodedOutputStream.ComputeBoolSize(18, PyGenericServices);
+ }
foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
size += pb::CodedOutputStream.ComputeMessageSize(999, element);
}
@@ -4230,6 +4283,15 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (other.HasOptimizeFor) {
OptimizeFor = other.OptimizeFor;
}
+ if (other.HasCcGenericServices) {
+ CcGenericServices = other.CcGenericServices;
+ }
+ if (other.HasJavaGenericServices) {
+ JavaGenericServices = other.JavaGenericServices;
+ }
+ if (other.HasPyGenericServices) {
+ PyGenericServices = other.PyGenericServices;
+ }
if (other.uninterpretedOption_.Count != 0) {
base.AddRange(other.uninterpretedOption_, result.uninterpretedOption_);
}
@@ -4290,6 +4352,18 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
JavaMultipleFiles = input.ReadBool();
break;
}
+ case 128: {
+ CcGenericServices = input.ReadBool();
+ break;
+ }
+ case 136: {
+ JavaGenericServices = input.ReadBool();
+ break;
+ }
+ case 144: {
+ PyGenericServices = input.ReadBool();
+ break;
+ }
case 7994: {
global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.CreateBuilder();
input.ReadMessage(subBuilder, extensionRegistry);
@@ -4375,6 +4449,60 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
return this;
}
+ public bool HasCcGenericServices {
+ get { return result.HasCcGenericServices; }
+ }
+ public bool CcGenericServices {
+ get { return result.CcGenericServices; }
+ set { SetCcGenericServices(value); }
+ }
+ public Builder SetCcGenericServices(bool value) {
+ result.hasCcGenericServices = true;
+ result.ccGenericServices_ = value;
+ return this;
+ }
+ public Builder ClearCcGenericServices() {
+ result.hasCcGenericServices = false;
+ result.ccGenericServices_ = true;
+ return this;
+ }
+
+ public bool HasJavaGenericServices {
+ get { return result.HasJavaGenericServices; }
+ }
+ public bool JavaGenericServices {
+ get { return result.JavaGenericServices; }
+ set { SetJavaGenericServices(value); }
+ }
+ public Builder SetJavaGenericServices(bool value) {
+ result.hasJavaGenericServices = true;
+ result.javaGenericServices_ = value;
+ return this;
+ }
+ public Builder ClearJavaGenericServices() {
+ result.hasJavaGenericServices = false;
+ result.javaGenericServices_ = true;
+ return this;
+ }
+
+ public bool HasPyGenericServices {
+ get { return result.HasPyGenericServices; }
+ }
+ public bool PyGenericServices {
+ get { return result.PyGenericServices; }
+ set { SetPyGenericServices(value); }
+ }
+ public Builder SetPyGenericServices(bool value) {
+ result.hasPyGenericServices = true;
+ result.pyGenericServices_ = value;
+ return this;
+ }
+ public Builder ClearPyGenericServices() {
+ result.hasPyGenericServices = false;
+ result.pyGenericServices_ = true;
+ return this;
+ }
+
public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
get { return result.uninterpretedOption_; }
}
@@ -4450,6 +4578,16 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
get { return messageSetWireFormat_; }
}
+ public const int NoStandardDescriptorAccessorFieldNumber = 2;
+ private bool hasNoStandardDescriptorAccessor;
+ private bool noStandardDescriptorAccessor_ = false;
+ public bool HasNoStandardDescriptorAccessor {
+ get { return hasNoStandardDescriptorAccessor; }
+ }
+ public bool NoStandardDescriptorAccessor {
+ get { return noStandardDescriptorAccessor_; }
+ }
+
public const int UninterpretedOptionFieldNumber = 999;
private pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> uninterpretedOption_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption>();
public scg::IList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
@@ -4478,6 +4616,9 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (HasMessageSetWireFormat) {
output.WriteBool(1, MessageSetWireFormat);
}
+ if (HasNoStandardDescriptorAccessor) {
+ output.WriteBool(2, NoStandardDescriptorAccessor);
+ }
foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
output.WriteMessage(999, element);
}
@@ -4495,6 +4636,9 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (HasMessageSetWireFormat) {
size += pb::CodedOutputStream.ComputeBoolSize(1, MessageSetWireFormat);
}
+ if (HasNoStandardDescriptorAccessor) {
+ size += pb::CodedOutputStream.ComputeBoolSize(2, NoStandardDescriptorAccessor);
+ }
foreach (global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption element in UninterpretedOptionList) {
size += pb::CodedOutputStream.ComputeMessageSize(999, element);
}
@@ -4595,6 +4739,9 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
if (other.HasMessageSetWireFormat) {
MessageSetWireFormat = other.MessageSetWireFormat;
}
+ if (other.HasNoStandardDescriptorAccessor) {
+ NoStandardDescriptorAccessor = other.NoStandardDescriptorAccessor;
+ }
if (other.uninterpretedOption_.Count != 0) {
base.AddRange(other.uninterpretedOption_, result.uninterpretedOption_);
}
@@ -4635,6 +4782,10 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
MessageSetWireFormat = input.ReadBool();
break;
}
+ case 16: {
+ NoStandardDescriptorAccessor = input.ReadBool();
+ break;
+ }
case 7994: {
global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.Builder subBuilder = global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption.CreateBuilder();
input.ReadMessage(subBuilder, extensionRegistry);
@@ -4664,6 +4815,24 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
return this;
}
+ public bool HasNoStandardDescriptorAccessor {
+ get { return result.HasNoStandardDescriptorAccessor; }
+ }
+ public bool NoStandardDescriptorAccessor {
+ get { return result.NoStandardDescriptorAccessor; }
+ set { SetNoStandardDescriptorAccessor(value); }
+ }
+ public Builder SetNoStandardDescriptorAccessor(bool value) {
+ result.hasNoStandardDescriptorAccessor = true;
+ result.noStandardDescriptorAccessor_ = value;
+ return this;
+ }
+ public Builder ClearNoStandardDescriptorAccessor() {
+ result.hasNoStandardDescriptorAccessor = false;
+ result.noStandardDescriptorAccessor_ = false;
+ return this;
+ }
+
public pbc::IPopsicleList<global::Google.ProtocolBuffers.DescriptorProtos.UninterpretedOption> UninterpretedOptionList {
get { return result.uninterpretedOption_; }
}
@@ -4732,6 +4901,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
#region Nested types
public static class Types {
public enum CType {
+ STRING = 0,
CORD = 1,
STRING_PIECE = 2,
}
@@ -4741,7 +4911,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
public const int CtypeFieldNumber = 1;
private bool hasCtype;
- private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType ctype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType.CORD;
+ private global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType ctype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType.STRING;
public bool HasCtype {
get { return hasCtype; }
}
@@ -5036,7 +5206,7 @@ namespace Google.ProtocolBuffers.DescriptorProtos {
}
public Builder ClearCtype() {
result.hasCtype = false;
- result.ctype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType.CORD;
+ result.ctype_ = global::Google.ProtocolBuffers.DescriptorProtos.FieldOptions.Types.CType.STRING;
return this;
}
diff --git a/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs b/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs
index 2fa18d9a..d6ef4e17 100644
--- a/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs
+++ b/src/ProtocolBuffers/Descriptors/EnumDescriptor.cs
@@ -37,7 +37,7 @@ namespace Google.ProtocolBuffers.Descriptors {
/// <summary>
/// Descriptor for an enum type in a .proto file.
/// </summary>
- public sealed class EnumDescriptor : IndexedDescriptorBase<EnumDescriptorProto, EnumOptions> {
+ public sealed class EnumDescriptor : IndexedDescriptorBase<EnumDescriptorProto, EnumOptions>, IEnumLiteMap<EnumValueDescriptor> {
private readonly MessageDescriptor containingType;
private readonly IList<EnumValueDescriptor> values;
@@ -73,13 +73,23 @@ namespace Google.ProtocolBuffers.Descriptors {
}
/// <summary>
+ /// Logic moved from FieldSet to continue current behavior
+ /// </summary>
+ public bool IsValidValue(IEnumLite value) {
+ return value is EnumValueDescriptor && ((EnumValueDescriptor)value).EnumDescriptor == this;
+ }
+
+ /// <summary>
/// Finds an enum value by number. If multiple enum values have the
/// same number, this returns the first defined value with that number.
/// </summary>
- internal EnumValueDescriptor FindValueByNumber(int number) {
+ public EnumValueDescriptor FindValueByNumber(int number) {
return File.DescriptorPool.FindEnumValueByNumber(this, number);
}
+ IEnumLite IEnumLiteMap.FindValueByNumber(int number) {
+ return FindValueByNumber(number);
+ }
/// <summary>
/// Finds an enum value by name.
/// </summary>
diff --git a/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs b/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs
index 4125814d..732dec06 100644
--- a/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs
+++ b/src/ProtocolBuffers/Descriptors/EnumValueDescriptor.cs
@@ -36,7 +36,7 @@ namespace Google.ProtocolBuffers.Descriptors {
/// <summary>
/// Descriptor for a single enum value within an enum in a .proto file.
/// </summary>
- public sealed class EnumValueDescriptor : IndexedDescriptorBase<EnumValueDescriptorProto, EnumValueOptions> {
+ public sealed class EnumValueDescriptor : IndexedDescriptorBase<EnumValueDescriptorProto, EnumValueOptions>, IEnumLite {
private readonly EnumDescriptor enumDescriptor;
diff --git a/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs b/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs
index 7d99ed21..854b3a89 100644
--- a/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs
+++ b/src/ProtocolBuffers/Descriptors/FieldDescriptor.cs
@@ -40,7 +40,7 @@ namespace Google.ProtocolBuffers.Descriptors {
/// <summary>
/// Descriptor for a field or extension within a message in a .proto file.
/// </summary>
- public sealed class FieldDescriptor : IndexedDescriptorBase<FieldDescriptorProto, FieldOptions>, IComparable<FieldDescriptor> {
+ public sealed class FieldDescriptor : IndexedDescriptorBase<FieldDescriptorProto, FieldOptions>, IComparable<FieldDescriptor>, IFieldDescriptorLite {
private readonly MessageDescriptor extensionScope;
private EnumDescriptor enumType;
@@ -299,9 +299,26 @@ namespace Google.ProtocolBuffers.Descriptors {
}
return FieldNumber - other.FieldNumber;
}
-
/// <summary>
+ /// Compares this descriptor with another one, ordering in "canonical" order
+ /// which simply means ascending order by field number. <paramref name="other"/>
+ /// must be a field of the same type, i.e. the <see cref="ContainingType"/> of
+ /// both fields must be the same.
+ /// </summary>
+ public int CompareTo(IFieldDescriptorLite other) {
+ return FieldNumber - other.FieldNumber;
+ }
+
+ IEnumLiteMap IFieldDescriptorLite.EnumType {
+ get { return EnumType; }
+ }
+
+ bool IFieldDescriptorLite.MessageSetWireFormat {
+ get { return ContainingType.Options.MessageSetWireFormat; }
+ }
+
+ /// <summary>
/// For enum fields, returns the field's type.
/// </summary>
public EnumDescriptor EnumType {
diff --git a/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs b/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs
index e62360fc..b0bf5de1 100644
--- a/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs
+++ b/src/ProtocolBuffers/Descriptors/FieldMappingAttribute.cs
@@ -30,6 +30,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Collections;
namespace Google.ProtocolBuffers.Descriptors {
@@ -46,5 +48,29 @@ namespace Google.ProtocolBuffers.Descriptors {
internal MappedType MappedType { get; private set; }
internal WireFormat.WireType WireType { get; private set; }
+
+
+ /// <summary>
+ /// Immutable mapping from field type to mapped type. Built using the attributes on
+ /// FieldType values.
+ /// </summary>
+ static readonly IDictionary<FieldType, FieldMappingAttribute> FieldTypeToMappedTypeMap = MapFieldTypes();
+
+ private static IDictionary<FieldType, FieldMappingAttribute> MapFieldTypes() {
+ var map = new Dictionary<FieldType, FieldMappingAttribute>();
+ foreach (System.Reflection.FieldInfo field in typeof(FieldType).GetFields(System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.Public)) {
+ FieldType fieldType = (FieldType)field.GetValue(null);
+ FieldMappingAttribute mapping = (FieldMappingAttribute)field.GetCustomAttributes(typeof(FieldMappingAttribute), false)[0];
+ map[fieldType] = mapping;
+ }
+ return Dictionaries.AsReadOnly(map);
+ }
+
+ internal static MappedType MappedTypeFromFieldType(FieldType type) {
+ return FieldTypeToMappedTypeMap[type].MappedType;
+ }
+ internal static WireFormat.WireType WireTypeFromFieldType(FieldType type, bool packed) {
+ return packed ? WireFormat.WireType.LengthDelimited : FieldTypeToMappedTypeMap[type].WireType;
+ }
}
}
diff --git a/src/ProtocolBuffers/DynamicMessage.cs b/src/ProtocolBuffers/DynamicMessage.cs
index 12f2186c..44fe0f39 100644
--- a/src/ProtocolBuffers/DynamicMessage.cs
+++ b/src/ProtocolBuffers/DynamicMessage.cs
@@ -180,7 +180,7 @@ namespace Google.ProtocolBuffers {
}
public override IDictionary<FieldDescriptor, object> AllFields {
- get { return fields.AllFields; }
+ get { return fields.AllFieldDescriptors; }
}
public override bool HasField(FieldDescriptor field) {
@@ -216,7 +216,7 @@ namespace Google.ProtocolBuffers {
}
public bool Initialized {
- get { return fields.IsInitializedWithRespectTo(type); }
+ get { return fields.IsInitializedWithRespectTo(type.Fields); }
}
public override void WriteTo(CodedOutputStream output) {
@@ -295,7 +295,8 @@ namespace Google.ProtocolBuffers {
}
public override Builder MergeFrom(DynamicMessage other) {
- return MergeFrom((IMessage)other);
+ IMessage downcast = other;
+ return MergeFrom(downcast);
}
public override DynamicMessage Build() {
@@ -335,7 +336,7 @@ namespace Google.ProtocolBuffers {
}
public override bool IsInitialized {
- get { return fields.IsInitializedWithRespectTo(type); }
+ get { return fields.IsInitializedWithRespectTo(type.Fields); }
}
public override Builder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry) {
@@ -354,7 +355,7 @@ namespace Google.ProtocolBuffers {
}
public override IDictionary<FieldDescriptor, object> AllFields {
- get { return fields.AllFields; }
+ get { return fields.AllFieldDescriptors; }
}
public override IBuilder CreateBuilderForField(FieldDescriptor field) {
diff --git a/src/ProtocolBuffers/EnumLite.cs b/src/ProtocolBuffers/EnumLite.cs
new file mode 100644
index 00000000..12497d8e
--- /dev/null
+++ b/src/ProtocolBuffers/EnumLite.cs
@@ -0,0 +1,106 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Text;
+
+namespace Google.ProtocolBuffers {
+
+ ///<summary>
+ ///Interface for an enum value or value descriptor, to be used in FieldSet.
+ ///The lite library stores enum values directly in FieldSets but the full
+ ///library stores EnumValueDescriptors in order to better support reflection.
+ ///</summary>
+ public interface IEnumLite {
+ int Number { get; }
+ string Name { get; }
+ }
+
+ ///<summary>
+ ///Interface for an object which maps integers to {@link EnumLite}s.
+ ///{@link Descriptors.EnumDescriptor} implements this interface by mapping
+ ///numbers to {@link Descriptors.EnumValueDescriptor}s. Additionally,
+ ///every generated enum type has a static method internalGetValueMap() which
+ ///returns an implementation of this type that maps numbers to enum values.
+ ///</summary>
+ public interface IEnumLiteMap<T> : IEnumLiteMap
+ where T : IEnumLite {
+ new T FindValueByNumber(int number);
+ }
+
+ public interface IEnumLiteMap {
+ bool IsValidValue(IEnumLite value);
+ IEnumLite FindValueByNumber(int number);
+ }
+
+ public class EnumLiteMap<TEnum> : IEnumLiteMap<IEnumLite>
+ where TEnum : struct, IComparable, IFormattable {
+
+ struct EnumValue : IEnumLite {
+ readonly TEnum value;
+ public EnumValue(TEnum value) {
+ this.value = value;
+ }
+ int IEnumLite.Number {
+ get { return Convert.ToInt32(value); }
+ }
+ string IEnumLite.Name {
+ get { return value.ToString(); }
+ }
+ }
+
+ private readonly SortedList<int, IEnumLite> items;
+
+ public EnumLiteMap() {
+ items = new SortedList<int, IEnumLite>();
+ foreach (TEnum evalue in Enum.GetValues(typeof(TEnum)))
+ items.Add(Convert.ToInt32(evalue), new EnumValue(evalue));
+ }
+
+ IEnumLite IEnumLiteMap.FindValueByNumber(int number) {
+ return FindValueByNumber(number);
+ }
+
+ public IEnumLite FindValueByNumber(int number) {
+ IEnumLite val;
+ return items.TryGetValue(number, out val) ? val : null;
+ }
+
+ public bool IsValidValue(IEnumLite value) {
+ return items.ContainsKey(value.Number);
+ }
+ }
+}
diff --git a/src/ProtocolBuffers/ExtendableBuilder.cs b/src/ProtocolBuffers/ExtendableBuilder.cs
index 803ceb1e..ad97cdc4 100644
--- a/src/ProtocolBuffers/ExtendableBuilder.cs
+++ b/src/ProtocolBuffers/ExtendableBuilder.cs
@@ -94,21 +94,21 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Appends a value to a repeated extension.
/// </summary>
- public ExtendableBuilder<TMessage, TBuilder> AddExtension<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension, TExtension value) {
+ public TBuilder AddExtension<TExtension>(GeneratedExtensionBase<IList<TExtension>> extension, TExtension value) {
ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
message.VerifyExtensionContainingType(extension);
message.Extensions.AddRepeatedField(extension.Descriptor, extension.SingularToReflectionType(value));
- return this;
+ return ThisBuilder;
}
/// <summary>
/// Clears an extension.
/// </summary>
- public ExtendableBuilder<TMessage, TBuilder> ClearExtension<TExtension>(GeneratedExtensionBase<TExtension> extension) {
+ public TBuilder ClearExtension<TExtension>(GeneratedExtensionBase<TExtension> extension) {
ExtendableMessage<TMessage, TBuilder> message = MessageBeingBuilt;
message.VerifyExtensionContainingType(extension);
message.Extensions.ClearField(extension.Descriptor);
- return this;
+ return ThisBuilder;
}
/// <summary>
diff --git a/src/ProtocolBuffers/ExtendableBuilderLite.cs b/src/ProtocolBuffers/ExtendableBuilderLite.cs
new file mode 100644
index 00000000..b3d37eda
--- /dev/null
+++ b/src/ProtocolBuffers/ExtendableBuilderLite.cs
@@ -0,0 +1,262 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers {
+ public abstract class ExtendableBuilderLite<TMessage, TBuilder> : GeneratedBuilderLite<TMessage, TBuilder>
+ where TMessage : ExtendableMessageLite<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilderLite<TMessage, TBuilder> {
+
+ protected ExtendableBuilderLite() { }
+
+ /// <summary>
+ /// Checks if a singular extension is present
+ /// </summary>
+ public bool HasExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension) {
+ return MessageBeingBuilt.HasExtension(extension);
+ }
+
+ /// <summary>
+ /// Returns the number of elements in a repeated extension.
+ /// </summary>
+ public int GetExtensionCount<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension) {
+ return MessageBeingBuilt.GetExtensionCount(extension);
+ }
+
+ /// <summary>
+ /// Returns the value of an extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension) {
+ return MessageBeingBuilt.GetExtension(extension);
+ }
+
+ /// <summary>
+ /// Returns one element of a repeated extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension, int index) {
+ return MessageBeingBuilt.GetExtension(extension, index);
+ }
+
+ /// <summary>
+ /// Sets the value of an extension.
+ /// </summary>
+ public TBuilder SetExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension, TExtension value) {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions[extension.Descriptor] = extension.ToReflectionType(value);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Sets the value of one element of a repeated extension.
+ /// </summary>
+ public TBuilder SetExtension<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension, int index, TExtension value) {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions[extension.Descriptor, index] = extension.SingularToReflectionType(value);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Appends a value to a repeated extension.
+ /// </summary>
+ public TBuilder AddExtension<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension, TExtension value) {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions.AddRepeatedField(extension.Descriptor, extension.SingularToReflectionType(value));
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Clears an extension.
+ /// </summary>
+ public TBuilder ClearExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension) {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.VerifyExtensionContainingType(extension);
+ message.Extensions.ClearField(extension.Descriptor);
+ return ThisBuilder;
+ }
+
+ /// <summary>
+ /// Called by subclasses to parse an unknown field or an extension.
+ /// </summary>
+ /// <returns>true unless the tag is an end-group tag</returns>
+ [CLSCompliant(false)]
+ protected override bool ParseUnknownField(CodedInputStream input,
+ ExtensionRegistry extensionRegistry, uint tag) {
+ FieldSet extensions = MessageBeingBuilt.Extensions;
+
+ WireFormat.WireType wireType = WireFormat.GetTagWireType(tag);
+ int fieldNumber = WireFormat.GetTagFieldNumber(tag);
+ IGeneratedExtensionLite extension = extensionRegistry[DefaultInstanceForType, fieldNumber];
+
+ bool unknown = false;
+ bool packed = false;
+ if (extension == null) {
+ unknown = true; // Unknown field.
+ } else if (wireType == FieldMappingAttribute.WireTypeFromFieldType(extension.Descriptor.FieldType, false /* isPacked */)) {
+ packed = false; // Normal, unpacked value.
+ } else if (extension.Descriptor.IsRepeated &&
+ //?? just returns true ?? extension.Descriptor.type.isPackable() &&
+ wireType == FieldMappingAttribute.WireTypeFromFieldType(extension.Descriptor.FieldType, true /* isPacked */)) {
+ packed = true; // Packed value.
+ } else {
+ unknown = true; // Wrong wire type.
+ }
+
+ if (unknown) { // Unknown field or wrong wire type. Skip.
+ return input.SkipField(tag);
+ }
+
+ if (packed) {
+ int length = (int)Math.Min(int.MaxValue, input.ReadRawVarint32());
+ int limit = input.PushLimit(length);
+ if (extension.Descriptor.FieldType == FieldType.Enum) {
+ while (!input.ReachedLimit) {
+ int rawValue = input.ReadEnum();
+ Object value =
+ extension.Descriptor.EnumType.FindValueByNumber(rawValue);
+ if (value == null) {
+ // If the number isn't recognized as a valid value for this
+ // enum, drop it (don't even add it to unknownFields).
+ return true;
+ }
+ extensions.AddRepeatedField(extension.Descriptor, value);
+ }
+ } else {
+ while (!input.ReachedLimit) {
+ Object value = input.ReadPrimitiveField(extension.Descriptor.FieldType);
+ extensions.AddRepeatedField(extension.Descriptor, value);
+ }
+ }
+ input.PopLimit(limit);
+ } else {
+ Object value;
+ switch (extension.Descriptor.MappedType) {
+ case MappedType.Message: {
+ IBuilderLite subBuilder = null;
+ if (!extension.Descriptor.IsRepeated) {
+ IMessageLite existingValue = extensions[extension.Descriptor] as IMessageLite;
+ if (existingValue != null) {
+ subBuilder = existingValue.WeakToBuilder();
+ }
+ }
+ if (subBuilder == null) {
+ subBuilder = extension.MessageDefaultInstance.WeakCreateBuilderForType();
+ }
+ if (extension.Descriptor.FieldType == FieldType.Group) {
+ input.ReadGroup(extension.Number, subBuilder, extensionRegistry);
+ } else {
+ input.ReadMessage(subBuilder, extensionRegistry);
+ }
+ value = subBuilder.WeakBuild();
+ break;
+ }
+ case MappedType.Enum:
+ int rawValue = input.ReadEnum();
+ value = extension.Descriptor.EnumType.FindValueByNumber(rawValue);
+ // If the number isn't recognized as a valid value for this enum,
+ // drop it.
+ if (value == null) {
+ return true;
+ }
+ break;
+ default:
+ value = input.ReadPrimitiveField(extension.Descriptor.FieldType);
+ break;
+ }
+
+ if (extension.Descriptor.IsRepeated) {
+ extensions.AddRepeatedField(extension.Descriptor, value);
+ } else {
+ extensions[extension.Descriptor] = value;
+ }
+ }
+
+ return true;
+ }
+
+ #region Reflection
+
+ public object this[IFieldDescriptorLite field, int index] {
+ set {
+ if (field.IsExtension) {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.Extensions[field, index] = value;
+ } else {
+ throw new NotSupportedException("Not supported in the lite runtime.");
+ }
+ }
+ }
+
+ public object this[IFieldDescriptorLite field] {
+ set {
+ if (field.IsExtension) {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.Extensions[field] = value;
+ } else {
+ throw new NotSupportedException("Not supported in the lite runtime.");
+ }
+ }
+ }
+
+ public TBuilder ClearField(IFieldDescriptorLite field) {
+ if (field.IsExtension) {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.Extensions.ClearField(field);
+ return ThisBuilder;
+ } else {
+ throw new NotSupportedException("Not supported in the lite runtime.");
+ }
+ }
+
+ public TBuilder AddRepeatedField(IFieldDescriptorLite field, object value) {
+ if (field.IsExtension) {
+ ExtendableMessageLite<TMessage, TBuilder> message = MessageBeingBuilt;
+ message.Extensions.AddRepeatedField(field, value);
+ return ThisBuilder;
+ } else {
+ throw new NotSupportedException("Not supported in the lite runtime.");
+ }
+ }
+
+ protected void MergeExtensionFields(ExtendableMessageLite<TMessage, TBuilder> other) {
+ MessageBeingBuilt.Extensions.MergeFrom(other.Extensions);
+ }
+ #endregion
+ }
+}
diff --git a/src/ProtocolBuffers/ExtendableMessage.cs b/src/ProtocolBuffers/ExtendableMessage.cs
index 4450f4f9..c67b5a1d 100644
--- a/src/ProtocolBuffers/ExtendableMessage.cs
+++ b/src/ProtocolBuffers/ExtendableMessage.cs
@@ -102,8 +102,8 @@ namespace Google.ProtocolBuffers {
public override IDictionary<FieldDescriptor, object> AllFields {
get {
IDictionary<FieldDescriptor, object> result = GetMutableFieldMap();
- foreach(KeyValuePair<FieldDescriptor, object> entry in extensions.AllFields) {
- result[entry.Key] = entry.Value;
+ foreach(KeyValuePair<IFieldDescriptorLite, object> entry in extensions.AllFields) {
+ result[(FieldDescriptor)entry.Key] = entry.Value;
}
return Dictionaries.AsReadOnly(result);
}
@@ -173,9 +173,9 @@ namespace Google.ProtocolBuffers {
/// TODO(jonskeet): See if we can improve this in terms of readability.
/// </summary>
protected class ExtensionWriter {
- readonly IEnumerator<KeyValuePair<FieldDescriptor, object>> iterator;
+ readonly IEnumerator<KeyValuePair<IFieldDescriptorLite, object>> iterator;
readonly FieldSet extensions;
- KeyValuePair<FieldDescriptor, object>? next = null;
+ KeyValuePair<IFieldDescriptorLite, object>? next = null;
internal ExtensionWriter(ExtendableMessage<TMessage, TBuilder> message) {
extensions = message.extensions;
diff --git a/src/ProtocolBuffers/ExtendableMessageLite.cs b/src/ProtocolBuffers/ExtendableMessageLite.cs
new file mode 100644
index 00000000..aed8545d
--- /dev/null
+++ b/src/ProtocolBuffers/ExtendableMessageLite.cs
@@ -0,0 +1,184 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Collections;
+
+namespace Google.ProtocolBuffers {
+ public abstract class ExtendableMessageLite<TMessage, TBuilder> : GeneratedMessageLite<TMessage, TBuilder>
+ where TMessage : GeneratedMessageLite<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilderLite<TMessage, TBuilder> {
+
+ protected ExtendableMessageLite() { }
+ private readonly FieldSet extensions = FieldSet.CreateInstance();
+
+ /// <summary>
+ /// Access for the builder.
+ /// </summary>
+ internal FieldSet Extensions {
+ get { return extensions; }
+ }
+
+ public override bool Equals(object obj) {
+ ExtendableMessageLite<TMessage, TBuilder> other = obj as ExtendableMessageLite<TMessage, TBuilder>;
+ return !ReferenceEquals(null, other) &&
+ Dictionaries.Equals(extensions.AllFields, other.extensions.AllFields);
+ }
+
+ public override int GetHashCode() {
+ return Dictionaries.GetHashCode(extensions.AllFields);
+ }
+
+ /// <summary>
+ /// writes the extensions to the text stream
+ /// </summary>
+ public override void PrintTo(System.IO.TextWriter writer) {
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in extensions.AllFields) {
+ string fn = string.Format("[{0}]", entry.Key.FullName);
+ if (entry.Key.IsRepeated) {
+ foreach (object o in ((IEnumerable)entry.Value))
+ PrintField(fn, true, o, writer);
+ } else {
+ PrintField(fn, true, entry.Value, writer);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Checks if a singular extension is present.
+ /// </summary>
+ public bool HasExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension) {
+ VerifyExtensionContainingType(extension);
+ return extensions.HasField(extension.Descriptor);
+ }
+
+ /// <summary>
+ /// Returns the number of elements in a repeated extension.
+ /// </summary>
+ public int GetExtensionCount<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension) {
+ VerifyExtensionContainingType(extension);
+ return extensions.GetRepeatedFieldCount(extension.Descriptor);
+ }
+
+ /// <summary>
+ /// Returns the value of an extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension) {
+ VerifyExtensionContainingType(extension);
+ object value = extensions[extension.Descriptor];
+ if (value == null) {
+ return extension.DefaultValue;
+ } else {
+ return (TExtension)extension.FromReflectionType(value);
+ }
+ }
+
+ /// <summary>
+ /// Returns one element of a repeated extension.
+ /// </summary>
+ public TExtension GetExtension<TExtension>(GeneratedExtensionLite<TMessage, IList<TExtension>> extension, int index) {
+ VerifyExtensionContainingType(extension);
+ return (TExtension)extension.SingularFromReflectionType(extensions[extension.Descriptor, index]);
+ }
+
+ /// <summary>
+ /// Called to check if all extensions are initialized.
+ /// </summary>
+ protected bool ExtensionsAreInitialized {
+ get { return extensions.IsInitialized; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return ExtensionsAreInitialized;
+ }
+ }
+
+ /// <summary>
+ /// Used by subclasses to serialize extensions. Extension ranges may be
+ /// interleaves with field numbers, but we must write them in canonical
+ /// (sorted by field number) order. This class helps us to write individual
+ /// ranges of extensions at once.
+ ///
+ /// TODO(jonskeet): See if we can improve this in terms of readability.
+ /// </summary>
+ protected class ExtensionWriter {
+ readonly IEnumerator<KeyValuePair<IFieldDescriptorLite, object>> iterator;
+ readonly FieldSet extensions;
+ KeyValuePair<IFieldDescriptorLite, object>? next = null;
+
+ internal ExtensionWriter(ExtendableMessageLite<TMessage, TBuilder> message) {
+ extensions = message.extensions;
+ iterator = message.extensions.GetEnumerator();
+ if (iterator.MoveNext()) {
+ next = iterator.Current;
+ }
+ }
+
+ public void WriteUntil(int end, CodedOutputStream output) {
+ while (next != null && next.Value.Key.FieldNumber < end) {
+ extensions.WriteField(next.Value.Key, next.Value.Value, output);
+ if (iterator.MoveNext()) {
+ next = iterator.Current;
+ } else {
+ next = null;
+ }
+ }
+ }
+ }
+
+ protected ExtensionWriter CreateExtensionWriter(ExtendableMessageLite<TMessage, TBuilder> message) {
+ return new ExtensionWriter(message);
+ }
+
+ /// <summary>
+ /// Called by subclasses to compute the size of extensions.
+ /// </summary>
+ protected int ExtensionsSerializedSize {
+ get { return extensions.SerializedSize; }
+ }
+
+ internal void VerifyExtensionContainingType<TExtension>(GeneratedExtensionLite<TMessage, TExtension> extension) {
+ if (!ReferenceEquals(extension.ContainingTypeDefaultInstance, DefaultInstanceForType)) {
+ // This can only happen if someone uses unchecked operations.
+ throw new ArgumentException(
+ String.Format("Extension is for type \"{0}\" which does not match message type \"{1}\".",
+ extension.ContainingTypeDefaultInstance, DefaultInstanceForType
+ ));
+ }
+ }
+ }
+}
diff --git a/src/ProtocolBuffers/ExtensionInfo.cs b/src/ProtocolBuffers/ExtensionInfo.cs
index 4c877ab8..5d99b8ff 100644
--- a/src/ProtocolBuffers/ExtensionInfo.cs
+++ b/src/ProtocolBuffers/ExtensionInfo.cs
@@ -36,24 +36,42 @@ using Google.ProtocolBuffers.Descriptors;
namespace Google.ProtocolBuffers
{
- public sealed class ExtensionInfo {
+ public sealed class ExtensionInfo : IGeneratedExtensionLite {
/// <summary>
/// The extension's descriptor
/// </summary>
public FieldDescriptor Descriptor { get; private set; }
- /// <summary>
+ IFieldDescriptorLite IGeneratedExtensionLite.Descriptor { get { return Descriptor; } }
+
+ /// <summary>
/// A default instance of the extensions's type, if it has a message type,
/// or null otherwise.
/// </summary>
- public IMessage DefaultInstance { get; private set; }
+ public IMessageLite DefaultInstance { get; private set; }
internal ExtensionInfo(FieldDescriptor descriptor) : this(descriptor, null) {
}
- internal ExtensionInfo(FieldDescriptor descriptor, IMessage defaultInstance) {
+ internal ExtensionInfo(FieldDescriptor descriptor, IMessageLite defaultInstance) {
Descriptor = descriptor;
DefaultInstance = defaultInstance;
}
+
+ #region IGeneratedExtensionLite Members
+
+ int IGeneratedExtensionLite.Number {
+ get { return Descriptor.FieldNumber; }
+ }
+
+ object IGeneratedExtensionLite.ContainingType {
+ get { return Descriptor; }
+ }
+
+ IMessageLite IGeneratedExtensionLite.MessageDefaultInstance {
+ get { return DefaultInstance; }
+ }
+
+ #endregion
}
} \ No newline at end of file
diff --git a/src/ProtocolBuffers/ExtensionRegistry.cs b/src/ProtocolBuffers/ExtensionRegistry.cs
index 154b6902..b7690731 100644
--- a/src/ProtocolBuffers/ExtensionRegistry.cs
+++ b/src/ProtocolBuffers/ExtensionRegistry.cs
@@ -88,23 +88,20 @@ namespace Google.ProtocolBuffers {
/// could take advantage of this to inject a mutable object into a message
/// belonging to privileged code and create mischief.</para>
/// </remarks>
- public sealed class ExtensionRegistry {
-
+ public sealed partial class ExtensionRegistry {
+#if !LITE
private static readonly ExtensionRegistry empty = new ExtensionRegistry(
new Dictionary<string, ExtensionInfo>(),
- new Dictionary<DescriptorIntPair, ExtensionInfo>(),
+ new Dictionary<ExtensionIntPair, IGeneratedExtensionLite>(),
true);
private readonly IDictionary<string, ExtensionInfo> extensionsByName;
- private readonly IDictionary<DescriptorIntPair, ExtensionInfo> extensionsByNumber;
- private readonly bool readOnly;
private ExtensionRegistry(IDictionary<String, ExtensionInfo> extensionsByName,
- IDictionary<DescriptorIntPair, ExtensionInfo> extensionsByNumber,
- bool readOnly) {
+ IDictionary<ExtensionIntPair, IGeneratedExtensionLite> extensionsByNumber,
+ bool readOnly)
+ : this(extensionsByNumber, readOnly) {
this.extensionsByName = extensionsByName;
- this.extensionsByNumber = extensionsByNumber;
- this.readOnly = readOnly;
}
/// <summary>
@@ -112,19 +109,13 @@ namespace Google.ProtocolBuffers {
/// </summary>
public static ExtensionRegistry CreateInstance() {
return new ExtensionRegistry(new Dictionary<string, ExtensionInfo>(),
- new Dictionary<DescriptorIntPair, ExtensionInfo>(), false);
- }
-
- /// <summary>
- /// Get the unmodifiable singleton empty instance.
- /// </summary>
- public static ExtensionRegistry Empty {
- get { return empty; }
+ new Dictionary<ExtensionIntPair, IGeneratedExtensionLite>(), false);
}
public ExtensionRegistry AsReadOnly() {
return new ExtensionRegistry(extensionsByName, extensionsByNumber, true);
}
+#endif
/// <summary>
/// Finds an extension by fully-qualified field name, in the
@@ -146,9 +137,9 @@ namespace Google.ProtocolBuffers {
/// </summary>
public ExtensionInfo this[MessageDescriptor containingType, int fieldNumber] {
get {
- ExtensionInfo ret;
- extensionsByNumber.TryGetValue(new DescriptorIntPair(containingType, fieldNumber), out ret);
- return ret;
+ IGeneratedExtensionLite ret;
+ extensionsByNumber.TryGetValue(new ExtensionIntPair(containingType, fieldNumber), out ret);
+ return ret as ExtensionInfo;
}
}
@@ -198,7 +189,7 @@ namespace Google.ProtocolBuffers {
}
extensionsByName[extension.Descriptor.FullName] = extension;
- extensionsByNumber[new DescriptorIntPair(extension.Descriptor.ContainingType,
+ extensionsByNumber[new ExtensionIntPair(extension.Descriptor.ContainingType,
extension.Descriptor.FieldNumber)] = extension;
FieldDescriptor field = extension.Descriptor;
@@ -212,34 +203,5 @@ namespace Google.ProtocolBuffers {
extensionsByName[field.MessageType.FullName] = extension;
}
}
-
- /// <summary>
- /// Nested type just used to represent a pair of MessageDescriptor and int, as
- /// the key into the "by number" map.
- /// </summary>
- private struct DescriptorIntPair : IEquatable<DescriptorIntPair> {
- readonly MessageDescriptor descriptor;
- readonly int number;
-
- internal DescriptorIntPair(MessageDescriptor descriptor, int number) {
- this.descriptor = descriptor;
- this.number = number;
- }
-
- public override int GetHashCode() {
- return descriptor.GetHashCode() * ((1 << 16) - 1) + number;
- }
-
- public override bool Equals(object obj) {
- if (!(obj is DescriptorIntPair)) {
- return false;
- }
- return Equals((DescriptorIntPair)obj);
- }
-
- public bool Equals(DescriptorIntPair other) {
- return descriptor == other.descriptor && number == other.number;
- }
- }
}
}
diff --git a/src/ProtocolBuffers/ExtensionRegistryLite.cs b/src/ProtocolBuffers/ExtensionRegistryLite.cs
new file mode 100644
index 00000000..8e420a81
--- /dev/null
+++ b/src/ProtocolBuffers/ExtensionRegistryLite.cs
@@ -0,0 +1,179 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System.Collections.Generic;
+using System;
+
+namespace Google.ProtocolBuffers {
+
+ /// <summary>
+ /// A table of known extensions, searchable by name or field number. When
+ /// parsing a protocol message that might have extensions, you must provide
+ /// an <see cref="ExtensionRegistry"/> in which you have registered any extensions
+ /// that you want to be able to parse. Otherwise, those extensions will just
+ /// be treated like unknown fields.
+ /// </summary>
+ /// <example>
+ /// For example, if you had the <c>.proto</c> file:
+ /// <code>
+ /// option java_class = "MyProto";
+ ///
+ /// message Foo {
+ /// extensions 1000 to max;
+ /// }
+ ///
+ /// extend Foo {
+ /// optional int32 bar;
+ /// }
+ /// </code>
+ ///
+ /// Then you might write code like:
+ ///
+ /// <code>
+ /// extensionRegistry registry = extensionRegistry.CreateInstance();
+ /// registry.Add(MyProto.Bar);
+ /// MyProto.Foo message = MyProto.Foo.ParseFrom(input, registry);
+ /// </code>
+ /// </example>
+ ///
+ /// <remarks>
+ /// <para>You might wonder why this is necessary. Two alternatives might come to
+ /// mind. First, you might imagine a system where generated extensions are
+ /// automatically registered when their containing classes are loaded. This
+ /// is a popular technique, but is bad design; among other things, it creates a
+ /// situation where behavior can change depending on what classes happen to be
+ /// loaded. It also introduces a security vulnerability, because an
+ /// unprivileged class could cause its code to be called unexpectedly from a
+ /// privileged class by registering itself as an extension of the right type.
+ /// </para>
+ /// <para>Another option you might consider is lazy parsing: do not parse an
+ /// extension until it is first requested, at which point the caller must
+ /// provide a type to use. This introduces a different set of problems. First,
+ /// it would require a mutex lock any time an extension was accessed, which
+ /// would be slow. Second, corrupt data would not be detected until first
+ /// access, at which point it would be much harder to deal with it. Third, it
+ /// could violate the expectation that message objects are immutable, since the
+ /// type provided could be any arbitrary message class. An unprivileged user
+ /// could take advantage of this to inject a mutable object into a message
+ /// belonging to privileged code and create mischief.</para>
+ /// </remarks>
+ public sealed partial class ExtensionRegistry {
+ private readonly IDictionary<ExtensionIntPair, IGeneratedExtensionLite> extensionsByNumber;
+ private readonly bool readOnly;
+
+ private ExtensionRegistry(IDictionary<ExtensionIntPair, IGeneratedExtensionLite> extensionsByNumber,
+ bool readOnly) {
+ this.extensionsByNumber = extensionsByNumber;
+ this.readOnly = readOnly;
+ }
+
+#if LITE
+ private static readonly ExtensionRegistry empty = new ExtensionRegistry(
+ new Dictionary<ExtensionIntPair, IGeneratedExtensionLite>(),
+ true);
+
+ /// <summary>
+ /// Construct a new, empty instance.
+ /// </summary>
+ public static ExtensionRegistry CreateInstance() {
+ return new ExtensionRegistry(
+ new Dictionary<ExtensionIntPair, IGeneratedExtensionLite>(), false);
+ }
+ public ExtensionRegistry AsReadOnly() {
+ return new ExtensionRegistry(extensionsByNumber, true);
+ }
+
+#endif
+
+ /// <summary>
+ /// Get the unmodifiable singleton empty instance.
+ /// </summary>
+ public static ExtensionRegistry Empty {
+ get { return empty; }
+ }
+
+ /// <summary>
+ /// Finds an extension by containing type and field number.
+ /// A null reference is returned if the extension can't be found.
+ /// </summary>
+ public IGeneratedExtensionLite this[IMessageLite containingType, int fieldNumber] {
+ get {
+ IGeneratedExtensionLite ret;
+ extensionsByNumber.TryGetValue(new ExtensionIntPair(containingType, fieldNumber), out ret);
+ return ret;
+ }
+ }
+
+ /// <summary>
+ /// Add an extension from a generated file to the registry.
+ /// </summary>
+ public void Add(IGeneratedExtensionLite extension) {
+ if (readOnly) {
+ throw new InvalidOperationException("Cannot add entries to a read-only extension registry");
+ }
+ extensionsByNumber.Add(
+ new ExtensionIntPair(extension.ContainingType, extension.Number),
+ extension);
+ }
+
+ /// <summary>
+ /// Nested type just used to represent a pair of MessageDescriptor and int, as
+ /// the key into the "by number" map.
+ /// </summary>
+ private struct ExtensionIntPair : IEquatable<ExtensionIntPair> {
+ readonly object msgType;
+ readonly int number;
+
+ internal ExtensionIntPair(object msgType, int number) {
+ this.msgType = msgType;
+ this.number = number;
+ }
+
+ public override int GetHashCode() {
+ return msgType.GetHashCode() * ((1 << 16) - 1) + number;
+ }
+
+ public override bool Equals(object obj) {
+ if (!(obj is ExtensionIntPair)) {
+ return false;
+ }
+ return Equals((ExtensionIntPair)obj);
+ }
+
+ public bool Equals(ExtensionIntPair other) {
+ return msgType.Equals(other.msgType) && number == other.number;
+ }
+ }
+ }
+}
diff --git a/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs b/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs
index 893b0285..df6680cb 100644
--- a/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs
+++ b/src/ProtocolBuffers/FieldAccess/RepeatedMessageAccessor.cs
@@ -71,7 +71,7 @@ namespace Google.ProtocolBuffers.FieldAccess {
}
// No... so let's create a builder of the right type, and merge the value in.
- IMessage message = (IMessage) value;
+ IMessageLite message = (IMessageLite) value;
return CreateBuilder().WeakMergeFrom(message).WeakBuild();
}
diff --git a/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs b/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs
index ea422c94..838bc5a2 100644
--- a/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs
+++ b/src/ProtocolBuffers/FieldAccess/SingleMessageAccessor.cs
@@ -67,7 +67,7 @@ namespace Google.ProtocolBuffers.FieldAccess {
}
// No... so let's create a builder of the right type, and merge the value in.
- IMessage message = (IMessage) value;
+ IMessageLite message = (IMessageLite) value;
return CreateBuilder().WeakMergeFrom(message).WeakBuild();
}
diff --git a/src/ProtocolBuffers/FieldSet.cs b/src/ProtocolBuffers/FieldSet.cs
index 7c373b95..c3e3d740 100644
--- a/src/ProtocolBuffers/FieldSet.cs
+++ b/src/ProtocolBuffers/FieldSet.cs
@@ -39,6 +39,21 @@ using Google.ProtocolBuffers.Collections;
using Google.ProtocolBuffers.Descriptors;
namespace Google.ProtocolBuffers {
+
+ public interface IFieldDescriptorLite : IComparable<IFieldDescriptorLite> {
+ bool IsRepeated { get; }
+ bool IsRequired { get; }
+ bool IsPacked { get; }
+ bool IsExtension { get; }
+ bool MessageSetWireFormat { get; } //field.ContainingType.Options.MessageSetWireFormat
+ int FieldNumber { get; }
+ string FullName { get; }
+ IEnumLiteMap EnumType { get; }
+ FieldType FieldType { get; }
+ MappedType MappedType { get; }
+ object DefaultValue { get; }
+ }
+
/// <summary>
/// A class which represents an arbitrary set of fields of some message type.
/// This is used to implement DynamicMessage, and also to represent extensions
@@ -56,17 +71,17 @@ namespace Google.ProtocolBuffers {
/// </summary>
internal sealed class FieldSet {
- private static readonly FieldSet defaultInstance = new FieldSet(new Dictionary<FieldDescriptor, object>()).MakeImmutable();
+ private static readonly FieldSet defaultInstance = new FieldSet(new Dictionary<IFieldDescriptorLite, object>()).MakeImmutable();
- private IDictionary<FieldDescriptor, object> fields;
+ private IDictionary<IFieldDescriptorLite, object> fields;
- private FieldSet(IDictionary<FieldDescriptor, object> fields) {
+ private FieldSet(IDictionary<IFieldDescriptorLite, object> fields) {
this.fields = fields;
}
public static FieldSet CreateInstance() {
// Use SortedList to keep fields in the canonical order
- return new FieldSet(new SortedList<FieldDescriptor, object>());
+ return new FieldSet(new SortedList<IFieldDescriptorLite, object>());
}
/// <summary>
@@ -85,8 +100,8 @@ namespace Google.ProtocolBuffers {
}
if (hasRepeats) {
- var tmp = new SortedList<FieldDescriptor, object>();
- foreach (KeyValuePair<FieldDescriptor, object> entry in fields) {
+ var tmp = new SortedList<IFieldDescriptorLite, object>();
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields) {
IList<object> list = entry.Value as IList<object>;
tmp[entry.Key] = list == null ? entry.Value : Lists.AsReadOnly(list);
}
@@ -110,14 +125,26 @@ namespace Google.ProtocolBuffers {
/// is immutable, the entries may not be (i.e. any repeated values are represented by
/// mutable lists). The behaviour is not specified if the contents are mutated.
/// </summary>
- internal IDictionary<FieldDescriptor, object> AllFields {
+ internal IDictionary<IFieldDescriptorLite, object> AllFields {
get { return Dictionaries.AsReadOnly(fields); }
}
-
+#if !LITE
+ /// <summary>
+ /// Force coercion to full descriptor dictionary.
+ /// </summary>
+ internal IDictionary<Descriptors.FieldDescriptor, object> AllFieldDescriptors {
+ get {
+ SortedList<Descriptors.FieldDescriptor, object> copy = new SortedList<Google.ProtocolBuffers.Descriptors.FieldDescriptor, object>();
+ foreach (KeyValuePair<IFieldDescriptorLite, object> fd in fields)
+ copy.Add((Descriptors.FieldDescriptor)fd.Key, fd.Value);
+ return Dictionaries.AsReadOnly(copy);
+ }
+ }
+#endif
/// <summary>
- /// See <see cref="IMessage.HasField"/>.
+ /// See <see cref="IMessageLite.HasField"/>.
/// </summary>
- public bool HasField(FieldDescriptor field) {
+ public bool HasField(IFieldDescriptorLite field) {
if (field.IsRepeated) {
throw new ArgumentException("HasField() can only be called on non-repeated fields.");
}
@@ -133,7 +160,7 @@ namespace Google.ProtocolBuffers {
}
/// <summary>
- /// See <see cref="IMessage.Item(FieldDescriptor)"/>
+ /// See <see cref="IMessageLite.Item(IFieldDescriptorLite)"/>
/// </summary>
/// <remarks>
/// If the field is not set, the behaviour when fetching this property varies by field type:
@@ -153,7 +180,7 @@ namespace Google.ProtocolBuffers {
/// to ensure it is of an appropriate type.
/// </remarks>
///
- internal object this[FieldDescriptor field] {
+ internal object this[IFieldDescriptorLite field] {
get {
object result;
if (fields.TryGetValue(field, out result)) {
@@ -191,9 +218,9 @@ namespace Google.ProtocolBuffers {
}
/// <summary>
- /// See <see cref="IMessage.Item(FieldDescriptor,int)" />
+ /// See <see cref="IMessageLite.Item(IFieldDescriptorLite,int)" />
/// </summary>
- internal object this[FieldDescriptor field, int index] {
+ internal object this[IFieldDescriptorLite field, int index] {
get {
if (!field.IsRepeated) {
throw new ArgumentException("Indexer specifying field and index can only be called on repeated fields.");
@@ -217,7 +244,7 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// See <see cref="IBuilder{TMessage, TBuilder}.AddRepeatedField" />
/// </summary>
- internal void AddRepeatedField(FieldDescriptor field, object value) {
+ internal void AddRepeatedField(IFieldDescriptorLite field, object value) {
if (!field.IsRepeated) {
throw new ArgumentException("AddRepeatedField can only be called on repeated fields.");
}
@@ -233,12 +260,12 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Returns an enumerator for the field map. Used to write the fields out.
/// </summary>
- internal IEnumerator<KeyValuePair<FieldDescriptor, object>> GetEnumerator() {
+ internal IEnumerator<KeyValuePair<IFieldDescriptorLite, object>> GetEnumerator() {
return fields.GetEnumerator();
}
/// <summary>
- /// See <see cref="IMessage.IsInitialized" />
+ /// See <see cref="IMessageLite.IsInitialized" />
/// </summary>
/// <remarks>
/// Since FieldSet itself does not have any way of knowing about
@@ -248,17 +275,17 @@ namespace Google.ProtocolBuffers {
/// </remarks>
internal bool IsInitialized {
get {
- foreach (KeyValuePair<FieldDescriptor, object> entry in fields) {
- FieldDescriptor field = entry.Key;
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields) {
+ IFieldDescriptorLite field = entry.Key;
if (field.MappedType == MappedType.Message) {
if (field.IsRepeated) {
- foreach(IMessage message in (IEnumerable) entry.Value) {
+ foreach(IMessageLite message in (IEnumerable) entry.Value) {
if (!message.IsInitialized) {
return false;
}
}
} else {
- if (!((IMessage) entry.Value).IsInitialized) {
+ if (!((IMessageLite)entry.Value).IsInitialized) {
return false;
}
}
@@ -273,8 +300,8 @@ namespace Google.ProtocolBuffers {
/// descriptor are present in this field set, as well as whether
/// all the embedded messages are themselves initialized.
/// </summary>
- internal bool IsInitializedWithRespectTo(MessageDescriptor type) {
- foreach (FieldDescriptor field in type.Fields) {
+ internal bool IsInitializedWithRespectTo(IEnumerable typeFields) {
+ foreach (IFieldDescriptorLite field in typeFields) {
if (field.IsRequired && !HasField(field)) {
return false;
}
@@ -285,14 +312,14 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// See <see cref="IBuilder{TMessage, TBuilder}.ClearField" />
/// </summary>
- public void ClearField(FieldDescriptor field) {
+ public void ClearField(IFieldDescriptorLite field) {
fields.Remove(field);
}
/// <summary>
- /// See <see cref="IMessage.GetRepeatedFieldCount" />
+ /// See <see cref="IMessageLite.GetRepeatedFieldCount" />
/// </summary>
- public int GetRepeatedFieldCount(FieldDescriptor field) {
+ public int GetRepeatedFieldCount(IFieldDescriptorLite field) {
if (!field.IsRepeated) {
throw new ArgumentException("GetRepeatedFieldCount() can only be called on repeated fields.");
}
@@ -300,64 +327,63 @@ namespace Google.ProtocolBuffers {
return ((IList<object>) this[field]).Count;
}
+#if !LITE
+ /// <summary>
+ /// See <see cref="IBuilder{TMessage, TBuilder}.MergeFrom(IMessageLite)" />
+ /// </summary>
+ public void MergeFrom(IMessage other) {
+ foreach (KeyValuePair<Descriptors.FieldDescriptor, object> fd in other.AllFields)
+ MergeField(fd.Key, fd.Value);
+ }
+#endif
+
/// <summary>
/// Implementation of both <c>MergeFrom</c> methods.
/// </summary>
/// <param name="otherFields"></param>
- private void MergeFields(IEnumerable<KeyValuePair<FieldDescriptor, object>> otherFields) {
+ public void MergeFrom(FieldSet other) {
// Note: We don't attempt to verify that other's fields have valid
// types. Doing so would be a losing battle. We'd have to verify
// all sub-messages as well, and we'd have to make copies of all of
// them to insure that they don't change after verification (since
- // the IMessage interface itself cannot enforce immutability of
+ // the IMessageLite interface itself cannot enforce immutability of
// implementations).
// TODO(jonskeet): Provide a function somewhere called MakeDeepCopy()
// which allows people to make secure deep copies of messages.
- foreach (KeyValuePair<FieldDescriptor, object> entry in otherFields) {
- FieldDescriptor field = entry.Key;
- object existingValue;
- fields.TryGetValue(field, out existingValue);
- if (field.IsRepeated) {
- if (existingValue == null) {
- existingValue = new List<object>();
- fields[field] = existingValue;
- }
- IList<object> list = (IList<object>) existingValue;
- foreach (object otherValue in (IEnumerable) entry.Value) {
- list.Add(otherValue);
- }
- } else if (field.MappedType == MappedType.Message && existingValue != null) {
- IMessage existingMessage = (IMessage)existingValue;
- IMessage merged = existingMessage.WeakToBuilder()
- .WeakMergeFrom((IMessage) entry.Value)
- .WeakBuild();
- this[field] = merged;
- } else {
- this[field] = entry.Value;
- }
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in other.fields) {
+ MergeField(entry.Key, entry.Value);
}
}
- /// <summary>
- /// See <see cref="IBuilder{TMessage, TBuilder}.MergeFrom(IMessage)" />
- /// </summary>
- public void MergeFrom(IMessage other) {
- MergeFields(other.AllFields);
- }
-
- /// <summary>
- /// Like <see cref="MergeFrom(IMessage)"/>, but merges from another <c>FieldSet</c>.
- /// </summary>
- public void MergeFrom(FieldSet other) {
- MergeFields(other.fields);
+ private void MergeField(IFieldDescriptorLite field, object mergeValue) {
+ object existingValue;
+ fields.TryGetValue(field, out existingValue);
+ if (field.IsRepeated) {
+ if (existingValue == null) {
+ existingValue = new List<object>();
+ fields[field] = existingValue;
+ }
+ IList<object> list = (IList<object>) existingValue;
+ foreach (object otherValue in (IEnumerable)mergeValue) {
+ list.Add(otherValue);
+ }
+ } else if (field.MappedType == MappedType.Message && existingValue != null) {
+ IMessageLite existingMessage = (IMessageLite)existingValue;
+ IMessageLite merged = existingMessage.WeakToBuilder()
+ .WeakMergeFrom((IMessageLite)mergeValue)
+ .WeakBuild();
+ this[field] = merged;
+ } else {
+ this[field] = mergeValue;
+ }
}
/// <summary>
- /// See <see cref="IMessage.WriteTo(CodedOutputStream)" />.
+ /// See <see cref="IMessageLite.WriteTo(CodedOutputStream)" />.
/// </summary>
public void WriteTo(CodedOutputStream output) {
- foreach (KeyValuePair<FieldDescriptor, object> entry in fields) {
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields) {
WriteField(entry.Key, entry.Value, output);
}
}
@@ -365,9 +391,9 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Writes a single field to a CodedOutputStream.
/// </summary>
- public void WriteField(FieldDescriptor field, Object value, CodedOutputStream output) {
- if (field.IsExtension && field.ContainingType.Options.MessageSetWireFormat) {
- output.WriteMessageSetExtension(field.FieldNumber, (IMessage) value);
+ public void WriteField(IFieldDescriptorLite field, Object value, CodedOutputStream output) {
+ if (field.IsExtension && field.MessageSetWireFormat) {
+ output.WriteMessageSetExtension(field.FieldNumber, (IMessageLite) value);
} else {
if (field.IsRepeated) {
IEnumerable valueList = (IEnumerable) value;
@@ -395,18 +421,18 @@ namespace Google.ProtocolBuffers {
}
/// <summary>
- /// See <see cref="IMessage.SerializedSize" />. It's up to the caller to
+ /// See <see cref="IMessageLite.SerializedSize" />. It's up to the caller to
/// cache the resulting size if desired.
/// </summary>
public int SerializedSize {
get {
int size = 0;
- foreach (KeyValuePair<FieldDescriptor, object> entry in fields) {
- FieldDescriptor field = entry.Key;
+ foreach (KeyValuePair<IFieldDescriptorLite, object> entry in fields) {
+ IFieldDescriptorLite field = entry.Key;
object value = entry.Value;
- if (field.IsExtension && field.ContainingType.Options.MessageSetWireFormat) {
- size += CodedOutputStream.ComputeMessageSetExtensionSize(field.FieldNumber, (IMessage)value);
+ if (field.IsExtension && field.MessageSetWireFormat) {
+ size += CodedOutputStream.ComputeMessageSetExtensionSize(field.FieldNumber, (IMessageLite)value);
} else {
if (field.IsRepeated) {
IEnumerable valueList = (IEnumerable)value;
@@ -440,7 +466,7 @@ namespace Google.ProtocolBuffers {
/// </remarks>
/// <exception cref="ArgumentException">The value is not of the right type.</exception>
/// <exception cref="ArgumentNullException">The value is null.</exception>
- private static void VerifyType(FieldDescriptor field, object value) {
+ private static void VerifyType(IFieldDescriptorLite field, object value) {
ThrowHelper.ThrowIfNull(value, "value");
bool isValid = false;
switch (field.MappedType) {
@@ -454,12 +480,17 @@ namespace Google.ProtocolBuffers {
case MappedType.String: isValid = value is string; break;
case MappedType.ByteString: isValid = value is ByteString; break;
case MappedType.Enum:
- EnumValueDescriptor enumValue = value as EnumValueDescriptor;
- isValid = enumValue != null && enumValue.EnumDescriptor == field.EnumType;
+ IEnumLite enumValue = value as IEnumLite;
+ isValid = enumValue != null && field.EnumType.IsValidValue(enumValue);
break;
case MappedType.Message:
- IMessage messageValue = value as IMessage;
- isValid = messageValue != null && messageValue.DescriptorForType == field.MessageType;
+ IMessageLite messageValue = value as IMessageLite;
+ isValid = messageValue != null;
+#if !LITE
+ if (isValid && messageValue is IMessage && field is FieldDescriptor) {
+ isValid = ((IMessage) messageValue).DescriptorForType == ((FieldDescriptor) field).MessageType;
+ }
+#endif
break;
}
@@ -468,10 +499,16 @@ namespace Google.ProtocolBuffers {
// the stack trace which exact call failed, since the whole chain is
// considered one line of code. So, let's make sure to include the
// field name and other useful info in the exception.
- throw new ArgumentException("Wrong object type used with protocol message reflection. "
- + "Message type \"" + field.ContainingType.FullName
- + "\", field \"" + (field.IsExtension ? field.FullName : field.Name)
- + "\", value was type \"" + value.GetType().Name + "\".");
+ string message = "Wrong object type used with protocol message reflection.";
+#if !LITE
+ Google.ProtocolBuffers.Descriptors.FieldDescriptor fieldinfo = field as Google.ProtocolBuffers.Descriptors.FieldDescriptor;
+ if (fieldinfo != null) {
+ message += "Message type \"" + fieldinfo.ContainingType.FullName;
+ message += "\", field \"" + (fieldinfo.IsExtension ? fieldinfo.FullName : fieldinfo.Name);
+ message += "\", value was type \"" + value.GetType().Name + "\".";
+ }
+#endif
+ throw new ArgumentException(message);
}
}
}
diff --git a/src/ProtocolBuffers/GeneratedBuilder.cs b/src/ProtocolBuffers/GeneratedBuilder.cs
index 1124fc86..2ec2762f 100644
--- a/src/ProtocolBuffers/GeneratedBuilder.cs
+++ b/src/ProtocolBuffers/GeneratedBuilder.cs
@@ -148,16 +148,20 @@ namespace Google.ProtocolBuffers {
}
} else if (field.MappedType == MappedType.Message && HasField(field)) {
// Merge singular embedded messages
- IMessage oldValue = (IMessage)this[field];
+ IMessageLite oldValue = (IMessageLite)this[field];
this[field] = oldValue.WeakCreateBuilderForType()
.WeakMergeFrom(oldValue)
- .WeakMergeFrom((IMessage)entry.Value)
+ .WeakMergeFrom((IMessageLite)entry.Value)
.WeakBuildPartial();
} else {
// Just overwrite
this[field] = entry.Value;
}
}
+
+ //Fix for unknown fields not merging, see java's AbstractMessage.Builder<T> line 236
+ MergeUnknownFields(other.UnknownFields);
+
return ThisBuilder;
}
diff --git a/src/ProtocolBuffers/GeneratedBuilderLite.cs b/src/ProtocolBuffers/GeneratedBuilderLite.cs
new file mode 100644
index 00000000..d721fddd
--- /dev/null
+++ b/src/ProtocolBuffers/GeneratedBuilderLite.cs
@@ -0,0 +1,117 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace Google.ProtocolBuffers {
+ /// <summary>
+ /// All generated protocol message builder classes extend this class. It implements
+ /// most of the IBuilder interface using reflection. Users can ignore this class
+ /// as an implementation detail.
+ /// </summary>
+ public abstract class GeneratedBuilderLite<TMessage, TBuilder> : AbstractBuilderLite<TMessage, TBuilder>
+ where TMessage : GeneratedMessageLite<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilderLite<TMessage, TBuilder> {
+
+ /// <summary>
+ /// Returns the message being built at the moment.
+ /// </summary>
+ protected abstract TMessage MessageBeingBuilt { get; }
+
+ public override TBuilder MergeFrom(IMessageLite other) {
+ //do nothing, Lite runtime does not support cross-message merges
+ return ThisBuilder;
+ }
+
+ public abstract TBuilder MergeFrom(TMessage other);
+
+ public override bool IsInitialized {
+ get { return MessageBeingBuilt.IsInitialized; }
+ }
+
+ /// <summary>
+ /// Adds all of the specified values to the given collection.
+ /// </summary>
+ /// <exception cref="ArgumentNullException">Any element of the list is null</exception>
+ protected void AddRange<T>(IEnumerable<T> source, IList<T> destination) {
+ ThrowHelper.ThrowIfNull(source);
+ // We only need to check this for nullable types.
+ if (default(T) == null) {
+ ThrowHelper.ThrowIfAnyNull(source);
+ }
+ List<T> list = destination as List<T>;
+ if (list != null) {
+ list.AddRange(source);
+ } else {
+ foreach (T element in source) {
+ destination.Add(element);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Called by derived classes to parse an unknown field.
+ /// </summary>
+ /// <returns>true unless the tag is an end-group tag</returns>
+ [CLSCompliant(false)]
+ protected virtual bool ParseUnknownField(CodedInputStream input,
+ ExtensionRegistry extensionRegistry, uint tag) {
+ return input.SkipField(tag);
+ }
+
+ /// <summary>
+ /// Like Build(), but will wrap UninitializedMessageException in
+ /// InvalidProtocolBufferException.
+ /// </summary>
+ public TMessage BuildParsed() {
+ if (!IsInitialized) {
+ throw new UninitializedMessageException(MessageBeingBuilt).AsInvalidProtocolBufferException();
+ }
+ return BuildPartial();
+ }
+
+ /// <summary>
+ /// Implementation of <see cref="IBuilder{TMessage, TBuilder}.Build" />.
+ /// </summary>
+ public override TMessage Build() {
+ // If the message is null, we'll throw a more appropriate exception in BuildPartial.
+ if (MessageBeingBuilt != null && !IsInitialized) {
+ throw new UninitializedMessageException(MessageBeingBuilt);
+ }
+ return BuildPartial();
+ }
+ }
+}
diff --git a/src/ProtocolBuffers/GeneratedExtensionBase.cs b/src/ProtocolBuffers/GeneratedExtensionBase.cs
index 813f69cf..aacc0655 100644
--- a/src/ProtocolBuffers/GeneratedExtensionBase.cs
+++ b/src/ProtocolBuffers/GeneratedExtensionBase.cs
@@ -39,6 +39,7 @@ using System.Reflection;
using Google.ProtocolBuffers.Descriptors;
namespace Google.ProtocolBuffers {
+
/// <summary>
/// Base type for all generated extensions.
/// </summary>
@@ -65,7 +66,7 @@ namespace Google.ProtocolBuffers {
public abstract class GeneratedExtensionBase<TExtension> {
private readonly FieldDescriptor descriptor;
- private readonly IMessage messageDefaultInstance;
+ private readonly IMessageLite messageDefaultInstance;
protected GeneratedExtensionBase(FieldDescriptor descriptor, Type singularExtensionType) {
if (!descriptor.IsExtension) {
@@ -79,7 +80,8 @@ namespace Google.ProtocolBuffers {
if (defaultInstanceProperty == null) {
throw new ArgumentException("No public static DefaultInstance property for type " + typeof(TExtension).Name);
}
- messageDefaultInstance = (IMessage)defaultInstanceProperty.GetValue(null, null);
+
+ messageDefaultInstance = (IMessageLite)defaultInstanceProperty.GetValue(null, null);
}
}
@@ -87,10 +89,14 @@ namespace Google.ProtocolBuffers {
get { return descriptor; }
}
+ public int Number {
+ get { return Descriptor.FieldNumber; }
+ }
+
/// <summary>
/// Returns the default message instance for extensions which are message types.
/// </summary>
- public IMessage MessageDefaultInstance {
+ public IMessageLite MessageDefaultInstance {
get { return messageDefaultInstance; }
}
@@ -107,7 +113,7 @@ namespace Google.ProtocolBuffers {
// This should not happen in normal use. But, to be nice, we'll
// copy the message to whatever type the caller was expecting.
return MessageDefaultInstance.WeakCreateBuilderForType()
- .WeakMergeFrom((IMessage)value).WeakBuild();
+ .WeakMergeFrom((IMessageLite)value).WeakBuild();
}
case MappedType.Enum:
// Just return a boxed int - that can be unboxed to the enum
diff --git a/src/ProtocolBuffers/GeneratedExtensionLite.cs b/src/ProtocolBuffers/GeneratedExtensionLite.cs
new file mode 100644
index 00000000..33969f4b
--- /dev/null
+++ b/src/ProtocolBuffers/GeneratedExtensionLite.cs
@@ -0,0 +1,294 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.Collections;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers {
+
+ public interface IGeneratedExtensionLite {
+ int Number { get; }
+ object ContainingType { get; }
+ IMessageLite MessageDefaultInstance { get; }
+ IFieldDescriptorLite Descriptor { get; }
+ }
+
+ public class ExtensionDescriptorLite : IFieldDescriptorLite {
+ private readonly string fullName;
+ private readonly IEnumLiteMap enumTypeMap;
+ private readonly int number;
+ private readonly FieldType type;
+ private readonly bool isRepeated;
+ private readonly bool isPacked;
+ private readonly MappedType mapType;
+ private readonly object defaultValue;
+
+ public ExtensionDescriptorLite(string fullName, IEnumLiteMap enumTypeMap, int number, FieldType type, object defaultValue, bool isRepeated, bool isPacked) {
+ this.fullName = fullName;
+ this.enumTypeMap = enumTypeMap;
+ this.number = number;
+ this.type = type;
+ this.mapType = FieldMappingAttribute.MappedTypeFromFieldType(type);
+ this.isRepeated = isRepeated;
+ this.isPacked = isPacked;
+ this.defaultValue = defaultValue;
+ }
+
+ public string FullName { get { return fullName; } }
+
+ public bool IsRepeated {
+ get { return isRepeated; }
+ }
+
+ public bool IsRequired {
+ get { return false; }
+ }
+
+ public bool IsPacked {
+ get { return isPacked; }
+ }
+
+ public bool IsExtension {
+ get { return true; }
+ }
+
+ /// <summary>
+ /// This is not supported and assertions are made to ensure this does not exist on extensions of Lite types
+ /// </summary>
+ public bool MessageSetWireFormat {
+ get { return false; }
+ }
+
+ public int FieldNumber {
+ get { return number; }
+ }
+
+ public IEnumLiteMap EnumType {
+ get { return enumTypeMap; }
+ }
+
+ public FieldType FieldType {
+ get { return type; }
+ }
+
+ public MappedType MappedType {
+ get { return mapType; }
+ }
+
+ public object DefaultValue {
+ get { return defaultValue; }
+ }
+
+ public int CompareTo(IFieldDescriptorLite other) {
+ return FieldNumber.CompareTo(other.FieldNumber);
+ }
+ }
+
+ public class GeneratedRepeatExtensionLite<TContainingType, TExtensionType> : GeneratedExtensionLite<TContainingType, IList<TExtensionType>>
+ where TContainingType : IMessageLite {
+ public GeneratedRepeatExtensionLite(string fullName, TContainingType containingTypeDefaultInstance,
+ IMessageLite messageDefaultInstance, IEnumLiteMap enumTypeMap, int number, FieldType type, bool isPacked) :
+ base(fullName, containingTypeDefaultInstance, new List<TExtensionType>(), messageDefaultInstance, enumTypeMap, number, type, isPacked) {
+ }
+
+ public override object ToReflectionType(object value) {
+ IList<object> result = new List<object>();
+ foreach (object element in (IEnumerable) value) {
+ result.Add(SingularToReflectionType(element));
+ }
+ return result;
+ }
+
+ public override object FromReflectionType(object value) {
+ // Must convert the whole list.
+ List<TExtensionType> result = new List<TExtensionType>();
+ foreach (object element in (IEnumerable)value) {
+ result.Add((TExtensionType)SingularFromReflectionType(element));
+ }
+ return result;
+ }
+ }
+
+ public class GeneratedExtensionLite<TContainingType, TExtensionType> : IGeneratedExtensionLite
+ where TContainingType : IMessageLite {
+
+ private readonly TContainingType containingTypeDefaultInstance;
+ private readonly TExtensionType defaultValue;
+ private readonly IMessageLite messageDefaultInstance;
+ private readonly ExtensionDescriptorLite descriptor;
+
+ // We can't always initialize a GeneratedExtension when we first construct
+ // it due to initialization order difficulties (namely, the default
+ // instances may not have been constructed yet). So, we construct an
+ // uninitialized GeneratedExtension once, then call internalInit() on it
+ // later. Generated code will always call internalInit() on all extensions
+ // as part of the static initialization code, and internalInit() throws an
+ // exception if called more than once, so this method is useless to users.
+ protected GeneratedExtensionLite(
+ TContainingType containingTypeDefaultInstance,
+ TExtensionType defaultValue,
+ IMessageLite messageDefaultInstance,
+ ExtensionDescriptorLite descriptor) {
+ this.containingTypeDefaultInstance = containingTypeDefaultInstance;
+ this.messageDefaultInstance = messageDefaultInstance;
+ this.defaultValue = defaultValue;
+ this.descriptor = descriptor;
+ }
+
+ /** For use by generated code only. */
+ public GeneratedExtensionLite(
+ string fullName,
+ TContainingType containingTypeDefaultInstance,
+ TExtensionType defaultValue,
+ IMessageLite messageDefaultInstance,
+ IEnumLiteMap enumTypeMap,
+ int number,
+ FieldType type)
+ : this(containingTypeDefaultInstance, defaultValue, messageDefaultInstance,
+ new ExtensionDescriptorLite(fullName, enumTypeMap, number, type, defaultValue,
+ false /* isRepeated */, false /* isPacked */)) {
+ }
+
+ private static readonly IList<object> Empty = new object[0];
+ /** Repeating fields: For use by generated code only. */
+ protected GeneratedExtensionLite(
+ string fullName,
+ TContainingType containingTypeDefaultInstance,
+ TExtensionType defaultValue,
+ IMessageLite messageDefaultInstance,
+ IEnumLiteMap enumTypeMap,
+ int number,
+ FieldType type,
+ bool isPacked)
+ : this(containingTypeDefaultInstance, defaultValue, messageDefaultInstance,
+ new ExtensionDescriptorLite(fullName, enumTypeMap, number, type, Empty,
+ true /* isRepeated */, isPacked)) {
+ }
+
+ /// <summary>
+ /// Returns information about this extension
+ /// </summary>
+ public IFieldDescriptorLite Descriptor {
+ get { return descriptor; }
+ }
+
+ /// <summary>
+ /// Returns the default value for this extension
+ /// </summary>
+ public TExtensionType DefaultValue {
+ get { return defaultValue; }
+ }
+
+ /// <summary>
+ /// used for the extension registry
+ /// </summary>
+ object IGeneratedExtensionLite.ContainingType {
+ get { return ContainingTypeDefaultInstance; }
+ }
+ /**
+ * Default instance of the type being extended, used to identify that type.
+ */
+ public TContainingType ContainingTypeDefaultInstance {
+ get {
+ return containingTypeDefaultInstance;
+ }
+ }
+
+ /** Get the field number. */
+ public int Number {
+ get {
+ return descriptor.FieldNumber;
+ }
+ }
+ /**
+ * If the extension is an embedded message, this is the default instance of
+ * that type.
+ */
+ public IMessageLite MessageDefaultInstance {
+ get {
+ return messageDefaultInstance;
+ }
+ }
+
+ /// <summary>
+ /// Converts from the type used by the native accessors to the type
+ /// used by reflection accessors. For example, the reflection accessors
+ /// for enums use EnumValueDescriptors but the native accessors use
+ /// the generated enum type.
+ /// </summary>
+ public virtual object ToReflectionType(object value) {
+ return SingularToReflectionType(value);
+ }
+
+ /// <summary>
+ /// Like ToReflectionType(object) but for a single element.
+ /// </summary>
+ public object SingularToReflectionType(object value) {
+ return descriptor.MappedType == MappedType.Enum
+ ? descriptor.EnumType.FindValueByNumber((int)value)
+ : value;
+ }
+
+ public virtual object FromReflectionType(object value) {
+ return SingularFromReflectionType(value);
+ }
+
+ public object SingularFromReflectionType(object value) {
+ switch (Descriptor.MappedType) {
+ case MappedType.Message:
+ if (value is TExtensionType) {
+ return value;
+ } else {
+ // It seems the copy of the embedded message stored inside the
+ // extended message is not of the exact type the user was
+ // expecting. This can happen if a user defines a
+ // GeneratedExtension manually and gives it a different type.
+ // This should not happen in normal use. But, to be nice, we'll
+ // copy the message to whatever type the caller was expecting.
+ return MessageDefaultInstance.WeakCreateBuilderForType()
+ .WeakMergeFrom((IMessageLite)value).WeakBuild();
+ }
+ case MappedType.Enum:
+ // Just return a boxed int - that can be unboxed to the enum
+ IEnumLite enumValue = (IEnumLite)value;
+ return enumValue.Number;
+ default:
+ return value;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/src/ProtocolBuffers/GeneratedMessage.cs b/src/ProtocolBuffers/GeneratedMessage.cs
index d60f2b9c..fe1188b6 100644
--- a/src/ProtocolBuffers/GeneratedMessage.cs
+++ b/src/ProtocolBuffers/GeneratedMessage.cs
@@ -99,13 +99,13 @@ namespace Google.ProtocolBuffers {
if (field.IsRepeated) {
// We know it's an IList<T>, but not the exact type - so
// IEnumerable is the best we can do. (C# generics aren't covariant yet.)
- foreach (IMessage element in (IEnumerable) this[field]) {
+ foreach (IMessageLite element in (IEnumerable) this[field]) {
if (!element.IsInitialized) {
return false;
}
}
} else {
- if (HasField(field) && !((IMessage) this[field]).IsInitialized) {
+ if (HasField(field) && !((IMessageLite) this[field]).IsInitialized) {
return false;
}
}
diff --git a/src/ProtocolBuffers/GeneratedMessageLite.cs b/src/ProtocolBuffers/GeneratedMessageLite.cs
new file mode 100644
index 00000000..b2a009c4
--- /dev/null
+++ b/src/ProtocolBuffers/GeneratedMessageLite.cs
@@ -0,0 +1,132 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Collections;
+using System.Globalization;
+using Google.ProtocolBuffers.Descriptors;
+
+namespace Google.ProtocolBuffers {
+
+ /// <summary>
+ /// All generated protocol message classes extend this class. It implements
+ /// most of the IMessage interface using reflection. Users
+ /// can ignore this class as an implementation detail.
+ /// </summary>
+ public abstract class GeneratedMessageLite<TMessage, TBuilder> : AbstractMessageLite<TMessage, TBuilder>
+ where TMessage : GeneratedMessageLite<TMessage, TBuilder>
+ where TBuilder : GeneratedBuilderLite<TMessage, TBuilder> {
+
+ protected abstract TMessage ThisMessage { get; }
+
+ public sealed override string ToString() {
+ using (System.IO.StringWriter wtr = new System.IO.StringWriter()) {
+ PrintTo(wtr);
+ return wtr.ToString();
+ }
+ }
+
+ /// <summary>
+ /// PrintTo() helper methods for Lite Runtime
+ /// </summary>
+ protected static void PrintField<T>(string name, IList<T> value, System.IO.TextWriter writer) {
+ foreach (T item in value)
+ PrintField(name, true, (object)item, writer);
+ }
+ /// <summary>
+ /// PrintTo() helper methods for Lite Runtime
+ /// </summary>
+ protected static void PrintField(string name, bool hasValue, object value, System.IO.TextWriter writer) {
+ if (!hasValue) return;
+ if (value is IMessageLite) {
+ writer.WriteLine("{0} {{", name);
+ ((IMessageLite)value).PrintTo(writer);
+ writer.WriteLine("}");
+ } else if (value is ByteString || value is String) {
+ writer.Write("{0}: \"", name);
+ if(value is String)
+ EscapeBytes( System.Text.Encoding.UTF8.GetBytes((string)value), writer);
+ else
+ EscapeBytes(((ByteString)value), writer);
+ writer.WriteLine("\"");
+ } else if (value is bool) {
+ writer.WriteLine("{0}: {1}", name, (bool)value ? "true" : "false");
+ } else if (value is IEnumLite) {
+ writer.WriteLine("{0}: {1}", name, ((IEnumLite)value).Name);
+ }
+ else {
+ writer.WriteLine("{0}: {1}", name, ((IConvertible)value).ToString(CultureInfo.InvariantCulture));
+ }
+ }
+
+ /// <summary>
+ /// COPIED from TextFormat
+ /// Escapes bytes in the format used in protocol buffer text format, which
+ /// is the same as the format used for C string literals. All bytes
+ /// that are not printable 7-bit ASCII characters are escaped, as well as
+ /// backslash, single-quote, and double-quote characters. Characters for
+ /// which no defined short-hand escape sequence is defined will be escaped
+ /// using 3-digit octal sequences.
+ /// The returned value is guaranteed to be entirely ASCII.
+ /// </summary>
+ private static void EscapeBytes(IEnumerable<byte> input, System.IO.TextWriter writer) {
+ foreach (byte b in input) {
+ switch (b) {
+ // C# does not use \a or \v
+ case 0x07: writer.Write("\\a"); break;
+ case (byte)'\b': writer.Write("\\b"); break;
+ case (byte)'\f': writer.Write("\\f"); break;
+ case (byte)'\n': writer.Write("\\n"); break;
+ case (byte)'\r': writer.Write("\\r"); break;
+ case (byte)'\t': writer.Write("\\t"); break;
+ case 0x0b: writer.Write("\\v"); break;
+ case (byte)'\\': writer.Write("\\\\"); break;
+ case (byte)'\'': writer.Write("\\\'"); break;
+ case (byte)'"': writer.Write("\\\""); break;
+ default:
+ if (b >= 0x20 && b < 128) {
+ writer.Write((char)b);
+ } else {
+ writer.Write('\\');
+ writer.Write((char)('0' + ((b >> 6) & 3)));
+ writer.Write((char)('0' + ((b >> 3) & 7)));
+ writer.Write((char)('0' + (b & 7)));
+ }
+ break;
+ }
+ }
+ }
+ }
+}
diff --git a/src/ProtocolBuffers/IBuilder.cs b/src/ProtocolBuffers/IBuilder.cs
index b1aa4fb1..c4a1c609 100644
--- a/src/ProtocolBuffers/IBuilder.cs
+++ b/src/ProtocolBuffers/IBuilder.cs
@@ -47,12 +47,12 @@ namespace Google.ProtocolBuffers {
/// use explicit interface implemenation for the non-generic form. This mirrors
/// how IEnumerable and IEnumerable&lt;T&gt; work.
/// </summary>
- public interface IBuilder {
+ public interface IBuilder : IBuilderLite {
/// <summary>
/// Returns true iff all required fields in the message and all
/// embedded messages are set.
/// </summary>
- bool IsInitialized { get; }
+ new bool IsInitialized { get; }
/// <summary>
/// Only present in the nongeneric interface - useful for tests, but
@@ -119,17 +119,17 @@ namespace Google.ProtocolBuffers {
#region Methods which are like those of the generic form, but without any knowledge of the type parameters
IBuilder WeakAddRepeatedField(FieldDescriptor field, object value);
- IBuilder WeakClear();
+ new IBuilder WeakClear();
IBuilder WeakClearField(FieldDescriptor field);
IBuilder WeakMergeFrom(IMessage message);
- IBuilder WeakMergeFrom(ByteString data);
- IBuilder WeakMergeFrom(ByteString data, ExtensionRegistry registry);
- IBuilder WeakMergeFrom(CodedInputStream input);
- IBuilder WeakMergeFrom(CodedInputStream input, ExtensionRegistry registry);
- IMessage WeakBuild();
- IMessage WeakBuildPartial();
- IBuilder WeakClone();
- IMessage WeakDefaultInstanceForType { get; }
+ new IBuilder WeakMergeFrom(ByteString data);
+ new IBuilder WeakMergeFrom(ByteString data, ExtensionRegistry registry);
+ new IBuilder WeakMergeFrom(CodedInputStream input);
+ new IBuilder WeakMergeFrom(CodedInputStream input, ExtensionRegistry registry);
+ new IMessage WeakBuild();
+ new IMessage WeakBuildPartial();
+ new IBuilder WeakClone();
+ new IMessage WeakDefaultInstanceForType { get; }
#endregion
}
@@ -139,7 +139,7 @@ namespace Google.ProtocolBuffers {
/// </summary>
/// <typeparam name="TMessage">Type of message</typeparam>
/// <typeparam name="TBuilder">Type of builder</typeparam>
- public interface IBuilder<TMessage, TBuilder> : IBuilder
+ public interface IBuilder<TMessage, TBuilder> : IBuilder, IBuilderLite<TMessage, TBuilder>
where TMessage : IMessage<TMessage, TBuilder>
where TBuilder : IBuilder<TMessage, TBuilder> {
@@ -148,22 +148,7 @@ namespace Google.ProtocolBuffers {
/// <summary>
/// Resets all fields to their default values.
/// </summary>
- TBuilder Clear();
-
- /// <summary>
- /// Merge the specified other message into the message being
- /// built. Merging occurs as follows. For each field:
- /// For singular primitive fields, if the field is set in <paramref name="other"/>,
- /// then <paramref name="other"/>'s value overwrites the value in this message.
- /// For singular message fields, if the field is set in <paramref name="other"/>,
- /// it is merged into the corresponding sub-message of this message using the same
- /// merging rules.
- /// For repeated fields, the elements in <paramref name="other"/> are concatenated
- /// with the elements in this message.
- /// </summary>
- /// <param name="other"></param>
- /// <returns></returns>
- TBuilder MergeFrom(TMessage other);
+ new TBuilder Clear();
/// <summary>
/// Merge the specified other message which may be a different implementation of
@@ -180,19 +165,19 @@ namespace Google.ProtocolBuffers {
/// <exception cref="UninitializedMessageException">the message
/// is missing one or more required fields; use BuildPartial to bypass
/// this check</exception>
- TMessage Build();
+ new TMessage Build();
/// <summary>
/// Like Build(), but does not throw an exception if the message is missing
/// required fields. Instead, a partial message is returned.
/// </summary>
- TMessage BuildPartial();
+ new TMessage BuildPartial();
/// <summary>
/// Clones this builder.
/// TODO(jonskeet): Explain depth of clone.
/// </summary>
- TBuilder Clone();
+ new TBuilder Clone();
/// <summary>
/// Parses a message of this type from the input and merges it with this
@@ -213,7 +198,7 @@ namespace Google.ProtocolBuffers {
/// Use BuildPartial to build, which ignores missing required fields.
/// </list>
/// </remarks>
- TBuilder MergeFrom(CodedInputStream input);
+ new TBuilder MergeFrom(CodedInputStream input);
/// <summary>
/// Like MergeFrom(CodedInputStream), but also parses extensions.
@@ -221,13 +206,13 @@ namespace Google.ProtocolBuffers {
/// in <paramref name="extensionRegistry"/>. Extensions not in the registry
/// will be treated as unknown fields.
/// </summary>
- TBuilder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry);
+ new TBuilder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry);
/// <summary>
/// Get's the message's type's default instance.
/// <see cref="IMessage{TMessage}.DefaultInstanceForType" />
/// </summary>
- TMessage DefaultInstanceForType { get; }
+ new TMessage DefaultInstanceForType { get; }
/// <summary>
/// Clears the field. This is exactly equivalent to calling the generated
@@ -258,12 +243,12 @@ namespace Google.ProtocolBuffers {
/// write messages in this format.
/// </summary>
/// <param name="input"></param>
- TBuilder MergeDelimitedFrom(Stream input);
+ new TBuilder MergeDelimitedFrom(Stream input);
/// <summary>
/// Like MergeDelimitedFrom(Stream) but supporting extensions.
/// </summary>
- TBuilder MergeDelimitedFrom(Stream input, ExtensionRegistry extensionRegistry);
+ new TBuilder MergeDelimitedFrom(Stream input, ExtensionRegistry extensionRegistry);
#region Convenience methods
/// <summary>
@@ -271,28 +256,28 @@ namespace Google.ProtocolBuffers {
/// it with the message being built. This is just a small wrapper around
/// MergeFrom(CodedInputStream).
/// </summary>
- TBuilder MergeFrom(ByteString data);
+ new TBuilder MergeFrom(ByteString data);
/// <summary>
/// Parse <paramref name="data"/> as a message of this type and merge
/// it with the message being built. This is just a small wrapper around
- /// MergeFrom(CodedInputStream, ExtensionRegistry).
+ /// MergeFrom(CodedInputStream, extensionRegistry).
/// </summary>
- TBuilder MergeFrom(ByteString data, ExtensionRegistry extensionRegistry);
+ new TBuilder MergeFrom(ByteString data, ExtensionRegistry extensionRegistry);
/// <summary>
/// Parse <paramref name="data"/> as a message of this type and merge
/// it with the message being built. This is just a small wrapper around
/// MergeFrom(CodedInputStream).
/// </summary>
- TBuilder MergeFrom(byte[] data);
+ new TBuilder MergeFrom(byte[] data);
/// <summary>
/// Parse <paramref name="data"/> as a message of this type and merge
/// it with the message being built. This is just a small wrapper around
- /// MergeFrom(CodedInputStream, ExtensionRegistry).
+ /// MergeFrom(CodedInputStream, extensionRegistry).
/// </summary>
- TBuilder MergeFrom(byte[] data, ExtensionRegistry extensionRegistry);
+ new TBuilder MergeFrom(byte[] data, ExtensionRegistry extensionRegistry);
/// <summary>
/// Parse <paramref name="input"/> as a message of this type and merge
@@ -304,14 +289,14 @@ namespace Google.ProtocolBuffers {
/// to write your message and MmergeDelimitedFrom(Stream) to read it.
/// Despite usually reading the entire stream, this method never closes the stream.
/// </summary>
- TBuilder MergeFrom(Stream input);
+ new TBuilder MergeFrom(Stream input);
/// <summary>
/// Parse <paramref name="input"/> as a message of this type and merge
/// it with the message being built. This is just a small wrapper around
- /// MergeFrom(CodedInputStream, ExtensionRegistry).
+ /// MergeFrom(CodedInputStream, extensionRegistry).
/// </summary>
- TBuilder MergeFrom(Stream input, ExtensionRegistry extensionRegistry);
+ new TBuilder MergeFrom(Stream input, ExtensionRegistry extensionRegistry);
#endregion
}
}
diff --git a/src/ProtocolBuffers/IBuilderLite.cs b/src/ProtocolBuffers/IBuilderLite.cs
new file mode 100644
index 00000000..e91d44bc
--- /dev/null
+++ b/src/ProtocolBuffers/IBuilderLite.cs
@@ -0,0 +1,210 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace Google.ProtocolBuffers {
+
+ /// <summary>
+ /// Non-generic interface for all members whose signatures don't require knowledge of
+ /// the type being built. The generic interface extends this one. Some methods return
+ /// either an IBuilder or an IMessage; in these cases the generic interface redeclares
+ /// the same method with a type-specific signature. Implementations are encouraged to
+ /// use explicit interface implemenation for the non-generic form. This mirrors
+ /// how IEnumerable and IEnumerable&lt;T&gt; work.
+ /// </summary>
+ public interface IBuilderLite {
+ /// <summary>
+ /// Returns true iff all required fields in the message and all
+ /// embedded messages are set.
+ /// </summary>
+ bool IsInitialized { get; }
+
+ IBuilderLite WeakClear();
+ IBuilderLite WeakMergeFrom(IMessageLite message);
+ IBuilderLite WeakMergeFrom(ByteString data);
+ IBuilderLite WeakMergeFrom(ByteString data, ExtensionRegistry registry);
+ IBuilderLite WeakMergeFrom(CodedInputStream input);
+ IBuilderLite WeakMergeFrom(CodedInputStream input, ExtensionRegistry registry);
+ IMessageLite WeakBuild();
+ IMessageLite WeakBuildPartial();
+ IBuilderLite WeakClone();
+ IMessageLite WeakDefaultInstanceForType { get; }
+ }
+
+ /// <summary>
+ /// Interface implemented by Protocol Message builders.
+ /// TODO(jonskeet): Consider "SetXXX" methods returning the builder, as well as the properties.
+ /// </summary>
+ /// <typeparam name="TMessage">Type of message</typeparam>
+ /// <typeparam name="TBuilder">Type of builder</typeparam>
+ public interface IBuilderLite<TMessage, TBuilder> : IBuilderLite
+ where TMessage : IMessageLite<TMessage, TBuilder>
+ where TBuilder : IBuilderLite<TMessage, TBuilder> {
+
+ /// <summary>
+ /// Resets all fields to their default values.
+ /// </summary>
+ TBuilder Clear();
+
+ /// <summary>
+ /// Merge the specified other message which may be a different implementation of
+ /// the same message descriptor.
+ /// </summary>
+ TBuilder MergeFrom(IMessageLite other);
+
+ /// <summary>
+ /// Constructs the final message. Once this is called, this Builder instance
+ /// is no longer valid, and calling any other method may throw a
+ /// NullReferenceException. If you need to continue working with the builder
+ /// after calling Build, call Clone first.
+ /// </summary>
+ /// <exception cref="UninitializedMessageException">the message
+ /// is missing one or more required fields; use BuildPartial to bypass
+ /// this check</exception>
+ TMessage Build();
+
+ /// <summary>
+ /// Like Build(), but does not throw an exception if the message is missing
+ /// required fields. Instead, a partial message is returned.
+ /// </summary>
+ TMessage BuildPartial();
+
+ /// <summary>
+ /// Clones this builder.
+ /// TODO(jonskeet): Explain depth of clone.
+ /// </summary>
+ TBuilder Clone();
+
+ /// <summary>
+ /// Parses a message of this type from the input and merges it with this
+ /// message, as if using MergeFrom(IMessage&lt;T&gt;).
+ /// </summary>
+ /// <remarks>
+ /// Warning: This does not verify that all required fields are present
+ /// in the input message. If you call Build() without setting all
+ /// required fields, it will throw an UninitializedMessageException.
+ /// There are a few good ways to deal with this:
+ /// <list>
+ /// <item>Call IsInitialized to verify to verify that all required fields are
+ /// set before building.</item>
+ /// <item>Parse the message separately using one of the static ParseFrom
+ /// methods, then use MergeFrom(IMessage&lt;T&gt;) to merge it with
+ /// this one. ParseFrom will throw an InvalidProtocolBufferException
+ /// (an IOException) if some required fields are missing.
+ /// Use BuildPartial to build, which ignores missing required fields.
+ /// </list>
+ /// </remarks>
+ TBuilder MergeFrom(CodedInputStream input);
+
+ /// <summary>
+ /// Like MergeFrom(CodedInputStream), but also parses extensions.
+ /// The extensions that you want to be able to parse must be registered
+ /// in <paramref name="extensionRegistry"/>. Extensions not in the registry
+ /// will be treated as unknown fields.
+ /// </summary>
+ TBuilder MergeFrom(CodedInputStream input, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Get's the message's type's default instance.
+ /// <see cref="IMessageLite{TMessage}.DefaultInstanceForType" />
+ /// </summary>
+ TMessage DefaultInstanceForType { get; }
+
+ /// <summary>
+ /// Like MergeFrom(Stream), but does not read until the end of the file.
+ /// Instead, the size of the message (encoded as a varint) is read first,
+ /// then the message data. Use Message.WriteDelimitedTo(Stream) to
+ /// write messages in this format.
+ /// </summary>
+ /// <param name="input"></param>
+ TBuilder MergeDelimitedFrom(Stream input);
+
+ /// <summary>
+ /// Like MergeDelimitedFrom(Stream) but supporting extensions.
+ /// </summary>
+ TBuilder MergeDelimitedFrom(Stream input, ExtensionRegistry extensionRegistry);
+
+ #region Convenience methods
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(CodedInputStream).
+ /// </summary>
+ TBuilder MergeFrom(ByteString data);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(CodedInputStream, ExtensionRegistry).
+ /// </summary>
+ TBuilder MergeFrom(ByteString data, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(CodedInputStream).
+ /// </summary>
+ TBuilder MergeFrom(byte[] data);
+
+ /// <summary>
+ /// Parse <paramref name="data"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(CodedInputStream, ExtensionRegistry).
+ /// </summary>
+ TBuilder MergeFrom(byte[] data, ExtensionRegistry extensionRegistry);
+
+ /// <summary>
+ /// Parse <paramref name="input"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(CodedInputStream). Note that this method always reads
+ /// the entire input (unless it throws an exception). If you want it to
+ /// stop earlier, you will need to wrap the input in a wrapper
+ /// stream which limits reading. Or, use IMessage.WriteDelimitedTo(Stream)
+ /// to write your message and MmergeDelimitedFrom(Stream) to read it.
+ /// Despite usually reading the entire stream, this method never closes the stream.
+ /// </summary>
+ TBuilder MergeFrom(Stream input);
+
+ /// <summary>
+ /// Parse <paramref name="input"/> as a message of this type and merge
+ /// it with the message being built. This is just a small wrapper around
+ /// MergeFrom(CodedInputStream, ExtensionRegistry).
+ /// </summary>
+ TBuilder MergeFrom(Stream input, ExtensionRegistry extensionRegistry);
+ #endregion
+ }
+}
diff --git a/src/ProtocolBuffers/IMessage.cs b/src/ProtocolBuffers/IMessage.cs
index ec955c6d..4d37a8d2 100644
--- a/src/ProtocolBuffers/IMessage.cs
+++ b/src/ProtocolBuffers/IMessage.cs
@@ -43,7 +43,7 @@ namespace Google.ProtocolBuffers {
/// Non-generic interface used for all parts of the API which don't require
/// any type knowledge.
/// </summary>
- public interface IMessage {
+ public interface IMessage : IMessageLite {
/// <summary>
/// Returns the message's type's descriptor. This differs from the
/// Descriptor property of each generated message class in that this
@@ -110,7 +110,7 @@ namespace Google.ProtocolBuffers {
/// Returns true iff all required fields in the message and all embedded
/// messages are set.
/// </summary>
- bool IsInitialized { get; }
+ new bool IsInitialized { get; }
/// <summary>
/// Serializes the message and writes it to the given output stream.
@@ -124,7 +124,7 @@ namespace Google.ProtocolBuffers {
/// of the message before the data, then making sure you limit the input to
/// that size when receiving the data. Alternatively, use WriteDelimitedTo(Stream).
/// </remarks>
- void WriteTo(CodedOutputStream output);
+ new void WriteTo(CodedOutputStream output);
/// <summary>
/// Like WriteTo(Stream) but writes the size of the message as a varint before
@@ -134,13 +134,13 @@ namespace Google.ProtocolBuffers {
/// YourMessageType.ParseDelimitedFrom(Stream) to parse messages written by this method.
/// </summary>
/// <param name="output"></param>
- void WriteDelimitedTo(Stream output);
+ new void WriteDelimitedTo(Stream output);
/// <summary>
/// Returns the number of bytes required to encode this message.
/// The result is only computed on the first call and memoized after that.
/// </summary>
- int SerializedSize { get; }
+ new int SerializedSize { get; }
#region Comparison and hashing
/// <summary>
@@ -149,13 +149,13 @@ namespace Google.ProtocolBuffers {
/// (as defined by DescriptorForType) and has identical values
/// for all its fields.
/// </summary>
- bool Equals(object other);
+ new bool Equals(object other);
/// <summary>
/// Returns the hash code value for this message.
/// TODO(jonskeet): Specify the hash algorithm, but better than the Java one!
/// </summary>
- int GetHashCode();
+ new int GetHashCode();
#endregion
#region Convenience methods
@@ -163,19 +163,19 @@ namespace Google.ProtocolBuffers {
/// Converts the message to a string in protocol buffer text format.
/// This is just a trivial wrapper around TextFormat.PrintToString.
/// </summary>
- string ToString();
+ new string ToString();
/// <summary>
/// Serializes the message to a ByteString. This is a trivial wrapper
/// around WriteTo(CodedOutputStream).
/// </summary>
- ByteString ToByteString();
+ new ByteString ToByteString();
/// <summary>
/// Serializes the message to a byte array. This is a trivial wrapper
/// around WriteTo(CodedOutputStream).
/// </summary>
- byte[] ToByteArray();
+ new byte[] ToByteArray();
/// <summary>
/// Serializes the message and writes it to the given stream.
@@ -183,7 +183,7 @@ namespace Google.ProtocolBuffers {
/// does not flush or close the stream.
/// </summary>
/// <param name="output"></param>
- void WriteTo(Stream output);
+ new void WriteTo(Stream output);
#endregion
/// <summary>
@@ -191,19 +191,19 @@ namespace Google.ProtocolBuffers {
/// is typically implemented by strongly typed messages by just returning
/// the result of CreateBuilderForType.
/// </summary>
- IBuilder WeakCreateBuilderForType();
+ new IBuilder WeakCreateBuilderForType();
/// <summary>
/// Creates a builder with the same contents as this message. This
/// is typically implemented by strongly typed messages by just returning
/// the result of ToBuilder.
/// </summary>
- IBuilder WeakToBuilder();
+ new IBuilder WeakToBuilder();
- IMessage WeakDefaultInstanceForType { get; }
+ new IMessage WeakDefaultInstanceForType { get; }
}
- public interface IMessage<TMessage> : IMessage {
+ public interface IMessage<TMessage> : IMessage, IMessageLite<TMessage> {
/// <summary>
/// Returns an instance of this message type with all fields set to
/// their default values. This may or may not be a singleton. This differs
@@ -211,26 +211,26 @@ namespace Google.ProtocolBuffers {
/// method is an abstract method of IMessage whereas DefaultInstance is
/// a static property of a specific class. They return the same thing.
/// </summary>
- TMessage DefaultInstanceForType { get; }
+ new TMessage DefaultInstanceForType { get; }
}
/// <summary>
/// Type-safe interface for all generated messages to implement.
/// </summary>
- public interface IMessage<TMessage, TBuilder> : IMessage<TMessage>
+ public interface IMessage<TMessage, TBuilder> : IMessage<TMessage>, IMessageLite<TMessage, TBuilder>
where TMessage : IMessage<TMessage, TBuilder>
where TBuilder : IBuilder<TMessage, TBuilder> {
#region Builders
/// <summary>
/// Constructs a new builder for a message of the same type as this message.
/// </summary>
- TBuilder CreateBuilderForType();
+ new TBuilder CreateBuilderForType();
/// <summary>
/// Creates a builder with the same contents as this current instance.
/// This is typically implemented by strongly typed messages by just
/// returning the result of ToBuilder().
/// </summary>
- TBuilder ToBuilder();
+ new TBuilder ToBuilder();
#endregion
}
}
diff --git a/src/ProtocolBuffers/IMessageLite.cs b/src/ProtocolBuffers/IMessageLite.cs
new file mode 100644
index 00000000..48660882
--- /dev/null
+++ b/src/ProtocolBuffers/IMessageLite.cs
@@ -0,0 +1,179 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+
+namespace Google.ProtocolBuffers {
+
+ /// <summary>
+ /// Non-generic interface used for all parts of the API which don't require
+ /// any type knowledge.
+ /// </summary>
+ public interface IMessageLite {
+
+ /// <summary>
+ /// Returns true iff all required fields in the message and all embedded
+ /// messages are set.
+ /// </summary>
+ bool IsInitialized { get; }
+
+ /// <summary>
+ /// Serializes the message and writes it to the given output stream.
+ /// This does not flush or close the stream.
+ /// </summary>
+ /// <remarks>
+ /// Protocol Buffers are not self-delimiting. Therefore, if you write
+ /// any more data to the stream after the message, you must somehow ensure
+ /// that the parser on the receiving end does not interpret this as being
+ /// part of the protocol message. One way of doing this is by writing the size
+ /// of the message before the data, then making sure you limit the input to
+ /// that size when receiving the data. Alternatively, use WriteDelimitedTo(Stream).
+ /// </remarks>
+ void WriteTo(CodedOutputStream output);
+
+ /// <summary>
+ /// Like WriteTo(Stream) but writes the size of the message as a varint before
+ /// writing the data. This allows more data to be written to the stream after the
+ /// message without the need to delimit the message data yourself. Use
+ /// IBuilder.MergeDelimitedFrom(Stream) or the static method
+ /// YourMessageType.ParseDelimitedFrom(Stream) to parse messages written by this method.
+ /// </summary>
+ /// <param name="output"></param>
+ void WriteDelimitedTo(Stream output);
+
+ /// <summary>
+ /// Returns the number of bytes required to encode this message.
+ /// The result is only computed on the first call and memoized after that.
+ /// </summary>
+ int SerializedSize { get; }
+
+ #region Comparison and hashing
+ /// <summary>
+ /// Compares the specified object with this message for equality.
+ /// Returns true iff the given object is a message of the same type
+ /// (as defined by DescriptorForType) and has identical values
+ /// for all its fields.
+ /// </summary>
+ bool Equals(object other);
+
+ /// <summary>
+ /// Returns the hash code value for this message.
+ /// TODO(jonskeet): Specify the hash algorithm, but better than the Java one!
+ /// </summary>
+ int GetHashCode();
+ #endregion
+
+ #region Convenience methods
+ /// <summary>
+ /// Converts the message to a string in protocol buffer text format.
+ /// This is just a trivial wrapper around TextFormat.PrintToString.
+ /// </summary>
+ string ToString();
+
+ /// <summary>
+ /// Converts the message to a string.
+ /// </summary>
+ void PrintTo(TextWriter writer);
+
+ /// <summary>
+ /// Serializes the message to a ByteString. This is a trivial wrapper
+ /// around WriteTo(CodedOutputStream).
+ /// </summary>
+ ByteString ToByteString();
+
+ /// <summary>
+ /// Serializes the message to a byte array. This is a trivial wrapper
+ /// around WriteTo(CodedOutputStream).
+ /// </summary>
+ byte[] ToByteArray();
+
+ /// <summary>
+ /// Serializes the message and writes it to the given stream.
+ /// This is just a wrapper around WriteTo(CodedOutputStream). This
+ /// does not flush or close the stream.
+ /// </summary>
+ /// <param name="output"></param>
+ void WriteTo(Stream output);
+ #endregion
+
+ /// <summary>
+ /// Creates a builder for the type, but in a weakly typed manner. This
+ /// is typically implemented by strongly typed messages by just returning
+ /// the result of CreateBuilderForType.
+ /// </summary>
+ IBuilderLite WeakCreateBuilderForType();
+
+ /// <summary>
+ /// Creates a builder with the same contents as this message. This
+ /// is typically implemented by strongly typed messages by just returning
+ /// the result of ToBuilder.
+ /// </summary>
+ IBuilderLite WeakToBuilder();
+
+ IMessageLite WeakDefaultInstanceForType { get; }
+ }
+
+ public interface IMessageLite<TMessage> : IMessageLite {
+ /// <summary>
+ /// Returns an instance of this message type with all fields set to
+ /// their default values. This may or may not be a singleton. This differs
+ /// from the DefaultInstance property of each generated message class in that this
+ /// method is an abstract method of IMessage whereas DefaultInstance is
+ /// a static property of a specific class. They return the same thing.
+ /// </summary>
+ TMessage DefaultInstanceForType { get; }
+ }
+
+ /// <summary>
+ /// Type-safe interface for all generated messages to implement.
+ /// </summary>
+ public interface IMessageLite<TMessage, TBuilder> : IMessageLite<TMessage>
+ where TMessage : IMessageLite<TMessage, TBuilder>
+ where TBuilder : IBuilderLite<TMessage, TBuilder> {
+ #region Builders
+ /// <summary>
+ /// Constructs a new builder for a message of the same type as this message.
+ /// </summary>
+ TBuilder CreateBuilderForType();
+ /// <summary>
+ /// Creates a builder with the same contents as this current instance.
+ /// This is typically implemented by strongly typed messages by just
+ /// returning the result of ToBuilder().
+ /// </summary>
+ TBuilder ToBuilder();
+ #endregion
+ }
+}
diff --git a/src/ProtocolBuffers/Properties/AssemblyInfo.cs b/src/ProtocolBuffers/Properties/AssemblyInfo.cs
index a1047370..e86a2f15 100644
--- a/src/ProtocolBuffers/Properties/AssemblyInfo.cs
+++ b/src/ProtocolBuffers/Properties/AssemblyInfo.cs
@@ -74,6 +74,12 @@ using System.Runtime.CompilerServices;
"72f738140072bb69990bc4f98a21365de2c105e848974a3d210e938b0a56103c0662901efd6b78"+
"0ee6dbe977923d46a8fda18fb25c65dd73b149a5cd9f3100668b56649932dadd8cf5be52eb1dce"+
"ad5cedbf")]
+[assembly: InternalsVisibleTo("Google.ProtocolBuffersLite.Test,PublicKey=" +
+"00240000048000009400000006020000002400005253413100040000010001008179f2dd31a648" +
+"2a2359dbe33e53701167a888e7c369a9ae3210b64f93861d8a7d286447e58bc167e3d99483beda" +
+"72f738140072bb69990bc4f98a21365de2c105e848974a3d210e938b0a56103c0662901efd6b78" +
+"0ee6dbe977923d46a8fda18fb25c65dd73b149a5cd9f3100668b56649932dadd8cf5be52eb1dce" +
+"ad5cedbf")]
[assembly: InternalsVisibleTo("ProtoGen,PublicKey=" +
"00240000048000009400000006020000002400005253413100040000010001006d739020e13bdc" +
"038e86fa8aa5e1b13aae65d3ae79d622816c6067ab5b6955be50cc887130117582349208c13a55" +
diff --git a/src/ProtocolBuffers/ProtocolBuffers.csproj b/src/ProtocolBuffers/ProtocolBuffers.csproj
index c8a0445e..a5759668 100644
--- a/src/ProtocolBuffers/ProtocolBuffers.csproj
+++ b/src/ProtocolBuffers/ProtocolBuffers.csproj
@@ -80,10 +80,18 @@
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="AbstractBuilder.cs" />
+ <Compile Include="AbstractBuilderLite.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="AbstractMessage.cs" />
+ <Compile Include="AbstractMessageLite.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="ByteString.cs" />
<Compile Include="Collections\Enumerables.cs" />
<Compile Include="Collections\IPopsicleList.cs" />
@@ -116,10 +124,16 @@
<Compile Include="Descriptors\PackageDescriptor.cs" />
<Compile Include="Descriptors\ServiceDescriptor.cs" />
<Compile Include="DynamicMessage.cs" />
+ <Compile Include="EnumLite.cs" />
<Compile Include="ExtendableBuilder.cs" />
+ <Compile Include="ExtendableBuilderLite.cs" />
<Compile Include="ExtendableMessage.cs" />
- <Compile Include="ExtensionInfo.cs" />
+ <Compile Include="ExtendableMessageLite.cs" />
+ <Compile Include="ExtensionInfo.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="ExtensionRegistry.cs" />
+ <Compile Include="ExtensionRegistryLite.cs" />
<Compile Include="FieldAccess\ReflectionUtil.cs" />
<Compile Include="FieldAccess\SingleEnumAccessor.cs" />
<Compile Include="FieldAccess\SingleMessageAccessor.cs" />
@@ -131,12 +145,19 @@
<Compile Include="FieldAccess\RepeatedMessageAccessor.cs" />
<Compile Include="FieldSet.cs" />
<Compile Include="GeneratedBuilder.cs" />
+ <Compile Include="GeneratedBuilderLite.cs" />
+ <Compile Include="GeneratedExtensionLite.cs" />
+ <Compile Include="GeneratedMessageLite.cs" />
<Compile Include="GeneratedRepeatExtension.cs" />
<Compile Include="GeneratedSingleExtension.cs" />
<Compile Include="GeneratedMessage.cs" />
<Compile Include="IBuilder.cs" />
<Compile Include="GeneratedExtensionBase.cs" />
+ <Compile Include="IBuilderLite.cs">
+ <SubType>Code</SubType>
+ </Compile>
<Compile Include="IMessage.cs" />
+ <Compile Include="IMessageLite.cs" />
<Compile Include="InvalidProtocolBufferException.cs" />
<Compile Include="IRpcChannel.cs" />
<Compile Include="IRpcController.cs" />
diff --git a/src/ProtocolBuffers/ProtocolBuffersLite.csproj b/src/ProtocolBuffers/ProtocolBuffersLite.csproj
new file mode 100644
index 00000000..d4413d83
--- /dev/null
+++ b/src/ProtocolBuffers/ProtocolBuffersLite.csproj
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{6969BDCE-D925-43F3-94AC-A531E6DF2591}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffersLite</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>Properties\Google.ProtocolBuffers.snk</AssemblyOriginatorKeyFile>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>TRACE;DEBUG;LITE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE;LITE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug_Silverlight2|AnyCPU'">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug_Silverlight2\</OutputPath>
+ <DefineConstants>DEBUG;TRACE;SILVERLIGHT2;LITE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_Silverlight2|AnyCPU'">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release_Silverlight2\</OutputPath>
+ <DefineConstants>TRACE;SILVERLIGHT2;LITE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="Properties\Google.ProtocolBuffers.snk" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="AbstractBuilderLite.cs" />
+ <Compile Include="AbstractMessageLite.cs" />
+ <Compile Include="Collections\Dictionaries.cs" />
+ <Compile Include="Collections\Enumerables.cs" />
+ <Compile Include="Collections\IPopsicleList.cs" />
+ <Compile Include="Collections\Lists.cs" />
+ <Compile Include="Collections\PopsicleList.cs" />
+ <Compile Include="Collections\ReadOnlyDictionary.cs" />
+ <Compile Include="Descriptors\FieldMappingAttribute.cs" />
+ <Compile Include="Descriptors\FieldType.cs" />
+ <Compile Include="Descriptors\MappedType.cs" />
+ <Compile Include="EnumLite.cs" />
+ <Compile Include="ExtendableBuilderLite.cs" />
+ <Compile Include="ExtendableMessageLite.cs" />
+ <Compile Include="FieldSet.cs" />
+ <Compile Include="GeneratedBuilderLite.cs" />
+ <Compile Include="GeneratedExtensionLite.cs" />
+ <Compile Include="GeneratedMessageLite.cs" />
+ <Compile Include="Properties\AssemblyInfo.cs" />
+ <Compile Include="ByteString.cs" />
+ <Compile Include="CodedInputStream.cs" />
+ <Compile Include="CodedOutputStream.cs" />
+ <Compile Include="ExtensionRegistryLite.cs" />
+ <Compile Include="IBuilderLite.cs" />
+ <Compile Include="IMessageLite.cs">
+ <SubType>Code</SubType>
+ </Compile>
+ <Compile Include="InvalidProtocolBufferException.cs" />
+ <Compile Include="ThrowHelper.cs" />
+ <Compile Include="UninitializedMessageException.cs" />
+ <Compile Include="WireFormat.cs" />
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" Condition=" '$(Configuration)' != 'Silverlight2' " />
+ <Import Project="$(MSBuildExtensionsPath)\Microsoft\Silverlight\v2.0\Microsoft.Silverlight.CSharp.targets" Condition=" '$(Configuration)' == 'Silverlight2' " />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/src/ProtocolBuffers/SortedList.cs b/src/ProtocolBuffers/SortedList.cs
index e9f4458e..14f14e30 100644
--- a/src/ProtocolBuffers/SortedList.cs
+++ b/src/ProtocolBuffers/SortedList.cs
@@ -50,6 +50,18 @@ namespace Google.ProtocolBuffers
{
private readonly IDictionary<TKey, TValue> wrapped = new Dictionary<TKey, TValue>();
+ public SortedList()
+ {
+ }
+
+ public SortedList(IDictionary<TKey, TValue> dictionary)
+ {
+ foreach (KeyValuePair<TKey, TValue> entry in dictionary)
+ {
+ Add(entry.Key, entry.Value);
+ }
+ }
+
public void Add(TKey key, TValue value)
{
wrapped.Add(key, value);
diff --git a/src/ProtocolBuffers/TextFormat.cs b/src/ProtocolBuffers/TextFormat.cs
index 5f07e693..81b3447c 100644
--- a/src/ProtocolBuffers/TextFormat.cs
+++ b/src/ProtocolBuffers/TextFormat.cs
@@ -170,13 +170,19 @@ namespace Google.ProtocolBuffers {
}
case FieldType.Enum: {
- generator.Print(((EnumValueDescriptor) value).Name);
+ if (value is IEnumLite && !(value is EnumValueDescriptor)) {
+ throw new NotSupportedException("Lite enumerations are not supported.");
+ }
+ generator.Print(((EnumValueDescriptor)value).Name);
break;
}
case FieldType.Message:
case FieldType.Group:
- Print((IMessage) value, generator);
+ if (value is IMessageLite && !(value is IMessage)) {
+ throw new NotSupportedException("Lite messages are not supported.");
+ }
+ Print((IMessage)value, generator);
break;
}
}
@@ -576,7 +582,9 @@ namespace Google.ProtocolBuffers {
if (extension == null) {
subBuilder = builder.CreateBuilderForField(field);
} else {
- subBuilder = extension.DefaultInstance.WeakCreateBuilderForType();
+ subBuilder = extension.DefaultInstance.WeakCreateBuilderForType() as IBuilder;
+ if (subBuilder == null)
+ throw new NotSupportedException("Lite messages are not supported.");
}
while (!tokenizer.TryConsume(endToken)) {
diff --git a/src/ProtocolBuffers/UninitializedMessageException.cs b/src/ProtocolBuffers/UninitializedMessageException.cs
index 2fa5ef1d..d7f58197 100644
--- a/src/ProtocolBuffers/UninitializedMessageException.cs
+++ b/src/ProtocolBuffers/UninitializedMessageException.cs
@@ -36,8 +36,10 @@ using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
+#if !LITE
using Google.ProtocolBuffers.Collections;
using Google.ProtocolBuffers.Descriptors;
+#endif
namespace Google.ProtocolBuffers {
/// <summary>
@@ -47,16 +49,10 @@ namespace Google.ProtocolBuffers {
private readonly IList<string> missingFields;
- public UninitializedMessageException(IMessage message)
- : this(FindMissingFields(message)) {
- }
-
private UninitializedMessageException(IList<string> missingFields)
: base(BuildDescription(missingFields)) {
- this.missingFields = Lists.AsReadOnly(missingFields);
+ this.missingFields = new List<string>(missingFields);
}
-
-
/// <summary>
/// Returns a read-only list of human-readable names of
/// required fields missing from this message. Each name
@@ -93,6 +89,19 @@ namespace Google.ProtocolBuffers {
}
/// <summary>
+ /// For Lite exceptions that do not known how to enumerate missing fields
+ /// </summary>
+ public UninitializedMessageException(IMessageLite message)
+ : base(String.Format("Message {0} is missing required fields", message.GetType())) {
+ missingFields = new List<string>();
+ }
+
+#if !LITE
+ public UninitializedMessageException(IMessage message)
+ : this(FindMissingFields(message)) {
+ }
+
+ /// <summary>
/// Returns a list of the full "paths" of missing required
/// fields in the specified message.
/// </summary>
@@ -120,11 +129,19 @@ namespace Google.ProtocolBuffers {
if (field.IsRepeated) {
int i = 0;
foreach (object element in (IEnumerable) value) {
- FindMissingFields((IMessage) element, SubMessagePrefix(prefix, field, i++), results);
+ if (element is IMessage) {
+ FindMissingFields((IMessage)element, SubMessagePrefix(prefix, field, i++), results);
+ } else {
+ results.Add(prefix + field.Name);
+ }
}
} else {
if (message.HasField(field)) {
- FindMissingFields((IMessage) value, SubMessagePrefix(prefix, field, -1), results);
+ if (value is IMessage) {
+ FindMissingFields((IMessage)value, SubMessagePrefix(prefix, field, -1), results);
+ } else {
+ results.Add(prefix + field.Name);
+ }
}
}
}
@@ -148,5 +165,6 @@ namespace Google.ProtocolBuffers {
result.Append('.');
return result.ToString();
}
+#endif
}
}
diff --git a/src/ProtocolBuffers/UnknownField.cs b/src/ProtocolBuffers/UnknownField.cs
index fdc00650..ad1b59b4 100644
--- a/src/ProtocolBuffers/UnknownField.cs
+++ b/src/ProtocolBuffers/UnknownField.cs
@@ -172,7 +172,9 @@ namespace Google.ProtocolBuffers {
output.WriteBytes(fieldNumber, value);
}
foreach (UnknownFieldSet value in groupList) {
+#pragma warning disable 0612
output.WriteUnknownGroup(fieldNumber, value);
+#pragma warning restore 0612
}
}
@@ -195,7 +197,9 @@ namespace Google.ProtocolBuffers {
result += CodedOutputStream.ComputeBytesSize(fieldNumber, value);
}
foreach (UnknownFieldSet value in groupList) {
+#pragma warning disable 0612
result += CodedOutputStream.ComputeUnknownGroupSize(fieldNumber, value);
+#pragma warning restore 0612
}
return result;
}
diff --git a/src/ProtocolBuffers/UnknownFieldSet.cs b/src/ProtocolBuffers/UnknownFieldSet.cs
index 49c1fa32..594ae8bd 100644
--- a/src/ProtocolBuffers/UnknownFieldSet.cs
+++ b/src/ProtocolBuffers/UnknownFieldSet.cs
@@ -51,7 +51,7 @@ namespace Google.ProtocolBuffers {
///
/// Most users will never need to use this class directly.
/// </summary>
- public sealed class UnknownFieldSet {
+ public sealed class UnknownFieldSet : IMessageLite {
private static readonly UnknownFieldSet defaultInstance = new UnknownFieldSet(new Dictionary<int, UnknownField>());
@@ -139,6 +139,14 @@ namespace Google.ProtocolBuffers {
}
/// <summary>
+ /// Converts the set to a string in protocol buffer text format. This
+ /// is just a trivial wrapper around TextFormat.PrintToString.
+ /// </summary>
+ public void PrintTo(TextWriter writer) {
+ TextFormat.Print(this, writer);
+ }
+
+ /// <summary>
/// Serializes the message to a ByteString and returns it. This is
/// just a trivial wrapper around WriteTo(CodedOutputStream).
/// </summary>
@@ -237,16 +245,43 @@ namespace Google.ProtocolBuffers {
return CreateBuilder().MergeFrom(input).Build();
}
+ #region IMessageLite Members
+
+ public bool IsInitialized {
+ get { return fields != null; }
+ }
+
+ public void WriteDelimitedTo(Stream output) {
+ CodedOutputStream codedOutput = CodedOutputStream.CreateInstance(output);
+ codedOutput.WriteRawVarint32((uint) SerializedSize);
+ WriteTo(codedOutput);
+ codedOutput.Flush();
+ }
+
+ public IBuilderLite WeakCreateBuilderForType() {
+ return new Builder();
+ }
+
+ public IBuilderLite WeakToBuilder() {
+ return new Builder(fields);
+ }
+
+ public IMessageLite WeakDefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ #endregion
+
/// <summary>
/// Builder for UnknownFieldSets.
/// </summary>
- public sealed class Builder
+ public sealed class Builder : IBuilderLite
{
/// <summary>
/// Mapping from number to field. Note that by using a SortedList we ensure
/// that the fields will be serialized in ascending order.
/// </summary>
- private IDictionary<int, UnknownField> fields = new SortedList<int, UnknownField>();
+ private IDictionary<int, UnknownField> fields;
// Optimization: We keep around a builder for the last field that was
// modified so that we can efficiently add to it multiple times in a
// row (important when parsing an unknown repeated field).
@@ -254,6 +289,11 @@ namespace Google.ProtocolBuffers {
private UnknownField.Builder lastField;
internal Builder() {
+ fields = new SortedList<int, UnknownField>();
+ }
+
+ internal Builder(IDictionary<int, UnknownField> dictionary) {
+ fields = new SortedList<int, UnknownField>(dictionary);
}
/// <summary>
@@ -356,7 +396,9 @@ namespace Google.ProtocolBuffers {
return true;
case WireFormat.WireType.StartGroup: {
Builder subBuilder = CreateBuilder();
+#pragma warning disable 0612
input.ReadUnknownGroup(number, subBuilder);
+#pragma warning restore 0612
GetFieldBuilder(number).AddGroup(subBuilder.Build());
return true;
}
@@ -469,6 +511,7 @@ namespace Google.ProtocolBuffers {
if (tag == 0) {
break;
}
+
if (!MergeFieldFrom(input, extensionRegistry, builder, tag)) {
// end group tag
break;
@@ -485,7 +528,7 @@ namespace Google.ProtocolBuffers {
/// <param name="builder">Builder to merge field into, if it's a known field</param>
/// <param name="tag">The tag, which should already have been read from the input</param>
/// <returns>true unless the tag is an end-group tag</returns>
- internal bool MergeFieldFrom(CodedInputStream input,
+ internal bool MergeFieldFrom(CodedInputStream input,
ExtensionRegistry extensionRegistry, IBuilder builder, uint tag) {
MessageDescriptor type = builder.DescriptorForType;
@@ -498,7 +541,7 @@ namespace Google.ProtocolBuffers {
int fieldNumber = WireFormat.GetTagFieldNumber(tag);
FieldDescriptor field;
- IMessage defaultFieldInstance = null;
+ IMessageLite defaultFieldInstance = null;
if (type.IsExtensionNumber(fieldNumber)) {
ExtensionInfo extension = extensionRegistry[type, fieldNumber];
@@ -543,14 +586,14 @@ namespace Google.ProtocolBuffers {
switch (field.FieldType) {
case FieldType.Group:
case FieldType.Message: {
- IBuilder subBuilder;
+ IBuilderLite subBuilder;
if (defaultFieldInstance != null) {
subBuilder = defaultFieldInstance.WeakCreateBuilderForType();
} else {
subBuilder = builder.CreateBuilderForField(field);
}
if (!field.IsRepeated) {
- subBuilder.WeakMergeFrom((IMessage)builder[field]);
+ subBuilder.WeakMergeFrom((IMessageLite)builder[field]);
}
if (field.FieldType == FieldType.Group) {
input.ReadGroup(field.FieldNumber, subBuilder, extensionRegistry);
@@ -609,7 +652,7 @@ namespace Google.ProtocolBuffers {
int typeId = 0;
ByteString rawBytes = null; // If we encounter "message" before "typeId"
- IBuilder subBuilder = null;
+ IBuilderLite subBuilder = null;
FieldDescriptor field = null;
while (true) {
@@ -626,7 +669,7 @@ namespace Google.ProtocolBuffers {
if (extension != null) {
field = extension.Descriptor;
subBuilder = extension.DefaultInstance.WeakCreateBuilderForType();
- IMessage originalMessage = (IMessage)builder[field];
+ IMessageLite originalMessage = (IMessageLite)builder[field];
if (originalMessage != null) {
subBuilder.WeakMergeFrom(originalMessage);
}
@@ -672,6 +715,54 @@ namespace Google.ProtocolBuffers {
builder[field] = subBuilder.WeakBuild();
}
}
+
+ #region IBuilderLite Members
+
+ bool IBuilderLite.IsInitialized {
+ get { return fields != null; }
+ }
+
+ IBuilderLite IBuilderLite.WeakClear() {
+ return Clear();
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(IMessageLite message) {
+ return MergeFrom((UnknownFieldSet)message);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ByteString data) {
+ return MergeFrom(data);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(ByteString data, ExtensionRegistry registry) {
+ return MergeFrom(data);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(CodedInputStream input) {
+ return MergeFrom(input);
+ }
+
+ IBuilderLite IBuilderLite.WeakMergeFrom(CodedInputStream input, ExtensionRegistry registry) {
+ return MergeFrom(input);
+ }
+
+ IMessageLite IBuilderLite.WeakBuild() {
+ return Build();
+ }
+
+ IMessageLite IBuilderLite.WeakBuildPartial() {
+ return Build();
+ }
+
+ IBuilderLite IBuilderLite.WeakClone() {
+ return Build().WeakToBuilder();
+ }
+
+ IMessageLite IBuilderLite.WeakDefaultInstanceForType {
+ get { return DefaultInstance; }
+ }
+
+ #endregion
}
}
}
diff --git a/src/ProtocolBuffers/WireFormat.cs b/src/ProtocolBuffers/WireFormat.cs
index 22346460..508f1b48 100644
--- a/src/ProtocolBuffers/WireFormat.cs
+++ b/src/ProtocolBuffers/WireFormat.cs
@@ -33,7 +33,9 @@
#endregion
using System;
+#if !LITE
using Google.ProtocolBuffers.Descriptors;
+#endif
namespace Google.ProtocolBuffers {
@@ -115,6 +117,7 @@ namespace Google.ProtocolBuffers {
return (uint) (fieldNumber << TagTypeBits) | (uint) wireType;
}
+#if !LITE
[CLSCompliant(false)]
public static uint MakeTag(FieldDescriptor field) {
return MakeTag(field.FieldNumber, GetWireType(field));
@@ -170,5 +173,6 @@ namespace Google.ProtocolBuffers {
throw new ArgumentOutOfRangeException("No such field type");
}
}
+#endif
}
}
diff --git a/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs b/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
new file mode 100644
index 00000000..e5e278a4
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/AbstractBuilderLiteTest.cs
@@ -0,0 +1,268 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class AbstractBuilderLiteTest {
+
+ [Test]
+ public void TestMergeFromCodedInputStream() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalUint32(uint.MaxValue).Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ using (MemoryStream ms = new MemoryStream(msg.ToByteArray())) {
+ CodedInputStream ci = CodedInputStream.CreateInstance(ms);
+ copy = copy.ToBuilder().MergeFrom(ci).Build();
+ }
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakClear() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.DefaultInstance;
+
+ copy = msg.ToBuilder().SetOptionalString("Should be removed.").Build();
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakClear().WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeFromCodedInputStream() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy = copy.ToBuilder().MergeFrom(CodedInputStream.CreateInstance(new MemoryStream(msg.ToByteArray()))).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeDelimitedFrom() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+ Stream s = new MemoryStream();
+ msg.WriteDelimitedTo(s);
+ s.Position = 0;
+ copy = copy.ToBuilder().MergeDelimitedFrom(s).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeDelimitedFromExtensions() {
+ TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build();
+
+ copy = TestAllExtensionsLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Stream s = new MemoryStream();
+ msg.WriteDelimitedTo(s);
+ s.Position = 0;
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestLiteProtoFile.RegisterAllExtensions(registry);
+
+ copy = copy.ToBuilder().MergeDelimitedFrom(s, registry).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite));
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeFromStream() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+ Stream s = new MemoryStream();
+ msg.WriteTo(s);
+ s.Position = 0;
+ copy = copy.ToBuilder().MergeFrom(s).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestBuilderLiteMergeFromStreamExtensions() {
+ TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build();
+
+ copy = TestAllExtensionsLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Stream s = new MemoryStream();
+ msg.WriteTo(s);
+ s.Position = 0;
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestLiteProtoFile.RegisterAllExtensions(registry);
+
+ copy = copy.ToBuilder().MergeFrom(s, registry).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite));
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakMergeFromIMessageLite() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom((IMessageLite)msg).WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakMergeFromByteString() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalString("Should be merged.").Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString()).WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakMergeFromByteStringExtensions() {
+ TestAllExtensionsLite copy, msg = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Should be merged.").Build();
+
+ copy = TestAllExtensionsLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ copy = (TestAllExtensionsLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), ExtensionRegistry.Empty).WeakBuild();
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestLiteProtoFile.RegisterAllExtensions(registry);
+
+ copy = (TestAllExtensionsLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(msg.ToByteString(), registry).WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ Assert.AreEqual("Should be merged.", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite));
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakMergeFromCodedInputStream() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalUint32(uint.MaxValue).Build();
+
+ copy = TestAllTypesLite.DefaultInstance;
+ Assert.AreNotEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ using (MemoryStream ms = new MemoryStream(msg.ToByteArray())) {
+ CodedInputStream ci = CodedInputStream.CreateInstance(ms);
+ copy = (TestAllTypesLite)((IBuilderLite)copy.ToBuilder()).WeakMergeFrom(ci).WeakBuild();
+ }
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakBuildPartial() {
+ IBuilderLite builder = TestRequiredLite.CreateBuilder();
+ Assert.IsFalse(builder.IsInitialized);
+
+ IMessageLite msg = builder.WeakBuildPartial();
+ Assert.IsFalse(msg.IsInitialized);
+
+ Assert.AreEqual(msg.ToByteArray(), TestRequiredLite.DefaultInstance.ToByteArray());
+ }
+
+ [Test, ExpectedException(typeof(UninitializedMessageException ))]
+ public void TestIBuilderLiteWeakBuildUninitialized() {
+ IBuilderLite builder = TestRequiredLite.CreateBuilder();
+ Assert.IsFalse(builder.IsInitialized);
+ builder.WeakBuild();
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakBuild() {
+ IBuilderLite builder = TestRequiredLite.CreateBuilder()
+ .SetD(0)
+ .SetEn(ExtraEnum.EXLITE_BAZ);
+ Assert.IsTrue(builder.IsInitialized);
+ builder.WeakBuild();
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakClone() {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(1).SetEn(ExtraEnum.EXLITE_BAR).Build();
+ Assert.IsTrue(msg.IsInitialized);
+
+ IMessageLite copy = ((IBuilderLite)msg.ToBuilder()).WeakClone().WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestIBuilderLiteWeakDefaultInstance() {
+ Assert.IsTrue(ReferenceEquals(TestRequiredLite.DefaultInstance,
+ ((IBuilderLite)TestRequiredLite.CreateBuilder()).WeakDefaultInstanceForType));
+ }
+
+ [Test]
+ public void TestGeneratedBuilderLiteAddRange() {
+ TestAllTypesLite copy, msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalUint32(123)
+ .AddRepeatedInt32(1)
+ .AddRepeatedInt32(2)
+ .AddRepeatedInt32(3)
+ .Build();
+
+ copy = msg.DefaultInstanceForType.ToBuilder().MergeFrom(msg).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+ }
+}
diff --git a/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs b/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs
new file mode 100644
index 00000000..2cd87816
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/AbstractMessageLiteTest.cs
@@ -0,0 +1,126 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class AbstractMessageLiteTest {
+
+ [Test]
+ public void TestMessageLiteToByteString() {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ ByteString b = msg.ToByteString();
+ Assert.AreEqual(4, b.Length);
+ Assert.AreEqual(TestRequiredLite.DFieldNumber << 3, b[0]);
+ Assert.AreEqual(42, b[1]);
+ Assert.AreEqual(TestRequiredLite.EnFieldNumber << 3, b[2]);
+ Assert.AreEqual((int)ExtraEnum.EXLITE_BAZ, b[3]);
+ }
+
+ [Test]
+ public void TestMessageLiteToByteArray() {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ ByteString b = msg.ToByteString();
+ ByteString copy = ByteString.CopyFrom(msg.ToByteArray());
+ Assert.AreEqual(b, copy);
+ }
+
+ [Test]
+ public void TestMessageLiteWriteTo() {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ MemoryStream ms = new MemoryStream();
+ msg.WriteTo(ms);
+ Assert.AreEqual(msg.ToByteArray(), ms.ToArray());
+ }
+
+ [Test]
+ public void TestMessageLiteWriteDelimitedTo() {
+ TestRequiredLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ MemoryStream ms = new MemoryStream();
+ msg.WriteDelimitedTo(ms);
+ byte[] buffer = ms.ToArray();
+
+ Assert.AreEqual(5, buffer.Length);
+ Assert.AreEqual(4, buffer[0]);
+ byte[] msgBytes = new byte[4];
+ Array.Copy(buffer, 1, msgBytes, 0, 4);
+ Assert.AreEqual(msg.ToByteArray(), msgBytes);
+ }
+
+ [Test]
+ public void TestIMessageLiteWeakCreateBuilderForType() {
+ IMessageLite msg = TestRequiredLite.DefaultInstance;
+ Assert.AreEqual(typeof(TestRequiredLite.Builder), msg.WeakCreateBuilderForType().GetType());
+ }
+
+ [Test]
+ public void TestMessageLiteWeakToBuilder() {
+ IMessageLite msg = TestRequiredLite.CreateBuilder()
+ .SetD(42)
+ .SetEn(ExtraEnum.EXLITE_BAZ)
+ .Build();
+
+ IMessageLite copy = msg.WeakToBuilder().WeakBuild();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestMessageLiteWeakDefaultInstanceForType() {
+ IMessageLite msg = TestRequiredLite.DefaultInstance;
+ Assert.IsTrue(Object.ReferenceEquals(TestRequiredLite.DefaultInstance, msg.WeakDefaultInstanceForType));
+ }
+ }
+}
diff --git a/src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs b/src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs
new file mode 100644
index 00000000..9a495a9f
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/ExtendableBuilderLiteTest.cs
@@ -0,0 +1,267 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using Google.ProtocolBuffers;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class ExtendableBuilderLiteTest {
+
+ [Test]
+ public void TestHasExtensionT() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite, 123);
+
+ Assert.IsTrue(builder.HasExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestHasExtensionTMissing() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.IsFalse(builder.HasExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestGetExtensionCountT() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 1)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 2)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 3);
+
+ Assert.AreEqual(3, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestGetExtensionCountTEmpty() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.AreEqual(0, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestGetExtensionTNull() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ string value = builder.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite);
+ Assert.IsNull(value);
+ }
+
+ [Test]
+ public void TestGetExtensionTValue() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite, 3);
+
+ Assert.AreEqual(3, builder.GetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestGetExtensionTEmpty() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.AreEqual(0, builder.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite).Count);
+ }
+
+ [Test]
+ public void TestGetExtensionTList() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 1)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 2)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 3);
+
+ IList<int> values = builder.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite);
+ Assert.AreEqual(3, values.Count);
+ }
+
+ [Test]
+ public void TestGetExtensionTIndex() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 1)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 2);
+
+ for(int i = 0; i < 3; i++ )
+ Assert.AreEqual(i, builder.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, i));
+ }
+
+ [Test,ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestGetExtensionTIndexOutOfRange() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ builder.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0);
+ }
+
+ [Test]
+ public void TestSetExtensionTIndex() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 1)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 2);
+
+ for (int i = 0; i < 3; i++)
+ Assert.AreEqual(i, builder.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, i));
+
+ builder.SetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0, 5);
+ builder.SetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 1, 6);
+ builder.SetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 2, 7);
+
+ for (int i = 0; i < 3; i++)
+ Assert.AreEqual(5 + i, builder.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, i));
+ }
+
+ [Test, ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestSetExtensionTIndexOutOfRange() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ builder.SetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0, -1);
+ }
+
+ [Test]
+ public void TestClearExtensionTList() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0);
+ Assert.AreEqual(1, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+
+ builder.ClearExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite);
+ Assert.AreEqual(0, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestClearExtensionTValue() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite, 0);
+ Assert.IsTrue(builder.HasExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+
+ builder.ClearExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite);
+ Assert.IsFalse(builder.HasExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestIndexedByDescriptor() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.IsFalse(builder.HasExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+
+ builder[UnitTestLiteProtoFile.OptionalInt32ExtensionLite.Descriptor] = 123;
+
+ Assert.IsTrue(builder.HasExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ Assert.AreEqual(123, builder.GetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestIndexedByDescriptorAndOrdinal() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0);
+ Assert.AreEqual(1, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+
+ IFieldDescriptorLite f = UnitTestLiteProtoFile.RepeatedInt32ExtensionLite.Descriptor;
+ builder[f, 0] = 123;
+
+ Assert.AreEqual(1, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+ Assert.AreEqual(123, builder.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0));
+ }
+
+ [Test, ExpectedException(typeof(ArgumentOutOfRangeException))]
+ public void TestIndexedByDescriptorAndOrdinalOutOfRange() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ Assert.AreEqual(0, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+
+ IFieldDescriptorLite f = UnitTestLiteProtoFile.RepeatedInt32ExtensionLite.Descriptor;
+ builder[f, 0] = 123;
+ }
+
+ [Test]
+ public void TestClearFieldByDescriptor() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0);
+ Assert.AreEqual(1, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+
+ IFieldDescriptorLite f = UnitTestLiteProtoFile.RepeatedInt32ExtensionLite.Descriptor;
+ builder.ClearField(f);
+ Assert.AreEqual(0, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+ }
+
+ [Test]
+ public void TestAddRepeatedFieldByDescriptor() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0);
+ Assert.AreEqual(1, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+
+ IFieldDescriptorLite f = UnitTestLiteProtoFile.RepeatedInt32ExtensionLite.Descriptor;
+ builder.AddRepeatedField(f, 123);
+ Assert.AreEqual(2, builder.GetExtensionCount(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite));
+ Assert.AreEqual(123, builder.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 1));
+ }
+
+ [Test]
+ public void TestMissingExtensionsLite()
+ {
+ const int optionalInt32 = 12345678;
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder();
+ builder.SetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite, optionalInt32);
+ builder.AddExtension(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite, 1.1);
+ builder.AddExtension(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite, 1.2);
+ builder.AddExtension(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite, 1.3);
+ TestAllExtensionsLite msg = builder.Build();
+
+ Assert.IsTrue(msg.HasExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ Assert.AreEqual(3, msg.GetExtensionCount(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite));
+
+ byte[] bits = msg.ToByteArray();
+ TestAllExtensionsLite copy = TestAllExtensionsLite.ParseFrom(bits);
+ Assert.IsFalse(copy.HasExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ Assert.AreEqual(0, copy.GetExtensionCount(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite));
+ Assert.AreNotEqual(msg, copy);
+
+ //The lite runtime removes all unknown fields and extensions
+ byte[] copybits = copy.ToByteArray();
+ Assert.AreEqual(0, copybits.Length);
+ }
+
+ [Test]
+ public void TestMissingFieldsLite()
+ {
+ TestAllTypesLite msg = TestAllTypesLite.CreateBuilder()
+ .SetOptionalInt32(123)
+ .SetOptionalString("123")
+ .Build();
+
+ byte[] bits = msg.ToByteArray();
+ TestAllExtensionsLite copy = TestAllExtensionsLite.ParseFrom(bits);
+ Assert.AreNotEqual(msg, copy);
+
+ //The lite runtime removes all unknown fields and extensions
+ byte[] copybits = copy.ToByteArray();
+ Assert.AreEqual(0, copybits.Length);
+ }
+ }
+}
diff --git a/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs b/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs
new file mode 100644
index 00000000..86b8f115
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/ExtendableMessageLiteTest.cs
@@ -0,0 +1,304 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.Text;
+using Google.ProtocolBuffers;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class ExtendableMessageLiteTest {
+
+ [Test, Ignore("Not implemented, no assertion made"), ExpectedException(typeof(ArgumentException))]
+ public void ExtensionWriterInvalidExtension() {
+ TestPackedExtensionsLite.CreateBuilder()[UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite.Descriptor] =
+ ForeignMessageLite.DefaultInstance;
+ }
+
+ [Test]
+ public void ExtensionWriterTestMessages() {
+ TestAllExtensionsLite.Builder b = TestAllExtensionsLite.CreateBuilder().SetExtension(
+ UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite, ForeignMessageLite.CreateBuilder().SetC(123).Build());
+ TestAllExtensionsLite copy, msg = b.Build();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestLiteProtoFile.RegisterAllExtensions(registry);
+
+ copy = TestAllExtensionsLite.ParseFrom(msg.ToByteArray(), registry);
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void ExtensionWriterIsInitialized() {
+ Assert.IsTrue(ForeignMessageLite.DefaultInstance.IsInitialized);
+ Assert.IsTrue(TestPackedExtensionsLite.CreateBuilder().IsInitialized);
+ Assert.IsTrue(TestAllExtensionsLite.CreateBuilder().SetExtension(
+ UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite, ForeignMessageLite.DefaultInstance)
+ .IsInitialized);
+ }
+
+ [Test]
+ public void ExtensionWriterTestSetExtensionLists() {
+ TestAllExtensionsLite msg, copy;
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.RepeatedBoolExtensionLite, new[] { true, false })
+ .SetExtension(UnitTestLiteProtoFile.RepeatedCordExtensionLite, new[] { "123", "456" })
+ .SetExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, new[] { ForeignEnumLite.FOREIGN_LITE_BAZ, ForeignEnumLite.FOREIGN_LITE_FOO })
+ ;
+
+ msg = builder.Build();
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestLiteProtoFile.RegisterAllExtensions(registry);
+
+ copy = TestAllExtensionsLite.ParseFrom(msg.ToByteArray(), registry);
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_FOO, copy.GetExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, 1));
+ }
+
+ [Test]
+ public void ExtensionWriterTest() {
+ TestAllExtensionsLite.Builder builder = TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.DefaultBoolExtensionLite, true)
+ .SetExtension(UnitTestLiteProtoFile.DefaultBytesExtensionLite, ByteString.CopyFromUtf8("123"))
+ .SetExtension(UnitTestLiteProtoFile.DefaultCordExtensionLite, "123")
+ .SetExtension(UnitTestLiteProtoFile.DefaultDoubleExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.DefaultFixed32ExtensionLite, 123u)
+ .SetExtension(UnitTestLiteProtoFile.DefaultFixed64ExtensionLite, 123u)
+ .SetExtension(UnitTestLiteProtoFile.DefaultFloatExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.DefaultForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
+ .SetExtension(UnitTestLiteProtoFile.DefaultImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
+ .SetExtension(UnitTestLiteProtoFile.DefaultInt32ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.DefaultInt64ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.DefaultNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO)
+ .SetExtension(UnitTestLiteProtoFile.DefaultSfixed32ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.DefaultSfixed64ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.DefaultSint32ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.DefaultSint64ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.DefaultStringExtensionLite, "123")
+ .SetExtension(UnitTestLiteProtoFile.DefaultStringPieceExtensionLite, "123")
+ .SetExtension(UnitTestLiteProtoFile.DefaultUint32ExtensionLite, 123u)
+ .SetExtension(UnitTestLiteProtoFile.DefaultUint64ExtensionLite, 123u)
+ //Optional
+ .SetExtension(UnitTestLiteProtoFile.OptionalBoolExtensionLite, true)
+ .SetExtension(UnitTestLiteProtoFile.OptionalBytesExtensionLite, ByteString.CopyFromUtf8("123"))
+ .SetExtension(UnitTestLiteProtoFile.OptionalCordExtensionLite, "123")
+ .SetExtension(UnitTestLiteProtoFile.OptionalDoubleExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.OptionalFixed32ExtensionLite, 123u)
+ .SetExtension(UnitTestLiteProtoFile.OptionalFixed64ExtensionLite, 123u)
+ .SetExtension(UnitTestLiteProtoFile.OptionalFloatExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.OptionalForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
+ .SetExtension(UnitTestLiteProtoFile.OptionalImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
+ .SetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.OptionalInt64ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO)
+ .SetExtension(UnitTestLiteProtoFile.OptionalSfixed32ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.OptionalSfixed64ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.OptionalSint32ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.OptionalSint64ExtensionLite, 123)
+ .SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "123")
+ .SetExtension(UnitTestLiteProtoFile.OptionalStringPieceExtensionLite, "123")
+ .SetExtension(UnitTestLiteProtoFile.OptionalUint32ExtensionLite, 123u)
+ .SetExtension(UnitTestLiteProtoFile.OptionalUint64ExtensionLite, 123u)
+ //Repeated
+ .AddExtension(UnitTestLiteProtoFile.RepeatedBoolExtensionLite, true)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedBytesExtensionLite, ByteString.CopyFromUtf8("123"))
+ .AddExtension(UnitTestLiteProtoFile.RepeatedCordExtensionLite, "123")
+ .AddExtension(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedFixed32ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedFixed64ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedFloatExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, ForeignEnumLite.FOREIGN_LITE_BAZ)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedImportEnumExtensionLite, ImportEnumLite.IMPORT_LITE_BAZ)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedInt64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedNestedEnumExtensionLite, TestAllTypesLite.Types.NestedEnum.FOO)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedSfixed32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedSfixed64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedSint32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedSint64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedStringExtensionLite, "123")
+ .AddExtension(UnitTestLiteProtoFile.RepeatedStringPieceExtensionLite, "123")
+ .AddExtension(UnitTestLiteProtoFile.RepeatedUint32ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedUint64ExtensionLite, 123u)
+ ;
+ TestAllExtensionsLite msg = builder.Build();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestLiteProtoFile.RegisterAllExtensions(registry);
+
+ TestAllExtensionsLite.Builder copyBuilder = TestAllExtensionsLite.CreateBuilder().MergeFrom(msg.ToByteArray(), registry);
+ TestAllExtensionsLite copy = copyBuilder.Build();
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.DefaultBoolExtensionLite));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestLiteProtoFile.DefaultBytesExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.DefaultCordExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultDoubleExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.DefaultFixed32ExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.DefaultFixed64ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultFloatExtensionLite));
+ Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.DefaultForeignEnumExtensionLite));
+ Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.DefaultImportEnumExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultInt32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultInt64ExtensionLite));
+ Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO, copy.GetExtension(UnitTestLiteProtoFile.DefaultNestedEnumExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultSfixed32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultSfixed64ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultSint32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.DefaultSint64ExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.DefaultStringExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.DefaultStringPieceExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.DefaultUint32ExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.DefaultUint64ExtensionLite));
+
+ Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.OptionalBoolExtensionLite));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestLiteProtoFile.OptionalBytesExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.OptionalCordExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalDoubleExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.OptionalFixed32ExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.OptionalFixed64ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalFloatExtensionLite));
+ Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.OptionalForeignEnumExtensionLite));
+ Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.OptionalImportEnumExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalInt64ExtensionLite));
+ Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO, copy.GetExtension(UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalSfixed32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalSfixed64ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalSint32ExtensionLite));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.OptionalSint64ExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.OptionalStringPieceExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.OptionalUint32ExtensionLite));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.OptionalUint64ExtensionLite));
+
+ Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.RepeatedBoolExtensionLite, 0));
+ Assert.AreEqual(ByteString.CopyFromUtf8("123"), copy.GetExtension(UnitTestLiteProtoFile.RepeatedBytesExtensionLite, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.RepeatedCordExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedDoubleExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedFixed32ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedFixed64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedFloatExtensionLite, 0));
+ Assert.AreEqual(ForeignEnumLite.FOREIGN_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite, 0));
+ Assert.AreEqual(ImportEnumLite.IMPORT_LITE_BAZ, copy.GetExtension(UnitTestLiteProtoFile.RepeatedImportEnumExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedInt32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedInt64ExtensionLite, 0));
+ Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.FOO, copy.GetExtension(UnitTestLiteProtoFile.RepeatedNestedEnumExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedSfixed32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedSfixed64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedSint32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.RepeatedSint64ExtensionLite, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.RepeatedStringExtensionLite, 0));
+ Assert.AreEqual("123", copy.GetExtension(UnitTestLiteProtoFile.RepeatedStringPieceExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedUint32ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.RepeatedUint64ExtensionLite, 0));
+ }
+
+ [Test]
+ public void ExtensionWriterTestPacked() {
+
+ TestPackedExtensionsLite.Builder builder = TestPackedExtensionsLite.CreateBuilder()
+ .AddExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, true)
+ .AddExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, true)
+ .AddExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 123u)
+ .AddExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 123u);
+
+ TestPackedExtensionsLite msg = builder.Build();
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestLiteProtoFile.RegisterAllExtensions(registry);
+
+ TestPackedExtensionsLite.Builder copyBuilder = TestPackedExtensionsLite.CreateBuilder().MergeFrom(msg.ToByteArray(), registry);
+ TestPackedExtensionsLite copy = copyBuilder.Build();
+
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+
+ Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 0));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 0));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 0));
+
+ Assert.AreEqual(true, copy.GetExtension(UnitTestLiteProtoFile.PackedBoolExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedDoubleExtensionLite, 1));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed32ExtensionLite, 1));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedFixed64ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedFloatExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt32ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedInt64ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed32ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSfixed64ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint32ExtensionLite, 1));
+ Assert.AreEqual(123, copy.GetExtension(UnitTestLiteProtoFile.PackedSint64ExtensionLite, 1));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint32ExtensionLite, 1));
+ Assert.AreEqual(123u, copy.GetExtension(UnitTestLiteProtoFile.PackedUint64ExtensionLite, 1));
+
+ }
+ }
+}
diff --git a/src/ProtocolBuffersLite.Test/InteropLiteTest.cs b/src/ProtocolBuffersLite.Test/InteropLiteTest.cs
new file mode 100644
index 00000000..bd4dba59
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/InteropLiteTest.cs
@@ -0,0 +1,162 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class InteropLiteTest {
+
+ [Test]
+ public void TestConvertFromFullMinimal() {
+ TestInteropPerson person = TestInteropPerson.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ TestInteropPersonLite copy = TestInteropPersonLite.ParseFrom(person.ToByteArray());
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestConvertFromFullComplete() {
+ TestInteropPerson person = TestInteropPerson.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .SetEmail("abc@123.com")
+ .AddRangeCodes(new[] { 1, 2, 3 })
+ .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build())
+ .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-5678").Build())
+ .AddAddresses(TestInteropPerson.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland").SetState("NA").SetZip(12345).Build())
+ .SetExtension(UnitTestExtrasFullProtoFile.EmployeeId, TestInteropEmployeeId.CreateBuilder().SetNumber("123").Build())
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestExtrasLiteProtoFile.RegisterAllExtensions(registry);
+
+ TestInteropPersonLite copy = TestInteropPersonLite.ParseFrom(person.ToByteArray(), registry);
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestConvertFromLiteMinimal() {
+ TestInteropPersonLite person = TestInteropPersonLite.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ TestInteropPerson copy = TestInteropPerson.ParseFrom(person.ToByteArray());
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestConvertFromLiteComplete() {
+ TestInteropPersonLite person = TestInteropPersonLite.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .SetEmail("abc@123.com")
+ .AddRangeCodes(new[] { 1, 2, 3 })
+ .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build())
+ .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber("555-5678").Build())
+ .AddAddresses(TestInteropPersonLite.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland").SetState("NA").SetZip(12345).Build())
+ .SetExtension(UnitTestExtrasLiteProtoFile.EmployeeIdLite, TestInteropEmployeeIdLite.CreateBuilder().SetNumber("123").Build())
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestExtrasFullProtoFile.RegisterAllExtensions(registry);
+
+ TestInteropPerson copy = TestInteropPerson.ParseFrom(person.ToByteArray(), registry);
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+
+ public ByteString AllBytes {
+ get {
+ byte[] bytes = new byte[256];
+ for (int i = 0; i < bytes.Length; i++)
+ bytes[i] = (byte)i;
+ return ByteString.CopyFrom(bytes);
+ }
+ }
+
+ [Test]
+ public void TestCompareStringValues() {
+ TestInteropPersonLite person = TestInteropPersonLite.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .SetEmail("abc@123.com")
+ .AddRangeCodes(new[] { 1, 2, 3 })
+ .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build())
+ .AddPhone(TestInteropPersonLite.Types.PhoneNumber.CreateBuilder().SetNumber(System.Text.Encoding.ASCII.GetString(AllBytes.ToByteArray())).Build())
+ .AddAddresses(TestInteropPersonLite.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland").SetState("NA").SetZip(12345).Build())
+ .SetExtension(UnitTestExtrasLiteProtoFile.EmployeeIdLite, TestInteropEmployeeIdLite.CreateBuilder().SetNumber("123").Build())
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestExtrasFullProtoFile.RegisterAllExtensions(registry);
+
+ TestInteropPerson copy = TestInteropPerson.ParseFrom(person.ToByteArray(), registry);
+
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+
+ TestInteropPerson.Builder copyBuilder = TestInteropPerson.CreateBuilder();
+ TextFormat.Merge(person.ToString().Replace("[protobuf_unittest_extra.employee_id_lite]", "[protobuf_unittest_extra.employee_id]"), registry, copyBuilder);
+
+ copy = copyBuilder.Build();
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+
+ string liteText = person.ToString().TrimEnd().Replace("\r", "");
+ string fullText = copy.ToString().TrimEnd().Replace("\r", "");
+ //map the extension type
+ liteText = liteText.Replace("[protobuf_unittest_extra.employee_id_lite]", "[protobuf_unittest_extra.employee_id]");
+ //lite version does not indent
+ while (fullText.IndexOf("\n ") >= 0)
+ fullText = fullText.Replace("\n ", "\n");
+
+ Assert.AreEqual(fullText, liteText);
+ }
+ }
+}
diff --git a/src/ProtocolBuffersLite.Test/LiteTest.cs b/src/ProtocolBuffersLite.Test/LiteTest.cs
new file mode 100644
index 00000000..df26053d
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/LiteTest.cs
@@ -0,0 +1,112 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using System.IO;
+using Google.ProtocolBuffers.Descriptors;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ /// <summary>
+ /// Miscellaneous tests for message operations that apply to both
+ /// generated and dynamic messages.
+ /// </summary>
+ [TestFixture]
+ public class LiteTest {
+ [Test]
+ public void TestLite() {
+ // Since lite messages are a subset of regular messages, we can mostly
+ // assume that the functionality of lite messages is already thoroughly
+ // tested by the regular tests. All this test really verifies is that
+ // a proto with optimize_for = LITE_RUNTIME compiles correctly when
+ // linked only against the lite library. That is all tested at compile
+ // time, leaving not much to do in this method. Let's just do some random
+ // stuff to make sure the lite message is actually here and usable.
+
+ TestAllTypesLite message =
+ TestAllTypesLite.CreateBuilder()
+ .SetOptionalInt32(123)
+ .AddRepeatedString("hello")
+ .SetOptionalNestedMessage(
+ TestAllTypesLite.Types.NestedMessage.CreateBuilder().SetBb(7))
+ .Build();
+
+ ByteString data = message.ToByteString();
+
+ TestAllTypesLite message2 = TestAllTypesLite.ParseFrom(data);
+
+ Assert.AreEqual(123, message2.OptionalInt32);
+ Assert.AreEqual(1, message2.RepeatedStringCount);
+ Assert.AreEqual("hello", message2.RepeatedStringList[0]);
+ Assert.AreEqual(7, message2.OptionalNestedMessage.Bb);
+ }
+
+ [Test]
+ public void TestLiteExtensions() {
+ // TODO(kenton): Unlike other features of the lite library, extensions are
+ // implemented completely differently from the regular library. We
+ // should probably test them more thoroughly.
+
+ TestAllExtensionsLite message =
+ TestAllExtensionsLite.CreateBuilder()
+ .SetExtension(UnitTestLiteProtoFile.OptionalInt32ExtensionLite, 123)
+ .AddExtension(UnitTestLiteProtoFile.RepeatedStringExtensionLite, "hello")
+ .SetExtension(UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite,
+ TestAllTypesLite.Types.NestedEnum.BAZ)
+ .SetExtension(UnitTestLiteProtoFile.OptionalNestedMessageExtensionLite,
+ TestAllTypesLite.Types.NestedMessage.CreateBuilder().SetBb(7).Build())
+ .Build();
+
+ // Test copying a message, since coping extensions actually does use a
+ // different code path between lite and regular libraries, and as of this
+ // writing, parsing hasn't been implemented yet.
+ TestAllExtensionsLite message2 = message.ToBuilder().Build();
+
+ Assert.AreEqual(123, (int)message2.GetExtension(
+ UnitTestLiteProtoFile.OptionalInt32ExtensionLite));
+ Assert.AreEqual(1, message2.GetExtensionCount(
+ UnitTestLiteProtoFile.RepeatedStringExtensionLite));
+ Assert.AreEqual(1, message2.GetExtension(
+ UnitTestLiteProtoFile.RepeatedStringExtensionLite).Count);
+ Assert.AreEqual("hello", message2.GetExtension(
+ UnitTestLiteProtoFile.RepeatedStringExtensionLite, 0));
+ Assert.AreEqual(TestAllTypesLite.Types.NestedEnum.BAZ, message2.GetExtension(
+ UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite));
+ Assert.AreEqual(7, message2.GetExtension(
+ UnitTestLiteProtoFile.OptionalNestedMessageExtensionLite).Bb);
+ }
+ }
+} \ No newline at end of file
diff --git a/src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs b/src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs
new file mode 100644
index 00000000..b34f3af3
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/MissingFieldAndExtensionTest.cs
@@ -0,0 +1,219 @@
+#region Copyright notice and license
+
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System.IO;
+using NUnit.Framework;
+using System.Collections.Generic;
+using Google.ProtocolBuffers.TestProtos;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class MissingFieldAndExtensionTest {
+ [Test]
+ public void TestRecoverMissingExtensions() {
+ const int optionalInt32 = 12345678;
+ TestAllExtensions.Builder builder = TestAllExtensions.CreateBuilder();
+ builder.SetExtension(UnitTestProtoFile.OptionalInt32Extension, optionalInt32);
+ builder.AddExtension(UnitTestProtoFile.RepeatedDoubleExtension, 1.1);
+ builder.AddExtension(UnitTestProtoFile.RepeatedDoubleExtension, 1.2);
+ builder.AddExtension(UnitTestProtoFile.RepeatedDoubleExtension, 1.3);
+ TestAllExtensions msg = builder.Build();
+
+ Assert.IsTrue(msg.HasExtension(UnitTestProtoFile.OptionalInt32Extension));
+ Assert.AreEqual(3, msg.GetExtensionCount(UnitTestProtoFile.RepeatedDoubleExtension));
+
+ byte[] bits = msg.ToByteArray();
+ TestAllExtensions copy = TestAllExtensions.ParseFrom(bits);
+ Assert.IsFalse(copy.HasExtension(UnitTestProtoFile.OptionalInt32Extension));
+ Assert.AreEqual(0, copy.GetExtensionCount(UnitTestProtoFile.RepeatedDoubleExtension));
+ Assert.AreNotEqual(msg, copy);
+
+ //Even though copy does not understand the typees they serialize correctly
+ byte[] copybits = copy.ToByteArray();
+ Assert.AreEqual(bits, copybits);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestProtoFile.RegisterAllExtensions(registry);
+
+ //Now we can take those copy bits and restore the full message with extensions
+ copy = TestAllExtensions.ParseFrom(copybits, registry);
+ Assert.IsTrue(copy.HasExtension(UnitTestProtoFile.OptionalInt32Extension));
+ Assert.AreEqual(3, copy.GetExtensionCount(UnitTestProtoFile.RepeatedDoubleExtension));
+
+ Assert.AreEqual(msg, copy);
+ Assert.AreEqual(bits, copy.ToByteArray());
+
+ //If we modify the object this should all continue to work as before
+ copybits = copy.ToBuilder().Build().ToByteArray();
+ Assert.AreEqual(bits, copybits);
+
+ //If we replace extension the object this should all continue to work as before
+ copybits = copy.ToBuilder()
+ .SetExtension(UnitTestProtoFile.OptionalInt32Extension, optionalInt32)
+ .Build().ToByteArray();
+ Assert.AreEqual(bits, copybits);
+ }
+
+ [Test]
+ public void TestRecoverMissingFields() {
+ TestMissingFieldsA msga = TestMissingFieldsA.CreateBuilder()
+ .SetId(1001)
+ .SetName("Name")
+ .SetEmail("missing@field.value")
+ .Build();
+
+ //serialize to type B and verify all fields exist
+ TestMissingFieldsB msgb = TestMissingFieldsB.ParseFrom(msga.ToByteArray());
+ Assert.AreEqual(1001, msgb.Id);
+ Assert.AreEqual("Name", msgb.Name);
+ Assert.IsFalse(msgb.HasWebsite);
+ Assert.AreEqual(1, msgb.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual("missing@field.value", msgb.UnknownFields[TestMissingFieldsA.EmailFieldNumber].LengthDelimitedList[0].ToStringUtf8());
+
+ //serializes exactly the same (at least for this simple example)
+ Assert.AreEqual(msga.ToByteArray(), msgb.ToByteArray());
+ Assert.AreEqual(msga, TestMissingFieldsA.ParseFrom(msgb.ToByteArray()));
+
+ //now re-create an exact copy of A from serialized B
+ TestMissingFieldsA copya = TestMissingFieldsA.ParseFrom(msgb.ToByteArray());
+ Assert.AreEqual(msga, copya);
+ Assert.AreEqual(1001, copya.Id);
+ Assert.AreEqual("Name", copya.Name);
+ Assert.AreEqual("missing@field.value", copya.Email);
+
+ //Now we modify B... and try again
+ msgb = msgb.ToBuilder().SetWebsite("http://new.missing.field").Build();
+ //Does B still have the missing field?
+ Assert.AreEqual(1, msgb.UnknownFields.FieldDictionary.Count);
+
+ //Convert back to A and see if all fields are there?
+ copya = TestMissingFieldsA.ParseFrom(msgb.ToByteArray());
+ Assert.AreNotEqual(msga, copya);
+ Assert.AreEqual(1001, copya.Id);
+ Assert.AreEqual("Name", copya.Name);
+ Assert.AreEqual("missing@field.value", copya.Email);
+ Assert.AreEqual(1, copya.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual("http://new.missing.field", copya.UnknownFields[TestMissingFieldsB.WebsiteFieldNumber].LengthDelimitedList[0].ToStringUtf8());
+
+ //Lastly we can even still trip back to type B and see all fields:
+ TestMissingFieldsB copyb = TestMissingFieldsB.ParseFrom(copya.ToByteArray());
+ Assert.AreEqual(copya.ToByteArray().Length, copyb.ToByteArray().Length); //not exact order.
+ Assert.AreEqual(1001, copyb.Id);
+ Assert.AreEqual("Name", copyb.Name);
+ Assert.AreEqual("http://new.missing.field", copyb.Website);
+ Assert.AreEqual(1, copyb.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual("missing@field.value", copyb.UnknownFields[TestMissingFieldsA.EmailFieldNumber].LengthDelimitedList[0].ToStringUtf8());
+ }
+
+ [Test]
+ public void TestRecoverMissingMessage() {
+ TestMissingFieldsA.Types.SubA suba = TestMissingFieldsA.Types.SubA.CreateBuilder().SetCount(3).AddValues("a").AddValues("b").AddValues("c").Build();
+ TestMissingFieldsA msga = TestMissingFieldsA.CreateBuilder()
+ .SetId(1001)
+ .SetName("Name")
+ .SetTestA(suba)
+ .Build();
+
+ //serialize to type B and verify all fields exist
+ TestMissingFieldsB msgb = TestMissingFieldsB.ParseFrom(msga.ToByteArray());
+ Assert.AreEqual(1001, msgb.Id);
+ Assert.AreEqual("Name", msgb.Name);
+ Assert.AreEqual(1, msgb.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual(suba.ToString(), TestMissingFieldsA.Types.SubA.ParseFrom(msgb.UnknownFields[TestMissingFieldsA.TestAFieldNumber].LengthDelimitedList[0]).ToString());
+
+ //serializes exactly the same (at least for this simple example)
+ Assert.AreEqual(msga.ToByteArray(), msgb.ToByteArray());
+ Assert.AreEqual(msga, TestMissingFieldsA.ParseFrom(msgb.ToByteArray()));
+
+ //now re-create an exact copy of A from serialized B
+ TestMissingFieldsA copya = TestMissingFieldsA.ParseFrom(msgb.ToByteArray());
+ Assert.AreEqual(msga, copya);
+ Assert.AreEqual(1001, copya.Id);
+ Assert.AreEqual("Name", copya.Name);
+ Assert.AreEqual(suba, copya.TestA);
+
+ //Now we modify B... and try again
+ TestMissingFieldsB.Types.SubB subb = TestMissingFieldsB.Types.SubB.CreateBuilder().AddValues("test-b").Build();
+ msgb = msgb.ToBuilder().SetTestB(subb).Build();
+ //Does B still have the missing field?
+ Assert.AreEqual(1, msgb.UnknownFields.FieldDictionary.Count);
+
+ //Convert back to A and see if all fields are there?
+ copya = TestMissingFieldsA.ParseFrom(msgb.ToByteArray());
+ Assert.AreNotEqual(msga, copya);
+ Assert.AreEqual(1001, copya.Id);
+ Assert.AreEqual("Name", copya.Name);
+ Assert.AreEqual(suba, copya.TestA);
+ Assert.AreEqual(1, copya.UnknownFields.FieldDictionary.Count);
+ Assert.AreEqual(subb.ToByteArray(), copya.UnknownFields[TestMissingFieldsB.TestBFieldNumber].LengthDelimitedList[0].ToByteArray());
+
+ //Lastly we can even still trip back to type B and see all fields:
+ TestMissingFieldsB copyb = TestMissingFieldsB.ParseFrom(copya.ToByteArray());
+ Assert.AreEqual(copya.ToByteArray().Length, copyb.ToByteArray().Length); //not exact order.
+ Assert.AreEqual(1001, copyb.Id);
+ Assert.AreEqual("Name", copyb.Name);
+ Assert.AreEqual(subb, copyb.TestB);
+ Assert.AreEqual(1, copyb.UnknownFields.FieldDictionary.Count);
+ }
+
+ [Test]
+ public void TestRestoreFromOtherType() {
+ TestInteropPerson person = TestInteropPerson.CreateBuilder()
+ .SetId(123)
+ .SetName("abc")
+ .SetEmail("abc@123.com")
+ .AddRangeCodes(new[] {1, 2, 3})
+ .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-1234").Build())
+ .AddPhone(TestInteropPerson.Types.PhoneNumber.CreateBuilder().SetNumber("555-5678").Build())
+ .AddAddresses(TestInteropPerson.Types.Addresses.CreateBuilder().SetAddress("123 Seseme").SetCity("Wonderland").SetState("NA").SetZip(12345).Build())
+ .SetExtension(UnitTestExtrasFullProtoFile.EmployeeId, TestInteropEmployeeId.CreateBuilder().SetNumber("123").Build())
+ .Build();
+ Assert.IsTrue(person.IsInitialized);
+
+ TestEmptyMessage temp = TestEmptyMessage.ParseFrom(person.ToByteArray());
+ Assert.AreEqual(7, temp.UnknownFields.FieldDictionary.Count);
+ temp = temp.ToBuilder().Build();
+ Assert.AreEqual(7, temp.UnknownFields.FieldDictionary.Count);
+
+ ExtensionRegistry registry = ExtensionRegistry.CreateInstance();
+ UnitTestExtrasFullProtoFile.RegisterAllExtensions(registry);
+
+ TestInteropPerson copy = TestInteropPerson.ParseFrom(temp.ToByteArray(), registry);
+ Assert.AreEqual(person, copy);
+ Assert.AreEqual(person.ToByteArray(), copy.ToByteArray());
+ }
+ }
+} \ No newline at end of file
diff --git a/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj b/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
new file mode 100644
index 00000000..7f89f640
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/ProtocolBuffersLite.Test.csproj
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{EE01ED24-3750-4567-9A23-1DB676A15610}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffersLite.Test</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\ProtocolBuffers.Test\Properties\Google.ProtocolBuffers.Test.snk</AssemblyOriginatorKeyFile>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug_Silverlight2|AnyCPU'">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug_Silverlight2\</OutputPath>
+ <DefineConstants>DEBUG;TRACE;SILVERLIGHT2</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_Silverlight2|AnyCPU'">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release_Silverlight2\</OutputPath>
+ <DefineConstants>TRACE;SILVERLIGHT2</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="nunit.framework, Version=2.2.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\lib\NUnit 2.2.8.0\nunit.framework.dll</HintPath>
+ </Reference>
+ <Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\lib\Rhino.Mocks.dll</HintPath>
+ </Reference>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\ProtocolBuffers.Test\Properties\AssemblyInfo.cs">
+ <Link>Properties\AssemblyInfo.cs</Link>
+ </Compile>
+ <Compile Include="AbstractBuilderLiteTest.cs" />
+ <Compile Include="AbstractMessageLiteTest.cs" />
+ <Compile Include="ExtendableBuilderLiteTest.cs" />
+ <Compile Include="ExtendableMessageLiteTest.cs" />
+ <Compile Include="LiteTest.cs" />
+ <Compile Include="TestLiteByApi.cs" />
+ <Compile Include="TestProtos\UnitTestExtrasLiteProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestImportLiteProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestLiteProtoFile.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\ProtocolBuffers.Test\Properties\Google.ProtocolBuffers.Test.snk">
+ <Link>Properties\Google.ProtocolBuffers.Test.snk</Link>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffersLite.csproj">
+ <Project>{6969BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffersLite</Name>
+ <Private>True</Private>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj b/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
new file mode 100644
index 00000000..3e465468
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/ProtocolBuffersLiteMixed.Test.csproj
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <PropertyGroup>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <ProductVersion>9.0.30729</ProductVersion>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{EEFFED24-3750-4567-9A23-1DB676A15610}</ProjectGuid>
+ <OutputType>Library</OutputType>
+ <AppDesignerFolder>Properties</AppDesignerFolder>
+ <RootNamespace>Google.ProtocolBuffers</RootNamespace>
+ <AssemblyName>Google.ProtocolBuffersMixedLite.Test</AssemblyName>
+ <TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
+ <FileAlignment>512</FileAlignment>
+ <SignAssembly>true</SignAssembly>
+ <AssemblyOriginatorKeyFile>..\ProtocolBuffers.Test\Properties\Google.ProtocolBuffers.Test.snk</AssemblyOriginatorKeyFile>
+ <FileUpgradeFlags>
+ </FileUpgradeFlags>
+ <OldToolsVersion>3.5</OldToolsVersion>
+ <UpgradeBackupLocation />
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug\</OutputPath>
+ <DefineConstants>DEBUG;TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <NoStdLib>true</NoStdLib>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release\</OutputPath>
+ <DefineConstants>TRACE</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <NoStdLib>true</NoStdLib>
+ <WarningLevel>4</WarningLevel>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug_Silverlight2|AnyCPU'">
+ <DebugSymbols>true</DebugSymbols>
+ <DebugType>full</DebugType>
+ <Optimize>false</Optimize>
+ <OutputPath>bin\Debug_Silverlight2\</OutputPath>
+ <DefineConstants>DEBUG;TRACE;SILVERLIGHT2</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release_Silverlight2|AnyCPU'">
+ <DebugType>pdbonly</DebugType>
+ <Optimize>true</Optimize>
+ <OutputPath>bin\Release_Silverlight2\</OutputPath>
+ <DefineConstants>TRACE;SILVERLIGHT2</DefineConstants>
+ <ErrorReport>prompt</ErrorReport>
+ <WarningLevel>4</WarningLevel>
+ <NoStdLib>true</NoStdLib>
+ <CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
+ </PropertyGroup>
+ <ItemGroup>
+ <Reference Include="nunit.framework, Version=2.2.8.0, Culture=neutral, PublicKeyToken=96d09a1eb7f44a77">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\lib\NUnit 2.2.8.0\nunit.framework.dll</HintPath>
+ </Reference>
+ <Reference Include="Rhino.Mocks, Version=3.5.0.2, Culture=neutral, PublicKeyToken=0b3305902db7183f, processorArchitecture=MSIL">
+ <SpecificVersion>False</SpecificVersion>
+ <HintPath>..\..\lib\Rhino.Mocks.dll</HintPath>
+ </Reference>
+ <Reference Include="mscorlib" />
+ <Reference Include="System" />
+ <Reference Include="System.Data" />
+ <Reference Include="System.Xml" />
+ </ItemGroup>
+ <ItemGroup>
+ <Compile Include="..\ProtocolBuffers.Test\Properties\AssemblyInfo.cs">
+ <Link>Properties\AssemblyInfo.cs</Link>
+ </Compile>
+ <Compile Include="AbstractBuilderLiteTest.cs" />
+ <Compile Include="AbstractMessageLiteTest.cs" />
+ <Compile Include="ExtendableBuilderLiteTest.cs" />
+ <Compile Include="ExtendableMessageLiteTest.cs" />
+ <Compile Include="InteropLiteTest.cs" />
+ <Compile Include="LiteTest.cs" />
+ <Compile Include="MissingFieldAndExtensionTest.cs" />
+ <Compile Include="TestLiteByApi.cs" />
+ <Compile Include="TestProtos\UnitTestExtrasFullProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestExtrasLiteProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestImportLiteProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestImportProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestLiteImportNonLiteProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestLiteProtoFile.cs" />
+ <Compile Include="TestProtos\UnitTestProtoFile.cs" />
+ </ItemGroup>
+ <ItemGroup>
+ <None Include="..\ProtocolBuffers.Test\Properties\Google.ProtocolBuffers.Test.snk">
+ <Link>Properties\Google.ProtocolBuffers.Test.snk</Link>
+ </None>
+ </ItemGroup>
+ <ItemGroup>
+ <ProjectReference Include="..\ProtocolBuffers\ProtocolBuffers.csproj">
+ <Project>{6908BDCE-D925-43F3-94AC-A531E6DF2591}</Project>
+ <Name>ProtocolBuffers</Name>
+ </ProjectReference>
+ </ItemGroup>
+ <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+ <!-- To modify your build process, add your task inside one of the targets below and uncomment it.
+ Other similar extension points exist, see Microsoft.Common.targets.
+ <Target Name="BeforeBuild">
+ </Target>
+ <Target Name="AfterBuild">
+ </Target>
+ -->
+</Project> \ No newline at end of file
diff --git a/src/ProtocolBuffersLite.Test/TestLiteByApi.cs b/src/ProtocolBuffersLite.Test/TestLiteByApi.cs
new file mode 100644
index 00000000..dfa32221
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/TestLiteByApi.cs
@@ -0,0 +1,116 @@
+#region Copyright notice and license
+// Protocol Buffers - Google's data interchange format
+// Copyright 2008 Google Inc. All rights reserved.
+// http://github.com/jskeet/dotnet-protobufs/
+// Original C++/Java/Python code:
+// http://code.google.com/p/protobuf/
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+// * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+// * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+// * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#endregion
+
+using System;
+using System.Collections.Generic;
+using Google.ProtocolBuffers;
+using Google.ProtocolBuffers.TestProtos;
+using NUnit.Framework;
+
+namespace Google.ProtocolBuffers {
+ [TestFixture]
+ public class TestLiteByApi {
+
+ [Test]
+ public void TestAllTypesEquality() {
+ TestAllTypesLite msg = TestAllTypesLite.DefaultInstance;
+ TestAllTypesLite copy = msg.ToBuilder().Build();
+ Assert.AreEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsTrue(msg.Equals(copy));
+ msg = msg.ToBuilder().SetOptionalString("Hi").Build();
+ Assert.AreNotEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsFalse(msg.Equals(copy));
+ copy = copy.ToBuilder().SetOptionalString("Hi").Build();
+ Assert.AreEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsTrue(msg.Equals(copy));
+ }
+
+ [Test]
+ public void TestEqualityOnExtensions() {
+ TestAllExtensionsLite msg = TestAllExtensionsLite.DefaultInstance;
+ TestAllExtensionsLite copy = msg.ToBuilder().Build();
+ Assert.AreEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsTrue(msg.Equals(copy));
+ msg = msg.ToBuilder().SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Hi").Build();
+ Assert.AreNotEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsFalse(msg.Equals(copy));
+ copy = copy.ToBuilder().SetExtension(UnitTestLiteProtoFile.OptionalStringExtensionLite, "Hi").Build();
+ Assert.AreEqual(msg.GetHashCode(), copy.GetHashCode());
+ Assert.IsTrue(msg.Equals(copy));
+ }
+
+ [Test]
+ public void TestAllTypesToString() {
+ TestAllTypesLite msg = TestAllTypesLite.DefaultInstance;
+ TestAllTypesLite copy = msg.ToBuilder().Build();
+ Assert.AreEqual(msg.ToString(), copy.ToString());
+ Assert.IsEmpty(msg.ToString());
+ msg = msg.ToBuilder().SetOptionalInt32(-1).Build();
+ Assert.AreEqual("optional_int32: -1", msg.ToString().TrimEnd());
+ msg = msg.ToBuilder().SetOptionalString("abc123").Build();
+ Assert.AreEqual("optional_int32: -1\noptional_string: \"abc123\"", msg.ToString().Replace("\r", "").TrimEnd());
+ }
+
+ [Test]
+ public void TestAllTypesDefaultedRoundTrip() {
+ TestAllTypesLite msg = TestAllTypesLite.DefaultInstance;
+ Assert.IsTrue(msg.IsInitialized);
+ TestAllTypesLite copy = TestAllTypesLite.CreateBuilder().MergeFrom(msg.ToByteArray()).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ [Test]
+ public void TestAllTypesModifiedRoundTrip() {
+ TestAllTypesLite msg = TestAllTypesLite.DefaultInstance;
+ msg.ToBuilder()
+ .SetOptionalBool(true)
+ .SetOptionalCord("Hi")
+ .SetOptionalDouble(1.123)
+ .SetOptionalForeignEnum(ForeignEnumLite.FOREIGN_LITE_FOO)
+ .SetOptionalForeignMessage(ForeignMessageLite.CreateBuilder().SetC('c').Build())
+ .SetOptionalGroup(TestAllTypesLite.Types.OptionalGroup.CreateBuilder().SetA('a').Build())
+ .SetOptionalImportEnum(ImportEnumLite.IMPORT_LITE_BAR)
+ .SetOptionalInt32(32)
+ .SetOptionalInt64(64)
+ .SetOptionalNestedEnum(TestAllTypesLite.Types.NestedEnum.FOO)
+ .SetOptionalString("SetOptionalString")
+ .AddRepeatedGroup(TestAllTypesLite.Types.RepeatedGroup.CreateBuilder().SetA('a').Build())
+ .AddRepeatedGroup(TestAllTypesLite.Types.RepeatedGroup.CreateBuilder().SetA('A').Build())
+ ;
+ TestAllTypesLite copy = TestAllTypesLite.CreateBuilder().MergeFrom(msg.ToByteArray()).Build();
+ Assert.AreEqual(msg.ToByteArray(), copy.ToByteArray());
+ }
+
+ }
+}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
new file mode 100644
index 00000000..592dc3ba
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasFullProtoFile.cs
@@ -0,0 +1,1803 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestExtrasFullProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.EmployeeId);
+ }
+ #endregion
+ #region Extensions
+ public const int EmployeeIdFieldNumber = 126;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId> EmployeeId;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Builder> internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder> internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder> internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId, global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.Builder> internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Builder> internal__static_protobuf_unittest_extra_TestMissingFieldsA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.Builder> internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Builder> internal__static_protobuf_unittest_extra_TestMissingFieldsB__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.Builder> internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestExtrasFullProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "CiFleHRlc3QvdW5pdHRlc3RfZXh0cmFzX2Z1bGwucHJvdG8SF3Byb3RvYnVm" +
+ "X3VuaXR0ZXN0X2V4dHJhGiRnb29nbGUvcHJvdG9idWYvY3NoYXJwX29wdGlv" +
+ "bnMucHJvdG8i1gMKEVRlc3RJbnRlcm9wUGVyc29uEgwKBG5hbWUYASACKAkS" +
+ "CgoCaWQYAiACKAUSDQoFZW1haWwYAyABKAkSEQoFY29kZXMYCiADKAVCAhAB" +
+ "EkUKBXBob25lGAQgAygLMjYucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVz" +
+ "dEludGVyb3BQZXJzb24uUGhvbmVOdW1iZXISRwoJYWRkcmVzc2VzGAUgAygK" +
+ "MjQucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdEludGVyb3BQZXJzb24u" +
+ "QWRkcmVzc2VzGmcKC1Bob25lTnVtYmVyEg4KBm51bWJlchgBIAIoCRJICgR0" +
+ "eXBlGAIgASgOMjQucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdEludGVy" +
+ "b3BQZXJzb24uUGhvbmVUeXBlOgRIT01FGlgKCUFkZHJlc3NlcxIPCgdhZGRy" +
+ "ZXNzGAEgAigJEhAKCGFkZHJlc3MyGAIgASgJEgwKBGNpdHkYAyACKAkSDQoF" +
+ "c3RhdGUYBCACKAkSCwoDemlwGAUgAigHIisKCVBob25lVHlwZRIKCgZNT0JJ" +
+ "TEUQABIICgRIT01FEAESCAoEV09SSxACKgUIZBDIASInChVUZXN0SW50ZXJv" +
+ "cEVtcGxveWVlSWQSDgoGbnVtYmVyGAEgAigJIqUBChJUZXN0TWlzc2luZ0Zp" +
+ "ZWxkc0ESDAoEbmFtZRgBIAIoCRIKCgJpZBgCIAIoBRINCgVlbWFpbBgDIAEo" +
+ "CRI/CgV0ZXN0QRgLIAEoCzIwLnByb3RvYnVmX3VuaXR0ZXN0X2V4dHJhLlRl" +
+ "c3RNaXNzaW5nRmllbGRzQS5TdWJBGiUKBFN1YkESDQoFY291bnQYBSACKAUS" +
+ "DgoGdmFsdWVzGAYgAygJIpgBChJUZXN0TWlzc2luZ0ZpZWxkc0ISDAoEbmFt" +
+ "ZRgBIAIoCRIKCgJpZBgCIAIoBRIPCgd3ZWJzaXRlGAQgASgJEj8KBXRlc3RC" +
+ "GAwgASgLMjAucHJvdG9idWZfdW5pdHRlc3RfZXh0cmEuVGVzdE1pc3NpbmdG" +
+ "aWVsZHNCLlN1YkIaFgoEU3ViQhIOCgZ2YWx1ZXMYByADKAk6bwoLZW1wbG95" +
+ "ZWVfaWQSKi5wcm90b2J1Zl91bml0dGVzdF9leHRyYS5UZXN0SW50ZXJvcFBl" +
+ "cnNvbhh+IAIoCzIuLnByb3RvYnVmX3VuaXR0ZXN0X2V4dHJhLlRlc3RJbnRl" +
+ "cm9wRW1wbG95ZWVJZEJaChNjb20uZ29vZ2xlLnByb3RvYnVmSALCPkAKIUdv" +
+ "b2dsZS5Qcm90b2NvbEJ1ZmZlcnMuVGVzdFByb3RvcxIbVW5pdFRlc3RFeHRy" +
+ "YXNGdWxsUHJvdG9GaWxl");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Builder>(internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor,
+ new string[] { "Name", "Id", "Email", "Codes", "Phone", "Addresses", });
+ internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor = internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder>(internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor,
+ new string[] { "Number", "Type", });
+ internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor = internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder>(internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor,
+ new string[] { "Address", "Address2", "City", "State", "Zip", });
+ internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId, global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.Builder>(internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor,
+ new string[] { "Number", });
+ internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_extra_TestMissingFieldsA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Builder>(internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor,
+ new string[] { "Name", "Id", "Email", "TestA", });
+ internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__Descriptor = internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.Builder>(internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__Descriptor,
+ new string[] { "Count", "Values", });
+ internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_extra_TestMissingFieldsB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Builder>(internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor,
+ new string[] { "Name", "Id", "Website", "TestB", });
+ internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__Descriptor = internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB, global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.Builder>(internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__Descriptor,
+ new string[] { "Values", });
+ global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.EmployeeId = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor.Extensions[0]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class TestInteropPerson : pb::ExtendableMessage<TestInteropPerson, TestInteropPerson.Builder> {
+ private static readonly TestInteropPerson defaultInstance = new Builder().BuildPartial();
+ public static TestInteropPerson DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestInteropPerson DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestInteropPerson ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestInteropPerson, TestInteropPerson.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public enum PhoneType {
+ MOBILE = 0,
+ HOME = 1,
+ WORK = 2,
+ }
+
+ public sealed partial class PhoneNumber : pb::GeneratedMessage<PhoneNumber, PhoneNumber.Builder> {
+ private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();
+ public static PhoneNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override PhoneNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<PhoneNumber, PhoneNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson_PhoneNumber__FieldAccessorTable; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public const int TypeFieldNumber = 2;
+ private bool hasType;
+ private global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType.HOME;
+ public bool HasType {
+ get { return hasType; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType Type {
+ get { return type_; }
+ }
+
+ public static PhoneNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PhoneNumber prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<PhoneNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ PhoneNumber result = new PhoneNumber();
+
+ protected override PhoneNumber MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new PhoneNumber();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Descriptor; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.DefaultInstance; }
+ }
+
+ public override PhoneNumber BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ PhoneNumber returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasNumber {
+ get { return result.HasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+
+ public bool HasType {
+ get { return result.HasType; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType Type {
+ get { return result.Type; }
+ set { SetType(value); }
+ }
+ public Builder SetType(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType value) {
+ result.hasType = true;
+ result.type_ = value;
+ return this;
+ }
+ public Builder ClearType() {
+ result.hasType = false;
+ result.type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneType.HOME;
+ return this;
+ }
+ }
+ static PhoneNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class Addresses : pb::GeneratedMessage<Addresses, Addresses.Builder> {
+ private static readonly Addresses defaultInstance = new Builder().BuildPartial();
+ public static Addresses DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Addresses DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override Addresses ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Addresses, Addresses.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropPerson_Addresses__FieldAccessorTable; }
+ }
+
+ public const int AddressFieldNumber = 1;
+ private bool hasAddress;
+ private string address_ = "";
+ public bool HasAddress {
+ get { return hasAddress; }
+ }
+ public string Address {
+ get { return address_; }
+ }
+
+ public const int Address2FieldNumber = 2;
+ private bool hasAddress2;
+ private string address2_ = "";
+ public bool HasAddress2 {
+ get { return hasAddress2; }
+ }
+ public string Address2 {
+ get { return address2_; }
+ }
+
+ public const int CityFieldNumber = 3;
+ private bool hasCity;
+ private string city_ = "";
+ public bool HasCity {
+ get { return hasCity; }
+ }
+ public string City {
+ get { return city_; }
+ }
+
+ public const int StateFieldNumber = 4;
+ private bool hasState;
+ private string state_ = "";
+ public bool HasState {
+ get { return hasState; }
+ }
+ public string State {
+ get { return state_; }
+ }
+
+ public const int ZipFieldNumber = 5;
+ private bool hasZip;
+ private uint zip_ = 0;
+ public bool HasZip {
+ get { return hasZip; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Zip {
+ get { return zip_; }
+ }
+
+ public static Addresses ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Addresses ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Addresses ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Addresses ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Addresses prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<Addresses, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ Addresses result = new Addresses();
+
+ protected override Addresses MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new Addresses();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Descriptor; }
+ }
+
+ public override Addresses DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.DefaultInstance; }
+ }
+
+ public override Addresses BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ Addresses returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasAddress {
+ get { return result.HasAddress; }
+ }
+ public string Address {
+ get { return result.Address; }
+ set { SetAddress(value); }
+ }
+ public Builder SetAddress(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasAddress = true;
+ result.address_ = value;
+ return this;
+ }
+ public Builder ClearAddress() {
+ result.hasAddress = false;
+ result.address_ = "";
+ return this;
+ }
+
+ public bool HasAddress2 {
+ get { return result.HasAddress2; }
+ }
+ public string Address2 {
+ get { return result.Address2; }
+ set { SetAddress2(value); }
+ }
+ public Builder SetAddress2(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasAddress2 = true;
+ result.address2_ = value;
+ return this;
+ }
+ public Builder ClearAddress2() {
+ result.hasAddress2 = false;
+ result.address2_ = "";
+ return this;
+ }
+
+ public bool HasCity {
+ get { return result.HasCity; }
+ }
+ public string City {
+ get { return result.City; }
+ set { SetCity(value); }
+ }
+ public Builder SetCity(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasCity = true;
+ result.city_ = value;
+ return this;
+ }
+ public Builder ClearCity() {
+ result.hasCity = false;
+ result.city_ = "";
+ return this;
+ }
+
+ public bool HasState {
+ get { return result.HasState; }
+ }
+ public string State {
+ get { return result.State; }
+ set { SetState(value); }
+ }
+ public Builder SetState(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasState = true;
+ result.state_ = value;
+ return this;
+ }
+ public Builder ClearState() {
+ result.hasState = false;
+ result.state_ = "";
+ return this;
+ }
+
+ public bool HasZip {
+ get { return result.HasZip; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Zip {
+ get { return result.Zip; }
+ set { SetZip(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetZip(uint value) {
+ result.hasZip = true;
+ result.zip_ = value;
+ return this;
+ }
+ public Builder ClearZip() {
+ result.hasZip = false;
+ result.zip_ = 0;
+ return this;
+ }
+ }
+ static Addresses() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_ = 0;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int CodesFieldNumber = 10;
+ private pbc::PopsicleList<int> codes_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> CodesList {
+ get { return pbc::Lists.AsReadOnly(codes_); }
+ }
+ public int CodesCount {
+ get { return codes_.Count; }
+ }
+ public int GetCodes(int index) {
+ return codes_[index];
+ }
+
+ public const int PhoneFieldNumber = 4;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber> phone_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber> PhoneList {
+ get { return phone_; }
+ }
+ public int PhoneCount {
+ get { return phone_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber GetPhone(int index) {
+ return phone_[index];
+ }
+
+ public const int AddressesFieldNumber = 5;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses> addresses_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses> AddressesList {
+ get { return addresses_; }
+ }
+ public int AddressesCount {
+ get { return addresses_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses GetAddresses(int index) {
+ return addresses_[index];
+ }
+
+ public static TestInteropPerson ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPerson ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestInteropPerson ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropPerson ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestInteropPerson prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilder<TestInteropPerson, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestInteropPerson result = new TestInteropPerson();
+
+ protected override TestInteropPerson MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestInteropPerson();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Descriptor; }
+ }
+
+ public override TestInteropPerson DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.DefaultInstance; }
+ }
+
+ public override TestInteropPerson BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.codes_.MakeReadOnly();
+ result.phone_.MakeReadOnly();
+ result.addresses_.MakeReadOnly();
+ TestInteropPerson returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasName {
+ get { return result.HasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.HasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.HasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> CodesList {
+ get { return result.codes_; }
+ }
+ public int CodesCount {
+ get { return result.CodesCount; }
+ }
+ public int GetCodes(int index) {
+ return result.GetCodes(index);
+ }
+ public Builder SetCodes(int index, int value) {
+ result.codes_[index] = value;
+ return this;
+ }
+ public Builder AddCodes(int value) {
+ result.codes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeCodes(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.codes_);
+ return this;
+ }
+ public Builder ClearCodes() {
+ result.codes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber> PhoneList {
+ get { return result.phone_; }
+ }
+ public int PhoneCount {
+ get { return result.PhoneCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber GetPhone(int index) {
+ return result.GetPhone(index);
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.phone_[index] = value;
+ return this;
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.phone_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.phone_.Add(value);
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.phone_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePhone(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.PhoneNumber> values) {
+ base.AddRange(values, result.phone_);
+ return this;
+ }
+ public Builder ClearPhone() {
+ result.phone_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses> AddressesList {
+ get { return result.addresses_; }
+ }
+ public int AddressesCount {
+ get { return result.AddressesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses GetAddresses(int index) {
+ return result.GetAddresses(index);
+ }
+ public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.addresses_[index] = value;
+ return this;
+ }
+ public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.addresses_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.addresses_.Add(value);
+ return this;
+ }
+ public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.addresses_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeAddresses(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestInteropPerson.Types.Addresses> values) {
+ base.AddRange(values, result.addresses_);
+ return this;
+ }
+ public Builder ClearAddresses() {
+ result.addresses_.Clear();
+ return this;
+ }
+ }
+ static TestInteropPerson() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestInteropEmployeeId : pb::GeneratedMessage<TestInteropEmployeeId, TestInteropEmployeeId.Builder> {
+ private static readonly TestInteropEmployeeId defaultInstance = new Builder().BuildPartial();
+ public static TestInteropEmployeeId DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestInteropEmployeeId DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestInteropEmployeeId ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropEmployeeId__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestInteropEmployeeId, TestInteropEmployeeId.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestInteropEmployeeId__FieldAccessorTable; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public static TestInteropEmployeeId ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropEmployeeId ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestInteropEmployeeId prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestInteropEmployeeId, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestInteropEmployeeId result = new TestInteropEmployeeId();
+
+ protected override TestInteropEmployeeId MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestInteropEmployeeId();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.Descriptor; }
+ }
+
+ public override TestInteropEmployeeId DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeId.DefaultInstance; }
+ }
+
+ public override TestInteropEmployeeId BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestInteropEmployeeId returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasNumber {
+ get { return result.HasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+ }
+ static TestInteropEmployeeId() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestMissingFieldsA : pb::GeneratedMessage<TestMissingFieldsA, TestMissingFieldsA.Builder> {
+ private static readonly TestMissingFieldsA defaultInstance = new Builder().BuildPartial();
+ public static TestMissingFieldsA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMissingFieldsA DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestMissingFieldsA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestMissingFieldsA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMissingFieldsA, TestMissingFieldsA.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestMissingFieldsA__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public sealed partial class SubA : pb::GeneratedMessage<SubA, SubA.Builder> {
+ private static readonly SubA defaultInstance = new Builder().BuildPartial();
+ public static SubA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SubA DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override SubA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SubA, SubA.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestMissingFieldsA_SubA__FieldAccessorTable; }
+ }
+
+ public const int CountFieldNumber = 5;
+ private bool hasCount;
+ private int count_ = 0;
+ public bool HasCount {
+ get { return hasCount; }
+ }
+ public int Count {
+ get { return count_; }
+ }
+
+ public const int ValuesFieldNumber = 6;
+ private pbc::PopsicleList<string> values_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> ValuesList {
+ get { return pbc::Lists.AsReadOnly(values_); }
+ }
+ public int ValuesCount {
+ get { return values_.Count; }
+ }
+ public string GetValues(int index) {
+ return values_[index];
+ }
+
+ public static SubA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SubA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SubA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SubA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SubA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SubA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SubA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SubA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SubA ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SubA ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SubA prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<SubA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ SubA result = new SubA();
+
+ protected override SubA MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new SubA();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.Descriptor; }
+ }
+
+ public override SubA DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance; }
+ }
+
+ public override SubA BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.values_.MakeReadOnly();
+ SubA returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasCount {
+ get { return result.HasCount; }
+ }
+ public int Count {
+ get { return result.Count; }
+ set { SetCount(value); }
+ }
+ public Builder SetCount(int value) {
+ result.hasCount = true;
+ result.count_ = value;
+ return this;
+ }
+ public Builder ClearCount() {
+ result.hasCount = false;
+ result.count_ = 0;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> ValuesList {
+ get { return result.values_; }
+ }
+ public int ValuesCount {
+ get { return result.ValuesCount; }
+ }
+ public string GetValues(int index) {
+ return result.GetValues(index);
+ }
+ public Builder SetValues(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.values_[index] = value;
+ return this;
+ }
+ public Builder AddValues(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.values_.Add(value);
+ return this;
+ }
+ public Builder AddRangeValues(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.values_);
+ return this;
+ }
+ public Builder ClearValues() {
+ result.values_.Clear();
+ return this;
+ }
+ }
+ static SubA() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_ = 0;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int TestAFieldNumber = 11;
+ private bool hasTestA;
+ private global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA testA_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance;
+ public bool HasTestA {
+ get { return hasTestA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA TestA {
+ get { return testA_; }
+ }
+
+ public static TestMissingFieldsA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMissingFieldsA ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMissingFieldsA prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMissingFieldsA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestMissingFieldsA result = new TestMissingFieldsA();
+
+ protected override TestMissingFieldsA MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestMissingFieldsA();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Descriptor; }
+ }
+
+ public override TestMissingFieldsA DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.DefaultInstance; }
+ }
+
+ public override TestMissingFieldsA BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestMissingFieldsA returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasName {
+ get { return result.HasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.HasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.HasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public bool HasTestA {
+ get { return result.HasTestA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA TestA {
+ get { return result.TestA; }
+ set { SetTestA(value); }
+ }
+ public Builder SetTestA(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasTestA = true;
+ result.testA_ = value;
+ return this;
+ }
+ public Builder SetTestA(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasTestA = true;
+ result.testA_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeTestA(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasTestA &&
+ result.testA_ != global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance) {
+ result.testA_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.CreateBuilder(result.testA_).MergeFrom(value).BuildPartial();
+ } else {
+ result.testA_ = value;
+ }
+ result.hasTestA = true;
+ return this;
+ }
+ public Builder ClearTestA() {
+ result.hasTestA = false;
+ result.testA_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsA.Types.SubA.DefaultInstance;
+ return this;
+ }
+ }
+ static TestMissingFieldsA() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestMissingFieldsB : pb::GeneratedMessage<TestMissingFieldsB, TestMissingFieldsB.Builder> {
+ private static readonly TestMissingFieldsB defaultInstance = new Builder().BuildPartial();
+ public static TestMissingFieldsB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMissingFieldsB DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestMissingFieldsB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestMissingFieldsB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMissingFieldsB, TestMissingFieldsB.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestMissingFieldsB__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public sealed partial class SubB : pb::GeneratedMessage<SubB, SubB.Builder> {
+ private static readonly SubB defaultInstance = new Builder().BuildPartial();
+ public static SubB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override SubB DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override SubB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<SubB, SubB.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.internal__static_protobuf_unittest_extra_TestMissingFieldsB_SubB__FieldAccessorTable; }
+ }
+
+ public const int ValuesFieldNumber = 7;
+ private pbc::PopsicleList<string> values_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> ValuesList {
+ get { return pbc::Lists.AsReadOnly(values_); }
+ }
+ public int ValuesCount {
+ get { return values_.Count; }
+ }
+ public string GetValues(int index) {
+ return values_[index];
+ }
+
+ public static SubB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SubB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SubB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static SubB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static SubB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SubB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static SubB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static SubB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static SubB ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static SubB ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(SubB prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<SubB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ SubB result = new SubB();
+
+ protected override SubB MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new SubB();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.Descriptor; }
+ }
+
+ public override SubB DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance; }
+ }
+
+ public override SubB BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.values_.MakeReadOnly();
+ SubB returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public pbc::IPopsicleList<string> ValuesList {
+ get { return result.values_; }
+ }
+ public int ValuesCount {
+ get { return result.ValuesCount; }
+ }
+ public string GetValues(int index) {
+ return result.GetValues(index);
+ }
+ public Builder SetValues(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.values_[index] = value;
+ return this;
+ }
+ public Builder AddValues(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.values_.Add(value);
+ return this;
+ }
+ public Builder AddRangeValues(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.values_);
+ return this;
+ }
+ public Builder ClearValues() {
+ result.values_.Clear();
+ return this;
+ }
+ }
+ static SubB() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_ = 0;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int WebsiteFieldNumber = 4;
+ private bool hasWebsite;
+ private string website_ = "";
+ public bool HasWebsite {
+ get { return hasWebsite; }
+ }
+ public string Website {
+ get { return website_; }
+ }
+
+ public const int TestBFieldNumber = 12;
+ private bool hasTestB;
+ private global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB testB_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance;
+ public bool HasTestB {
+ get { return hasTestB; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB TestB {
+ get { return testB_; }
+ }
+
+ public static TestMissingFieldsB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMissingFieldsB ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMissingFieldsB prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMissingFieldsB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestMissingFieldsB result = new TestMissingFieldsB();
+
+ protected override TestMissingFieldsB MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestMissingFieldsB();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Descriptor; }
+ }
+
+ public override TestMissingFieldsB DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.DefaultInstance; }
+ }
+
+ public override TestMissingFieldsB BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestMissingFieldsB returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+
+ public bool HasName {
+ get { return result.HasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.HasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasWebsite {
+ get { return result.HasWebsite; }
+ }
+ public string Website {
+ get { return result.Website; }
+ set { SetWebsite(value); }
+ }
+ public Builder SetWebsite(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasWebsite = true;
+ result.website_ = value;
+ return this;
+ }
+ public Builder ClearWebsite() {
+ result.hasWebsite = false;
+ result.website_ = "";
+ return this;
+ }
+
+ public bool HasTestB {
+ get { return result.HasTestB; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB TestB {
+ get { return result.TestB; }
+ set { SetTestB(value); }
+ }
+ public Builder SetTestB(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasTestB = true;
+ result.testB_ = value;
+ return this;
+ }
+ public Builder SetTestB(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasTestB = true;
+ result.testB_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeTestB(global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasTestB &&
+ result.testB_ != global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance) {
+ result.testB_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.CreateBuilder(result.testB_).MergeFrom(value).BuildPartial();
+ } else {
+ result.testB_ = value;
+ }
+ result.hasTestB = true;
+ return this;
+ }
+ public Builder ClearTestB() {
+ result.hasTestB = false;
+ result.testB_ = global::Google.ProtocolBuffers.TestProtos.TestMissingFieldsB.Types.SubB.DefaultInstance;
+ return this;
+ }
+ }
+ static TestMissingFieldsB() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasFullProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
new file mode 100644
index 00000000..82492165
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestExtrasLiteProtoFile.cs
@@ -0,0 +1,1721 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestExtrasLiteProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.EmployeeIdLite);
+ }
+ #endregion
+ #region Extensions
+ public const int EmployeeIdLiteFieldNumber = 126;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite, global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite> EmployeeIdLite;
+ #endregion
+
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnitTestExtrasLiteProtoFile() {
+ Descriptor = null;
+ global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.EmployeeIdLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite, global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite>(
+ "protobuf_unittest_extra.employee_id_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.EmployeeIdLiteFieldNumber,
+ pbd::FieldType.Message);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ExtraEnum {
+ DEFAULT = 10,
+ EXLITE_FOO = 7,
+ EXLITE_BAR = 8,
+ EXLITE_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ public sealed partial class TestRequiredLite : pb::GeneratedMessageLite<TestRequiredLite, TestRequiredLite.Builder> {
+ private static readonly TestRequiredLite defaultInstance = new Builder().BuildPartial();
+ public static TestRequiredLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestRequiredLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_ = 0;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public const int EnFieldNumber = 2;
+ private bool hasEn;
+ private global::Google.ProtocolBuffers.TestProtos.ExtraEnum en_ = global::Google.ProtocolBuffers.TestProtos.ExtraEnum.DEFAULT;
+ public bool HasEn {
+ get { return hasEn; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ExtraEnum En {
+ get { return en_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasD) return false;
+ if (!hasEn) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasD) {
+ output.WriteInt32(1, D);
+ }
+ if (HasEn) {
+ output.WriteEnum(2, (int) En);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ if (HasEn) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) En);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasD) hash ^= d_.GetHashCode();
+ if (hasEn) hash ^= en_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestRequiredLite other = obj as TestRequiredLite;
+ if (other == null) return false;
+ if (hasD != other.hasD || (hasD && !d_.Equals(other.d_))) return false;
+ if (hasEn != other.hasEn || (hasEn && !en_.Equals(other.en_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("d", hasD, d_, writer);
+ PrintField("en", hasEn, en_, writer);
+ }
+ #endregion
+
+ public static TestRequiredLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestRequiredLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestRequiredLite result = new TestRequiredLite();
+
+ protected override TestRequiredLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestRequiredLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestRequiredLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredLite.DefaultInstance; }
+ }
+
+ public override TestRequiredLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestRequiredLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestRequiredLite) {
+ return MergeFrom((TestRequiredLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredLite.DefaultInstance) return this;
+ if (other.HasD) {
+ D = other.D;
+ }
+ if (other.HasEn) {
+ En = other.En;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ D = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ExtraEnum), rawValue)) {
+ } else {
+ En = (global::Google.ProtocolBuffers.TestProtos.ExtraEnum) rawValue;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasD {
+ get { return result.HasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+
+ public bool HasEn {
+ get { return result.HasEn; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ExtraEnum En {
+ get { return result.En; }
+ set { SetEn(value); }
+ }
+ public Builder SetEn(global::Google.ProtocolBuffers.TestProtos.ExtraEnum value) {
+ result.hasEn = true;
+ result.en_ = value;
+ return this;
+ }
+ public Builder ClearEn() {
+ result.hasEn = false;
+ result.en_ = global::Google.ProtocolBuffers.TestProtos.ExtraEnum.DEFAULT;
+ return this;
+ }
+ }
+ static TestRequiredLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestInteropPersonLite : pb::ExtendableMessageLite<TestInteropPersonLite, TestInteropPersonLite.Builder> {
+ private static readonly TestInteropPersonLite defaultInstance = new Builder().BuildPartial();
+ public static TestInteropPersonLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestInteropPersonLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestInteropPersonLite ThisMessage {
+ get { return this; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public enum PhoneType {
+ MOBILE = 0,
+ HOME = 1,
+ WORK = 2,
+ }
+
+ public sealed partial class PhoneNumber : pb::GeneratedMessageLite<PhoneNumber, PhoneNumber.Builder> {
+ private static readonly PhoneNumber defaultInstance = new Builder().BuildPartial();
+ public static PhoneNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override PhoneNumber ThisMessage {
+ get { return this; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public const int TypeFieldNumber = 2;
+ private bool hasType;
+ private global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType.HOME;
+ public bool HasType {
+ get { return hasType; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType Type {
+ get { return type_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNumber) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasNumber) {
+ output.WriteString(1, Number);
+ }
+ if (HasType) {
+ output.WriteEnum(2, (int) Type);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasNumber) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Number);
+ }
+ if (HasType) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2, (int) Type);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasNumber) hash ^= number_.GetHashCode();
+ if (hasType) hash ^= type_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ PhoneNumber other = obj as PhoneNumber;
+ if (other == null) return false;
+ if (hasNumber != other.hasNumber || (hasNumber && !number_.Equals(other.number_))) return false;
+ if (hasType != other.hasType || (hasType && !type_.Equals(other.type_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("number", hasNumber, number_, writer);
+ PrintField("type", hasType, type_, writer);
+ }
+ #endregion
+
+ public static PhoneNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static PhoneNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static PhoneNumber ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(PhoneNumber prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<PhoneNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ PhoneNumber result = new PhoneNumber();
+
+ protected override PhoneNumber MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new PhoneNumber();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override PhoneNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.DefaultInstance; }
+ }
+
+ public override PhoneNumber BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ PhoneNumber returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is PhoneNumber) {
+ return MergeFrom((PhoneNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(PhoneNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.DefaultInstance) return this;
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ if (other.HasType) {
+ Type = other.Type;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ Number = input.ReadString();
+ break;
+ }
+ case 16: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType), rawValue)) {
+ } else {
+ Type = (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType) rawValue;
+ }
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasNumber {
+ get { return result.HasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+
+ public bool HasType {
+ get { return result.HasType; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType Type {
+ get { return result.Type; }
+ set { SetType(value); }
+ }
+ public Builder SetType(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType value) {
+ result.hasType = true;
+ result.type_ = value;
+ return this;
+ }
+ public Builder ClearType() {
+ result.hasType = false;
+ result.type_ = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneType.HOME;
+ return this;
+ }
+ }
+ static PhoneNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class Addresses : pb::GeneratedMessageLite<Addresses, Addresses.Builder> {
+ private static readonly Addresses defaultInstance = new Builder().BuildPartial();
+ public static Addresses DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Addresses DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override Addresses ThisMessage {
+ get { return this; }
+ }
+
+ public const int AddressFieldNumber = 1;
+ private bool hasAddress;
+ private string address_ = "";
+ public bool HasAddress {
+ get { return hasAddress; }
+ }
+ public string Address {
+ get { return address_; }
+ }
+
+ public const int Address2FieldNumber = 2;
+ private bool hasAddress2;
+ private string address2_ = "";
+ public bool HasAddress2 {
+ get { return hasAddress2; }
+ }
+ public string Address2 {
+ get { return address2_; }
+ }
+
+ public const int CityFieldNumber = 3;
+ private bool hasCity;
+ private string city_ = "";
+ public bool HasCity {
+ get { return hasCity; }
+ }
+ public string City {
+ get { return city_; }
+ }
+
+ public const int StateFieldNumber = 4;
+ private bool hasState;
+ private string state_ = "";
+ public bool HasState {
+ get { return hasState; }
+ }
+ public string State {
+ get { return state_; }
+ }
+
+ public const int ZipFieldNumber = 5;
+ private bool hasZip;
+ private uint zip_ = 0;
+ public bool HasZip {
+ get { return hasZip; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Zip {
+ get { return zip_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasAddress) return false;
+ if (!hasCity) return false;
+ if (!hasState) return false;
+ if (!hasZip) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasAddress) {
+ output.WriteString(1, Address);
+ }
+ if (HasAddress2) {
+ output.WriteString(2, Address2);
+ }
+ if (HasCity) {
+ output.WriteString(3, City);
+ }
+ if (HasState) {
+ output.WriteString(4, State);
+ }
+ if (HasZip) {
+ output.WriteFixed32(5, Zip);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasAddress) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Address);
+ }
+ if (HasAddress2) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, Address2);
+ }
+ if (HasCity) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, City);
+ }
+ if (HasState) {
+ size += pb::CodedOutputStream.ComputeStringSize(4, State);
+ }
+ if (HasZip) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(5, Zip);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasAddress) hash ^= address_.GetHashCode();
+ if (hasAddress2) hash ^= address2_.GetHashCode();
+ if (hasCity) hash ^= city_.GetHashCode();
+ if (hasState) hash ^= state_.GetHashCode();
+ if (hasZip) hash ^= zip_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ Addresses other = obj as Addresses;
+ if (other == null) return false;
+ if (hasAddress != other.hasAddress || (hasAddress && !address_.Equals(other.address_))) return false;
+ if (hasAddress2 != other.hasAddress2 || (hasAddress2 && !address2_.Equals(other.address2_))) return false;
+ if (hasCity != other.hasCity || (hasCity && !city_.Equals(other.city_))) return false;
+ if (hasState != other.hasState || (hasState && !state_.Equals(other.state_))) return false;
+ if (hasZip != other.hasZip || (hasZip && !zip_.Equals(other.zip_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("address", hasAddress, address_, writer);
+ PrintField("address2", hasAddress2, address2_, writer);
+ PrintField("city", hasCity, city_, writer);
+ PrintField("state", hasState, state_, writer);
+ PrintField("zip", hasZip, zip_, writer);
+ }
+ #endregion
+
+ public static Addresses ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Addresses ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Addresses ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Addresses ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Addresses ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Addresses ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Addresses prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<Addresses, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ Addresses result = new Addresses();
+
+ protected override Addresses MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new Addresses();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override Addresses DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.DefaultInstance; }
+ }
+
+ public override Addresses BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ Addresses returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is Addresses) {
+ return MergeFrom((Addresses) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Addresses other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.DefaultInstance) return this;
+ if (other.HasAddress) {
+ Address = other.Address;
+ }
+ if (other.HasAddress2) {
+ Address2 = other.Address2;
+ }
+ if (other.HasCity) {
+ City = other.City;
+ }
+ if (other.HasState) {
+ State = other.State;
+ }
+ if (other.HasZip) {
+ Zip = other.Zip;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ Address = input.ReadString();
+ break;
+ }
+ case 18: {
+ Address2 = input.ReadString();
+ break;
+ }
+ case 26: {
+ City = input.ReadString();
+ break;
+ }
+ case 34: {
+ State = input.ReadString();
+ break;
+ }
+ case 45: {
+ Zip = input.ReadFixed32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasAddress {
+ get { return result.HasAddress; }
+ }
+ public string Address {
+ get { return result.Address; }
+ set { SetAddress(value); }
+ }
+ public Builder SetAddress(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasAddress = true;
+ result.address_ = value;
+ return this;
+ }
+ public Builder ClearAddress() {
+ result.hasAddress = false;
+ result.address_ = "";
+ return this;
+ }
+
+ public bool HasAddress2 {
+ get { return result.HasAddress2; }
+ }
+ public string Address2 {
+ get { return result.Address2; }
+ set { SetAddress2(value); }
+ }
+ public Builder SetAddress2(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasAddress2 = true;
+ result.address2_ = value;
+ return this;
+ }
+ public Builder ClearAddress2() {
+ result.hasAddress2 = false;
+ result.address2_ = "";
+ return this;
+ }
+
+ public bool HasCity {
+ get { return result.HasCity; }
+ }
+ public string City {
+ get { return result.City; }
+ set { SetCity(value); }
+ }
+ public Builder SetCity(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasCity = true;
+ result.city_ = value;
+ return this;
+ }
+ public Builder ClearCity() {
+ result.hasCity = false;
+ result.city_ = "";
+ return this;
+ }
+
+ public bool HasState {
+ get { return result.HasState; }
+ }
+ public string State {
+ get { return result.State; }
+ set { SetState(value); }
+ }
+ public Builder SetState(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasState = true;
+ result.state_ = value;
+ return this;
+ }
+ public Builder ClearState() {
+ result.hasState = false;
+ result.state_ = "";
+ return this;
+ }
+
+ public bool HasZip {
+ get { return result.HasZip; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint Zip {
+ get { return result.Zip; }
+ set { SetZip(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetZip(uint value) {
+ result.hasZip = true;
+ result.zip_ = value;
+ return this;
+ }
+ public Builder ClearZip() {
+ result.hasZip = false;
+ result.zip_ = 0;
+ return this;
+ }
+ }
+ static Addresses() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int NameFieldNumber = 1;
+ private bool hasName;
+ private string name_ = "";
+ public bool HasName {
+ get { return hasName; }
+ }
+ public string Name {
+ get { return name_; }
+ }
+
+ public const int IdFieldNumber = 2;
+ private bool hasId;
+ private int id_ = 0;
+ public bool HasId {
+ get { return hasId; }
+ }
+ public int Id {
+ get { return id_; }
+ }
+
+ public const int EmailFieldNumber = 3;
+ private bool hasEmail;
+ private string email_ = "";
+ public bool HasEmail {
+ get { return hasEmail; }
+ }
+ public string Email {
+ get { return email_; }
+ }
+
+ public const int CodesFieldNumber = 10;
+ private int codesMemoizedSerializedSize;
+ private pbc::PopsicleList<int> codes_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> CodesList {
+ get { return pbc::Lists.AsReadOnly(codes_); }
+ }
+ public int CodesCount {
+ get { return codes_.Count; }
+ }
+ public int GetCodes(int index) {
+ return codes_[index];
+ }
+
+ public const int PhoneFieldNumber = 4;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber> phone_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber> PhoneList {
+ get { return phone_; }
+ }
+ public int PhoneCount {
+ get { return phone_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber GetPhone(int index) {
+ return phone_[index];
+ }
+
+ public const int AddressesFieldNumber = 5;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses> addresses_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses> AddressesList {
+ get { return addresses_; }
+ }
+ public int AddressesCount {
+ get { return addresses_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses GetAddresses(int index) {
+ return addresses_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasName) return false;
+ if (!hasId) return false;
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber element in PhoneList) {
+ if (!element.IsInitialized) return false;
+ }
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessageLite<TestInteropPersonLite, TestInteropPersonLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (HasName) {
+ output.WriteString(1, Name);
+ }
+ if (HasId) {
+ output.WriteInt32(2, Id);
+ }
+ if (HasEmail) {
+ output.WriteString(3, Email);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber element in PhoneList) {
+ output.WriteMessage(4, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses element in AddressesList) {
+ output.WriteGroup(5, element);
+ }
+ if (codes_.Count > 0) {
+ output.WriteRawVarint32(82);
+ output.WriteRawVarint32((uint) codesMemoizedSerializedSize);
+ foreach (int element in codes_) {
+ output.WriteInt32NoTag(element);
+ }
+ }
+ extensionWriter.WriteUntil(200, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasName) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Name);
+ }
+ if (HasId) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Id);
+ }
+ if (HasEmail) {
+ size += pb::CodedOutputStream.ComputeStringSize(3, Email);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in CodesList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (codes_.Count != 0) {
+ size += 1 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ codesMemoizedSerializedSize = dataSize;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber element in PhoneList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses element in AddressesList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(5, element);
+ }
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasName) hash ^= name_.GetHashCode();
+ if (hasId) hash ^= id_.GetHashCode();
+ if (hasEmail) hash ^= email_.GetHashCode();
+ foreach(int i in codes_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber i in phone_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses i in addresses_)
+ hash ^= i.GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestInteropPersonLite other = obj as TestInteropPersonLite;
+ if (other == null) return false;
+ if (hasName != other.hasName || (hasName && !name_.Equals(other.name_))) return false;
+ if (hasId != other.hasId || (hasId && !id_.Equals(other.id_))) return false;
+ if (hasEmail != other.hasEmail || (hasEmail && !email_.Equals(other.email_))) return false;
+ if(codes_.Count != other.codes_.Count) return false;
+ for(int ix=0; ix < codes_.Count; ix++)
+ if(!codes_[ix].Equals(other.codes_[ix])) return false;
+ if(phone_.Count != other.phone_.Count) return false;
+ for(int ix=0; ix < phone_.Count; ix++)
+ if(!phone_[ix].Equals(other.phone_[ix])) return false;
+ if(addresses_.Count != other.addresses_.Count) return false;
+ for(int ix=0; ix < addresses_.Count; ix++)
+ if(!addresses_[ix].Equals(other.addresses_[ix])) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("name", hasName, name_, writer);
+ PrintField("id", hasId, id_, writer);
+ PrintField("email", hasEmail, email_, writer);
+ PrintField("phone", phone_, writer);
+ PrintField("Addresses", addresses_, writer);
+ PrintField("codes", codes_, writer);
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestInteropPersonLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropPersonLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestInteropPersonLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestInteropPersonLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestInteropPersonLite result = new TestInteropPersonLite();
+
+ protected override TestInteropPersonLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestInteropPersonLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestInteropPersonLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance; }
+ }
+
+ public override TestInteropPersonLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.codes_.MakeReadOnly();
+ result.phone_.MakeReadOnly();
+ result.addresses_.MakeReadOnly();
+ TestInteropPersonLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestInteropPersonLite) {
+ return MergeFrom((TestInteropPersonLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestInteropPersonLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.DefaultInstance) return this;
+ if (other.HasName) {
+ Name = other.Name;
+ }
+ if (other.HasId) {
+ Id = other.Id;
+ }
+ if (other.HasEmail) {
+ Email = other.Email;
+ }
+ if (other.codes_.Count != 0) {
+ base.AddRange(other.codes_, result.codes_);
+ }
+ if (other.phone_.Count != 0) {
+ base.AddRange(other.phone_, result.phone_);
+ }
+ if (other.addresses_.Count != 0) {
+ base.AddRange(other.addresses_, result.addresses_);
+ }
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ Name = input.ReadString();
+ break;
+ }
+ case 16: {
+ Id = input.ReadInt32();
+ break;
+ }
+ case 26: {
+ Email = input.ReadString();
+ break;
+ }
+ case 34: {
+ global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddPhone(subBuilder.BuildPartial());
+ break;
+ }
+ case 43: {
+ global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.CreateBuilder();
+ input.ReadGroup(5, subBuilder, extensionRegistry);
+ AddAddresses(subBuilder.BuildPartial());
+ break;
+ }
+ case 82: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddCodes(input.ReadInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasName {
+ get { return result.HasName; }
+ }
+ public string Name {
+ get { return result.Name; }
+ set { SetName(value); }
+ }
+ public Builder SetName(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasName = true;
+ result.name_ = value;
+ return this;
+ }
+ public Builder ClearName() {
+ result.hasName = false;
+ result.name_ = "";
+ return this;
+ }
+
+ public bool HasId {
+ get { return result.HasId; }
+ }
+ public int Id {
+ get { return result.Id; }
+ set { SetId(value); }
+ }
+ public Builder SetId(int value) {
+ result.hasId = true;
+ result.id_ = value;
+ return this;
+ }
+ public Builder ClearId() {
+ result.hasId = false;
+ result.id_ = 0;
+ return this;
+ }
+
+ public bool HasEmail {
+ get { return result.HasEmail; }
+ }
+ public string Email {
+ get { return result.Email; }
+ set { SetEmail(value); }
+ }
+ public Builder SetEmail(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasEmail = true;
+ result.email_ = value;
+ return this;
+ }
+ public Builder ClearEmail() {
+ result.hasEmail = false;
+ result.email_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> CodesList {
+ get { return result.codes_; }
+ }
+ public int CodesCount {
+ get { return result.CodesCount; }
+ }
+ public int GetCodes(int index) {
+ return result.GetCodes(index);
+ }
+ public Builder SetCodes(int index, int value) {
+ result.codes_[index] = value;
+ return this;
+ }
+ public Builder AddCodes(int value) {
+ result.codes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeCodes(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.codes_);
+ return this;
+ }
+ public Builder ClearCodes() {
+ result.codes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber> PhoneList {
+ get { return result.phone_; }
+ }
+ public int PhoneCount {
+ get { return result.PhoneCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber GetPhone(int index) {
+ return result.GetPhone(index);
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.phone_[index] = value;
+ return this;
+ }
+ public Builder SetPhone(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.phone_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.phone_.Add(value);
+ return this;
+ }
+ public Builder AddPhone(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.phone_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangePhone(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.PhoneNumber> values) {
+ base.AddRange(values, result.phone_);
+ return this;
+ }
+ public Builder ClearPhone() {
+ result.phone_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses> AddressesList {
+ get { return result.addresses_; }
+ }
+ public int AddressesCount {
+ get { return result.AddressesCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses GetAddresses(int index) {
+ return result.GetAddresses(index);
+ }
+ public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.addresses_[index] = value;
+ return this;
+ }
+ public Builder SetAddresses(int index, global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.addresses_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.addresses_.Add(value);
+ return this;
+ }
+ public Builder AddAddresses(global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.addresses_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeAddresses(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestInteropPersonLite.Types.Addresses> values) {
+ base.AddRange(values, result.addresses_);
+ return this;
+ }
+ public Builder ClearAddresses() {
+ result.addresses_.Clear();
+ return this;
+ }
+ }
+ static TestInteropPersonLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestInteropEmployeeIdLite : pb::GeneratedMessageLite<TestInteropEmployeeIdLite, TestInteropEmployeeIdLite.Builder> {
+ private static readonly TestInteropEmployeeIdLite defaultInstance = new Builder().BuildPartial();
+ public static TestInteropEmployeeIdLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestInteropEmployeeIdLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestInteropEmployeeIdLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int NumberFieldNumber = 1;
+ private bool hasNumber;
+ private string number_ = "";
+ public bool HasNumber {
+ get { return hasNumber; }
+ }
+ public string Number {
+ get { return number_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasNumber) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasNumber) {
+ output.WriteString(1, Number);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasNumber) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Number);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasNumber) hash ^= number_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestInteropEmployeeIdLite other = obj as TestInteropEmployeeIdLite;
+ if (other == null) return false;
+ if (hasNumber != other.hasNumber || (hasNumber && !number_.Equals(other.number_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("number", hasNumber, number_, writer);
+ }
+ #endregion
+
+ public static TestInteropEmployeeIdLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestInteropEmployeeIdLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestInteropEmployeeIdLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestInteropEmployeeIdLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestInteropEmployeeIdLite result = new TestInteropEmployeeIdLite();
+
+ protected override TestInteropEmployeeIdLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestInteropEmployeeIdLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestInteropEmployeeIdLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance; }
+ }
+
+ public override TestInteropEmployeeIdLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestInteropEmployeeIdLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestInteropEmployeeIdLite) {
+ return MergeFrom((TestInteropEmployeeIdLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestInteropEmployeeIdLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestInteropEmployeeIdLite.DefaultInstance) return this;
+ if (other.HasNumber) {
+ Number = other.Number;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ Number = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasNumber {
+ get { return result.HasNumber; }
+ }
+ public string Number {
+ get { return result.Number; }
+ set { SetNumber(value); }
+ }
+ public Builder SetNumber(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasNumber = true;
+ result.number_ = value;
+ return this;
+ }
+ public Builder ClearNumber() {
+ result.hasNumber = false;
+ result.number_ = "";
+ return this;
+ }
+ }
+ static TestInteropEmployeeIdLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestExtrasLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
new file mode 100644
index 00000000..498d686a
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportLiteProtoFile.cs
@@ -0,0 +1,246 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestImportLiteProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnitTestImportLiteProtoFile() {
+ Descriptor = null;
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ImportEnumLite {
+ IMPORT_LITE_FOO = 7,
+ IMPORT_LITE_BAR = 8,
+ IMPORT_LITE_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ public sealed partial class ImportMessageLite : pb::GeneratedMessageLite<ImportMessageLite, ImportMessageLite.Builder> {
+ private static readonly ImportMessageLite defaultInstance = new Builder().BuildPartial();
+ public static ImportMessageLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ImportMessageLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override ImportMessageLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_ = 0;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasD) {
+ output.WriteInt32(1, D);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasD) hash ^= d_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ ImportMessageLite other = obj as ImportMessageLite;
+ if (other == null) return false;
+ if (hasD != other.hasD || (hasD && !d_.Equals(other.d_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("d", hasD, d_, writer);
+ }
+ #endregion
+
+ public static ImportMessageLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessageLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ImportMessageLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessageLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ImportMessageLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<ImportMessageLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ ImportMessageLite result = new ImportMessageLite();
+
+ protected override ImportMessageLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new ImportMessageLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override ImportMessageLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance; }
+ }
+
+ public override ImportMessageLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ ImportMessageLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is ImportMessageLite) {
+ return MergeFrom((ImportMessageLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ImportMessageLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance) return this;
+ if (other.HasD) {
+ D = other.D;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ D = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasD {
+ get { return result.HasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+ }
+ static ImportMessageLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestImportLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
new file mode 100644
index 00000000..235a05a7
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestImportProtoFile.cs
@@ -0,0 +1,280 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestImportProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_import_ImportMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessage, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder> internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestImportProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "CiVnb29nbGUvcHJvdG9idWYvdW5pdHRlc3RfaW1wb3J0LnByb3RvEhhwcm90" +
+ "b2J1Zl91bml0dGVzdF9pbXBvcnQaJGdvb2dsZS9wcm90b2J1Zi9jc2hhcnBf" +
+ "b3B0aW9ucy5wcm90byIaCg1JbXBvcnRNZXNzYWdlEgkKAWQYASABKAUqPAoK" +
+ "SW1wb3J0RW51bRIOCgpJTVBPUlRfRk9PEAcSDgoKSU1QT1JUX0JBUhAIEg4K" +
+ "CklNUE9SVF9CQVoQCUJbChhjb20uZ29vZ2xlLnByb3RvYnVmLnRlc3RIAcI+" +
+ "PAohR29vZ2xlLlByb3RvY29sQnVmZmVycy5UZXN0UHJvdG9zEhdVbml0VGVz" +
+ "dEltcG9ydFByb3RvRmlsZQ==");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_import_ImportMessage__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ImportMessage, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder>(internal__static_protobuf_unittest_import_ImportMessage__Descriptor,
+ new string[] { "D", });
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ImportEnum {
+ IMPORT_FOO = 7,
+ IMPORT_BAR = 8,
+ IMPORT_BAZ = 9,
+ }
+
+ #endregion
+
+ #region Messages
+ public sealed partial class ImportMessage : pb::GeneratedMessage<ImportMessage, ImportMessage.Builder> {
+ private static readonly ImportMessage defaultInstance = new Builder().BuildPartial();
+ public static ImportMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override ImportMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.internal__static_protobuf_unittest_import_ImportMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ImportMessage, ImportMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.internal__static_protobuf_unittest_import_ImportMessage__FieldAccessorTable; }
+ }
+
+ public const int DFieldNumber = 1;
+ private bool hasD;
+ private int d_ = 0;
+ public bool HasD {
+ get { return hasD; }
+ }
+ public int D {
+ get { return d_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasD) {
+ output.WriteInt32(1, D);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasD) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, D);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static ImportMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ImportMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ImportMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ImportMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<ImportMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ ImportMessage result = new ImportMessage();
+
+ protected override ImportMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new ImportMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.Descriptor; }
+ }
+
+ public override ImportMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance; }
+ }
+
+ public override ImportMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ ImportMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ImportMessage) {
+ return MergeFrom((ImportMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ImportMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) return this;
+ if (other.HasD) {
+ D = other.D;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ D = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasD {
+ get { return result.HasD; }
+ }
+ public int D {
+ get { return result.D; }
+ set { SetD(value); }
+ }
+ public Builder SetD(int value) {
+ result.hasD = true;
+ result.d_ = value;
+ return this;
+ }
+ public Builder ClearD() {
+ result.hasD = false;
+ result.d_ = 0;
+ return this;
+ }
+ }
+ static ImportMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
new file mode 100644
index 00000000..a00d83d3
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteImportNonLiteProtoFile.cs
@@ -0,0 +1,260 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestLiteImportNonLiteProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ }
+ #endregion
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnitTestLiteImportNonLiteProtoFile() {
+ Descriptor = null;
+ }
+ #endregion
+
+ }
+ #region Messages
+ public sealed partial class TestLiteImportsNonlite : pb::GeneratedMessageLite<TestLiteImportsNonlite, TestLiteImportsNonlite.Builder> {
+ private static readonly TestLiteImportsNonlite defaultInstance = new Builder().BuildPartial();
+ public static TestLiteImportsNonlite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestLiteImportsNonlite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestLiteImportsNonlite ThisMessage {
+ get { return this; }
+ }
+
+ public const int MessageFieldNumber = 1;
+ private bool hasMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes message_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance;
+ public bool HasMessage {
+ get { return hasMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Message {
+ get { return message_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasMessage) {
+ output.WriteMessage(1, Message);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Message);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasMessage) hash ^= message_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestLiteImportsNonlite other = obj as TestLiteImportsNonlite;
+ if (other == null) return false;
+ if (hasMessage != other.hasMessage || (hasMessage && !message_.Equals(other.message_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("message", hasMessage, message_, writer);
+ }
+ #endregion
+
+ public static TestLiteImportsNonlite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestLiteImportsNonlite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestLiteImportsNonlite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestLiteImportsNonlite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestLiteImportsNonlite result = new TestLiteImportsNonlite();
+
+ protected override TestLiteImportsNonlite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestLiteImportsNonlite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestLiteImportsNonlite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestLiteImportsNonlite.DefaultInstance; }
+ }
+
+ public override TestLiteImportsNonlite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestLiteImportsNonlite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestLiteImportsNonlite) {
+ return MergeFrom((TestLiteImportsNonlite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestLiteImportsNonlite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestLiteImportsNonlite.DefaultInstance) return this;
+ if (other.HasMessage) {
+ MergeMessage(other.Message);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder();
+ if (HasMessage) {
+ subBuilder.MergeFrom(Message);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Message = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasMessage {
+ get { return result.HasMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes Message {
+ get { return result.Message; }
+ set { SetMessage(value); }
+ }
+ public Builder SetMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasMessage = true;
+ result.message_ = value;
+ return this;
+ }
+ public Builder SetMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasMessage = true;
+ result.message_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasMessage &&
+ result.message_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) {
+ result.message_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.CreateBuilder(result.message_).MergeFrom(value).BuildPartial();
+ } else {
+ result.message_ = value;
+ }
+ result.hasMessage = true;
+ return this;
+ }
+ public Builder ClearMessage() {
+ result.hasMessage = false;
+ result.message_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance;
+ return this;
+ }
+ }
+ static TestLiteImportsNonlite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteImportNonLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
new file mode 100644
index 00000000..62964944
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestLiteProtoFile.cs
@@ -0,0 +1,8162 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestLiteProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalStringExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalBytesExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalGroupExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalNestedMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalImportMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalForeignEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalImportEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalStringPieceExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalCordExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedStringExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedBytesExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedGroupExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedNestedMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedForeignMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedImportMessageExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedNestedEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedImportEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedStringPieceExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedCordExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultStringExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultBytesExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultNestedEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultForeignEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultImportEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultStringPieceExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultCordExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedInt32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedInt64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedUint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedUint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSint32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSint64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSfixed32ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSfixed64ExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFloatExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedDoubleExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedBoolExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedEnumExtensionLite);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.NestedExtension);
+ }
+ #endregion
+ #region Extensions
+ public const int OptionalInt32ExtensionLiteFieldNumber = 1;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> OptionalInt32ExtensionLite;
+ public const int OptionalInt64ExtensionLiteFieldNumber = 2;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> OptionalInt64ExtensionLite;
+ public const int OptionalUint32ExtensionLiteFieldNumber = 3;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> OptionalUint32ExtensionLite;
+ public const int OptionalUint64ExtensionLiteFieldNumber = 4;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> OptionalUint64ExtensionLite;
+ public const int OptionalSint32ExtensionLiteFieldNumber = 5;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> OptionalSint32ExtensionLite;
+ public const int OptionalSint64ExtensionLiteFieldNumber = 6;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> OptionalSint64ExtensionLite;
+ public const int OptionalFixed32ExtensionLiteFieldNumber = 7;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> OptionalFixed32ExtensionLite;
+ public const int OptionalFixed64ExtensionLiteFieldNumber = 8;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> OptionalFixed64ExtensionLite;
+ public const int OptionalSfixed32ExtensionLiteFieldNumber = 9;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> OptionalSfixed32ExtensionLite;
+ public const int OptionalSfixed64ExtensionLiteFieldNumber = 10;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> OptionalSfixed64ExtensionLite;
+ public const int OptionalFloatExtensionLiteFieldNumber = 11;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float> OptionalFloatExtensionLite;
+ public const int OptionalDoubleExtensionLiteFieldNumber = 12;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double> OptionalDoubleExtensionLite;
+ public const int OptionalBoolExtensionLiteFieldNumber = 13;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool> OptionalBoolExtensionLite;
+ public const int OptionalStringExtensionLiteFieldNumber = 14;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> OptionalStringExtensionLite;
+ public const int OptionalBytesExtensionLiteFieldNumber = 15;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString> OptionalBytesExtensionLite;
+ public const int OptionalGroupExtensionLiteFieldNumber = 16;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite> OptionalGroupExtensionLite;
+ public const int OptionalNestedMessageExtensionLiteFieldNumber = 18;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> OptionalNestedMessageExtensionLite;
+ public const int OptionalForeignMessageExtensionLiteFieldNumber = 19;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> OptionalForeignMessageExtensionLite;
+ public const int OptionalImportMessageExtensionLiteFieldNumber = 20;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> OptionalImportMessageExtensionLite;
+ public const int OptionalNestedEnumExtensionLiteFieldNumber = 21;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> OptionalNestedEnumExtensionLite;
+ public const int OptionalForeignEnumExtensionLiteFieldNumber = 22;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> OptionalForeignEnumExtensionLite;
+ public const int OptionalImportEnumExtensionLiteFieldNumber = 23;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> OptionalImportEnumExtensionLite;
+ public const int OptionalStringPieceExtensionLiteFieldNumber = 24;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> OptionalStringPieceExtensionLite;
+ public const int OptionalCordExtensionLiteFieldNumber = 25;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> OptionalCordExtensionLite;
+ public const int RepeatedInt32ExtensionLiteFieldNumber = 31;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> RepeatedInt32ExtensionLite;
+ public const int RepeatedInt64ExtensionLiteFieldNumber = 32;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> RepeatedInt64ExtensionLite;
+ public const int RepeatedUint32ExtensionLiteFieldNumber = 33;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> RepeatedUint32ExtensionLite;
+ public const int RepeatedUint64ExtensionLiteFieldNumber = 34;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> RepeatedUint64ExtensionLite;
+ public const int RepeatedSint32ExtensionLiteFieldNumber = 35;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> RepeatedSint32ExtensionLite;
+ public const int RepeatedSint64ExtensionLiteFieldNumber = 36;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> RepeatedSint64ExtensionLite;
+ public const int RepeatedFixed32ExtensionLiteFieldNumber = 37;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> RepeatedFixed32ExtensionLite;
+ public const int RepeatedFixed64ExtensionLiteFieldNumber = 38;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> RepeatedFixed64ExtensionLite;
+ public const int RepeatedSfixed32ExtensionLiteFieldNumber = 39;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> RepeatedSfixed32ExtensionLite;
+ public const int RepeatedSfixed64ExtensionLiteFieldNumber = 40;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> RepeatedSfixed64ExtensionLite;
+ public const int RepeatedFloatExtensionLiteFieldNumber = 41;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float> RepeatedFloatExtensionLite;
+ public const int RepeatedDoubleExtensionLiteFieldNumber = 42;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double> RepeatedDoubleExtensionLite;
+ public const int RepeatedBoolExtensionLiteFieldNumber = 43;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool> RepeatedBoolExtensionLite;
+ public const int RepeatedStringExtensionLiteFieldNumber = 44;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> RepeatedStringExtensionLite;
+ public const int RepeatedBytesExtensionLiteFieldNumber = 45;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString> RepeatedBytesExtensionLite;
+ public const int RepeatedGroupExtensionLiteFieldNumber = 46;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite> RepeatedGroupExtensionLite;
+ public const int RepeatedNestedMessageExtensionLiteFieldNumber = 48;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedNestedMessageExtensionLite;
+ public const int RepeatedForeignMessageExtensionLiteFieldNumber = 49;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> RepeatedForeignMessageExtensionLite;
+ public const int RepeatedImportMessageExtensionLiteFieldNumber = 50;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> RepeatedImportMessageExtensionLite;
+ public const int RepeatedNestedEnumExtensionLiteFieldNumber = 51;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> RepeatedNestedEnumExtensionLite;
+ public const int RepeatedForeignEnumExtensionLiteFieldNumber = 52;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> RepeatedForeignEnumExtensionLite;
+ public const int RepeatedImportEnumExtensionLiteFieldNumber = 53;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> RepeatedImportEnumExtensionLite;
+ public const int RepeatedStringPieceExtensionLiteFieldNumber = 54;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> RepeatedStringPieceExtensionLite;
+ public const int RepeatedCordExtensionLiteFieldNumber = 55;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> RepeatedCordExtensionLite;
+ public const int DefaultInt32ExtensionLiteFieldNumber = 61;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> DefaultInt32ExtensionLite;
+ public const int DefaultInt64ExtensionLiteFieldNumber = 62;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> DefaultInt64ExtensionLite;
+ public const int DefaultUint32ExtensionLiteFieldNumber = 63;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> DefaultUint32ExtensionLite;
+ public const int DefaultUint64ExtensionLiteFieldNumber = 64;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> DefaultUint64ExtensionLite;
+ public const int DefaultSint32ExtensionLiteFieldNumber = 65;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> DefaultSint32ExtensionLite;
+ public const int DefaultSint64ExtensionLiteFieldNumber = 66;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> DefaultSint64ExtensionLite;
+ public const int DefaultFixed32ExtensionLiteFieldNumber = 67;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint> DefaultFixed32ExtensionLite;
+ public const int DefaultFixed64ExtensionLiteFieldNumber = 68;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong> DefaultFixed64ExtensionLite;
+ public const int DefaultSfixed32ExtensionLiteFieldNumber = 69;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> DefaultSfixed32ExtensionLite;
+ public const int DefaultSfixed64ExtensionLiteFieldNumber = 70;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long> DefaultSfixed64ExtensionLite;
+ public const int DefaultFloatExtensionLiteFieldNumber = 71;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float> DefaultFloatExtensionLite;
+ public const int DefaultDoubleExtensionLiteFieldNumber = 72;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double> DefaultDoubleExtensionLite;
+ public const int DefaultBoolExtensionLiteFieldNumber = 73;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool> DefaultBoolExtensionLite;
+ public const int DefaultStringExtensionLiteFieldNumber = 74;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> DefaultStringExtensionLite;
+ public const int DefaultBytesExtensionLiteFieldNumber = 75;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString> DefaultBytesExtensionLite;
+ public const int DefaultNestedEnumExtensionLiteFieldNumber = 81;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> DefaultNestedEnumExtensionLite;
+ public const int DefaultForeignEnumExtensionLiteFieldNumber = 82;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> DefaultForeignEnumExtensionLite;
+ public const int DefaultImportEnumExtensionLiteFieldNumber = 83;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> DefaultImportEnumExtensionLite;
+ public const int DefaultStringPieceExtensionLiteFieldNumber = 84;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> DefaultStringPieceExtensionLite;
+ public const int DefaultCordExtensionLiteFieldNumber = 85;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string> DefaultCordExtensionLite;
+ public const int PackedInt32ExtensionLiteFieldNumber = 90;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int> PackedInt32ExtensionLite;
+ public const int PackedInt64ExtensionLiteFieldNumber = 91;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long> PackedInt64ExtensionLite;
+ public const int PackedUint32ExtensionLiteFieldNumber = 92;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, uint> PackedUint32ExtensionLite;
+ public const int PackedUint64ExtensionLiteFieldNumber = 93;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, ulong> PackedUint64ExtensionLite;
+ public const int PackedSint32ExtensionLiteFieldNumber = 94;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int> PackedSint32ExtensionLite;
+ public const int PackedSint64ExtensionLiteFieldNumber = 95;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long> PackedSint64ExtensionLite;
+ public const int PackedFixed32ExtensionLiteFieldNumber = 96;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, uint> PackedFixed32ExtensionLite;
+ public const int PackedFixed64ExtensionLiteFieldNumber = 97;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, ulong> PackedFixed64ExtensionLite;
+ public const int PackedSfixed32ExtensionLiteFieldNumber = 98;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int> PackedSfixed32ExtensionLite;
+ public const int PackedSfixed64ExtensionLiteFieldNumber = 99;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long> PackedSfixed64ExtensionLite;
+ public const int PackedFloatExtensionLiteFieldNumber = 100;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, float> PackedFloatExtensionLite;
+ public const int PackedDoubleExtensionLiteFieldNumber = 101;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, double> PackedDoubleExtensionLite;
+ public const int PackedBoolExtensionLiteFieldNumber = 102;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, bool> PackedBoolExtensionLite;
+ public const int PackedEnumExtensionLiteFieldNumber = 103;
+ public static pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> PackedEnumExtensionLite;
+ #endregion
+
+ #region Static variables
+ #endregion
+ #region Extensions
+ internal static readonly object Descriptor;
+ static UnitTestLiteProtoFile() {
+ Descriptor = null;
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.NestedExtension =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.TestNestedExtensionLite.nested_extension",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(int),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.NestedExtensionFieldNumber,
+ pbd::FieldType.Int32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalInt32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.optional_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(int),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalInt64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.optional_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(long),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalUint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.optional_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(uint),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalUint64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.optional_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(ulong),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.optional_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(int),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSint64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.optional_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(long),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFixed32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.optional_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(uint),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFixed64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.optional_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(ulong),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSfixed32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.optional_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(int),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSfixed64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.optional_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(long),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFloatExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float>(
+ "protobuf_unittest.optional_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(float),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalDoubleExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double>(
+ "protobuf_unittest.optional_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(double),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalBoolExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool>(
+ "protobuf_unittest.optional_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(bool),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalStringExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.optional_string_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalStringExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalBytesExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString>(
+ "protobuf_unittest.optional_bytes_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalBytesExtensionLiteFieldNumber,
+ pbd::FieldType.Bytes);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalGroupExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite>(
+ "protobuf_unittest.optionalgroup_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalGroupExtensionLiteFieldNumber,
+ pbd::FieldType.Group);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalNestedMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>(
+ "protobuf_unittest.optional_nested_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalNestedMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalForeignMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite>(
+ "protobuf_unittest.optional_foreign_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalForeignMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalImportMessageExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite>(
+ "protobuf_unittest.optional_import_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalImportMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalNestedEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(
+ "protobuf_unittest.optional_nested_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum),
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalNestedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalForeignEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(
+ "protobuf_unittest.optional_foreign_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite),
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalForeignEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalImportEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(
+ "protobuf_unittest.optional_import_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ default(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite),
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalImportEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalStringPieceExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.optional_string_piece_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalStringPieceExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalCordExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.optional_cord_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.OptionalCordExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedInt32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.repeated_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedInt64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.repeated_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedUint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.repeated_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedUint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.repeated_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.repeated_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.repeated_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.repeated_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.repeated_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSfixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.repeated_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSfixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.repeated_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFloatExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float>(
+ "protobuf_unittest.repeated_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedDoubleExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double>(
+ "protobuf_unittest.repeated_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedBoolExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool>(
+ "protobuf_unittest.repeated_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedStringExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.repeated_string_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedStringExtensionLiteFieldNumber,
+ pbd::FieldType.String,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedBytesExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString>(
+ "protobuf_unittest.repeated_bytes_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedBytesExtensionLiteFieldNumber,
+ pbd::FieldType.Bytes,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedGroupExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite>(
+ "protobuf_unittest.repeatedgroup_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedGroupExtensionLiteFieldNumber,
+ pbd::FieldType.Group,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedNestedMessageExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>(
+ "protobuf_unittest.repeated_nested_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedNestedMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedForeignMessageExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite>(
+ "protobuf_unittest.repeated_foreign_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedForeignMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedImportMessageExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite>(
+ "protobuf_unittest.repeated_import_message_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedImportMessageExtensionLiteFieldNumber,
+ pbd::FieldType.Message,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedNestedEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(
+ "protobuf_unittest.repeated_nested_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedNestedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(
+ "protobuf_unittest.repeated_foreign_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedForeignEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedImportEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(
+ "protobuf_unittest.repeated_import_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedImportEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedStringPieceExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.repeated_string_piece_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedStringPieceExtensionLiteFieldNumber,
+ pbd::FieldType.String,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedCordExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.repeated_cord_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.RepeatedCordExtensionLiteFieldNumber,
+ pbd::FieldType.String,
+ false);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultInt32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.default_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 41,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultInt64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.default_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 42L,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultUint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.default_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 43,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultUint64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.default_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 44UL,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSint32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.default_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ -45,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSint64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.default_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 46,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFixed32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, uint>(
+ "protobuf_unittest.default_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 47,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFixed64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, ulong>(
+ "protobuf_unittest.default_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 48,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSfixed32ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int>(
+ "protobuf_unittest.default_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 49,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSfixed64ExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, long>(
+ "protobuf_unittest.default_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ -50,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFloatExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, float>(
+ "protobuf_unittest.default_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 51.5F,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultDoubleExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, double>(
+ "protobuf_unittest.default_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ 52000D,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultBoolExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, bool>(
+ "protobuf_unittest.default_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ true,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultStringExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.default_string_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ "hello",
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultStringExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultBytesExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, pb::ByteString>(
+ "protobuf_unittest.default_bytes_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ ByteString.FromBase64("d29ybGQ="),
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultBytesExtensionLiteFieldNumber,
+ pbd::FieldType.Bytes);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultNestedEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(
+ "protobuf_unittest.default_nested_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.BAR,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultNestedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultForeignEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(
+ "protobuf_unittest.default_foreign_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_BAR,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultForeignEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultImportEnumExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(
+ "protobuf_unittest.default_import_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_BAR,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultImportEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultStringPieceExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.default_string_piece_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ "abc",
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultStringPieceExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultCordExtensionLite =
+ new pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, string>(
+ "protobuf_unittest.default_cord_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance,
+ "123",
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.DefaultCordExtensionLiteFieldNumber,
+ pbd::FieldType.String);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedInt32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int>(
+ "protobuf_unittest.packed_int32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedInt32ExtensionLiteFieldNumber,
+ pbd::FieldType.Int32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedInt64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long>(
+ "protobuf_unittest.packed_int64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedInt64ExtensionLiteFieldNumber,
+ pbd::FieldType.Int64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedUint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, uint>(
+ "protobuf_unittest.packed_uint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedUint32ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedUint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, ulong>(
+ "protobuf_unittest.packed_uint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedUint64ExtensionLiteFieldNumber,
+ pbd::FieldType.UInt64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSint32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int>(
+ "protobuf_unittest.packed_sint32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSint32ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSint64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long>(
+ "protobuf_unittest.packed_sint64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSint64ExtensionLiteFieldNumber,
+ pbd::FieldType.SInt64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, uint>(
+ "protobuf_unittest.packed_fixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, ulong>(
+ "protobuf_unittest.packed_fixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.Fixed64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSfixed32ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, int>(
+ "protobuf_unittest.packed_sfixed32_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSfixed32ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed32,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSfixed64ExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, long>(
+ "protobuf_unittest.packed_sfixed64_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedSfixed64ExtensionLiteFieldNumber,
+ pbd::FieldType.SFixed64,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFloatExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, float>(
+ "protobuf_unittest.packed_float_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedFloatExtensionLiteFieldNumber,
+ pbd::FieldType.Float,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedDoubleExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, double>(
+ "protobuf_unittest.packed_double_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedDoubleExtensionLiteFieldNumber,
+ pbd::FieldType.Double,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedBoolExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, bool>(
+ "protobuf_unittest.packed_bool_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ null,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedBoolExtensionLiteFieldNumber,
+ pbd::FieldType.Bool,
+ true);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedEnumExtensionLite =
+ new pb::GeneratedRepeatExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(
+ "protobuf_unittest.packed_enum_extension_lite",
+ global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance,
+ null,
+ new EnumLiteMap<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>(),
+ global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.PackedEnumExtensionLiteFieldNumber,
+ pbd::FieldType.Enum,
+ true);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ForeignEnumLite {
+ FOREIGN_LITE_FOO = 4,
+ FOREIGN_LITE_BAR = 5,
+ FOREIGN_LITE_BAZ = 6,
+ }
+
+ #endregion
+
+ #region Messages
+ public sealed partial class TestAllTypesLite : pb::GeneratedMessageLite<TestAllTypesLite, TestAllTypesLite.Builder> {
+ private static readonly TestAllTypesLite defaultInstance = new Builder().BuildPartial();
+ public static TestAllTypesLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllTypesLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestAllTypesLite ThisMessage {
+ get { return this; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ }
+
+ public sealed partial class NestedMessage : pb::GeneratedMessageLite<NestedMessage, NestedMessage.Builder> {
+ private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_ = 0;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasBb) {
+ output.WriteInt32(1, Bb);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasBb) hash ^= bb_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ NestedMessage other = obj as NestedMessage;
+ if (other == null) return false;
+ if (hasBb != other.hasBb || (hasBb && !bb_.Equals(other.bb_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("bb", hasBb, bb_, writer);
+ }
+ #endregion
+
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ NestedMessage result = new NestedMessage();
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new NestedMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ NestedMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance) return this;
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ Bb = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasBb {
+ get { return result.HasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class OptionalGroup : pb::GeneratedMessageLite<OptionalGroup, OptionalGroup.Builder> {
+ private static readonly OptionalGroup defaultInstance = new Builder().BuildPartial();
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(17, A);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasA) hash ^= a_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ OptionalGroup other = obj as OptionalGroup;
+ if (other == null) return false;
+ if (hasA != other.hasA || (hasA && !a_.Equals(other.a_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("a", hasA, a_, writer);
+ }
+ #endregion
+
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OptionalGroup result = new OptionalGroup();
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OptionalGroup();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OptionalGroup returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 136: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class RepeatedGroup : pb::GeneratedMessageLite<RepeatedGroup, RepeatedGroup.Builder> {
+ private static readonly RepeatedGroup defaultInstance = new Builder().BuildPartial();
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(47, A);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasA) hash ^= a_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ RepeatedGroup other = obj as RepeatedGroup;
+ if (other == null) return false;
+ if (hasA != other.hasA || (hasA && !a_.Equals(other.a_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("a", hasA, a_, writer);
+ }
+ #endregion
+
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ RepeatedGroup result = new RepeatedGroup();
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new RepeatedGroup();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ RepeatedGroup returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 376: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int OptionalInt32FieldNumber = 1;
+ private bool hasOptionalInt32;
+ private int optionalInt32_ = 0;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public const int OptionalInt64FieldNumber = 2;
+ private bool hasOptionalInt64;
+ private long optionalInt64_ = 0L;
+ public bool HasOptionalInt64 {
+ get { return hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return optionalInt64_; }
+ }
+
+ public const int OptionalUint32FieldNumber = 3;
+ private bool hasOptionalUint32;
+ private uint optionalUint32_ = 0;
+ public bool HasOptionalUint32 {
+ get { return hasOptionalUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalUint32 {
+ get { return optionalUint32_; }
+ }
+
+ public const int OptionalUint64FieldNumber = 4;
+ private bool hasOptionalUint64;
+ private ulong optionalUint64_ = 0UL;
+ public bool HasOptionalUint64 {
+ get { return hasOptionalUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalUint64 {
+ get { return optionalUint64_; }
+ }
+
+ public const int OptionalSint32FieldNumber = 5;
+ private bool hasOptionalSint32;
+ private int optionalSint32_ = 0;
+ public bool HasOptionalSint32 {
+ get { return hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return optionalSint32_; }
+ }
+
+ public const int OptionalSint64FieldNumber = 6;
+ private bool hasOptionalSint64;
+ private long optionalSint64_ = 0;
+ public bool HasOptionalSint64 {
+ get { return hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return optionalSint64_; }
+ }
+
+ public const int OptionalFixed32FieldNumber = 7;
+ private bool hasOptionalFixed32;
+ private uint optionalFixed32_ = 0;
+ public bool HasOptionalFixed32 {
+ get { return hasOptionalFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalFixed32 {
+ get { return optionalFixed32_; }
+ }
+
+ public const int OptionalFixed64FieldNumber = 8;
+ private bool hasOptionalFixed64;
+ private ulong optionalFixed64_ = 0;
+ public bool HasOptionalFixed64 {
+ get { return hasOptionalFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalFixed64 {
+ get { return optionalFixed64_; }
+ }
+
+ public const int OptionalSfixed32FieldNumber = 9;
+ private bool hasOptionalSfixed32;
+ private int optionalSfixed32_ = 0;
+ public bool HasOptionalSfixed32 {
+ get { return hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return optionalSfixed32_; }
+ }
+
+ public const int OptionalSfixed64FieldNumber = 10;
+ private bool hasOptionalSfixed64;
+ private long optionalSfixed64_ = 0;
+ public bool HasOptionalSfixed64 {
+ get { return hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return optionalSfixed64_; }
+ }
+
+ public const int OptionalFloatFieldNumber = 11;
+ private bool hasOptionalFloat;
+ private float optionalFloat_ = 0F;
+ public bool HasOptionalFloat {
+ get { return hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return optionalFloat_; }
+ }
+
+ public const int OptionalDoubleFieldNumber = 12;
+ private bool hasOptionalDouble;
+ private double optionalDouble_ = 0D;
+ public bool HasOptionalDouble {
+ get { return hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return optionalDouble_; }
+ }
+
+ public const int OptionalBoolFieldNumber = 13;
+ private bool hasOptionalBool;
+ private bool optionalBool_ = false;
+ public bool HasOptionalBool {
+ get { return hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return optionalBool_; }
+ }
+
+ public const int OptionalStringFieldNumber = 14;
+ private bool hasOptionalString;
+ private string optionalString_ = "";
+ public bool HasOptionalString {
+ get { return hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return optionalString_; }
+ }
+
+ public const int OptionalBytesFieldNumber = 15;
+ private bool hasOptionalBytes;
+ private pb::ByteString optionalBytes_ = pb::ByteString.Empty;
+ public bool HasOptionalBytes {
+ get { return hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return optionalBytes_; }
+ }
+
+ public const int OptionalGroupFieldNumber = 16;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 18;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_; }
+ }
+
+ public const int OptionalForeignMessageFieldNumber = 19;
+ private bool hasOptionalForeignMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance;
+ public bool HasOptionalForeignMessage {
+ get { return hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite OptionalForeignMessage {
+ get { return optionalForeignMessage_; }
+ }
+
+ public const int OptionalImportMessageFieldNumber = 20;
+ private bool hasOptionalImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessageLite optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance;
+ public bool HasOptionalImportMessage {
+ get { return hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite OptionalImportMessage {
+ get { return optionalImportMessage_; }
+ }
+
+ public const int OptionalNestedEnumFieldNumber = 21;
+ private bool hasOptionalNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.FOO;
+ public bool HasOptionalNestedEnum {
+ get { return hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum OptionalNestedEnum {
+ get { return optionalNestedEnum_; }
+ }
+
+ public const int OptionalForeignEnumFieldNumber = 22;
+ private bool hasOptionalForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_FOO;
+ public bool HasOptionalForeignEnum {
+ get { return hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite OptionalForeignEnum {
+ get { return optionalForeignEnum_; }
+ }
+
+ public const int OptionalImportEnumFieldNumber = 23;
+ private bool hasOptionalImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnumLite optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_FOO;
+ public bool HasOptionalImportEnum {
+ get { return hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite OptionalImportEnum {
+ get { return optionalImportEnum_; }
+ }
+
+ public const int OptionalStringPieceFieldNumber = 24;
+ private bool hasOptionalStringPiece;
+ private string optionalStringPiece_ = "";
+ public bool HasOptionalStringPiece {
+ get { return hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return optionalStringPiece_; }
+ }
+
+ public const int OptionalCordFieldNumber = 25;
+ private bool hasOptionalCord;
+ private string optionalCord_ = "";
+ public bool HasOptionalCord {
+ get { return hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return optionalCord_; }
+ }
+
+ public const int RepeatedInt32FieldNumber = 31;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 32;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedUint32FieldNumber = 33;
+ private pbc::PopsicleList<uint> repeatedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedUint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint32_); }
+ }
+ public int RepeatedUint32Count {
+ get { return repeatedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedUint32(int index) {
+ return repeatedUint32_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 34;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public const int RepeatedSint32FieldNumber = 35;
+ private pbc::PopsicleList<int> repeatedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint32_); }
+ }
+ public int RepeatedSint32Count {
+ get { return repeatedSint32_.Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return repeatedSint32_[index];
+ }
+
+ public const int RepeatedSint64FieldNumber = 36;
+ private pbc::PopsicleList<long> repeatedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint64_); }
+ }
+ public int RepeatedSint64Count {
+ get { return repeatedSint64_.Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return repeatedSint64_[index];
+ }
+
+ public const int RepeatedFixed32FieldNumber = 37;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 38;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedSfixed32FieldNumber = 39;
+ private pbc::PopsicleList<int> repeatedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed32_); }
+ }
+ public int RepeatedSfixed32Count {
+ get { return repeatedSfixed32_.Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return repeatedSfixed32_[index];
+ }
+
+ public const int RepeatedSfixed64FieldNumber = 40;
+ private pbc::PopsicleList<long> repeatedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed64_); }
+ }
+ public int RepeatedSfixed64Count {
+ get { return repeatedSfixed64_.Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return repeatedSfixed64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 41;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedDoubleFieldNumber = 42;
+ private pbc::PopsicleList<double> repeatedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> RepeatedDoubleList {
+ get { return pbc::Lists.AsReadOnly(repeatedDouble_); }
+ }
+ public int RepeatedDoubleCount {
+ get { return repeatedDouble_.Count; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return repeatedDouble_[index];
+ }
+
+ public const int RepeatedBoolFieldNumber = 43;
+ private pbc::PopsicleList<bool> repeatedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> RepeatedBoolList {
+ get { return pbc::Lists.AsReadOnly(repeatedBool_); }
+ }
+ public int RepeatedBoolCount {
+ get { return repeatedBool_.Count; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return repeatedBool_[index];
+ }
+
+ public const int RepeatedStringFieldNumber = 44;
+ private pbc::PopsicleList<string> repeatedString_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringList {
+ get { return pbc::Lists.AsReadOnly(repeatedString_); }
+ }
+ public int RepeatedStringCount {
+ get { return repeatedString_.Count; }
+ }
+ public string GetRepeatedString(int index) {
+ return repeatedString_[index];
+ }
+
+ public const int RepeatedBytesFieldNumber = 45;
+ private pbc::PopsicleList<pb::ByteString> repeatedBytes_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> RepeatedBytesList {
+ get { return pbc::Lists.AsReadOnly(repeatedBytes_); }
+ }
+ public int RepeatedBytesCount {
+ get { return repeatedBytes_.Count; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return repeatedBytes_[index];
+ }
+
+ public const int RepeatedGroupFieldNumber = 46;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public const int RepeatedNestedMessageFieldNumber = 48;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> repeatedNestedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return repeatedNestedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return repeatedNestedMessage_[index];
+ }
+
+ public const int RepeatedForeignMessageFieldNumber = 49;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> repeatedForeignMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> RepeatedForeignMessageList {
+ get { return repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return repeatedForeignMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite GetRepeatedForeignMessage(int index) {
+ return repeatedForeignMessage_[index];
+ }
+
+ public const int RepeatedImportMessageFieldNumber = 50;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> repeatedImportMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> RepeatedImportMessageList {
+ get { return repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return repeatedImportMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite GetRepeatedImportMessage(int index) {
+ return repeatedImportMessage_[index];
+ }
+
+ public const int RepeatedNestedEnumFieldNumber = 51;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> repeatedNestedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedNestedEnum_); }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return repeatedNestedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return repeatedNestedEnum_[index];
+ }
+
+ public const int RepeatedForeignEnumFieldNumber = 52;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> repeatedForeignEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> RepeatedForeignEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedForeignEnum_); }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return repeatedForeignEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite GetRepeatedForeignEnum(int index) {
+ return repeatedForeignEnum_[index];
+ }
+
+ public const int RepeatedImportEnumFieldNumber = 53;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> repeatedImportEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> RepeatedImportEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedImportEnum_); }
+ }
+ public int RepeatedImportEnumCount {
+ get { return repeatedImportEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite GetRepeatedImportEnum(int index) {
+ return repeatedImportEnum_[index];
+ }
+
+ public const int RepeatedStringPieceFieldNumber = 54;
+ private pbc::PopsicleList<string> repeatedStringPiece_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPiece_); }
+ }
+ public int RepeatedStringPieceCount {
+ get { return repeatedStringPiece_.Count; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return repeatedStringPiece_[index];
+ }
+
+ public const int RepeatedCordFieldNumber = 55;
+ private pbc::PopsicleList<string> repeatedCord_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordList {
+ get { return pbc::Lists.AsReadOnly(repeatedCord_); }
+ }
+ public int RepeatedCordCount {
+ get { return repeatedCord_.Count; }
+ }
+ public string GetRepeatedCord(int index) {
+ return repeatedCord_[index];
+ }
+
+ public const int DefaultInt32FieldNumber = 61;
+ private bool hasDefaultInt32;
+ private int defaultInt32_ = 41;
+ public bool HasDefaultInt32 {
+ get { return hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return defaultInt32_; }
+ }
+
+ public const int DefaultInt64FieldNumber = 62;
+ private bool hasDefaultInt64;
+ private long defaultInt64_ = 42L;
+ public bool HasDefaultInt64 {
+ get { return hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return defaultInt64_; }
+ }
+
+ public const int DefaultUint32FieldNumber = 63;
+ private bool hasDefaultUint32;
+ private uint defaultUint32_ = 43;
+ public bool HasDefaultUint32 {
+ get { return hasDefaultUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultUint32 {
+ get { return defaultUint32_; }
+ }
+
+ public const int DefaultUint64FieldNumber = 64;
+ private bool hasDefaultUint64;
+ private ulong defaultUint64_ = 44UL;
+ public bool HasDefaultUint64 {
+ get { return hasDefaultUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultUint64 {
+ get { return defaultUint64_; }
+ }
+
+ public const int DefaultSint32FieldNumber = 65;
+ private bool hasDefaultSint32;
+ private int defaultSint32_ = -45;
+ public bool HasDefaultSint32 {
+ get { return hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return defaultSint32_; }
+ }
+
+ public const int DefaultSint64FieldNumber = 66;
+ private bool hasDefaultSint64;
+ private long defaultSint64_ = 46;
+ public bool HasDefaultSint64 {
+ get { return hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return defaultSint64_; }
+ }
+
+ public const int DefaultFixed32FieldNumber = 67;
+ private bool hasDefaultFixed32;
+ private uint defaultFixed32_ = 47;
+ public bool HasDefaultFixed32 {
+ get { return hasDefaultFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultFixed32 {
+ get { return defaultFixed32_; }
+ }
+
+ public const int DefaultFixed64FieldNumber = 68;
+ private bool hasDefaultFixed64;
+ private ulong defaultFixed64_ = 48;
+ public bool HasDefaultFixed64 {
+ get { return hasDefaultFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultFixed64 {
+ get { return defaultFixed64_; }
+ }
+
+ public const int DefaultSfixed32FieldNumber = 69;
+ private bool hasDefaultSfixed32;
+ private int defaultSfixed32_ = 49;
+ public bool HasDefaultSfixed32 {
+ get { return hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return defaultSfixed32_; }
+ }
+
+ public const int DefaultSfixed64FieldNumber = 70;
+ private bool hasDefaultSfixed64;
+ private long defaultSfixed64_ = -50;
+ public bool HasDefaultSfixed64 {
+ get { return hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return defaultSfixed64_; }
+ }
+
+ public const int DefaultFloatFieldNumber = 71;
+ private bool hasDefaultFloat;
+ private float defaultFloat_ = 51.5F;
+ public bool HasDefaultFloat {
+ get { return hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return defaultFloat_; }
+ }
+
+ public const int DefaultDoubleFieldNumber = 72;
+ private bool hasDefaultDouble;
+ private double defaultDouble_ = 52000D;
+ public bool HasDefaultDouble {
+ get { return hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return defaultDouble_; }
+ }
+
+ public const int DefaultBoolFieldNumber = 73;
+ private bool hasDefaultBool;
+ private bool defaultBool_ = true;
+ public bool HasDefaultBool {
+ get { return hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return defaultBool_; }
+ }
+
+ public const int DefaultStringFieldNumber = 74;
+ private bool hasDefaultString;
+ private string defaultString_ = "hello";
+ public bool HasDefaultString {
+ get { return hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return defaultString_; }
+ }
+
+ public const int DefaultBytesFieldNumber = 75;
+ private bool hasDefaultBytes;
+ private pb::ByteString defaultBytes_ = ByteString.FromBase64("d29ybGQ=");
+ public bool HasDefaultBytes {
+ get { return hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return defaultBytes_; }
+ }
+
+ public const int DefaultNestedEnumFieldNumber = 81;
+ private bool hasDefaultNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.BAR;
+ public bool HasDefaultNestedEnum {
+ get { return hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum DefaultNestedEnum {
+ get { return defaultNestedEnum_; }
+ }
+
+ public const int DefaultForeignEnumFieldNumber = 82;
+ private bool hasDefaultForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_BAR;
+ public bool HasDefaultForeignEnum {
+ get { return hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite DefaultForeignEnum {
+ get { return defaultForeignEnum_; }
+ }
+
+ public const int DefaultImportEnumFieldNumber = 83;
+ private bool hasDefaultImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnumLite defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_BAR;
+ public bool HasDefaultImportEnum {
+ get { return hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite DefaultImportEnum {
+ get { return defaultImportEnum_; }
+ }
+
+ public const int DefaultStringPieceFieldNumber = 84;
+ private bool hasDefaultStringPiece;
+ private string defaultStringPiece_ = "abc";
+ public bool HasDefaultStringPiece {
+ get { return hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return defaultStringPiece_; }
+ }
+
+ public const int DefaultCordFieldNumber = 85;
+ private bool hasDefaultCord;
+ private string defaultCord_ = "123";
+ public bool HasDefaultCord {
+ get { return hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return defaultCord_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasOptionalInt32) {
+ output.WriteInt32(1, OptionalInt32);
+ }
+ if (HasOptionalInt64) {
+ output.WriteInt64(2, OptionalInt64);
+ }
+ if (HasOptionalUint32) {
+ output.WriteUInt32(3, OptionalUint32);
+ }
+ if (HasOptionalUint64) {
+ output.WriteUInt64(4, OptionalUint64);
+ }
+ if (HasOptionalSint32) {
+ output.WriteSInt32(5, OptionalSint32);
+ }
+ if (HasOptionalSint64) {
+ output.WriteSInt64(6, OptionalSint64);
+ }
+ if (HasOptionalFixed32) {
+ output.WriteFixed32(7, OptionalFixed32);
+ }
+ if (HasOptionalFixed64) {
+ output.WriteFixed64(8, OptionalFixed64);
+ }
+ if (HasOptionalSfixed32) {
+ output.WriteSFixed32(9, OptionalSfixed32);
+ }
+ if (HasOptionalSfixed64) {
+ output.WriteSFixed64(10, OptionalSfixed64);
+ }
+ if (HasOptionalFloat) {
+ output.WriteFloat(11, OptionalFloat);
+ }
+ if (HasOptionalDouble) {
+ output.WriteDouble(12, OptionalDouble);
+ }
+ if (HasOptionalBool) {
+ output.WriteBool(13, OptionalBool);
+ }
+ if (HasOptionalString) {
+ output.WriteString(14, OptionalString);
+ }
+ if (HasOptionalBytes) {
+ output.WriteBytes(15, OptionalBytes);
+ }
+ if (HasOptionalGroup) {
+ output.WriteGroup(16, OptionalGroup);
+ }
+ if (HasOptionalNestedMessage) {
+ output.WriteMessage(18, OptionalNestedMessage);
+ }
+ if (HasOptionalForeignMessage) {
+ output.WriteMessage(19, OptionalForeignMessage);
+ }
+ if (HasOptionalImportMessage) {
+ output.WriteMessage(20, OptionalImportMessage);
+ }
+ if (HasOptionalNestedEnum) {
+ output.WriteEnum(21, (int) OptionalNestedEnum);
+ }
+ if (HasOptionalForeignEnum) {
+ output.WriteEnum(22, (int) OptionalForeignEnum);
+ }
+ if (HasOptionalImportEnum) {
+ output.WriteEnum(23, (int) OptionalImportEnum);
+ }
+ if (HasOptionalStringPiece) {
+ output.WriteString(24, OptionalStringPiece);
+ }
+ if (HasOptionalCord) {
+ output.WriteString(25, OptionalCord);
+ }
+ if (repeatedInt32_.Count > 0) {
+ foreach (int element in repeatedInt32_) {
+ output.WriteInt32(31, element);
+ }
+ }
+ if (repeatedInt64_.Count > 0) {
+ foreach (long element in repeatedInt64_) {
+ output.WriteInt64(32, element);
+ }
+ }
+ if (repeatedUint32_.Count > 0) {
+ foreach (uint element in repeatedUint32_) {
+ output.WriteUInt32(33, element);
+ }
+ }
+ if (repeatedUint64_.Count > 0) {
+ foreach (ulong element in repeatedUint64_) {
+ output.WriteUInt64(34, element);
+ }
+ }
+ if (repeatedSint32_.Count > 0) {
+ foreach (int element in repeatedSint32_) {
+ output.WriteSInt32(35, element);
+ }
+ }
+ if (repeatedSint64_.Count > 0) {
+ foreach (long element in repeatedSint64_) {
+ output.WriteSInt64(36, element);
+ }
+ }
+ if (repeatedFixed32_.Count > 0) {
+ foreach (uint element in repeatedFixed32_) {
+ output.WriteFixed32(37, element);
+ }
+ }
+ if (repeatedFixed64_.Count > 0) {
+ foreach (ulong element in repeatedFixed64_) {
+ output.WriteFixed64(38, element);
+ }
+ }
+ if (repeatedSfixed32_.Count > 0) {
+ foreach (int element in repeatedSfixed32_) {
+ output.WriteSFixed32(39, element);
+ }
+ }
+ if (repeatedSfixed64_.Count > 0) {
+ foreach (long element in repeatedSfixed64_) {
+ output.WriteSFixed64(40, element);
+ }
+ }
+ if (repeatedFloat_.Count > 0) {
+ foreach (float element in repeatedFloat_) {
+ output.WriteFloat(41, element);
+ }
+ }
+ if (repeatedDouble_.Count > 0) {
+ foreach (double element in repeatedDouble_) {
+ output.WriteDouble(42, element);
+ }
+ }
+ if (repeatedBool_.Count > 0) {
+ foreach (bool element in repeatedBool_) {
+ output.WriteBool(43, element);
+ }
+ }
+ if (repeatedString_.Count > 0) {
+ foreach (string element in repeatedString_) {
+ output.WriteString(44, element);
+ }
+ }
+ if (repeatedBytes_.Count > 0) {
+ foreach (pb::ByteString element in repeatedBytes_) {
+ output.WriteBytes(45, element);
+ }
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup element in RepeatedGroupList) {
+ output.WriteGroup(46, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage element in RepeatedNestedMessageList) {
+ output.WriteMessage(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite element in RepeatedForeignMessageList) {
+ output.WriteMessage(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportMessageLite element in RepeatedImportMessageList) {
+ output.WriteMessage(50, element);
+ }
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (int element in repeatedNestedEnum_) {
+ output.WriteEnum(51, element);
+ }
+ }
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (int element in repeatedForeignEnum_) {
+ output.WriteEnum(52, element);
+ }
+ }
+ if (repeatedImportEnum_.Count > 0) {
+ foreach (int element in repeatedImportEnum_) {
+ output.WriteEnum(53, element);
+ }
+ }
+ if (repeatedStringPiece_.Count > 0) {
+ foreach (string element in repeatedStringPiece_) {
+ output.WriteString(54, element);
+ }
+ }
+ if (repeatedCord_.Count > 0) {
+ foreach (string element in repeatedCord_) {
+ output.WriteString(55, element);
+ }
+ }
+ if (HasDefaultInt32) {
+ output.WriteInt32(61, DefaultInt32);
+ }
+ if (HasDefaultInt64) {
+ output.WriteInt64(62, DefaultInt64);
+ }
+ if (HasDefaultUint32) {
+ output.WriteUInt32(63, DefaultUint32);
+ }
+ if (HasDefaultUint64) {
+ output.WriteUInt64(64, DefaultUint64);
+ }
+ if (HasDefaultSint32) {
+ output.WriteSInt32(65, DefaultSint32);
+ }
+ if (HasDefaultSint64) {
+ output.WriteSInt64(66, DefaultSint64);
+ }
+ if (HasDefaultFixed32) {
+ output.WriteFixed32(67, DefaultFixed32);
+ }
+ if (HasDefaultFixed64) {
+ output.WriteFixed64(68, DefaultFixed64);
+ }
+ if (HasDefaultSfixed32) {
+ output.WriteSFixed32(69, DefaultSfixed32);
+ }
+ if (HasDefaultSfixed64) {
+ output.WriteSFixed64(70, DefaultSfixed64);
+ }
+ if (HasDefaultFloat) {
+ output.WriteFloat(71, DefaultFloat);
+ }
+ if (HasDefaultDouble) {
+ output.WriteDouble(72, DefaultDouble);
+ }
+ if (HasDefaultBool) {
+ output.WriteBool(73, DefaultBool);
+ }
+ if (HasDefaultString) {
+ output.WriteString(74, DefaultString);
+ }
+ if (HasDefaultBytes) {
+ output.WriteBytes(75, DefaultBytes);
+ }
+ if (HasDefaultNestedEnum) {
+ output.WriteEnum(81, (int) DefaultNestedEnum);
+ }
+ if (HasDefaultForeignEnum) {
+ output.WriteEnum(82, (int) DefaultForeignEnum);
+ }
+ if (HasDefaultImportEnum) {
+ output.WriteEnum(83, (int) DefaultImportEnum);
+ }
+ if (HasDefaultStringPiece) {
+ output.WriteString(84, DefaultStringPiece);
+ }
+ if (HasDefaultCord) {
+ output.WriteString(85, DefaultCord);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);
+ }
+ if (HasOptionalInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);
+ }
+ if (HasOptionalUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);
+ }
+ if (HasOptionalUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);
+ }
+ if (HasOptionalSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);
+ }
+ if (HasOptionalSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);
+ }
+ if (HasOptionalFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);
+ }
+ if (HasOptionalFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);
+ }
+ if (HasOptionalSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);
+ }
+ if (HasOptionalSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);
+ }
+ if (HasOptionalFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);
+ }
+ if (HasOptionalDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);
+ }
+ if (HasOptionalBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);
+ }
+ if (HasOptionalString) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);
+ }
+ if (HasOptionalBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);
+ }
+ if (HasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);
+ }
+ if (HasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);
+ }
+ if (HasOptionalForeignMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);
+ }
+ if (HasOptionalImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);
+ }
+ if (HasOptionalNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);
+ }
+ if (HasOptionalForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);
+ }
+ if (HasOptionalImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);
+ }
+ if (HasOptionalStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);
+ }
+ if (HasOptionalCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in RepeatedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 2 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedDouble_.Count;
+ size += dataSize;
+ size += 2 * repeatedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * repeatedBool_.Count;
+ size += dataSize;
+ size += 2 * repeatedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedString_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in RepeatedBytesList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedBytes_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(46, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage element in RepeatedNestedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite element in RepeatedForeignMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportMessageLite element in RepeatedImportMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(50, element);
+ }
+ {
+ int dataSize = 0;
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum element in repeatedNestedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedNestedEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite element in repeatedForeignEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedForeignEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedImportEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportEnumLite element in repeatedImportEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedImportEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedStringPiece_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedCord_.Count;
+ }
+ if (HasDefaultInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);
+ }
+ if (HasDefaultInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);
+ }
+ if (HasDefaultUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);
+ }
+ if (HasDefaultUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);
+ }
+ if (HasDefaultSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);
+ }
+ if (HasDefaultSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);
+ }
+ if (HasDefaultFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);
+ }
+ if (HasDefaultFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);
+ }
+ if (HasDefaultSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);
+ }
+ if (HasDefaultSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);
+ }
+ if (HasDefaultFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);
+ }
+ if (HasDefaultDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);
+ }
+ if (HasDefaultBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);
+ }
+ if (HasDefaultString) {
+ size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);
+ }
+ if (HasDefaultBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);
+ }
+ if (HasDefaultNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);
+ }
+ if (HasDefaultForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);
+ }
+ if (HasDefaultImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);
+ }
+ if (HasDefaultStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);
+ }
+ if (HasDefaultCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasOptionalInt32) hash ^= optionalInt32_.GetHashCode();
+ if (hasOptionalInt64) hash ^= optionalInt64_.GetHashCode();
+ if (hasOptionalUint32) hash ^= optionalUint32_.GetHashCode();
+ if (hasOptionalUint64) hash ^= optionalUint64_.GetHashCode();
+ if (hasOptionalSint32) hash ^= optionalSint32_.GetHashCode();
+ if (hasOptionalSint64) hash ^= optionalSint64_.GetHashCode();
+ if (hasOptionalFixed32) hash ^= optionalFixed32_.GetHashCode();
+ if (hasOptionalFixed64) hash ^= optionalFixed64_.GetHashCode();
+ if (hasOptionalSfixed32) hash ^= optionalSfixed32_.GetHashCode();
+ if (hasOptionalSfixed64) hash ^= optionalSfixed64_.GetHashCode();
+ if (hasOptionalFloat) hash ^= optionalFloat_.GetHashCode();
+ if (hasOptionalDouble) hash ^= optionalDouble_.GetHashCode();
+ if (hasOptionalBool) hash ^= optionalBool_.GetHashCode();
+ if (hasOptionalString) hash ^= optionalString_.GetHashCode();
+ if (hasOptionalBytes) hash ^= optionalBytes_.GetHashCode();
+ if (hasOptionalGroup) hash ^= optionalGroup_.GetHashCode();
+ if (hasOptionalNestedMessage) hash ^= optionalNestedMessage_.GetHashCode();
+ if (hasOptionalForeignMessage) hash ^= optionalForeignMessage_.GetHashCode();
+ if (hasOptionalImportMessage) hash ^= optionalImportMessage_.GetHashCode();
+ if (hasOptionalNestedEnum) hash ^= optionalNestedEnum_.GetHashCode();
+ if (hasOptionalForeignEnum) hash ^= optionalForeignEnum_.GetHashCode();
+ if (hasOptionalImportEnum) hash ^= optionalImportEnum_.GetHashCode();
+ if (hasOptionalStringPiece) hash ^= optionalStringPiece_.GetHashCode();
+ if (hasOptionalCord) hash ^= optionalCord_.GetHashCode();
+ foreach(int i in repeatedInt32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in repeatedInt64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in repeatedUint32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in repeatedUint64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in repeatedSint32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in repeatedSint64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in repeatedFixed32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in repeatedFixed64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in repeatedSfixed32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in repeatedSfixed64_)
+ hash ^= i.GetHashCode();
+ foreach(float i in repeatedFloat_)
+ hash ^= i.GetHashCode();
+ foreach(double i in repeatedDouble_)
+ hash ^= i.GetHashCode();
+ foreach(bool i in repeatedBool_)
+ hash ^= i.GetHashCode();
+ foreach(string i in repeatedString_)
+ hash ^= i.GetHashCode();
+ foreach(pb::ByteString i in repeatedBytes_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup i in repeatedGroup_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage i in repeatedNestedMessage_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite i in repeatedForeignMessage_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite i in repeatedImportMessage_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum i in repeatedNestedEnum_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite i in repeatedForeignEnum_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite i in repeatedImportEnum_)
+ hash ^= i.GetHashCode();
+ foreach(string i in repeatedStringPiece_)
+ hash ^= i.GetHashCode();
+ foreach(string i in repeatedCord_)
+ hash ^= i.GetHashCode();
+ if (hasDefaultInt32) hash ^= defaultInt32_.GetHashCode();
+ if (hasDefaultInt64) hash ^= defaultInt64_.GetHashCode();
+ if (hasDefaultUint32) hash ^= defaultUint32_.GetHashCode();
+ if (hasDefaultUint64) hash ^= defaultUint64_.GetHashCode();
+ if (hasDefaultSint32) hash ^= defaultSint32_.GetHashCode();
+ if (hasDefaultSint64) hash ^= defaultSint64_.GetHashCode();
+ if (hasDefaultFixed32) hash ^= defaultFixed32_.GetHashCode();
+ if (hasDefaultFixed64) hash ^= defaultFixed64_.GetHashCode();
+ if (hasDefaultSfixed32) hash ^= defaultSfixed32_.GetHashCode();
+ if (hasDefaultSfixed64) hash ^= defaultSfixed64_.GetHashCode();
+ if (hasDefaultFloat) hash ^= defaultFloat_.GetHashCode();
+ if (hasDefaultDouble) hash ^= defaultDouble_.GetHashCode();
+ if (hasDefaultBool) hash ^= defaultBool_.GetHashCode();
+ if (hasDefaultString) hash ^= defaultString_.GetHashCode();
+ if (hasDefaultBytes) hash ^= defaultBytes_.GetHashCode();
+ if (hasDefaultNestedEnum) hash ^= defaultNestedEnum_.GetHashCode();
+ if (hasDefaultForeignEnum) hash ^= defaultForeignEnum_.GetHashCode();
+ if (hasDefaultImportEnum) hash ^= defaultImportEnum_.GetHashCode();
+ if (hasDefaultStringPiece) hash ^= defaultStringPiece_.GetHashCode();
+ if (hasDefaultCord) hash ^= defaultCord_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestAllTypesLite other = obj as TestAllTypesLite;
+ if (other == null) return false;
+ if (hasOptionalInt32 != other.hasOptionalInt32 || (hasOptionalInt32 && !optionalInt32_.Equals(other.optionalInt32_))) return false;
+ if (hasOptionalInt64 != other.hasOptionalInt64 || (hasOptionalInt64 && !optionalInt64_.Equals(other.optionalInt64_))) return false;
+ if (hasOptionalUint32 != other.hasOptionalUint32 || (hasOptionalUint32 && !optionalUint32_.Equals(other.optionalUint32_))) return false;
+ if (hasOptionalUint64 != other.hasOptionalUint64 || (hasOptionalUint64 && !optionalUint64_.Equals(other.optionalUint64_))) return false;
+ if (hasOptionalSint32 != other.hasOptionalSint32 || (hasOptionalSint32 && !optionalSint32_.Equals(other.optionalSint32_))) return false;
+ if (hasOptionalSint64 != other.hasOptionalSint64 || (hasOptionalSint64 && !optionalSint64_.Equals(other.optionalSint64_))) return false;
+ if (hasOptionalFixed32 != other.hasOptionalFixed32 || (hasOptionalFixed32 && !optionalFixed32_.Equals(other.optionalFixed32_))) return false;
+ if (hasOptionalFixed64 != other.hasOptionalFixed64 || (hasOptionalFixed64 && !optionalFixed64_.Equals(other.optionalFixed64_))) return false;
+ if (hasOptionalSfixed32 != other.hasOptionalSfixed32 || (hasOptionalSfixed32 && !optionalSfixed32_.Equals(other.optionalSfixed32_))) return false;
+ if (hasOptionalSfixed64 != other.hasOptionalSfixed64 || (hasOptionalSfixed64 && !optionalSfixed64_.Equals(other.optionalSfixed64_))) return false;
+ if (hasOptionalFloat != other.hasOptionalFloat || (hasOptionalFloat && !optionalFloat_.Equals(other.optionalFloat_))) return false;
+ if (hasOptionalDouble != other.hasOptionalDouble || (hasOptionalDouble && !optionalDouble_.Equals(other.optionalDouble_))) return false;
+ if (hasOptionalBool != other.hasOptionalBool || (hasOptionalBool && !optionalBool_.Equals(other.optionalBool_))) return false;
+ if (hasOptionalString != other.hasOptionalString || (hasOptionalString && !optionalString_.Equals(other.optionalString_))) return false;
+ if (hasOptionalBytes != other.hasOptionalBytes || (hasOptionalBytes && !optionalBytes_.Equals(other.optionalBytes_))) return false;
+ if (hasOptionalGroup != other.hasOptionalGroup || (hasOptionalGroup && !optionalGroup_.Equals(other.optionalGroup_))) return false;
+ if (hasOptionalNestedMessage != other.hasOptionalNestedMessage || (hasOptionalNestedMessage && !optionalNestedMessage_.Equals(other.optionalNestedMessage_))) return false;
+ if (hasOptionalForeignMessage != other.hasOptionalForeignMessage || (hasOptionalForeignMessage && !optionalForeignMessage_.Equals(other.optionalForeignMessage_))) return false;
+ if (hasOptionalImportMessage != other.hasOptionalImportMessage || (hasOptionalImportMessage && !optionalImportMessage_.Equals(other.optionalImportMessage_))) return false;
+ if (hasOptionalNestedEnum != other.hasOptionalNestedEnum || (hasOptionalNestedEnum && !optionalNestedEnum_.Equals(other.optionalNestedEnum_))) return false;
+ if (hasOptionalForeignEnum != other.hasOptionalForeignEnum || (hasOptionalForeignEnum && !optionalForeignEnum_.Equals(other.optionalForeignEnum_))) return false;
+ if (hasOptionalImportEnum != other.hasOptionalImportEnum || (hasOptionalImportEnum && !optionalImportEnum_.Equals(other.optionalImportEnum_))) return false;
+ if (hasOptionalStringPiece != other.hasOptionalStringPiece || (hasOptionalStringPiece && !optionalStringPiece_.Equals(other.optionalStringPiece_))) return false;
+ if (hasOptionalCord != other.hasOptionalCord || (hasOptionalCord && !optionalCord_.Equals(other.optionalCord_))) return false;
+ if(repeatedInt32_.Count != other.repeatedInt32_.Count) return false;
+ for(int ix=0; ix < repeatedInt32_.Count; ix++)
+ if(!repeatedInt32_[ix].Equals(other.repeatedInt32_[ix])) return false;
+ if(repeatedInt64_.Count != other.repeatedInt64_.Count) return false;
+ for(int ix=0; ix < repeatedInt64_.Count; ix++)
+ if(!repeatedInt64_[ix].Equals(other.repeatedInt64_[ix])) return false;
+ if(repeatedUint32_.Count != other.repeatedUint32_.Count) return false;
+ for(int ix=0; ix < repeatedUint32_.Count; ix++)
+ if(!repeatedUint32_[ix].Equals(other.repeatedUint32_[ix])) return false;
+ if(repeatedUint64_.Count != other.repeatedUint64_.Count) return false;
+ for(int ix=0; ix < repeatedUint64_.Count; ix++)
+ if(!repeatedUint64_[ix].Equals(other.repeatedUint64_[ix])) return false;
+ if(repeatedSint32_.Count != other.repeatedSint32_.Count) return false;
+ for(int ix=0; ix < repeatedSint32_.Count; ix++)
+ if(!repeatedSint32_[ix].Equals(other.repeatedSint32_[ix])) return false;
+ if(repeatedSint64_.Count != other.repeatedSint64_.Count) return false;
+ for(int ix=0; ix < repeatedSint64_.Count; ix++)
+ if(!repeatedSint64_[ix].Equals(other.repeatedSint64_[ix])) return false;
+ if(repeatedFixed32_.Count != other.repeatedFixed32_.Count) return false;
+ for(int ix=0; ix < repeatedFixed32_.Count; ix++)
+ if(!repeatedFixed32_[ix].Equals(other.repeatedFixed32_[ix])) return false;
+ if(repeatedFixed64_.Count != other.repeatedFixed64_.Count) return false;
+ for(int ix=0; ix < repeatedFixed64_.Count; ix++)
+ if(!repeatedFixed64_[ix].Equals(other.repeatedFixed64_[ix])) return false;
+ if(repeatedSfixed32_.Count != other.repeatedSfixed32_.Count) return false;
+ for(int ix=0; ix < repeatedSfixed32_.Count; ix++)
+ if(!repeatedSfixed32_[ix].Equals(other.repeatedSfixed32_[ix])) return false;
+ if(repeatedSfixed64_.Count != other.repeatedSfixed64_.Count) return false;
+ for(int ix=0; ix < repeatedSfixed64_.Count; ix++)
+ if(!repeatedSfixed64_[ix].Equals(other.repeatedSfixed64_[ix])) return false;
+ if(repeatedFloat_.Count != other.repeatedFloat_.Count) return false;
+ for(int ix=0; ix < repeatedFloat_.Count; ix++)
+ if(!repeatedFloat_[ix].Equals(other.repeatedFloat_[ix])) return false;
+ if(repeatedDouble_.Count != other.repeatedDouble_.Count) return false;
+ for(int ix=0; ix < repeatedDouble_.Count; ix++)
+ if(!repeatedDouble_[ix].Equals(other.repeatedDouble_[ix])) return false;
+ if(repeatedBool_.Count != other.repeatedBool_.Count) return false;
+ for(int ix=0; ix < repeatedBool_.Count; ix++)
+ if(!repeatedBool_[ix].Equals(other.repeatedBool_[ix])) return false;
+ if(repeatedString_.Count != other.repeatedString_.Count) return false;
+ for(int ix=0; ix < repeatedString_.Count; ix++)
+ if(!repeatedString_[ix].Equals(other.repeatedString_[ix])) return false;
+ if(repeatedBytes_.Count != other.repeatedBytes_.Count) return false;
+ for(int ix=0; ix < repeatedBytes_.Count; ix++)
+ if(!repeatedBytes_[ix].Equals(other.repeatedBytes_[ix])) return false;
+ if(repeatedGroup_.Count != other.repeatedGroup_.Count) return false;
+ for(int ix=0; ix < repeatedGroup_.Count; ix++)
+ if(!repeatedGroup_[ix].Equals(other.repeatedGroup_[ix])) return false;
+ if(repeatedNestedMessage_.Count != other.repeatedNestedMessage_.Count) return false;
+ for(int ix=0; ix < repeatedNestedMessage_.Count; ix++)
+ if(!repeatedNestedMessage_[ix].Equals(other.repeatedNestedMessage_[ix])) return false;
+ if(repeatedForeignMessage_.Count != other.repeatedForeignMessage_.Count) return false;
+ for(int ix=0; ix < repeatedForeignMessage_.Count; ix++)
+ if(!repeatedForeignMessage_[ix].Equals(other.repeatedForeignMessage_[ix])) return false;
+ if(repeatedImportMessage_.Count != other.repeatedImportMessage_.Count) return false;
+ for(int ix=0; ix < repeatedImportMessage_.Count; ix++)
+ if(!repeatedImportMessage_[ix].Equals(other.repeatedImportMessage_[ix])) return false;
+ if(repeatedNestedEnum_.Count != other.repeatedNestedEnum_.Count) return false;
+ for(int ix=0; ix < repeatedNestedEnum_.Count; ix++)
+ if(!repeatedNestedEnum_[ix].Equals(other.repeatedNestedEnum_[ix])) return false;
+ if(repeatedForeignEnum_.Count != other.repeatedForeignEnum_.Count) return false;
+ for(int ix=0; ix < repeatedForeignEnum_.Count; ix++)
+ if(!repeatedForeignEnum_[ix].Equals(other.repeatedForeignEnum_[ix])) return false;
+ if(repeatedImportEnum_.Count != other.repeatedImportEnum_.Count) return false;
+ for(int ix=0; ix < repeatedImportEnum_.Count; ix++)
+ if(!repeatedImportEnum_[ix].Equals(other.repeatedImportEnum_[ix])) return false;
+ if(repeatedStringPiece_.Count != other.repeatedStringPiece_.Count) return false;
+ for(int ix=0; ix < repeatedStringPiece_.Count; ix++)
+ if(!repeatedStringPiece_[ix].Equals(other.repeatedStringPiece_[ix])) return false;
+ if(repeatedCord_.Count != other.repeatedCord_.Count) return false;
+ for(int ix=0; ix < repeatedCord_.Count; ix++)
+ if(!repeatedCord_[ix].Equals(other.repeatedCord_[ix])) return false;
+ if (hasDefaultInt32 != other.hasDefaultInt32 || (hasDefaultInt32 && !defaultInt32_.Equals(other.defaultInt32_))) return false;
+ if (hasDefaultInt64 != other.hasDefaultInt64 || (hasDefaultInt64 && !defaultInt64_.Equals(other.defaultInt64_))) return false;
+ if (hasDefaultUint32 != other.hasDefaultUint32 || (hasDefaultUint32 && !defaultUint32_.Equals(other.defaultUint32_))) return false;
+ if (hasDefaultUint64 != other.hasDefaultUint64 || (hasDefaultUint64 && !defaultUint64_.Equals(other.defaultUint64_))) return false;
+ if (hasDefaultSint32 != other.hasDefaultSint32 || (hasDefaultSint32 && !defaultSint32_.Equals(other.defaultSint32_))) return false;
+ if (hasDefaultSint64 != other.hasDefaultSint64 || (hasDefaultSint64 && !defaultSint64_.Equals(other.defaultSint64_))) return false;
+ if (hasDefaultFixed32 != other.hasDefaultFixed32 || (hasDefaultFixed32 && !defaultFixed32_.Equals(other.defaultFixed32_))) return false;
+ if (hasDefaultFixed64 != other.hasDefaultFixed64 || (hasDefaultFixed64 && !defaultFixed64_.Equals(other.defaultFixed64_))) return false;
+ if (hasDefaultSfixed32 != other.hasDefaultSfixed32 || (hasDefaultSfixed32 && !defaultSfixed32_.Equals(other.defaultSfixed32_))) return false;
+ if (hasDefaultSfixed64 != other.hasDefaultSfixed64 || (hasDefaultSfixed64 && !defaultSfixed64_.Equals(other.defaultSfixed64_))) return false;
+ if (hasDefaultFloat != other.hasDefaultFloat || (hasDefaultFloat && !defaultFloat_.Equals(other.defaultFloat_))) return false;
+ if (hasDefaultDouble != other.hasDefaultDouble || (hasDefaultDouble && !defaultDouble_.Equals(other.defaultDouble_))) return false;
+ if (hasDefaultBool != other.hasDefaultBool || (hasDefaultBool && !defaultBool_.Equals(other.defaultBool_))) return false;
+ if (hasDefaultString != other.hasDefaultString || (hasDefaultString && !defaultString_.Equals(other.defaultString_))) return false;
+ if (hasDefaultBytes != other.hasDefaultBytes || (hasDefaultBytes && !defaultBytes_.Equals(other.defaultBytes_))) return false;
+ if (hasDefaultNestedEnum != other.hasDefaultNestedEnum || (hasDefaultNestedEnum && !defaultNestedEnum_.Equals(other.defaultNestedEnum_))) return false;
+ if (hasDefaultForeignEnum != other.hasDefaultForeignEnum || (hasDefaultForeignEnum && !defaultForeignEnum_.Equals(other.defaultForeignEnum_))) return false;
+ if (hasDefaultImportEnum != other.hasDefaultImportEnum || (hasDefaultImportEnum && !defaultImportEnum_.Equals(other.defaultImportEnum_))) return false;
+ if (hasDefaultStringPiece != other.hasDefaultStringPiece || (hasDefaultStringPiece && !defaultStringPiece_.Equals(other.defaultStringPiece_))) return false;
+ if (hasDefaultCord != other.hasDefaultCord || (hasDefaultCord && !defaultCord_.Equals(other.defaultCord_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("optional_int32", hasOptionalInt32, optionalInt32_, writer);
+ PrintField("optional_int64", hasOptionalInt64, optionalInt64_, writer);
+ PrintField("optional_uint32", hasOptionalUint32, optionalUint32_, writer);
+ PrintField("optional_uint64", hasOptionalUint64, optionalUint64_, writer);
+ PrintField("optional_sint32", hasOptionalSint32, optionalSint32_, writer);
+ PrintField("optional_sint64", hasOptionalSint64, optionalSint64_, writer);
+ PrintField("optional_fixed32", hasOptionalFixed32, optionalFixed32_, writer);
+ PrintField("optional_fixed64", hasOptionalFixed64, optionalFixed64_, writer);
+ PrintField("optional_sfixed32", hasOptionalSfixed32, optionalSfixed32_, writer);
+ PrintField("optional_sfixed64", hasOptionalSfixed64, optionalSfixed64_, writer);
+ PrintField("optional_float", hasOptionalFloat, optionalFloat_, writer);
+ PrintField("optional_double", hasOptionalDouble, optionalDouble_, writer);
+ PrintField("optional_bool", hasOptionalBool, optionalBool_, writer);
+ PrintField("optional_string", hasOptionalString, optionalString_, writer);
+ PrintField("optional_bytes", hasOptionalBytes, optionalBytes_, writer);
+ PrintField("OptionalGroup", hasOptionalGroup, optionalGroup_, writer);
+ PrintField("optional_nested_message", hasOptionalNestedMessage, optionalNestedMessage_, writer);
+ PrintField("optional_foreign_message", hasOptionalForeignMessage, optionalForeignMessage_, writer);
+ PrintField("optional_import_message", hasOptionalImportMessage, optionalImportMessage_, writer);
+ PrintField("optional_nested_enum", hasOptionalNestedEnum, optionalNestedEnum_, writer);
+ PrintField("optional_foreign_enum", hasOptionalForeignEnum, optionalForeignEnum_, writer);
+ PrintField("optional_import_enum", hasOptionalImportEnum, optionalImportEnum_, writer);
+ PrintField("optional_string_piece", hasOptionalStringPiece, optionalStringPiece_, writer);
+ PrintField("optional_cord", hasOptionalCord, optionalCord_, writer);
+ PrintField("repeated_int32", repeatedInt32_, writer);
+ PrintField("repeated_int64", repeatedInt64_, writer);
+ PrintField("repeated_uint32", repeatedUint32_, writer);
+ PrintField("repeated_uint64", repeatedUint64_, writer);
+ PrintField("repeated_sint32", repeatedSint32_, writer);
+ PrintField("repeated_sint64", repeatedSint64_, writer);
+ PrintField("repeated_fixed32", repeatedFixed32_, writer);
+ PrintField("repeated_fixed64", repeatedFixed64_, writer);
+ PrintField("repeated_sfixed32", repeatedSfixed32_, writer);
+ PrintField("repeated_sfixed64", repeatedSfixed64_, writer);
+ PrintField("repeated_float", repeatedFloat_, writer);
+ PrintField("repeated_double", repeatedDouble_, writer);
+ PrintField("repeated_bool", repeatedBool_, writer);
+ PrintField("repeated_string", repeatedString_, writer);
+ PrintField("repeated_bytes", repeatedBytes_, writer);
+ PrintField("RepeatedGroup", repeatedGroup_, writer);
+ PrintField("repeated_nested_message", repeatedNestedMessage_, writer);
+ PrintField("repeated_foreign_message", repeatedForeignMessage_, writer);
+ PrintField("repeated_import_message", repeatedImportMessage_, writer);
+ PrintField("repeated_nested_enum", repeatedNestedEnum_, writer);
+ PrintField("repeated_foreign_enum", repeatedForeignEnum_, writer);
+ PrintField("repeated_import_enum", repeatedImportEnum_, writer);
+ PrintField("repeated_string_piece", repeatedStringPiece_, writer);
+ PrintField("repeated_cord", repeatedCord_, writer);
+ PrintField("default_int32", hasDefaultInt32, defaultInt32_, writer);
+ PrintField("default_int64", hasDefaultInt64, defaultInt64_, writer);
+ PrintField("default_uint32", hasDefaultUint32, defaultUint32_, writer);
+ PrintField("default_uint64", hasDefaultUint64, defaultUint64_, writer);
+ PrintField("default_sint32", hasDefaultSint32, defaultSint32_, writer);
+ PrintField("default_sint64", hasDefaultSint64, defaultSint64_, writer);
+ PrintField("default_fixed32", hasDefaultFixed32, defaultFixed32_, writer);
+ PrintField("default_fixed64", hasDefaultFixed64, defaultFixed64_, writer);
+ PrintField("default_sfixed32", hasDefaultSfixed32, defaultSfixed32_, writer);
+ PrintField("default_sfixed64", hasDefaultSfixed64, defaultSfixed64_, writer);
+ PrintField("default_float", hasDefaultFloat, defaultFloat_, writer);
+ PrintField("default_double", hasDefaultDouble, defaultDouble_, writer);
+ PrintField("default_bool", hasDefaultBool, defaultBool_, writer);
+ PrintField("default_string", hasDefaultString, defaultString_, writer);
+ PrintField("default_bytes", hasDefaultBytes, defaultBytes_, writer);
+ PrintField("default_nested_enum", hasDefaultNestedEnum, defaultNestedEnum_, writer);
+ PrintField("default_foreign_enum", hasDefaultForeignEnum, defaultForeignEnum_, writer);
+ PrintField("default_import_enum", hasDefaultImportEnum, defaultImportEnum_, writer);
+ PrintField("default_string_piece", hasDefaultStringPiece, defaultStringPiece_, writer);
+ PrintField("default_cord", hasDefaultCord, defaultCord_, writer);
+ }
+ #endregion
+
+ public static TestAllTypesLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllTypesLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypesLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllTypesLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestAllTypesLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestAllTypesLite result = new TestAllTypesLite();
+
+ protected override TestAllTypesLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestAllTypesLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestAllTypesLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance; }
+ }
+
+ public override TestAllTypesLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.repeatedInt32_.MakeReadOnly();
+ result.repeatedInt64_.MakeReadOnly();
+ result.repeatedUint32_.MakeReadOnly();
+ result.repeatedUint64_.MakeReadOnly();
+ result.repeatedSint32_.MakeReadOnly();
+ result.repeatedSint64_.MakeReadOnly();
+ result.repeatedFixed32_.MakeReadOnly();
+ result.repeatedFixed64_.MakeReadOnly();
+ result.repeatedSfixed32_.MakeReadOnly();
+ result.repeatedSfixed64_.MakeReadOnly();
+ result.repeatedFloat_.MakeReadOnly();
+ result.repeatedDouble_.MakeReadOnly();
+ result.repeatedBool_.MakeReadOnly();
+ result.repeatedString_.MakeReadOnly();
+ result.repeatedBytes_.MakeReadOnly();
+ result.repeatedGroup_.MakeReadOnly();
+ result.repeatedNestedMessage_.MakeReadOnly();
+ result.repeatedForeignMessage_.MakeReadOnly();
+ result.repeatedImportMessage_.MakeReadOnly();
+ result.repeatedNestedEnum_.MakeReadOnly();
+ result.repeatedForeignEnum_.MakeReadOnly();
+ result.repeatedImportEnum_.MakeReadOnly();
+ result.repeatedStringPiece_.MakeReadOnly();
+ result.repeatedCord_.MakeReadOnly();
+ TestAllTypesLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestAllTypesLite) {
+ return MergeFrom((TestAllTypesLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllTypesLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.DefaultInstance) return this;
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ if (other.HasOptionalInt64) {
+ OptionalInt64 = other.OptionalInt64;
+ }
+ if (other.HasOptionalUint32) {
+ OptionalUint32 = other.OptionalUint32;
+ }
+ if (other.HasOptionalUint64) {
+ OptionalUint64 = other.OptionalUint64;
+ }
+ if (other.HasOptionalSint32) {
+ OptionalSint32 = other.OptionalSint32;
+ }
+ if (other.HasOptionalSint64) {
+ OptionalSint64 = other.OptionalSint64;
+ }
+ if (other.HasOptionalFixed32) {
+ OptionalFixed32 = other.OptionalFixed32;
+ }
+ if (other.HasOptionalFixed64) {
+ OptionalFixed64 = other.OptionalFixed64;
+ }
+ if (other.HasOptionalSfixed32) {
+ OptionalSfixed32 = other.OptionalSfixed32;
+ }
+ if (other.HasOptionalSfixed64) {
+ OptionalSfixed64 = other.OptionalSfixed64;
+ }
+ if (other.HasOptionalFloat) {
+ OptionalFloat = other.OptionalFloat;
+ }
+ if (other.HasOptionalDouble) {
+ OptionalDouble = other.OptionalDouble;
+ }
+ if (other.HasOptionalBool) {
+ OptionalBool = other.OptionalBool;
+ }
+ if (other.HasOptionalString) {
+ OptionalString = other.OptionalString;
+ }
+ if (other.HasOptionalBytes) {
+ OptionalBytes = other.OptionalBytes;
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ if (other.HasOptionalForeignMessage) {
+ MergeOptionalForeignMessage(other.OptionalForeignMessage);
+ }
+ if (other.HasOptionalImportMessage) {
+ MergeOptionalImportMessage(other.OptionalImportMessage);
+ }
+ if (other.HasOptionalNestedEnum) {
+ OptionalNestedEnum = other.OptionalNestedEnum;
+ }
+ if (other.HasOptionalForeignEnum) {
+ OptionalForeignEnum = other.OptionalForeignEnum;
+ }
+ if (other.HasOptionalImportEnum) {
+ OptionalImportEnum = other.OptionalImportEnum;
+ }
+ if (other.HasOptionalStringPiece) {
+ OptionalStringPiece = other.OptionalStringPiece;
+ }
+ if (other.HasOptionalCord) {
+ OptionalCord = other.OptionalCord;
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ base.AddRange(other.repeatedInt32_, result.repeatedInt32_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ base.AddRange(other.repeatedInt64_, result.repeatedInt64_);
+ }
+ if (other.repeatedUint32_.Count != 0) {
+ base.AddRange(other.repeatedUint32_, result.repeatedUint32_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ base.AddRange(other.repeatedUint64_, result.repeatedUint64_);
+ }
+ if (other.repeatedSint32_.Count != 0) {
+ base.AddRange(other.repeatedSint32_, result.repeatedSint32_);
+ }
+ if (other.repeatedSint64_.Count != 0) {
+ base.AddRange(other.repeatedSint64_, result.repeatedSint64_);
+ }
+ if (other.repeatedFixed32_.Count != 0) {
+ base.AddRange(other.repeatedFixed32_, result.repeatedFixed32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ base.AddRange(other.repeatedFixed64_, result.repeatedFixed64_);
+ }
+ if (other.repeatedSfixed32_.Count != 0) {
+ base.AddRange(other.repeatedSfixed32_, result.repeatedSfixed32_);
+ }
+ if (other.repeatedSfixed64_.Count != 0) {
+ base.AddRange(other.repeatedSfixed64_, result.repeatedSfixed64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ base.AddRange(other.repeatedFloat_, result.repeatedFloat_);
+ }
+ if (other.repeatedDouble_.Count != 0) {
+ base.AddRange(other.repeatedDouble_, result.repeatedDouble_);
+ }
+ if (other.repeatedBool_.Count != 0) {
+ base.AddRange(other.repeatedBool_, result.repeatedBool_);
+ }
+ if (other.repeatedString_.Count != 0) {
+ base.AddRange(other.repeatedString_, result.repeatedString_);
+ }
+ if (other.repeatedBytes_.Count != 0) {
+ base.AddRange(other.repeatedBytes_, result.repeatedBytes_);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ base.AddRange(other.repeatedGroup_, result.repeatedGroup_);
+ }
+ if (other.repeatedNestedMessage_.Count != 0) {
+ base.AddRange(other.repeatedNestedMessage_, result.repeatedNestedMessage_);
+ }
+ if (other.repeatedForeignMessage_.Count != 0) {
+ base.AddRange(other.repeatedForeignMessage_, result.repeatedForeignMessage_);
+ }
+ if (other.repeatedImportMessage_.Count != 0) {
+ base.AddRange(other.repeatedImportMessage_, result.repeatedImportMessage_);
+ }
+ if (other.repeatedNestedEnum_.Count != 0) {
+ base.AddRange(other.repeatedNestedEnum_, result.repeatedNestedEnum_);
+ }
+ if (other.repeatedForeignEnum_.Count != 0) {
+ base.AddRange(other.repeatedForeignEnum_, result.repeatedForeignEnum_);
+ }
+ if (other.repeatedImportEnum_.Count != 0) {
+ base.AddRange(other.repeatedImportEnum_, result.repeatedImportEnum_);
+ }
+ if (other.repeatedStringPiece_.Count != 0) {
+ base.AddRange(other.repeatedStringPiece_, result.repeatedStringPiece_);
+ }
+ if (other.repeatedCord_.Count != 0) {
+ base.AddRange(other.repeatedCord_, result.repeatedCord_);
+ }
+ if (other.HasDefaultInt32) {
+ DefaultInt32 = other.DefaultInt32;
+ }
+ if (other.HasDefaultInt64) {
+ DefaultInt64 = other.DefaultInt64;
+ }
+ if (other.HasDefaultUint32) {
+ DefaultUint32 = other.DefaultUint32;
+ }
+ if (other.HasDefaultUint64) {
+ DefaultUint64 = other.DefaultUint64;
+ }
+ if (other.HasDefaultSint32) {
+ DefaultSint32 = other.DefaultSint32;
+ }
+ if (other.HasDefaultSint64) {
+ DefaultSint64 = other.DefaultSint64;
+ }
+ if (other.HasDefaultFixed32) {
+ DefaultFixed32 = other.DefaultFixed32;
+ }
+ if (other.HasDefaultFixed64) {
+ DefaultFixed64 = other.DefaultFixed64;
+ }
+ if (other.HasDefaultSfixed32) {
+ DefaultSfixed32 = other.DefaultSfixed32;
+ }
+ if (other.HasDefaultSfixed64) {
+ DefaultSfixed64 = other.DefaultSfixed64;
+ }
+ if (other.HasDefaultFloat) {
+ DefaultFloat = other.DefaultFloat;
+ }
+ if (other.HasDefaultDouble) {
+ DefaultDouble = other.DefaultDouble;
+ }
+ if (other.HasDefaultBool) {
+ DefaultBool = other.DefaultBool;
+ }
+ if (other.HasDefaultString) {
+ DefaultString = other.DefaultString;
+ }
+ if (other.HasDefaultBytes) {
+ DefaultBytes = other.DefaultBytes;
+ }
+ if (other.HasDefaultNestedEnum) {
+ DefaultNestedEnum = other.DefaultNestedEnum;
+ }
+ if (other.HasDefaultForeignEnum) {
+ DefaultForeignEnum = other.DefaultForeignEnum;
+ }
+ if (other.HasDefaultImportEnum) {
+ DefaultImportEnum = other.DefaultImportEnum;
+ }
+ if (other.HasDefaultStringPiece) {
+ DefaultStringPiece = other.DefaultStringPiece;
+ }
+ if (other.HasDefaultCord) {
+ DefaultCord = other.DefaultCord;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ OptionalInt32 = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ OptionalInt64 = input.ReadInt64();
+ break;
+ }
+ case 24: {
+ OptionalUint32 = input.ReadUInt32();
+ break;
+ }
+ case 32: {
+ OptionalUint64 = input.ReadUInt64();
+ break;
+ }
+ case 40: {
+ OptionalSint32 = input.ReadSInt32();
+ break;
+ }
+ case 48: {
+ OptionalSint64 = input.ReadSInt64();
+ break;
+ }
+ case 61: {
+ OptionalFixed32 = input.ReadFixed32();
+ break;
+ }
+ case 65: {
+ OptionalFixed64 = input.ReadFixed64();
+ break;
+ }
+ case 77: {
+ OptionalSfixed32 = input.ReadSFixed32();
+ break;
+ }
+ case 81: {
+ OptionalSfixed64 = input.ReadSFixed64();
+ break;
+ }
+ case 93: {
+ OptionalFloat = input.ReadFloat();
+ break;
+ }
+ case 97: {
+ OptionalDouble = input.ReadDouble();
+ break;
+ }
+ case 104: {
+ OptionalBool = input.ReadBool();
+ break;
+ }
+ case 114: {
+ OptionalString = input.ReadString();
+ break;
+ }
+ case 122: {
+ OptionalBytes = input.ReadBytes();
+ break;
+ }
+ case 131: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.CreateBuilder();
+ if (HasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(16, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 146: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder();
+ if (HasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 154: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.CreateBuilder();
+ if (HasOptionalForeignMessage) {
+ subBuilder.MergeFrom(OptionalForeignMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalForeignMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 162: {
+ global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.CreateBuilder();
+ if (HasOptionalImportMessage) {
+ subBuilder.MergeFrom(OptionalImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 168: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum), rawValue)) {
+ } else {
+ OptionalNestedEnum = (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum) rawValue;
+ }
+ break;
+ }
+ case 176: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite), rawValue)) {
+ } else {
+ OptionalForeignEnum = (global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite) rawValue;
+ }
+ break;
+ }
+ case 184: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite), rawValue)) {
+ } else {
+ OptionalImportEnum = (global::Google.ProtocolBuffers.TestProtos.ImportEnumLite) rawValue;
+ }
+ break;
+ }
+ case 194: {
+ OptionalStringPiece = input.ReadString();
+ break;
+ }
+ case 202: {
+ OptionalCord = input.ReadString();
+ break;
+ }
+ case 248: {
+ AddRepeatedInt32(input.ReadInt32());
+ break;
+ }
+ case 256: {
+ AddRepeatedInt64(input.ReadInt64());
+ break;
+ }
+ case 264: {
+ AddRepeatedUint32(input.ReadUInt32());
+ break;
+ }
+ case 272: {
+ AddRepeatedUint64(input.ReadUInt64());
+ break;
+ }
+ case 280: {
+ AddRepeatedSint32(input.ReadSInt32());
+ break;
+ }
+ case 288: {
+ AddRepeatedSint64(input.ReadSInt64());
+ break;
+ }
+ case 301: {
+ AddRepeatedFixed32(input.ReadFixed32());
+ break;
+ }
+ case 305: {
+ AddRepeatedFixed64(input.ReadFixed64());
+ break;
+ }
+ case 317: {
+ AddRepeatedSfixed32(input.ReadSFixed32());
+ break;
+ }
+ case 321: {
+ AddRepeatedSfixed64(input.ReadSFixed64());
+ break;
+ }
+ case 333: {
+ AddRepeatedFloat(input.ReadFloat());
+ break;
+ }
+ case 337: {
+ AddRepeatedDouble(input.ReadDouble());
+ break;
+ }
+ case 344: {
+ AddRepeatedBool(input.ReadBool());
+ break;
+ }
+ case 354: {
+ AddRepeatedString(input.ReadString());
+ break;
+ }
+ case 362: {
+ AddRepeatedBytes(input.ReadBytes());
+ break;
+ }
+ case 371: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.CreateBuilder();
+ input.ReadGroup(46, subBuilder, extensionRegistry);
+ AddRepeatedGroup(subBuilder.BuildPartial());
+ break;
+ }
+ case 386: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddRepeatedNestedMessage(subBuilder.BuildPartial());
+ break;
+ }
+ case 394: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddRepeatedForeignMessage(subBuilder.BuildPartial());
+ break;
+ }
+ case 402: {
+ global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddRepeatedImportMessage(subBuilder.BuildPartial());
+ break;
+ }
+ case 408: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum), rawValue)) {
+ } else {
+ AddRepeatedNestedEnum((global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum) rawValue);
+ }
+ break;
+ }
+ case 416: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite), rawValue)) {
+ } else {
+ AddRepeatedForeignEnum((global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite) rawValue);
+ }
+ break;
+ }
+ case 424: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite), rawValue)) {
+ } else {
+ AddRepeatedImportEnum((global::Google.ProtocolBuffers.TestProtos.ImportEnumLite) rawValue);
+ }
+ break;
+ }
+ case 434: {
+ AddRepeatedStringPiece(input.ReadString());
+ break;
+ }
+ case 442: {
+ AddRepeatedCord(input.ReadString());
+ break;
+ }
+ case 488: {
+ DefaultInt32 = input.ReadInt32();
+ break;
+ }
+ case 496: {
+ DefaultInt64 = input.ReadInt64();
+ break;
+ }
+ case 504: {
+ DefaultUint32 = input.ReadUInt32();
+ break;
+ }
+ case 512: {
+ DefaultUint64 = input.ReadUInt64();
+ break;
+ }
+ case 520: {
+ DefaultSint32 = input.ReadSInt32();
+ break;
+ }
+ case 528: {
+ DefaultSint64 = input.ReadSInt64();
+ break;
+ }
+ case 541: {
+ DefaultFixed32 = input.ReadFixed32();
+ break;
+ }
+ case 545: {
+ DefaultFixed64 = input.ReadFixed64();
+ break;
+ }
+ case 557: {
+ DefaultSfixed32 = input.ReadSFixed32();
+ break;
+ }
+ case 561: {
+ DefaultSfixed64 = input.ReadSFixed64();
+ break;
+ }
+ case 573: {
+ DefaultFloat = input.ReadFloat();
+ break;
+ }
+ case 577: {
+ DefaultDouble = input.ReadDouble();
+ break;
+ }
+ case 584: {
+ DefaultBool = input.ReadBool();
+ break;
+ }
+ case 594: {
+ DefaultString = input.ReadString();
+ break;
+ }
+ case 602: {
+ DefaultBytes = input.ReadBytes();
+ break;
+ }
+ case 648: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum), rawValue)) {
+ } else {
+ DefaultNestedEnum = (global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum) rawValue;
+ }
+ break;
+ }
+ case 656: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite), rawValue)) {
+ } else {
+ DefaultForeignEnum = (global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite) rawValue;
+ }
+ break;
+ }
+ case 664: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite), rawValue)) {
+ } else {
+ DefaultImportEnum = (global::Google.ProtocolBuffers.TestProtos.ImportEnumLite) rawValue;
+ }
+ break;
+ }
+ case 674: {
+ DefaultStringPiece = input.ReadString();
+ break;
+ }
+ case 682: {
+ DefaultCord = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasOptionalInt32 {
+ get { return result.HasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalInt64 {
+ get { return result.HasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return result.OptionalInt64; }
+ set { SetOptionalInt64(value); }
+ }
+ public Builder SetOptionalInt64(long value) {
+ result.hasOptionalInt64 = true;
+ result.optionalInt64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt64() {
+ result.hasOptionalInt64 = false;
+ result.optionalInt64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalUint32 {
+ get { return result.HasOptionalUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalUint32 {
+ get { return result.OptionalUint32; }
+ set { SetOptionalUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalUint32(uint value) {
+ result.hasOptionalUint32 = true;
+ result.optionalUint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint32() {
+ result.hasOptionalUint32 = false;
+ result.optionalUint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalUint64 {
+ get { return result.HasOptionalUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalUint64 {
+ get { return result.OptionalUint64; }
+ set { SetOptionalUint64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalUint64(ulong value) {
+ result.hasOptionalUint64 = true;
+ result.optionalUint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint64() {
+ result.hasOptionalUint64 = false;
+ result.optionalUint64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSint32 {
+ get { return result.HasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return result.OptionalSint32; }
+ set { SetOptionalSint32(value); }
+ }
+ public Builder SetOptionalSint32(int value) {
+ result.hasOptionalSint32 = true;
+ result.optionalSint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint32() {
+ result.hasOptionalSint32 = false;
+ result.optionalSint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSint64 {
+ get { return result.HasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return result.OptionalSint64; }
+ set { SetOptionalSint64(value); }
+ }
+ public Builder SetOptionalSint64(long value) {
+ result.hasOptionalSint64 = true;
+ result.optionalSint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint64() {
+ result.hasOptionalSint64 = false;
+ result.optionalSint64_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFixed32 {
+ get { return result.HasOptionalFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalFixed32 {
+ get { return result.OptionalFixed32; }
+ set { SetOptionalFixed32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalFixed32(uint value) {
+ result.hasOptionalFixed32 = true;
+ result.optionalFixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed32() {
+ result.hasOptionalFixed32 = false;
+ result.optionalFixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFixed64 {
+ get { return result.HasOptionalFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalFixed64 {
+ get { return result.OptionalFixed64; }
+ set { SetOptionalFixed64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalFixed64(ulong value) {
+ result.hasOptionalFixed64 = true;
+ result.optionalFixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed64() {
+ result.hasOptionalFixed64 = false;
+ result.optionalFixed64_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSfixed32 {
+ get { return result.HasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return result.OptionalSfixed32; }
+ set { SetOptionalSfixed32(value); }
+ }
+ public Builder SetOptionalSfixed32(int value) {
+ result.hasOptionalSfixed32 = true;
+ result.optionalSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed32() {
+ result.hasOptionalSfixed32 = false;
+ result.optionalSfixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSfixed64 {
+ get { return result.HasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return result.OptionalSfixed64; }
+ set { SetOptionalSfixed64(value); }
+ }
+ public Builder SetOptionalSfixed64(long value) {
+ result.hasOptionalSfixed64 = true;
+ result.optionalSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed64() {
+ result.hasOptionalSfixed64 = false;
+ result.optionalSfixed64_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFloat {
+ get { return result.HasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return result.OptionalFloat; }
+ set { SetOptionalFloat(value); }
+ }
+ public Builder SetOptionalFloat(float value) {
+ result.hasOptionalFloat = true;
+ result.optionalFloat_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFloat() {
+ result.hasOptionalFloat = false;
+ result.optionalFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalDouble {
+ get { return result.HasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return result.OptionalDouble; }
+ set { SetOptionalDouble(value); }
+ }
+ public Builder SetOptionalDouble(double value) {
+ result.hasOptionalDouble = true;
+ result.optionalDouble_ = value;
+ return this;
+ }
+ public Builder ClearOptionalDouble() {
+ result.hasOptionalDouble = false;
+ result.optionalDouble_ = 0D;
+ return this;
+ }
+
+ public bool HasOptionalBool {
+ get { return result.HasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return result.OptionalBool; }
+ set { SetOptionalBool(value); }
+ }
+ public Builder SetOptionalBool(bool value) {
+ result.hasOptionalBool = true;
+ result.optionalBool_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBool() {
+ result.hasOptionalBool = false;
+ result.optionalBool_ = false;
+ return this;
+ }
+
+ public bool HasOptionalString {
+ get { return result.HasOptionalString; }
+ }
+ public string OptionalString {
+ get { return result.OptionalString; }
+ set { SetOptionalString(value); }
+ }
+ public Builder SetOptionalString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalString = true;
+ result.optionalString_ = value;
+ return this;
+ }
+ public Builder ClearOptionalString() {
+ result.hasOptionalString = false;
+ result.optionalString_ = "";
+ return this;
+ }
+
+ public bool HasOptionalBytes {
+ get { return result.HasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return result.OptionalBytes; }
+ set { SetOptionalBytes(value); }
+ }
+ public Builder SetOptionalBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalBytes = true;
+ result.optionalBytes_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBytes() {
+ result.hasOptionalBytes = false;
+ result.optionalBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.HasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.OptionalGroup.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.HasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalForeignMessage {
+ get { return result.HasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite OptionalForeignMessage {
+ get { return result.OptionalForeignMessage; }
+ set { SetOptionalForeignMessage(value); }
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalForeignMessage &&
+ result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance) {
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalForeignMessage_ = value;
+ }
+ result.hasOptionalForeignMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalForeignMessage() {
+ result.hasOptionalForeignMessage = false;
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalImportMessage {
+ get { return result.HasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite OptionalImportMessage {
+ get { return result.OptionalImportMessage; }
+ set { SetOptionalImportMessage(value); }
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalImportMessage &&
+ result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance) {
+ result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalImportMessage_ = value;
+ }
+ result.hasOptionalImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalImportMessage() {
+ result.hasOptionalImportMessage = false;
+ result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalNestedEnum {
+ get { return result.HasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum OptionalNestedEnum {
+ get { return result.OptionalNestedEnum; }
+ set { SetOptionalNestedEnum(value); }
+ }
+ public Builder SetOptionalNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum value) {
+ result.hasOptionalNestedEnum = true;
+ result.optionalNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalNestedEnum() {
+ result.hasOptionalNestedEnum = false;
+ result.optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public bool HasOptionalForeignEnum {
+ get { return result.HasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite OptionalForeignEnum {
+ get { return result.OptionalForeignEnum; }
+ set { SetOptionalForeignEnum(value); }
+ }
+ public Builder SetOptionalForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ result.hasOptionalForeignEnum = true;
+ result.optionalForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalForeignEnum() {
+ result.hasOptionalForeignEnum = false;
+ result.optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_FOO;
+ return this;
+ }
+
+ public bool HasOptionalImportEnum {
+ get { return result.HasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite OptionalImportEnum {
+ get { return result.OptionalImportEnum; }
+ set { SetOptionalImportEnum(value); }
+ }
+ public Builder SetOptionalImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite value) {
+ result.hasOptionalImportEnum = true;
+ result.optionalImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalImportEnum() {
+ result.hasOptionalImportEnum = false;
+ result.optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_FOO;
+ return this;
+ }
+
+ public bool HasOptionalStringPiece {
+ get { return result.HasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return result.OptionalStringPiece; }
+ set { SetOptionalStringPiece(value); }
+ }
+ public Builder SetOptionalStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalStringPiece = true;
+ result.optionalStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearOptionalStringPiece() {
+ result.hasOptionalStringPiece = false;
+ result.optionalStringPiece_ = "";
+ return this;
+ }
+
+ public bool HasOptionalCord {
+ get { return result.HasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return result.OptionalCord; }
+ set { SetOptionalCord(value); }
+ }
+ public Builder SetOptionalCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalCord = true;
+ result.optionalCord_ = value;
+ return this;
+ }
+ public Builder ClearOptionalCord() {
+ result.hasOptionalCord = false;
+ result.optionalCord_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return result.repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedInt32_);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return result.repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.repeatedInt64_);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedUint32List {
+ get { return result.repeatedUint32_; }
+ }
+ public int RepeatedUint32Count {
+ get { return result.RepeatedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedUint32(int index) {
+ return result.GetRepeatedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint32(int index, uint value) {
+ result.repeatedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint32(uint value) {
+ result.repeatedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.repeatedUint32_);
+ return this;
+ }
+ public Builder ClearRepeatedUint32() {
+ result.repeatedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return result.repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint64(ulong value) {
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.repeatedUint64_);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSint32List {
+ get { return result.repeatedSint32_; }
+ }
+ public int RepeatedSint32Count {
+ get { return result.RepeatedSint32Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return result.GetRepeatedSint32(index);
+ }
+ public Builder SetRepeatedSint32(int index, int value) {
+ result.repeatedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint32(int value) {
+ result.repeatedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedSint32_);
+ return this;
+ }
+ public Builder ClearRepeatedSint32() {
+ result.repeatedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSint64List {
+ get { return result.repeatedSint64_; }
+ }
+ public int RepeatedSint64Count {
+ get { return result.RepeatedSint64Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return result.GetRepeatedSint64(index);
+ }
+ public Builder SetRepeatedSint64(int index, long value) {
+ result.repeatedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint64(long value) {
+ result.repeatedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.repeatedSint64_);
+ return this;
+ }
+ public Builder ClearRepeatedSint64() {
+ result.repeatedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return result.repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed32(uint value) {
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.repeatedFixed32_);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return result.repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed64(ulong value) {
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.repeatedFixed64_);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSfixed32List {
+ get { return result.repeatedSfixed32_; }
+ }
+ public int RepeatedSfixed32Count {
+ get { return result.RepeatedSfixed32Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return result.GetRepeatedSfixed32(index);
+ }
+ public Builder SetRepeatedSfixed32(int index, int value) {
+ result.repeatedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed32(int value) {
+ result.repeatedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedSfixed32_);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed32() {
+ result.repeatedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSfixed64List {
+ get { return result.repeatedSfixed64_; }
+ }
+ public int RepeatedSfixed64Count {
+ get { return result.RepeatedSfixed64Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return result.GetRepeatedSfixed64(index);
+ }
+ public Builder SetRepeatedSfixed64(int index, long value) {
+ result.repeatedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed64(long value) {
+ result.repeatedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.repeatedSfixed64_);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed64() {
+ result.repeatedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return result.repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ base.AddRange(values, result.repeatedFloat_);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> RepeatedDoubleList {
+ get { return result.repeatedDouble_; }
+ }
+ public int RepeatedDoubleCount {
+ get { return result.RepeatedDoubleCount; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return result.GetRepeatedDouble(index);
+ }
+ public Builder SetRepeatedDouble(int index, double value) {
+ result.repeatedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedDouble(double value) {
+ result.repeatedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedDouble(scg::IEnumerable<double> values) {
+ base.AddRange(values, result.repeatedDouble_);
+ return this;
+ }
+ public Builder ClearRepeatedDouble() {
+ result.repeatedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> RepeatedBoolList {
+ get { return result.repeatedBool_; }
+ }
+ public int RepeatedBoolCount {
+ get { return result.RepeatedBoolCount; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return result.GetRepeatedBool(index);
+ }
+ public Builder SetRepeatedBool(int index, bool value) {
+ result.repeatedBool_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBool(bool value) {
+ result.repeatedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBool(scg::IEnumerable<bool> values) {
+ base.AddRange(values, result.repeatedBool_);
+ return this;
+ }
+ public Builder ClearRepeatedBool() {
+ result.repeatedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringList {
+ get { return result.repeatedString_; }
+ }
+ public int RepeatedStringCount {
+ get { return result.RepeatedStringCount; }
+ }
+ public string GetRepeatedString(int index) {
+ return result.GetRepeatedString(index);
+ }
+ public Builder SetRepeatedString(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedString_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedString_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedString(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedString_);
+ return this;
+ }
+ public Builder ClearRepeatedString() {
+ result.repeatedString_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<pb::ByteString> RepeatedBytesList {
+ get { return result.repeatedBytes_; }
+ }
+ public int RepeatedBytesCount {
+ get { return result.RepeatedBytesCount; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return result.GetRepeatedBytes(index);
+ }
+ public Builder SetRepeatedBytes(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedBytes_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedBytes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBytes(scg::IEnumerable<pb::ByteString> values) {
+ base.AddRange(values, result.repeatedBytes_);
+ return this;
+ }
+ public Builder ClearRepeatedBytes() {
+ result.repeatedBytes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup> RepeatedGroupList {
+ get { return result.repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.RepeatedGroup> values) {
+ base.AddRange(values, result.repeatedGroup_);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return result.repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return result.RepeatedNestedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return result.GetRepeatedNestedMessage(index);
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedNestedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedNestedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedNestedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedNestedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedMessage> values) {
+ base.AddRange(values, result.repeatedNestedMessage_);
+ return this;
+ }
+ public Builder ClearRepeatedNestedMessage() {
+ result.repeatedNestedMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> RepeatedForeignMessageList {
+ get { return result.repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return result.RepeatedForeignMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite GetRepeatedForeignMessage(int index) {
+ return result.GetRepeatedForeignMessage(index);
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedForeignMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedForeignMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedForeignMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedForeignMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite> values) {
+ base.AddRange(values, result.repeatedForeignMessage_);
+ return this;
+ }
+ public Builder ClearRepeatedForeignMessage() {
+ result.repeatedForeignMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> RepeatedImportMessageList {
+ get { return result.repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return result.RepeatedImportMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessageLite GetRepeatedImportMessage(int index) {
+ return result.GetRepeatedImportMessage(index);
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedImportMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedImportMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedImportMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessageLite.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedImportMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedImportMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportMessageLite> values) {
+ base.AddRange(values, result.repeatedImportMessage_);
+ return this;
+ }
+ public Builder ClearRepeatedImportMessage() {
+ result.repeatedImportMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return result.repeatedNestedEnum_; }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return result.RepeatedNestedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return result.GetRepeatedNestedEnum(index);
+ }
+ public Builder SetRepeatedNestedEnum(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum value) {
+ result.repeatedNestedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum value) {
+ result.repeatedNestedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum> values) {
+ base.AddRange(values, result.repeatedNestedEnum_);
+ return this;
+ }
+ public Builder ClearRepeatedNestedEnum() {
+ result.repeatedNestedEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> RepeatedForeignEnumList {
+ get { return result.repeatedForeignEnum_; }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return result.RepeatedForeignEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite GetRepeatedForeignEnum(int index) {
+ return result.GetRepeatedForeignEnum(index);
+ }
+ public Builder SetRepeatedForeignEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ result.repeatedForeignEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ result.repeatedForeignEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> values) {
+ base.AddRange(values, result.repeatedForeignEnum_);
+ return this;
+ }
+ public Builder ClearRepeatedForeignEnum() {
+ result.repeatedForeignEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> RepeatedImportEnumList {
+ get { return result.repeatedImportEnum_; }
+ }
+ public int RepeatedImportEnumCount {
+ get { return result.RepeatedImportEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite GetRepeatedImportEnum(int index) {
+ return result.GetRepeatedImportEnum(index);
+ }
+ public Builder SetRepeatedImportEnum(int index, global::Google.ProtocolBuffers.TestProtos.ImportEnumLite value) {
+ result.repeatedImportEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite value) {
+ result.repeatedImportEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedImportEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportEnumLite> values) {
+ base.AddRange(values, result.repeatedImportEnum_);
+ return this;
+ }
+ public Builder ClearRepeatedImportEnum() {
+ result.repeatedImportEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceList {
+ get { return result.repeatedStringPiece_; }
+ }
+ public int RepeatedStringPieceCount {
+ get { return result.RepeatedStringPieceCount; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return result.GetRepeatedStringPiece(index);
+ }
+ public Builder SetRepeatedStringPiece(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedStringPiece_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedStringPiece_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPiece(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedStringPiece_);
+ return this;
+ }
+ public Builder ClearRepeatedStringPiece() {
+ result.repeatedStringPiece_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordList {
+ get { return result.repeatedCord_; }
+ }
+ public int RepeatedCordCount {
+ get { return result.RepeatedCordCount; }
+ }
+ public string GetRepeatedCord(int index) {
+ return result.GetRepeatedCord(index);
+ }
+ public Builder SetRepeatedCord(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedCord_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedCord_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCord(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedCord_);
+ return this;
+ }
+ public Builder ClearRepeatedCord() {
+ result.repeatedCord_.Clear();
+ return this;
+ }
+
+ public bool HasDefaultInt32 {
+ get { return result.HasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return result.DefaultInt32; }
+ set { SetDefaultInt32(value); }
+ }
+ public Builder SetDefaultInt32(int value) {
+ result.hasDefaultInt32 = true;
+ result.defaultInt32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt32() {
+ result.hasDefaultInt32 = false;
+ result.defaultInt32_ = 41;
+ return this;
+ }
+
+ public bool HasDefaultInt64 {
+ get { return result.HasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return result.DefaultInt64; }
+ set { SetDefaultInt64(value); }
+ }
+ public Builder SetDefaultInt64(long value) {
+ result.hasDefaultInt64 = true;
+ result.defaultInt64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt64() {
+ result.hasDefaultInt64 = false;
+ result.defaultInt64_ = 42L;
+ return this;
+ }
+
+ public bool HasDefaultUint32 {
+ get { return result.HasDefaultUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultUint32 {
+ get { return result.DefaultUint32; }
+ set { SetDefaultUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultUint32(uint value) {
+ result.hasDefaultUint32 = true;
+ result.defaultUint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint32() {
+ result.hasDefaultUint32 = false;
+ result.defaultUint32_ = 43;
+ return this;
+ }
+
+ public bool HasDefaultUint64 {
+ get { return result.HasDefaultUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultUint64 {
+ get { return result.DefaultUint64; }
+ set { SetDefaultUint64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultUint64(ulong value) {
+ result.hasDefaultUint64 = true;
+ result.defaultUint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint64() {
+ result.hasDefaultUint64 = false;
+ result.defaultUint64_ = 44UL;
+ return this;
+ }
+
+ public bool HasDefaultSint32 {
+ get { return result.HasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return result.DefaultSint32; }
+ set { SetDefaultSint32(value); }
+ }
+ public Builder SetDefaultSint32(int value) {
+ result.hasDefaultSint32 = true;
+ result.defaultSint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint32() {
+ result.hasDefaultSint32 = false;
+ result.defaultSint32_ = -45;
+ return this;
+ }
+
+ public bool HasDefaultSint64 {
+ get { return result.HasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return result.DefaultSint64; }
+ set { SetDefaultSint64(value); }
+ }
+ public Builder SetDefaultSint64(long value) {
+ result.hasDefaultSint64 = true;
+ result.defaultSint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint64() {
+ result.hasDefaultSint64 = false;
+ result.defaultSint64_ = 46;
+ return this;
+ }
+
+ public bool HasDefaultFixed32 {
+ get { return result.HasDefaultFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultFixed32 {
+ get { return result.DefaultFixed32; }
+ set { SetDefaultFixed32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultFixed32(uint value) {
+ result.hasDefaultFixed32 = true;
+ result.defaultFixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed32() {
+ result.hasDefaultFixed32 = false;
+ result.defaultFixed32_ = 47;
+ return this;
+ }
+
+ public bool HasDefaultFixed64 {
+ get { return result.HasDefaultFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultFixed64 {
+ get { return result.DefaultFixed64; }
+ set { SetDefaultFixed64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultFixed64(ulong value) {
+ result.hasDefaultFixed64 = true;
+ result.defaultFixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed64() {
+ result.hasDefaultFixed64 = false;
+ result.defaultFixed64_ = 48;
+ return this;
+ }
+
+ public bool HasDefaultSfixed32 {
+ get { return result.HasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return result.DefaultSfixed32; }
+ set { SetDefaultSfixed32(value); }
+ }
+ public Builder SetDefaultSfixed32(int value) {
+ result.hasDefaultSfixed32 = true;
+ result.defaultSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed32() {
+ result.hasDefaultSfixed32 = false;
+ result.defaultSfixed32_ = 49;
+ return this;
+ }
+
+ public bool HasDefaultSfixed64 {
+ get { return result.HasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return result.DefaultSfixed64; }
+ set { SetDefaultSfixed64(value); }
+ }
+ public Builder SetDefaultSfixed64(long value) {
+ result.hasDefaultSfixed64 = true;
+ result.defaultSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed64() {
+ result.hasDefaultSfixed64 = false;
+ result.defaultSfixed64_ = -50;
+ return this;
+ }
+
+ public bool HasDefaultFloat {
+ get { return result.HasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return result.DefaultFloat; }
+ set { SetDefaultFloat(value); }
+ }
+ public Builder SetDefaultFloat(float value) {
+ result.hasDefaultFloat = true;
+ result.defaultFloat_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFloat() {
+ result.hasDefaultFloat = false;
+ result.defaultFloat_ = 51.5F;
+ return this;
+ }
+
+ public bool HasDefaultDouble {
+ get { return result.HasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return result.DefaultDouble; }
+ set { SetDefaultDouble(value); }
+ }
+ public Builder SetDefaultDouble(double value) {
+ result.hasDefaultDouble = true;
+ result.defaultDouble_ = value;
+ return this;
+ }
+ public Builder ClearDefaultDouble() {
+ result.hasDefaultDouble = false;
+ result.defaultDouble_ = 52000D;
+ return this;
+ }
+
+ public bool HasDefaultBool {
+ get { return result.HasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return result.DefaultBool; }
+ set { SetDefaultBool(value); }
+ }
+ public Builder SetDefaultBool(bool value) {
+ result.hasDefaultBool = true;
+ result.defaultBool_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBool() {
+ result.hasDefaultBool = false;
+ result.defaultBool_ = true;
+ return this;
+ }
+
+ public bool HasDefaultString {
+ get { return result.HasDefaultString; }
+ }
+ public string DefaultString {
+ get { return result.DefaultString; }
+ set { SetDefaultString(value); }
+ }
+ public Builder SetDefaultString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDefaultString = true;
+ result.defaultString_ = value;
+ return this;
+ }
+ public Builder ClearDefaultString() {
+ result.hasDefaultString = false;
+ result.defaultString_ = "hello";
+ return this;
+ }
+
+ public bool HasDefaultBytes {
+ get { return result.HasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return result.DefaultBytes; }
+ set { SetDefaultBytes(value); }
+ }
+ public Builder SetDefaultBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDefaultBytes = true;
+ result.defaultBytes_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBytes() {
+ result.hasDefaultBytes = false;
+ result.defaultBytes_ = ByteString.FromBase64("d29ybGQ=");
+ return this;
+ }
+
+ public bool HasDefaultNestedEnum {
+ get { return result.HasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum DefaultNestedEnum {
+ get { return result.DefaultNestedEnum; }
+ set { SetDefaultNestedEnum(value); }
+ }
+ public Builder SetDefaultNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum value) {
+ result.hasDefaultNestedEnum = true;
+ result.defaultNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultNestedEnum() {
+ result.hasDefaultNestedEnum = false;
+ result.defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypesLite.Types.NestedEnum.BAR;
+ return this;
+ }
+
+ public bool HasDefaultForeignEnum {
+ get { return result.HasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite DefaultForeignEnum {
+ get { return result.DefaultForeignEnum; }
+ set { SetDefaultForeignEnum(value); }
+ }
+ public Builder SetDefaultForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ result.hasDefaultForeignEnum = true;
+ result.defaultForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultForeignEnum() {
+ result.hasDefaultForeignEnum = false;
+ result.defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite.FOREIGN_LITE_BAR;
+ return this;
+ }
+
+ public bool HasDefaultImportEnum {
+ get { return result.HasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnumLite DefaultImportEnum {
+ get { return result.DefaultImportEnum; }
+ set { SetDefaultImportEnum(value); }
+ }
+ public Builder SetDefaultImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnumLite value) {
+ result.hasDefaultImportEnum = true;
+ result.defaultImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultImportEnum() {
+ result.hasDefaultImportEnum = false;
+ result.defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnumLite.IMPORT_LITE_BAR;
+ return this;
+ }
+
+ public bool HasDefaultStringPiece {
+ get { return result.HasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return result.DefaultStringPiece; }
+ set { SetDefaultStringPiece(value); }
+ }
+ public Builder SetDefaultStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDefaultStringPiece = true;
+ result.defaultStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearDefaultStringPiece() {
+ result.hasDefaultStringPiece = false;
+ result.defaultStringPiece_ = "abc";
+ return this;
+ }
+
+ public bool HasDefaultCord {
+ get { return result.HasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return result.DefaultCord; }
+ set { SetDefaultCord(value); }
+ }
+ public Builder SetDefaultCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDefaultCord = true;
+ result.defaultCord_ = value;
+ return this;
+ }
+ public Builder ClearDefaultCord() {
+ result.hasDefaultCord = false;
+ result.defaultCord_ = "123";
+ return this;
+ }
+ }
+ static TestAllTypesLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class ForeignMessageLite : pb::GeneratedMessageLite<ForeignMessageLite, ForeignMessageLite.Builder> {
+ private static readonly ForeignMessageLite defaultInstance = new Builder().BuildPartial();
+ public static ForeignMessageLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ForeignMessageLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override ForeignMessageLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int CFieldNumber = 1;
+ private bool hasC;
+ private int c_ = 0;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasC) {
+ output.WriteInt32(1, C);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, C);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasC) hash ^= c_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ ForeignMessageLite other = obj as ForeignMessageLite;
+ if (other == null) return false;
+ if (hasC != other.hasC || (hasC && !c_.Equals(other.c_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("c", hasC, c_, writer);
+ }
+ #endregion
+
+ public static ForeignMessageLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ForeignMessageLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessageLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ForeignMessageLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<ForeignMessageLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ ForeignMessageLite result = new ForeignMessageLite();
+
+ protected override ForeignMessageLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new ForeignMessageLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override ForeignMessageLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance; }
+ }
+
+ public override ForeignMessageLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ ForeignMessageLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is ForeignMessageLite) {
+ return MergeFrom((ForeignMessageLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ForeignMessageLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ForeignMessageLite.DefaultInstance) return this;
+ if (other.HasC) {
+ C = other.C;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ C = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasC {
+ get { return result.HasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static ForeignMessageLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestPackedTypesLite : pb::GeneratedMessageLite<TestPackedTypesLite, TestPackedTypesLite.Builder> {
+ private static readonly TestPackedTypesLite defaultInstance = new Builder().BuildPartial();
+ public static TestPackedTypesLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedTypesLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestPackedTypesLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int PackedInt32FieldNumber = 90;
+ private int packedInt32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedInt32List {
+ get { return pbc::Lists.AsReadOnly(packedInt32_); }
+ }
+ public int PackedInt32Count {
+ get { return packedInt32_.Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return packedInt32_[index];
+ }
+
+ public const int PackedInt64FieldNumber = 91;
+ private int packedInt64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedInt64List {
+ get { return pbc::Lists.AsReadOnly(packedInt64_); }
+ }
+ public int PackedInt64Count {
+ get { return packedInt64_.Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return packedInt64_[index];
+ }
+
+ public const int PackedUint32FieldNumber = 92;
+ private int packedUint32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> PackedUint32List {
+ get { return pbc::Lists.AsReadOnly(packedUint32_); }
+ }
+ public int PackedUint32Count {
+ get { return packedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedUint32(int index) {
+ return packedUint32_[index];
+ }
+
+ public const int PackedUint64FieldNumber = 93;
+ private int packedUint64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> PackedUint64List {
+ get { return pbc::Lists.AsReadOnly(packedUint64_); }
+ }
+ public int PackedUint64Count {
+ get { return packedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedUint64(int index) {
+ return packedUint64_[index];
+ }
+
+ public const int PackedSint32FieldNumber = 94;
+ private int packedSint32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSint32List {
+ get { return pbc::Lists.AsReadOnly(packedSint32_); }
+ }
+ public int PackedSint32Count {
+ get { return packedSint32_.Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return packedSint32_[index];
+ }
+
+ public const int PackedSint64FieldNumber = 95;
+ private int packedSint64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSint64List {
+ get { return pbc::Lists.AsReadOnly(packedSint64_); }
+ }
+ public int PackedSint64Count {
+ get { return packedSint64_.Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return packedSint64_[index];
+ }
+
+ public const int PackedFixed32FieldNumber = 96;
+ private int packedFixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> PackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(packedFixed32_); }
+ }
+ public int PackedFixed32Count {
+ get { return packedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedFixed32(int index) {
+ return packedFixed32_[index];
+ }
+
+ public const int PackedFixed64FieldNumber = 97;
+ private int packedFixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> PackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(packedFixed64_); }
+ }
+ public int PackedFixed64Count {
+ get { return packedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedFixed64(int index) {
+ return packedFixed64_[index];
+ }
+
+ public const int PackedSfixed32FieldNumber = 98;
+ private int packedSfixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed32_); }
+ }
+ public int PackedSfixed32Count {
+ get { return packedSfixed32_.Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return packedSfixed32_[index];
+ }
+
+ public const int PackedSfixed64FieldNumber = 99;
+ private int packedSfixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed64_); }
+ }
+ public int PackedSfixed64Count {
+ get { return packedSfixed64_.Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return packedSfixed64_[index];
+ }
+
+ public const int PackedFloatFieldNumber = 100;
+ private int packedFloatMemoizedSerializedSize;
+ private pbc::PopsicleList<float> packedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> PackedFloatList {
+ get { return pbc::Lists.AsReadOnly(packedFloat_); }
+ }
+ public int PackedFloatCount {
+ get { return packedFloat_.Count; }
+ }
+ public float GetPackedFloat(int index) {
+ return packedFloat_[index];
+ }
+
+ public const int PackedDoubleFieldNumber = 101;
+ private int packedDoubleMemoizedSerializedSize;
+ private pbc::PopsicleList<double> packedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> PackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(packedDouble_); }
+ }
+ public int PackedDoubleCount {
+ get { return packedDouble_.Count; }
+ }
+ public double GetPackedDouble(int index) {
+ return packedDouble_[index];
+ }
+
+ public const int PackedBoolFieldNumber = 102;
+ private int packedBoolMemoizedSerializedSize;
+ private pbc::PopsicleList<bool> packedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> PackedBoolList {
+ get { return pbc::Lists.AsReadOnly(packedBool_); }
+ }
+ public int PackedBoolCount {
+ get { return packedBool_.Count; }
+ }
+ public bool GetPackedBool(int index) {
+ return packedBool_[index];
+ }
+
+ public const int PackedEnumFieldNumber = 103;
+ private int packedEnumMemoizedSerializedSize;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> packedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> PackedEnumList {
+ get { return pbc::Lists.AsReadOnly(packedEnum_); }
+ }
+ public int PackedEnumCount {
+ get { return packedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite GetPackedEnum(int index) {
+ return packedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (packedInt32_.Count > 0) {
+ output.WriteRawVarint32(722);
+ output.WriteRawVarint32((uint) packedInt32MemoizedSerializedSize);
+ foreach (int element in packedInt32_) {
+ output.WriteInt32NoTag(element);
+ }
+ }
+ if (packedInt64_.Count > 0) {
+ output.WriteRawVarint32(730);
+ output.WriteRawVarint32((uint) packedInt64MemoizedSerializedSize);
+ foreach (long element in packedInt64_) {
+ output.WriteInt64NoTag(element);
+ }
+ }
+ if (packedUint32_.Count > 0) {
+ output.WriteRawVarint32(738);
+ output.WriteRawVarint32((uint) packedUint32MemoizedSerializedSize);
+ foreach (uint element in packedUint32_) {
+ output.WriteUInt32NoTag(element);
+ }
+ }
+ if (packedUint64_.Count > 0) {
+ output.WriteRawVarint32(746);
+ output.WriteRawVarint32((uint) packedUint64MemoizedSerializedSize);
+ foreach (ulong element in packedUint64_) {
+ output.WriteUInt64NoTag(element);
+ }
+ }
+ if (packedSint32_.Count > 0) {
+ output.WriteRawVarint32(754);
+ output.WriteRawVarint32((uint) packedSint32MemoizedSerializedSize);
+ foreach (int element in packedSint32_) {
+ output.WriteSInt32NoTag(element);
+ }
+ }
+ if (packedSint64_.Count > 0) {
+ output.WriteRawVarint32(762);
+ output.WriteRawVarint32((uint) packedSint64MemoizedSerializedSize);
+ foreach (long element in packedSint64_) {
+ output.WriteSInt64NoTag(element);
+ }
+ }
+ if (packedFixed32_.Count > 0) {
+ output.WriteRawVarint32(770);
+ output.WriteRawVarint32((uint) packedFixed32MemoizedSerializedSize);
+ foreach (uint element in packedFixed32_) {
+ output.WriteFixed32NoTag(element);
+ }
+ }
+ if (packedFixed64_.Count > 0) {
+ output.WriteRawVarint32(778);
+ output.WriteRawVarint32((uint) packedFixed64MemoizedSerializedSize);
+ foreach (ulong element in packedFixed64_) {
+ output.WriteFixed64NoTag(element);
+ }
+ }
+ if (packedSfixed32_.Count > 0) {
+ output.WriteRawVarint32(786);
+ output.WriteRawVarint32((uint) packedSfixed32MemoizedSerializedSize);
+ foreach (int element in packedSfixed32_) {
+ output.WriteSFixed32NoTag(element);
+ }
+ }
+ if (packedSfixed64_.Count > 0) {
+ output.WriteRawVarint32(794);
+ output.WriteRawVarint32((uint) packedSfixed64MemoizedSerializedSize);
+ foreach (long element in packedSfixed64_) {
+ output.WriteSFixed64NoTag(element);
+ }
+ }
+ if (packedFloat_.Count > 0) {
+ output.WriteRawVarint32(802);
+ output.WriteRawVarint32((uint) packedFloatMemoizedSerializedSize);
+ foreach (float element in packedFloat_) {
+ output.WriteFloatNoTag(element);
+ }
+ }
+ if (packedDouble_.Count > 0) {
+ output.WriteRawVarint32(810);
+ output.WriteRawVarint32((uint) packedDoubleMemoizedSerializedSize);
+ foreach (double element in packedDouble_) {
+ output.WriteDoubleNoTag(element);
+ }
+ }
+ if (packedBool_.Count > 0) {
+ output.WriteRawVarint32(818);
+ output.WriteRawVarint32((uint) packedBoolMemoizedSerializedSize);
+ foreach (bool element in packedBool_) {
+ output.WriteBoolNoTag(element);
+ }
+ }
+ if (packedEnum_.Count > 0) {
+ output.WriteRawVarint32(826);
+ output.WriteRawVarint32((uint) packedEnumMemoizedSerializedSize);
+ foreach (int element in packedEnum_) {
+ output.WriteEnumNoTag(element);
+ }
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in PackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in PackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in PackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFixed32_.Count;
+ size += dataSize;
+ if (packedFixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedFixed64_.Count;
+ size += dataSize;
+ if (packedFixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedSfixed32_.Count;
+ size += dataSize;
+ if (packedSfixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedSfixed64_.Count;
+ size += dataSize;
+ if (packedSfixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFloat_.Count;
+ size += dataSize;
+ if (packedFloat_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFloatMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedDouble_.Count;
+ size += dataSize;
+ if (packedDouble_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedDoubleMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * packedBool_.Count;
+ size += dataSize;
+ if (packedBool_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedBoolMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ if (packedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite element in packedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ packedEnumMemoizedSerializedSize = dataSize;
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ foreach(int i in packedInt32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in packedInt64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in packedUint32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in packedUint64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in packedSint32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in packedSint64_)
+ hash ^= i.GetHashCode();
+ foreach(uint i in packedFixed32_)
+ hash ^= i.GetHashCode();
+ foreach(ulong i in packedFixed64_)
+ hash ^= i.GetHashCode();
+ foreach(int i in packedSfixed32_)
+ hash ^= i.GetHashCode();
+ foreach(long i in packedSfixed64_)
+ hash ^= i.GetHashCode();
+ foreach(float i in packedFloat_)
+ hash ^= i.GetHashCode();
+ foreach(double i in packedDouble_)
+ hash ^= i.GetHashCode();
+ foreach(bool i in packedBool_)
+ hash ^= i.GetHashCode();
+ foreach(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite i in packedEnum_)
+ hash ^= i.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestPackedTypesLite other = obj as TestPackedTypesLite;
+ if (other == null) return false;
+ if(packedInt32_.Count != other.packedInt32_.Count) return false;
+ for(int ix=0; ix < packedInt32_.Count; ix++)
+ if(!packedInt32_[ix].Equals(other.packedInt32_[ix])) return false;
+ if(packedInt64_.Count != other.packedInt64_.Count) return false;
+ for(int ix=0; ix < packedInt64_.Count; ix++)
+ if(!packedInt64_[ix].Equals(other.packedInt64_[ix])) return false;
+ if(packedUint32_.Count != other.packedUint32_.Count) return false;
+ for(int ix=0; ix < packedUint32_.Count; ix++)
+ if(!packedUint32_[ix].Equals(other.packedUint32_[ix])) return false;
+ if(packedUint64_.Count != other.packedUint64_.Count) return false;
+ for(int ix=0; ix < packedUint64_.Count; ix++)
+ if(!packedUint64_[ix].Equals(other.packedUint64_[ix])) return false;
+ if(packedSint32_.Count != other.packedSint32_.Count) return false;
+ for(int ix=0; ix < packedSint32_.Count; ix++)
+ if(!packedSint32_[ix].Equals(other.packedSint32_[ix])) return false;
+ if(packedSint64_.Count != other.packedSint64_.Count) return false;
+ for(int ix=0; ix < packedSint64_.Count; ix++)
+ if(!packedSint64_[ix].Equals(other.packedSint64_[ix])) return false;
+ if(packedFixed32_.Count != other.packedFixed32_.Count) return false;
+ for(int ix=0; ix < packedFixed32_.Count; ix++)
+ if(!packedFixed32_[ix].Equals(other.packedFixed32_[ix])) return false;
+ if(packedFixed64_.Count != other.packedFixed64_.Count) return false;
+ for(int ix=0; ix < packedFixed64_.Count; ix++)
+ if(!packedFixed64_[ix].Equals(other.packedFixed64_[ix])) return false;
+ if(packedSfixed32_.Count != other.packedSfixed32_.Count) return false;
+ for(int ix=0; ix < packedSfixed32_.Count; ix++)
+ if(!packedSfixed32_[ix].Equals(other.packedSfixed32_[ix])) return false;
+ if(packedSfixed64_.Count != other.packedSfixed64_.Count) return false;
+ for(int ix=0; ix < packedSfixed64_.Count; ix++)
+ if(!packedSfixed64_[ix].Equals(other.packedSfixed64_[ix])) return false;
+ if(packedFloat_.Count != other.packedFloat_.Count) return false;
+ for(int ix=0; ix < packedFloat_.Count; ix++)
+ if(!packedFloat_[ix].Equals(other.packedFloat_[ix])) return false;
+ if(packedDouble_.Count != other.packedDouble_.Count) return false;
+ for(int ix=0; ix < packedDouble_.Count; ix++)
+ if(!packedDouble_[ix].Equals(other.packedDouble_[ix])) return false;
+ if(packedBool_.Count != other.packedBool_.Count) return false;
+ for(int ix=0; ix < packedBool_.Count; ix++)
+ if(!packedBool_[ix].Equals(other.packedBool_[ix])) return false;
+ if(packedEnum_.Count != other.packedEnum_.Count) return false;
+ for(int ix=0; ix < packedEnum_.Count; ix++)
+ if(!packedEnum_[ix].Equals(other.packedEnum_[ix])) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("packed_int32", packedInt32_, writer);
+ PrintField("packed_int64", packedInt64_, writer);
+ PrintField("packed_uint32", packedUint32_, writer);
+ PrintField("packed_uint64", packedUint64_, writer);
+ PrintField("packed_sint32", packedSint32_, writer);
+ PrintField("packed_sint64", packedSint64_, writer);
+ PrintField("packed_fixed32", packedFixed32_, writer);
+ PrintField("packed_fixed64", packedFixed64_, writer);
+ PrintField("packed_sfixed32", packedSfixed32_, writer);
+ PrintField("packed_sfixed64", packedSfixed64_, writer);
+ PrintField("packed_float", packedFloat_, writer);
+ PrintField("packed_double", packedDouble_, writer);
+ PrintField("packed_bool", packedBool_, writer);
+ PrintField("packed_enum", packedEnum_, writer);
+ }
+ #endregion
+
+ public static TestPackedTypesLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypesLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedTypesLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestPackedTypesLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestPackedTypesLite result = new TestPackedTypesLite();
+
+ protected override TestPackedTypesLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestPackedTypesLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestPackedTypesLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypesLite.DefaultInstance; }
+ }
+
+ public override TestPackedTypesLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.packedInt32_.MakeReadOnly();
+ result.packedInt64_.MakeReadOnly();
+ result.packedUint32_.MakeReadOnly();
+ result.packedUint64_.MakeReadOnly();
+ result.packedSint32_.MakeReadOnly();
+ result.packedSint64_.MakeReadOnly();
+ result.packedFixed32_.MakeReadOnly();
+ result.packedFixed64_.MakeReadOnly();
+ result.packedSfixed32_.MakeReadOnly();
+ result.packedSfixed64_.MakeReadOnly();
+ result.packedFloat_.MakeReadOnly();
+ result.packedDouble_.MakeReadOnly();
+ result.packedBool_.MakeReadOnly();
+ result.packedEnum_.MakeReadOnly();
+ TestPackedTypesLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestPackedTypesLite) {
+ return MergeFrom((TestPackedTypesLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedTypesLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedTypesLite.DefaultInstance) return this;
+ if (other.packedInt32_.Count != 0) {
+ base.AddRange(other.packedInt32_, result.packedInt32_);
+ }
+ if (other.packedInt64_.Count != 0) {
+ base.AddRange(other.packedInt64_, result.packedInt64_);
+ }
+ if (other.packedUint32_.Count != 0) {
+ base.AddRange(other.packedUint32_, result.packedUint32_);
+ }
+ if (other.packedUint64_.Count != 0) {
+ base.AddRange(other.packedUint64_, result.packedUint64_);
+ }
+ if (other.packedSint32_.Count != 0) {
+ base.AddRange(other.packedSint32_, result.packedSint32_);
+ }
+ if (other.packedSint64_.Count != 0) {
+ base.AddRange(other.packedSint64_, result.packedSint64_);
+ }
+ if (other.packedFixed32_.Count != 0) {
+ base.AddRange(other.packedFixed32_, result.packedFixed32_);
+ }
+ if (other.packedFixed64_.Count != 0) {
+ base.AddRange(other.packedFixed64_, result.packedFixed64_);
+ }
+ if (other.packedSfixed32_.Count != 0) {
+ base.AddRange(other.packedSfixed32_, result.packedSfixed32_);
+ }
+ if (other.packedSfixed64_.Count != 0) {
+ base.AddRange(other.packedSfixed64_, result.packedSfixed64_);
+ }
+ if (other.packedFloat_.Count != 0) {
+ base.AddRange(other.packedFloat_, result.packedFloat_);
+ }
+ if (other.packedDouble_.Count != 0) {
+ base.AddRange(other.packedDouble_, result.packedDouble_);
+ }
+ if (other.packedBool_.Count != 0) {
+ base.AddRange(other.packedBool_, result.packedBool_);
+ }
+ if (other.packedEnum_.Count != 0) {
+ base.AddRange(other.packedEnum_, result.packedEnum_);
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 722: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedInt32(input.ReadInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 730: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedInt64(input.ReadInt64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 738: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedUint32(input.ReadUInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 746: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedUint64(input.ReadUInt64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 754: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedSint32(input.ReadSInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 762: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedSint64(input.ReadSInt64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 770: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedFixed32(input.ReadFixed32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 778: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedFixed64(input.ReadFixed64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 786: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedSfixed32(input.ReadSFixed32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 794: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedSfixed64(input.ReadSFixed64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 802: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedFloat(input.ReadFloat());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 810: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedDouble(input.ReadDouble());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 818: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedBool(input.ReadBool());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 826: {
+ int length = input.ReadInt32();
+ int oldLimit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite), rawValue)) {
+ } else {
+ AddPackedEnum((global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite) rawValue);
+ }
+ }
+ input.PopLimit(oldLimit);
+ break;
+ }
+ }
+ }
+ }
+
+
+ public pbc::IPopsicleList<int> PackedInt32List {
+ get { return result.packedInt32_; }
+ }
+ public int PackedInt32Count {
+ get { return result.PackedInt32Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return result.GetPackedInt32(index);
+ }
+ public Builder SetPackedInt32(int index, int value) {
+ result.packedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt32(int value) {
+ result.packedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.packedInt32_);
+ return this;
+ }
+ public Builder ClearPackedInt32() {
+ result.packedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedInt64List {
+ get { return result.packedInt64_; }
+ }
+ public int PackedInt64Count {
+ get { return result.PackedInt64Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return result.GetPackedInt64(index);
+ }
+ public Builder SetPackedInt64(int index, long value) {
+ result.packedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt64(long value) {
+ result.packedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.packedInt64_);
+ return this;
+ }
+ public Builder ClearPackedInt64() {
+ result.packedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> PackedUint32List {
+ get { return result.packedUint32_; }
+ }
+ public int PackedUint32Count {
+ get { return result.PackedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedUint32(int index) {
+ return result.GetPackedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedUint32(int index, uint value) {
+ result.packedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedUint32(uint value) {
+ result.packedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedUint32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.packedUint32_);
+ return this;
+ }
+ public Builder ClearPackedUint32() {
+ result.packedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> PackedUint64List {
+ get { return result.packedUint64_; }
+ }
+ public int PackedUint64Count {
+ get { return result.PackedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedUint64(int index) {
+ return result.GetPackedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedUint64(int index, ulong value) {
+ result.packedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedUint64(ulong value) {
+ result.packedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedUint64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.packedUint64_);
+ return this;
+ }
+ public Builder ClearPackedUint64() {
+ result.packedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSint32List {
+ get { return result.packedSint32_; }
+ }
+ public int PackedSint32Count {
+ get { return result.PackedSint32Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return result.GetPackedSint32(index);
+ }
+ public Builder SetPackedSint32(int index, int value) {
+ result.packedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint32(int value) {
+ result.packedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.packedSint32_);
+ return this;
+ }
+ public Builder ClearPackedSint32() {
+ result.packedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSint64List {
+ get { return result.packedSint64_; }
+ }
+ public int PackedSint64Count {
+ get { return result.PackedSint64Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return result.GetPackedSint64(index);
+ }
+ public Builder SetPackedSint64(int index, long value) {
+ result.packedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint64(long value) {
+ result.packedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.packedSint64_);
+ return this;
+ }
+ public Builder ClearPackedSint64() {
+ result.packedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> PackedFixed32List {
+ get { return result.packedFixed32_; }
+ }
+ public int PackedFixed32Count {
+ get { return result.PackedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedFixed32(int index) {
+ return result.GetPackedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedFixed32(int index, uint value) {
+ result.packedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedFixed32(uint value) {
+ result.packedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedFixed32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.packedFixed32_);
+ return this;
+ }
+ public Builder ClearPackedFixed32() {
+ result.packedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> PackedFixed64List {
+ get { return result.packedFixed64_; }
+ }
+ public int PackedFixed64Count {
+ get { return result.PackedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedFixed64(int index) {
+ return result.GetPackedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedFixed64(int index, ulong value) {
+ result.packedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedFixed64(ulong value) {
+ result.packedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedFixed64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.packedFixed64_);
+ return this;
+ }
+ public Builder ClearPackedFixed64() {
+ result.packedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSfixed32List {
+ get { return result.packedSfixed32_; }
+ }
+ public int PackedSfixed32Count {
+ get { return result.PackedSfixed32Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return result.GetPackedSfixed32(index);
+ }
+ public Builder SetPackedSfixed32(int index, int value) {
+ result.packedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed32(int value) {
+ result.packedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.packedSfixed32_);
+ return this;
+ }
+ public Builder ClearPackedSfixed32() {
+ result.packedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSfixed64List {
+ get { return result.packedSfixed64_; }
+ }
+ public int PackedSfixed64Count {
+ get { return result.PackedSfixed64Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return result.GetPackedSfixed64(index);
+ }
+ public Builder SetPackedSfixed64(int index, long value) {
+ result.packedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed64(long value) {
+ result.packedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.packedSfixed64_);
+ return this;
+ }
+ public Builder ClearPackedSfixed64() {
+ result.packedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> PackedFloatList {
+ get { return result.packedFloat_; }
+ }
+ public int PackedFloatCount {
+ get { return result.PackedFloatCount; }
+ }
+ public float GetPackedFloat(int index) {
+ return result.GetPackedFloat(index);
+ }
+ public Builder SetPackedFloat(int index, float value) {
+ result.packedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFloat(float value) {
+ result.packedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFloat(scg::IEnumerable<float> values) {
+ base.AddRange(values, result.packedFloat_);
+ return this;
+ }
+ public Builder ClearPackedFloat() {
+ result.packedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> PackedDoubleList {
+ get { return result.packedDouble_; }
+ }
+ public int PackedDoubleCount {
+ get { return result.PackedDoubleCount; }
+ }
+ public double GetPackedDouble(int index) {
+ return result.GetPackedDouble(index);
+ }
+ public Builder SetPackedDouble(int index, double value) {
+ result.packedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddPackedDouble(double value) {
+ result.packedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedDouble(scg::IEnumerable<double> values) {
+ base.AddRange(values, result.packedDouble_);
+ return this;
+ }
+ public Builder ClearPackedDouble() {
+ result.packedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> PackedBoolList {
+ get { return result.packedBool_; }
+ }
+ public int PackedBoolCount {
+ get { return result.PackedBoolCount; }
+ }
+ public bool GetPackedBool(int index) {
+ return result.GetPackedBool(index);
+ }
+ public Builder SetPackedBool(int index, bool value) {
+ result.packedBool_[index] = value;
+ return this;
+ }
+ public Builder AddPackedBool(bool value) {
+ result.packedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedBool(scg::IEnumerable<bool> values) {
+ base.AddRange(values, result.packedBool_);
+ return this;
+ }
+ public Builder ClearPackedBool() {
+ result.packedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> PackedEnumList {
+ get { return result.packedEnum_; }
+ }
+ public int PackedEnumCount {
+ get { return result.PackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite GetPackedEnum(int index) {
+ return result.GetPackedEnum(index);
+ }
+ public Builder SetPackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ result.packedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddPackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite value) {
+ result.packedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnumLite> values) {
+ base.AddRange(values, result.packedEnum_);
+ return this;
+ }
+ public Builder ClearPackedEnum() {
+ result.packedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestPackedTypesLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestAllExtensionsLite : pb::ExtendableMessageLite<TestAllExtensionsLite, TestAllExtensionsLite.Builder> {
+ private static readonly TestAllExtensionsLite defaultInstance = new Builder().BuildPartial();
+ public static TestAllExtensionsLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllExtensionsLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestAllExtensionsLite ThisMessage {
+ get { return this; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessageLite<TestAllExtensionsLite, TestAllExtensionsLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestAllExtensionsLite other = obj as TestAllExtensionsLite;
+ if (other == null) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestAllExtensionsLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensionsLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllExtensionsLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestAllExtensionsLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestAllExtensionsLite result = new TestAllExtensionsLite();
+
+ protected override TestAllExtensionsLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestAllExtensionsLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestAllExtensionsLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance; }
+ }
+
+ public override TestAllExtensionsLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestAllExtensionsLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestAllExtensionsLite) {
+ return MergeFrom((TestAllExtensionsLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllExtensionsLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite.DefaultInstance) return this;
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestAllExtensionsLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class OptionalGroup_extension_lite : pb::GeneratedMessageLite<OptionalGroup_extension_lite, OptionalGroup_extension_lite.Builder> {
+ private static readonly OptionalGroup_extension_lite defaultInstance = new Builder().BuildPartial();
+ public static OptionalGroup_extension_lite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup_extension_lite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OptionalGroup_extension_lite ThisMessage {
+ get { return this; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(17, A);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasA) hash ^= a_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ OptionalGroup_extension_lite other = obj as OptionalGroup_extension_lite;
+ if (other == null) return false;
+ if (hasA != other.hasA || (hasA && !a_.Equals(other.a_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("a", hasA, a_, writer);
+ }
+ #endregion
+
+ public static OptionalGroup_extension_lite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension_lite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup_extension_lite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<OptionalGroup_extension_lite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OptionalGroup_extension_lite result = new OptionalGroup_extension_lite();
+
+ protected override OptionalGroup_extension_lite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OptionalGroup_extension_lite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override OptionalGroup_extension_lite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite.DefaultInstance; }
+ }
+
+ public override OptionalGroup_extension_lite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OptionalGroup_extension_lite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is OptionalGroup_extension_lite) {
+ return MergeFrom((OptionalGroup_extension_lite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup_extension_lite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension_lite.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 136: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup_extension_lite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class RepeatedGroup_extension_lite : pb::GeneratedMessageLite<RepeatedGroup_extension_lite, RepeatedGroup_extension_lite.Builder> {
+ private static readonly RepeatedGroup_extension_lite defaultInstance = new Builder().BuildPartial();
+ public static RepeatedGroup_extension_lite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup_extension_lite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override RepeatedGroup_extension_lite ThisMessage {
+ get { return this; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(47, A);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasA) hash ^= a_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ RepeatedGroup_extension_lite other = obj as RepeatedGroup_extension_lite;
+ if (other == null) return false;
+ if (hasA != other.hasA || (hasA && !a_.Equals(other.a_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("a", hasA, a_, writer);
+ }
+ #endregion
+
+ public static RepeatedGroup_extension_lite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension_lite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup_extension_lite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<RepeatedGroup_extension_lite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ RepeatedGroup_extension_lite result = new RepeatedGroup_extension_lite();
+
+ protected override RepeatedGroup_extension_lite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new RepeatedGroup_extension_lite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override RepeatedGroup_extension_lite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite.DefaultInstance; }
+ }
+
+ public override RepeatedGroup_extension_lite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ RepeatedGroup_extension_lite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is RepeatedGroup_extension_lite) {
+ return MergeFrom((RepeatedGroup_extension_lite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup_extension_lite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension_lite.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 376: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup_extension_lite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestPackedExtensionsLite : pb::ExtendableMessageLite<TestPackedExtensionsLite, TestPackedExtensionsLite.Builder> {
+ private static readonly TestPackedExtensionsLite defaultInstance = new Builder().BuildPartial();
+ public static TestPackedExtensionsLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedExtensionsLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestPackedExtensionsLite ThisMessage {
+ get { return this; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessageLite<TestPackedExtensionsLite, TestPackedExtensionsLite.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ hash ^= base.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestPackedExtensionsLite other = obj as TestPackedExtensionsLite;
+ if (other == null) return false;
+ if (!base.Equals(other)) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ base.PrintTo(writer);
+ }
+ #endregion
+
+ public static TestPackedExtensionsLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensionsLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedExtensionsLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilderLite<TestPackedExtensionsLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestPackedExtensionsLite result = new TestPackedExtensionsLite();
+
+ protected override TestPackedExtensionsLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestPackedExtensionsLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestPackedExtensionsLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance; }
+ }
+
+ public override TestPackedExtensionsLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestPackedExtensionsLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestPackedExtensionsLite) {
+ return MergeFrom((TestPackedExtensionsLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedExtensionsLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedExtensionsLite.DefaultInstance) return this;
+ this.MergeExtensionFields(other);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestPackedExtensionsLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestNestedExtensionLite : pb::GeneratedMessageLite<TestNestedExtensionLite, TestNestedExtensionLite.Builder> {
+ private static readonly TestNestedExtensionLite defaultInstance = new Builder().BuildPartial();
+ public static TestNestedExtensionLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedExtensionLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestNestedExtensionLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int NestedExtensionFieldNumber = 12345;
+ public static pb::GeneratedExtensionLite<global::Google.ProtocolBuffers.TestProtos.TestAllExtensionsLite, int> NestedExtension;
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestNestedExtensionLite other = obj as TestNestedExtensionLite;
+ if (other == null) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ }
+ #endregion
+
+ public static TestNestedExtensionLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtensionLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedExtensionLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestNestedExtensionLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestNestedExtensionLite result = new TestNestedExtensionLite();
+
+ protected override TestNestedExtensionLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestNestedExtensionLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestNestedExtensionLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.DefaultInstance; }
+ }
+
+ public override TestNestedExtensionLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestNestedExtensionLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestNestedExtensionLite) {
+ return MergeFrom((TestNestedExtensionLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedExtensionLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedExtensionLite.DefaultInstance) return this;
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestNestedExtensionLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestDeprecatedLite : pb::GeneratedMessageLite<TestDeprecatedLite, TestDeprecatedLite.Builder> {
+ private static readonly TestDeprecatedLite defaultInstance = new Builder().BuildPartial();
+ public static TestDeprecatedLite DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDeprecatedLite DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestDeprecatedLite ThisMessage {
+ get { return this; }
+ }
+
+ public const int DeprecatedFieldFieldNumber = 1;
+ private bool hasDeprecatedField;
+ private int deprecatedField_ = 0;
+ public bool HasDeprecatedField {
+ get { return hasDeprecatedField; }
+ }
+ public int DeprecatedField {
+ get { return deprecatedField_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasDeprecatedField) {
+ output.WriteInt32(1, DeprecatedField);
+ }
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasDeprecatedField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedField);
+ }
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ #region Lite runtime methods
+ public override int GetHashCode() {
+ int hash = GetType().GetHashCode();
+ if (hasDeprecatedField) hash ^= deprecatedField_.GetHashCode();
+ return hash;
+ }
+
+ public override bool Equals(object obj) {
+ TestDeprecatedLite other = obj as TestDeprecatedLite;
+ if (other == null) return false;
+ if (hasDeprecatedField != other.hasDeprecatedField || (hasDeprecatedField && !deprecatedField_.Equals(other.deprecatedField_))) return false;
+ return true;
+ }
+
+ public override void PrintTo(global::System.IO.TextWriter writer) {
+ PrintField("deprecated_field", hasDeprecatedField, deprecatedField_, writer);
+ }
+ #endregion
+
+ public static TestDeprecatedLite ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedLite ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDeprecatedLite prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilderLite<TestDeprecatedLite, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestDeprecatedLite result = new TestDeprecatedLite();
+
+ protected override TestDeprecatedLite MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestDeprecatedLite();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override TestDeprecatedLite DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedLite.DefaultInstance; }
+ }
+
+ public override TestDeprecatedLite BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestDeprecatedLite returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessageLite other) {
+ if (other is TestDeprecatedLite) {
+ return MergeFrom((TestDeprecatedLite) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDeprecatedLite other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDeprecatedLite.DefaultInstance) return this;
+ if (other.HasDeprecatedField) {
+ DeprecatedField = other.DeprecatedField;
+ }
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ return this;
+ }
+ ParseUnknownField(input, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ DeprecatedField = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasDeprecatedField {
+ get { return result.HasDeprecatedField; }
+ }
+ public int DeprecatedField {
+ get { return result.DeprecatedField; }
+ set { SetDeprecatedField(value); }
+ }
+ public Builder SetDeprecatedField(int value) {
+ result.hasDeprecatedField = true;
+ result.deprecatedField_ = value;
+ return this;
+ }
+ public Builder ClearDeprecatedField() {
+ result.hasDeprecatedField = false;
+ result.deprecatedField_ = 0;
+ return this;
+ }
+ }
+ static TestDeprecatedLite() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestLiteProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+}
diff --git a/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
new file mode 100644
index 00000000..5acb333d
--- /dev/null
+++ b/src/ProtocolBuffersLite.Test/TestProtos/UnitTestProtoFile.cs
@@ -0,0 +1,18623 @@
+// Generated by ProtoGen, Version=0.9.0.0, Culture=neutral, PublicKeyToken=8fd7408b07f8d2cd. DO NOT EDIT!
+
+using pb = global::Google.ProtocolBuffers;
+using pbc = global::Google.ProtocolBuffers.Collections;
+using pbd = global::Google.ProtocolBuffers.Descriptors;
+using scg = global::System.Collections.Generic;
+namespace Google.ProtocolBuffers.TestProtos {
+
+ public static partial class UnitTestProtoFile {
+
+ #region Extension registration
+ public static void RegisterAllExtensions(pb::ExtensionRegistry registry) {
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedGroupExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedNestedMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedForeignMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedImportMessageExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultStringExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultBytesExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultNestedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultForeignEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultImportEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultStringPieceExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultCordExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.MyExtensionString);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.MyExtensionInt);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedInt32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedInt64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedUint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedUint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSint32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSint64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSfixed32Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSfixed64Extension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFloatExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedDoubleExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedBoolExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedEnumExtension);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Single);
+ registry.Add(global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi);
+ }
+ #endregion
+ #region Extensions
+ public const int OptionalInt32ExtensionFieldNumber = 1;
+ public static pb::GeneratedExtensionBase<int> OptionalInt32Extension;
+ public const int OptionalInt64ExtensionFieldNumber = 2;
+ public static pb::GeneratedExtensionBase<long> OptionalInt64Extension;
+ public const int OptionalUint32ExtensionFieldNumber = 3;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> OptionalUint32Extension;
+ public const int OptionalUint64ExtensionFieldNumber = 4;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<ulong> OptionalUint64Extension;
+ public const int OptionalSint32ExtensionFieldNumber = 5;
+ public static pb::GeneratedExtensionBase<int> OptionalSint32Extension;
+ public const int OptionalSint64ExtensionFieldNumber = 6;
+ public static pb::GeneratedExtensionBase<long> OptionalSint64Extension;
+ public const int OptionalFixed32ExtensionFieldNumber = 7;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> OptionalFixed32Extension;
+ public const int OptionalFixed64ExtensionFieldNumber = 8;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<ulong> OptionalFixed64Extension;
+ public const int OptionalSfixed32ExtensionFieldNumber = 9;
+ public static pb::GeneratedExtensionBase<int> OptionalSfixed32Extension;
+ public const int OptionalSfixed64ExtensionFieldNumber = 10;
+ public static pb::GeneratedExtensionBase<long> OptionalSfixed64Extension;
+ public const int OptionalFloatExtensionFieldNumber = 11;
+ public static pb::GeneratedExtensionBase<float> OptionalFloatExtension;
+ public const int OptionalDoubleExtensionFieldNumber = 12;
+ public static pb::GeneratedExtensionBase<double> OptionalDoubleExtension;
+ public const int OptionalBoolExtensionFieldNumber = 13;
+ public static pb::GeneratedExtensionBase<bool> OptionalBoolExtension;
+ public const int OptionalStringExtensionFieldNumber = 14;
+ public static pb::GeneratedExtensionBase<string> OptionalStringExtension;
+ public const int OptionalBytesExtensionFieldNumber = 15;
+ public static pb::GeneratedExtensionBase<pb::ByteString> OptionalBytesExtension;
+ public const int OptionalGroupExtensionFieldNumber = 16;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension> OptionalGroupExtension;
+ public const int OptionalNestedMessageExtensionFieldNumber = 18;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> OptionalNestedMessageExtension;
+ public const int OptionalForeignMessageExtensionFieldNumber = 19;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> OptionalForeignMessageExtension;
+ public const int OptionalImportMessageExtensionFieldNumber = 20;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportMessage> OptionalImportMessageExtension;
+ public const int OptionalNestedEnumExtensionFieldNumber = 21;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> OptionalNestedEnumExtension;
+ public const int OptionalForeignEnumExtensionFieldNumber = 22;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> OptionalForeignEnumExtension;
+ public const int OptionalImportEnumExtensionFieldNumber = 23;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportEnum> OptionalImportEnumExtension;
+ public const int OptionalStringPieceExtensionFieldNumber = 24;
+ public static pb::GeneratedExtensionBase<string> OptionalStringPieceExtension;
+ public const int OptionalCordExtensionFieldNumber = 25;
+ public static pb::GeneratedExtensionBase<string> OptionalCordExtension;
+ public const int RepeatedInt32ExtensionFieldNumber = 31;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedInt32Extension;
+ public const int RepeatedInt64ExtensionFieldNumber = 32;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedInt64Extension;
+ public const int RepeatedUint32ExtensionFieldNumber = 33;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> RepeatedUint32Extension;
+ public const int RepeatedUint64ExtensionFieldNumber = 34;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> RepeatedUint64Extension;
+ public const int RepeatedSint32ExtensionFieldNumber = 35;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedSint32Extension;
+ public const int RepeatedSint64ExtensionFieldNumber = 36;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedSint64Extension;
+ public const int RepeatedFixed32ExtensionFieldNumber = 37;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> RepeatedFixed32Extension;
+ public const int RepeatedFixed64ExtensionFieldNumber = 38;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> RepeatedFixed64Extension;
+ public const int RepeatedSfixed32ExtensionFieldNumber = 39;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> RepeatedSfixed32Extension;
+ public const int RepeatedSfixed64ExtensionFieldNumber = 40;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> RepeatedSfixed64Extension;
+ public const int RepeatedFloatExtensionFieldNumber = 41;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> RepeatedFloatExtension;
+ public const int RepeatedDoubleExtensionFieldNumber = 42;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> RepeatedDoubleExtension;
+ public const int RepeatedBoolExtensionFieldNumber = 43;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> RepeatedBoolExtension;
+ public const int RepeatedStringExtensionFieldNumber = 44;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedStringExtension;
+ public const int RepeatedBytesExtensionFieldNumber = 45;
+ public static pb::GeneratedExtensionBase<scg::IList<pb::ByteString>> RepeatedBytesExtension;
+ public const int RepeatedGroupExtensionFieldNumber = 46;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension>> RepeatedGroupExtension;
+ public const int RepeatedNestedMessageExtensionFieldNumber = 48;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>> RepeatedNestedMessageExtension;
+ public const int RepeatedForeignMessageExtensionFieldNumber = 49;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>> RepeatedForeignMessageExtension;
+ public const int RepeatedImportMessageExtensionFieldNumber = 50;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessage>> RepeatedImportMessageExtension;
+ public const int RepeatedNestedEnumExtensionFieldNumber = 51;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>> RepeatedNestedEnumExtension;
+ public const int RepeatedForeignEnumExtensionFieldNumber = 52;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> RepeatedForeignEnumExtension;
+ public const int RepeatedImportEnumExtensionFieldNumber = 53;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnum>> RepeatedImportEnumExtension;
+ public const int RepeatedStringPieceExtensionFieldNumber = 54;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedStringPieceExtension;
+ public const int RepeatedCordExtensionFieldNumber = 55;
+ public static pb::GeneratedExtensionBase<scg::IList<string>> RepeatedCordExtension;
+ public const int DefaultInt32ExtensionFieldNumber = 61;
+ public static pb::GeneratedExtensionBase<int> DefaultInt32Extension;
+ public const int DefaultInt64ExtensionFieldNumber = 62;
+ public static pb::GeneratedExtensionBase<long> DefaultInt64Extension;
+ public const int DefaultUint32ExtensionFieldNumber = 63;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> DefaultUint32Extension;
+ public const int DefaultUint64ExtensionFieldNumber = 64;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<ulong> DefaultUint64Extension;
+ public const int DefaultSint32ExtensionFieldNumber = 65;
+ public static pb::GeneratedExtensionBase<int> DefaultSint32Extension;
+ public const int DefaultSint64ExtensionFieldNumber = 66;
+ public static pb::GeneratedExtensionBase<long> DefaultSint64Extension;
+ public const int DefaultFixed32ExtensionFieldNumber = 67;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<uint> DefaultFixed32Extension;
+ public const int DefaultFixed64ExtensionFieldNumber = 68;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<ulong> DefaultFixed64Extension;
+ public const int DefaultSfixed32ExtensionFieldNumber = 69;
+ public static pb::GeneratedExtensionBase<int> DefaultSfixed32Extension;
+ public const int DefaultSfixed64ExtensionFieldNumber = 70;
+ public static pb::GeneratedExtensionBase<long> DefaultSfixed64Extension;
+ public const int DefaultFloatExtensionFieldNumber = 71;
+ public static pb::GeneratedExtensionBase<float> DefaultFloatExtension;
+ public const int DefaultDoubleExtensionFieldNumber = 72;
+ public static pb::GeneratedExtensionBase<double> DefaultDoubleExtension;
+ public const int DefaultBoolExtensionFieldNumber = 73;
+ public static pb::GeneratedExtensionBase<bool> DefaultBoolExtension;
+ public const int DefaultStringExtensionFieldNumber = 74;
+ public static pb::GeneratedExtensionBase<string> DefaultStringExtension;
+ public const int DefaultBytesExtensionFieldNumber = 75;
+ public static pb::GeneratedExtensionBase<pb::ByteString> DefaultBytesExtension;
+ public const int DefaultNestedEnumExtensionFieldNumber = 81;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> DefaultNestedEnumExtension;
+ public const int DefaultForeignEnumExtensionFieldNumber = 82;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> DefaultForeignEnumExtension;
+ public const int DefaultImportEnumExtensionFieldNumber = 83;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.ImportEnum> DefaultImportEnumExtension;
+ public const int DefaultStringPieceExtensionFieldNumber = 84;
+ public static pb::GeneratedExtensionBase<string> DefaultStringPieceExtension;
+ public const int DefaultCordExtensionFieldNumber = 85;
+ public static pb::GeneratedExtensionBase<string> DefaultCordExtension;
+ public const int MyExtensionStringFieldNumber = 50;
+ public static pb::GeneratedExtensionBase<string> MyExtensionString;
+ public const int MyExtensionIntFieldNumber = 5;
+ public static pb::GeneratedExtensionBase<int> MyExtensionInt;
+ public const int PackedInt32ExtensionFieldNumber = 90;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedInt32Extension;
+ public const int PackedInt64ExtensionFieldNumber = 91;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedInt64Extension;
+ public const int PackedUint32ExtensionFieldNumber = 92;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> PackedUint32Extension;
+ public const int PackedUint64ExtensionFieldNumber = 93;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> PackedUint64Extension;
+ public const int PackedSint32ExtensionFieldNumber = 94;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedSint32Extension;
+ public const int PackedSint64ExtensionFieldNumber = 95;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedSint64Extension;
+ public const int PackedFixed32ExtensionFieldNumber = 96;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<uint>> PackedFixed32Extension;
+ public const int PackedFixed64ExtensionFieldNumber = 97;
+ [global::System.CLSCompliant(false)]
+ public static pb::GeneratedExtensionBase<scg::IList<ulong>> PackedFixed64Extension;
+ public const int PackedSfixed32ExtensionFieldNumber = 98;
+ public static pb::GeneratedExtensionBase<scg::IList<int>> PackedSfixed32Extension;
+ public const int PackedSfixed64ExtensionFieldNumber = 99;
+ public static pb::GeneratedExtensionBase<scg::IList<long>> PackedSfixed64Extension;
+ public const int PackedFloatExtensionFieldNumber = 100;
+ public static pb::GeneratedExtensionBase<scg::IList<float>> PackedFloatExtension;
+ public const int PackedDoubleExtensionFieldNumber = 101;
+ public static pb::GeneratedExtensionBase<scg::IList<double>> PackedDoubleExtension;
+ public const int PackedBoolExtensionFieldNumber = 102;
+ public static pb::GeneratedExtensionBase<scg::IList<bool>> PackedBoolExtension;
+ public const int PackedEnumExtensionFieldNumber = 103;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>> PackedEnumExtension;
+ #endregion
+
+ #region Static variables
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder> internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder> internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder> internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_ForeignMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder> internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestAllExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder> internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder> internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder> internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedExtension__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder> internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequired__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder> internal__static_protobuf_unittest_TestRequired__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRequiredForeign__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder> internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestForeignNested__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder> internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder> internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder> internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder> internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder> internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder> internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder> internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder> internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder> internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder> internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder> internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder> internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder> internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder> internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestFieldOrderings__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder> internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder> internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneString__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder> internal__static_protobuf_unittest_OneString__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_OneBytes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder> internal__static_protobuf_unittest_OneBytes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder> internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder> internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestPackedExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder> internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder> internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder> internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder> internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder> internal__static_protobuf_unittest_FooRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_FooResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder> internal__static_protobuf_unittest_FooResponse__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarRequest__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder> internal__static_protobuf_unittest_BarRequest__FieldAccessorTable;
+ internal static pbd::MessageDescriptor internal__static_protobuf_unittest_BarResponse__Descriptor;
+ internal static pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder> internal__static_protobuf_unittest_BarResponse__FieldAccessorTable;
+ #endregion
+ #region Descriptor
+ public static pbd::FileDescriptor Descriptor {
+ get { return descriptor; }
+ }
+ private static pbd::FileDescriptor descriptor;
+
+ static UnitTestProtoFile() {
+ byte[] descriptorData = global::System.Convert.FromBase64String(
+ "Ch5nb29nbGUvcHJvdG9idWYvdW5pdHRlc3QucHJvdG8SEXByb3RvYnVmX3Vu" +
+ "aXR0ZXN0GiRnb29nbGUvcHJvdG9idWYvY3NoYXJwX29wdGlvbnMucHJvdG8a" +
+ "JWdvb2dsZS9wcm90b2J1Zi91bml0dGVzdF9pbXBvcnQucHJvdG8iuxUKDFRl" +
+ "c3RBbGxUeXBlcxIWCg5vcHRpb25hbF9pbnQzMhgBIAEoBRIWCg5vcHRpb25h" +
+ "bF9pbnQ2NBgCIAEoAxIXCg9vcHRpb25hbF91aW50MzIYAyABKA0SFwoPb3B0" +
+ "aW9uYWxfdWludDY0GAQgASgEEhcKD29wdGlvbmFsX3NpbnQzMhgFIAEoERIX" +
+ "Cg9vcHRpb25hbF9zaW50NjQYBiABKBISGAoQb3B0aW9uYWxfZml4ZWQzMhgH" +
+ "IAEoBxIYChBvcHRpb25hbF9maXhlZDY0GAggASgGEhkKEW9wdGlvbmFsX3Nm" +
+ "aXhlZDMyGAkgASgPEhkKEW9wdGlvbmFsX3NmaXhlZDY0GAogASgQEhYKDm9w" +
+ "dGlvbmFsX2Zsb2F0GAsgASgCEhcKD29wdGlvbmFsX2RvdWJsZRgMIAEoARIV" +
+ "Cg1vcHRpb25hbF9ib29sGA0gASgIEhcKD29wdGlvbmFsX3N0cmluZxgOIAEo" +
+ "CRIWCg5vcHRpb25hbF9ieXRlcxgPIAEoDBJECg1vcHRpb25hbGdyb3VwGBAg" +
+ "ASgKMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk9wdGlvbmFs" +
+ "R3JvdXASTgoXb3B0aW9uYWxfbmVzdGVkX21lc3NhZ2UYEiABKAsyLS5wcm90" +
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkTWVzc2FnZRJDChhv" +
+ "cHRpb25hbF9mb3JlaWduX21lc3NhZ2UYEyABKAsyIS5wcm90b2J1Zl91bml0" +
+ "dGVzdC5Gb3JlaWduTWVzc2FnZRJIChdvcHRpb25hbF9pbXBvcnRfbWVzc2Fn" +
+ "ZRgUIAEoCzInLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRNZXNz" +
+ "YWdlEkgKFG9wdGlvbmFsX25lc3RlZF9lbnVtGBUgASgOMioucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVudW0SPQoVb3B0aW9uYWxf" +
+ "Zm9yZWlnbl9lbnVtGBYgASgOMh4ucHJvdG9idWZfdW5pdHRlc3QuRm9yZWln" +
+ "bkVudW0SQgoUb3B0aW9uYWxfaW1wb3J0X2VudW0YFyABKA4yJC5wcm90b2J1" +
+ "Zl91bml0dGVzdF9pbXBvcnQuSW1wb3J0RW51bRIhChVvcHRpb25hbF9zdHJp" +
+ "bmdfcGllY2UYGCABKAlCAggCEhkKDW9wdGlvbmFsX2NvcmQYGSABKAlCAggB" +
+ "EhYKDnJlcGVhdGVkX2ludDMyGB8gAygFEhYKDnJlcGVhdGVkX2ludDY0GCAg" +
+ "AygDEhcKD3JlcGVhdGVkX3VpbnQzMhghIAMoDRIXCg9yZXBlYXRlZF91aW50" +
+ "NjQYIiADKAQSFwoPcmVwZWF0ZWRfc2ludDMyGCMgAygREhcKD3JlcGVhdGVk" +
+ "X3NpbnQ2NBgkIAMoEhIYChByZXBlYXRlZF9maXhlZDMyGCUgAygHEhgKEHJl" +
+ "cGVhdGVkX2ZpeGVkNjQYJiADKAYSGQoRcmVwZWF0ZWRfc2ZpeGVkMzIYJyAD" +
+ "KA8SGQoRcmVwZWF0ZWRfc2ZpeGVkNjQYKCADKBASFgoOcmVwZWF0ZWRfZmxv" +
+ "YXQYKSADKAISFwoPcmVwZWF0ZWRfZG91YmxlGCogAygBEhUKDXJlcGVhdGVk" +
+ "X2Jvb2wYKyADKAgSFwoPcmVwZWF0ZWRfc3RyaW5nGCwgAygJEhYKDnJlcGVh" +
+ "dGVkX2J5dGVzGC0gAygMEkQKDXJlcGVhdGVkZ3JvdXAYLiADKAoyLS5wcm90" +
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuUmVwZWF0ZWRHcm91cBJOChdy" +
+ "ZXBlYXRlZF9uZXN0ZWRfbWVzc2FnZRgwIAMoCzItLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlEkMKGHJlcGVhdGVkX2Zv" +
+ "cmVpZ25fbWVzc2FnZRgxIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVp" +
+ "Z25NZXNzYWdlEkgKF3JlcGVhdGVkX2ltcG9ydF9tZXNzYWdlGDIgAygLMicu" +
+ "cHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1lc3NhZ2USSAoUcmVw" +
+ "ZWF0ZWRfbmVzdGVkX2VudW0YMyADKA4yKi5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0QWxsVHlwZXMuTmVzdGVkRW51bRI9ChVyZXBlYXRlZF9mb3JlaWduX2Vu" +
+ "dW0YNCADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bRJCChRy" +
+ "ZXBlYXRlZF9pbXBvcnRfZW51bRg1IAMoDjIkLnByb3RvYnVmX3VuaXR0ZXN0" +
+ "X2ltcG9ydC5JbXBvcnRFbnVtEiEKFXJlcGVhdGVkX3N0cmluZ19waWVjZRg2" +
+ "IAMoCUICCAISGQoNcmVwZWF0ZWRfY29yZBg3IAMoCUICCAESGQoNZGVmYXVs" +
+ "dF9pbnQzMhg9IAEoBToCNDESGQoNZGVmYXVsdF9pbnQ2NBg+IAEoAzoCNDIS" +
+ "GgoOZGVmYXVsdF91aW50MzIYPyABKA06AjQzEhoKDmRlZmF1bHRfdWludDY0" +
+ "GEAgASgEOgI0NBIbCg5kZWZhdWx0X3NpbnQzMhhBIAEoEToDLTQ1EhoKDmRl" +
+ "ZmF1bHRfc2ludDY0GEIgASgSOgI0NhIbCg9kZWZhdWx0X2ZpeGVkMzIYQyAB" +
+ "KAc6AjQ3EhsKD2RlZmF1bHRfZml4ZWQ2NBhEIAEoBjoCNDgSHAoQZGVmYXVs" +
+ "dF9zZml4ZWQzMhhFIAEoDzoCNDkSHQoQZGVmYXVsdF9zZml4ZWQ2NBhGIAEo" +
+ "EDoDLTUwEhsKDWRlZmF1bHRfZmxvYXQYRyABKAI6BDUxLjUSHQoOZGVmYXVs" +
+ "dF9kb3VibGUYSCABKAE6BTUyMDAwEhoKDGRlZmF1bHRfYm9vbBhJIAEoCDoE" +
+ "dHJ1ZRIdCg5kZWZhdWx0X3N0cmluZxhKIAEoCToFaGVsbG8SHAoNZGVmYXVs" +
+ "dF9ieXRlcxhLIAEoDDoFd29ybGQSTAoTZGVmYXVsdF9uZXN0ZWRfZW51bRhR" +
+ "IAEoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRF" +
+ "bnVtOgNCQVISSQoUZGVmYXVsdF9mb3JlaWduX2VudW0YUiABKA4yHi5wcm90" +
+ "b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51bToLRk9SRUlHTl9CQVISTQoTZGVm" +
+ "YXVsdF9pbXBvcnRfZW51bRhTIAEoDjIkLnByb3RvYnVmX3VuaXR0ZXN0X2lt" +
+ "cG9ydC5JbXBvcnRFbnVtOgpJTVBPUlRfQkFSEiUKFGRlZmF1bHRfc3RyaW5n" +
+ "X3BpZWNlGFQgASgJOgNhYmNCAggCEh0KDGRlZmF1bHRfY29yZBhVIAEoCToD" +
+ "MTIzQgIIARobCg1OZXN0ZWRNZXNzYWdlEgoKAmJiGAEgASgFGhoKDU9wdGlv" +
+ "bmFsR3JvdXASCQoBYRgRIAEoBRoaCg1SZXBlYXRlZEdyb3VwEgkKAWEYLyAB" +
+ "KAUiJwoKTmVzdGVkRW51bRIHCgNGT08QARIHCgNCQVIQAhIHCgNCQVoQAyI0" +
+ "ChRUZXN0RGVwcmVjYXRlZEZpZWxkcxIcChBkZXByZWNhdGVkX2ludDMyGAEg" +
+ "ASgFQgIYASIbCg5Gb3JlaWduTWVzc2FnZRIJCgFjGAEgASgFIh0KEVRlc3RB" +
+ "bGxFeHRlbnNpb25zKggIARCAgICAAiIkChdPcHRpb25hbEdyb3VwX2V4dGVu" +
+ "c2lvbhIJCgFhGBEgASgFIiQKF1JlcGVhdGVkR3JvdXBfZXh0ZW5zaW9uEgkK" +
+ "AWEYLyABKAUiUAoTVGVzdE5lc3RlZEV4dGVuc2lvbjI5CgR0ZXN0EiQucHJv" +
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY6gcgASgJOgR0ZXN0" +
+ "ItUFCgxUZXN0UmVxdWlyZWQSCQoBYRgBIAIoBRIOCgZkdW1teTIYAiABKAUS" +
+ "CQoBYhgDIAIoBRIOCgZkdW1teTQYBCABKAUSDgoGZHVtbXk1GAUgASgFEg4K" +
+ "BmR1bW15NhgGIAEoBRIOCgZkdW1teTcYByABKAUSDgoGZHVtbXk4GAggASgF" +
+ "Eg4KBmR1bW15ORgJIAEoBRIPCgdkdW1teTEwGAogASgFEg8KB2R1bW15MTEY" +
+ "CyABKAUSDwoHZHVtbXkxMhgMIAEoBRIPCgdkdW1teTEzGA0gASgFEg8KB2R1" +
+ "bW15MTQYDiABKAUSDwoHZHVtbXkxNRgPIAEoBRIPCgdkdW1teTE2GBAgASgF" +
+ "Eg8KB2R1bW15MTcYESABKAUSDwoHZHVtbXkxOBgSIAEoBRIPCgdkdW1teTE5" +
+ "GBMgASgFEg8KB2R1bW15MjAYFCABKAUSDwoHZHVtbXkyMRgVIAEoBRIPCgdk" +
+ "dW1teTIyGBYgASgFEg8KB2R1bW15MjMYFyABKAUSDwoHZHVtbXkyNBgYIAEo" +
+ "BRIPCgdkdW1teTI1GBkgASgFEg8KB2R1bW15MjYYGiABKAUSDwoHZHVtbXky" +
+ "NxgbIAEoBRIPCgdkdW1teTI4GBwgASgFEg8KB2R1bW15MjkYHSABKAUSDwoH" +
+ "ZHVtbXkzMBgeIAEoBRIPCgdkdW1teTMxGB8gASgFEg8KB2R1bW15MzIYICAB" +
+ "KAUSCQoBYxghIAIoBTJWCgZzaW5nbGUSJC5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0QWxsRXh0ZW5zaW9ucxjoByABKAsyHy5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0UmVxdWlyZWQyVQoFbXVsdGkSJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
+ "QWxsRXh0ZW5zaW9ucxjpByADKAsyHy5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
+ "UmVxdWlyZWQimgEKE1Rlc3RSZXF1aXJlZEZvcmVpZ24SOQoQb3B0aW9uYWxf" +
+ "bWVzc2FnZRgBIAEoCzIfLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RSZXF1aXJl" +
+ "ZBI5ChByZXBlYXRlZF9tZXNzYWdlGAIgAygLMh8ucHJvdG9idWZfdW5pdHRl" +
+ "c3QuVGVzdFJlcXVpcmVkEg0KBWR1bW15GAMgASgFIloKEVRlc3RGb3JlaWdu" +
+ "TmVzdGVkEkUKDmZvcmVpZ25fbmVzdGVkGAEgASgLMi0ucHJvdG9idWZfdW5p" +
+ "dHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1lc3NhZ2UiEgoQVGVzdEVtcHR5" +
+ "TWVzc2FnZSIqCh5UZXN0RW1wdHlNZXNzYWdlV2l0aEV4dGVuc2lvbnMqCAgB" +
+ "EICAgIACIjcKG1Rlc3RNdWx0aXBsZUV4dGVuc2lvblJhbmdlcyoECCoQKyoG" +
+ "CK8gEJQhKgoIgIAEEICAgIACIjQKGFRlc3RSZWFsbHlMYXJnZVRhZ051bWJl" +
+ "chIJCgFhGAEgASgFEg0KAmJiGP///38gASgFIlUKFFRlc3RSZWN1cnNpdmVN" +
+ "ZXNzYWdlEjIKAWEYASABKAsyJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UmVj" +
+ "dXJzaXZlTWVzc2FnZRIJCgFpGAIgASgFIksKFFRlc3RNdXR1YWxSZWN1cnNp" +
+ "b25BEjMKAmJiGAEgASgLMicucHJvdG9idWZfdW5pdHRlc3QuVGVzdE11dHVh" +
+ "bFJlY3Vyc2lvbkIiYgoUVGVzdE11dHVhbFJlY3Vyc2lvbkISMgoBYRgBIAEo" +
+ "CzInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RNdXR1YWxSZWN1cnNpb25BEhYK" +
+ "Dm9wdGlvbmFsX2ludDMyGAIgASgFIrMBChJUZXN0RHVwRmllbGROdW1iZXIS" +
+ "CQoBYRgBIAEoBRI2CgNmb28YAiABKAoyKS5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0RHVwRmllbGROdW1iZXIuRm9vEjYKA2JhchgDIAEoCjIpLnByb3RvYnVm" +
+ "X3VuaXR0ZXN0LlRlc3REdXBGaWVsZE51bWJlci5CYXIaEAoDRm9vEgkKAWEY" +
+ "ASABKAUaEAoDQmFyEgkKAWEYASABKAUigAIKGFRlc3ROZXN0ZWRNZXNzYWdl" +
+ "SGFzQml0cxJaChdvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZRgBIAEoCzI5LnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3ROZXN0ZWRNZXNzYWdlSGFzQml0cy5OZXN0" +
+ "ZWRNZXNzYWdlGocBCg1OZXN0ZWRNZXNzYWdlEiQKHG5lc3RlZG1lc3NhZ2Vf" +
+ "cmVwZWF0ZWRfaW50MzIYASADKAUSUAolbmVzdGVkbWVzc2FnZV9yZXBlYXRl" +
+ "ZF9mb3JlaWdubWVzc2FnZRgCIAMoCzIhLnByb3RvYnVmX3VuaXR0ZXN0LkZv" +
+ "cmVpZ25NZXNzYWdlIuUDChdUZXN0Q2FtZWxDYXNlRmllbGROYW1lcxIWCg5Q" +
+ "cmltaXRpdmVGaWVsZBgBIAEoBRITCgtTdHJpbmdGaWVsZBgCIAEoCRIxCglF" +
+ "bnVtRmllbGQYAyABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5Gb3JlaWduRW51" +
+ "bRI3CgxNZXNzYWdlRmllbGQYBCABKAsyIS5wcm90b2J1Zl91bml0dGVzdC5G" +
+ "b3JlaWduTWVzc2FnZRIcChBTdHJpbmdQaWVjZUZpZWxkGAUgASgJQgIIAhIV" +
+ "CglDb3JkRmllbGQYBiABKAlCAggBEh4KFlJlcGVhdGVkUHJpbWl0aXZlRmll" +
+ "bGQYByADKAUSGwoTUmVwZWF0ZWRTdHJpbmdGaWVsZBgIIAMoCRI5ChFSZXBl" +
+ "YXRlZEVudW1GaWVsZBgJIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVp" +
+ "Z25FbnVtEj8KFFJlcGVhdGVkTWVzc2FnZUZpZWxkGAogAygLMiEucHJvdG9i" +
+ "dWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USJAoYUmVwZWF0ZWRTdHJpbmdQ" +
+ "aWVjZUZpZWxkGAsgAygJQgIIAhIdChFSZXBlYXRlZENvcmRGaWVsZBgMIAMo" +
+ "CUICCAEiVQoSVGVzdEZpZWxkT3JkZXJpbmdzEhEKCW15X3N0cmluZxgLIAEo" +
+ "CRIOCgZteV9pbnQYASABKAMSEAoIbXlfZmxvYXQYZSABKAIqBAgCEAsqBAgM" +
+ "EGUi9gQKGFRlc3RFeHRyZW1lRGVmYXVsdFZhbHVlcxI/Cg1lc2NhcGVkX2J5" +
+ "dGVzGAEgASgMOihcMDAwXDAwMVwwMDdcMDEwXDAxNFxuXHJcdFwwMTNcXFwn" +
+ "XCJcMzc2EiAKDGxhcmdlX3VpbnQzMhgCIAEoDToKNDI5NDk2NzI5NRIqCgxs" +
+ "YXJnZV91aW50NjQYAyABKAQ6FDE4NDQ2NzQ0MDczNzA5NTUxNjE1EiAKC3Nt" +
+ "YWxsX2ludDMyGAQgASgFOgstMjE0NzQ4MzY0NxIpCgtzbWFsbF9pbnQ2NBgF" +
+ "IAEoAzoULTkyMjMzNzIwMzY4NTQ3NzU4MDcSGAoLdXRmOF9zdHJpbmcYBiAB" +
+ "KAk6A+GItBIVCgp6ZXJvX2Zsb2F0GAcgASgCOgEwEhQKCW9uZV9mbG9hdBgI" +
+ "IAEoAjoBMRIYCgtzbWFsbF9mbG9hdBgJIAEoAjoDMS41Eh4KEm5lZ2F0aXZl" +
+ "X29uZV9mbG9hdBgKIAEoAjoCLTESHAoObmVnYXRpdmVfZmxvYXQYCyABKAI6" +
+ "BC0xLjUSGwoLbGFyZ2VfZmxvYXQYDCABKAI6BjJlKzAwOBIlChRzbWFsbF9u" +
+ "ZWdhdGl2ZV9mbG9hdBgNIAEoAjoHLThlLTAyOBIXCgppbmZfZG91YmxlGA4g" +
+ "ASgBOgNpbmYSHAoObmVnX2luZl9kb3VibGUYDyABKAE6BC1pbmYSFwoKbmFu" +
+ "X2RvdWJsZRgQIAEoAToDbmFuEhYKCWluZl9mbG9hdBgRIAEoAjoDaW5mEhsK" +
+ "DW5lZ19pbmZfZmxvYXQYEiABKAI6BC1pbmYSFgoJbmFuX2Zsb2F0GBMgASgC" +
+ "OgNuYW4iGQoJT25lU3RyaW5nEgwKBGRhdGEYASABKAkiGAoIT25lQnl0ZXMS" +
+ "DAoEZGF0YRgBIAEoDCKqAwoPVGVzdFBhY2tlZFR5cGVzEhgKDHBhY2tlZF9p" +
+ "bnQzMhhaIAMoBUICEAESGAoMcGFja2VkX2ludDY0GFsgAygDQgIQARIZCg1w" +
+ "YWNrZWRfdWludDMyGFwgAygNQgIQARIZCg1wYWNrZWRfdWludDY0GF0gAygE" +
+ "QgIQARIZCg1wYWNrZWRfc2ludDMyGF4gAygRQgIQARIZCg1wYWNrZWRfc2lu" +
+ "dDY0GF8gAygSQgIQARIaCg5wYWNrZWRfZml4ZWQzMhhgIAMoB0ICEAESGgoO" +
+ "cGFja2VkX2ZpeGVkNjQYYSADKAZCAhABEhsKD3BhY2tlZF9zZml4ZWQzMhhi" +
+ "IAMoD0ICEAESGwoPcGFja2VkX3NmaXhlZDY0GGMgAygQQgIQARIYCgxwYWNr" +
+ "ZWRfZmxvYXQYZCADKAJCAhABEhkKDXBhY2tlZF9kb3VibGUYZSADKAFCAhAB" +
+ "EhcKC3BhY2tlZF9ib29sGGYgAygIQgIQARI3CgtwYWNrZWRfZW51bRhnIAMo" +
+ "DjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQASLIAwoRVGVz" +
+ "dFVucGFja2VkVHlwZXMSGgoOdW5wYWNrZWRfaW50MzIYWiADKAVCAhAAEhoK" +
+ "DnVucGFja2VkX2ludDY0GFsgAygDQgIQABIbCg91bnBhY2tlZF91aW50MzIY" +
+ "XCADKA1CAhAAEhsKD3VucGFja2VkX3VpbnQ2NBhdIAMoBEICEAASGwoPdW5w" +
+ "YWNrZWRfc2ludDMyGF4gAygRQgIQABIbCg91bnBhY2tlZF9zaW50NjQYXyAD" +
+ "KBJCAhAAEhwKEHVucGFja2VkX2ZpeGVkMzIYYCADKAdCAhAAEhwKEHVucGFj" +
+ "a2VkX2ZpeGVkNjQYYSADKAZCAhAAEh0KEXVucGFja2VkX3NmaXhlZDMyGGIg" +
+ "AygPQgIQABIdChF1bnBhY2tlZF9zZml4ZWQ2NBhjIAMoEEICEAASGgoOdW5w" +
+ "YWNrZWRfZmxvYXQYZCADKAJCAhAAEhsKD3VucGFja2VkX2RvdWJsZRhlIAMo" +
+ "AUICEAASGQoNdW5wYWNrZWRfYm9vbBhmIAMoCEICEAASOQoNdW5wYWNrZWRf" +
+ "ZW51bRhnIAMoDjIeLnByb3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtQgIQ" +
+ "ACIgChRUZXN0UGFja2VkRXh0ZW5zaW9ucyoICAEQgICAgAIimQQKFVRlc3RE" +
+ "eW5hbWljRXh0ZW5zaW9ucxIZChBzY2FsYXJfZXh0ZW5zaW9uGNAPIAEoBxI3" +
+ "Cg5lbnVtX2V4dGVuc2lvbhjRDyABKA4yHi5wcm90b2J1Zl91bml0dGVzdC5G" +
+ "b3JlaWduRW51bRJZChZkeW5hbWljX2VudW1fZXh0ZW5zaW9uGNIPIAEoDjI4" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3REeW5hbWljRXh0ZW5zaW9ucy5EeW5h" +
+ "bWljRW51bVR5cGUSPQoRbWVzc2FnZV9leHRlbnNpb24Y0w8gASgLMiEucHJv" +
+ "dG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2USXwoZZHluYW1pY19tZXNz" +
+ "YWdlX2V4dGVuc2lvbhjUDyABKAsyOy5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
+ "RHluYW1pY0V4dGVuc2lvbnMuRHluYW1pY01lc3NhZ2VUeXBlEhsKEnJlcGVh" +
+ "dGVkX2V4dGVuc2lvbhjVDyADKAkSHQoQcGFja2VkX2V4dGVuc2lvbhjWDyAD" +
+ "KBFCAhABGiwKEkR5bmFtaWNNZXNzYWdlVHlwZRIWCg1keW5hbWljX2ZpZWxk" +
+ "GLQQIAEoBSJHCg9EeW5hbWljRW51bVR5cGUSEAoLRFlOQU1JQ19GT08QmBES" +
+ "EAoLRFlOQU1JQ19CQVIQmRESEAoLRFlOQU1JQ19CQVoQmhEiwAEKI1Rlc3RS" +
+ "ZXBlYXRlZFNjYWxhckRpZmZlcmVudFRhZ1NpemVzEhgKEHJlcGVhdGVkX2Zp" +
+ "eGVkMzIYDCADKAcSFgoOcmVwZWF0ZWRfaW50MzIYDSADKAUSGQoQcmVwZWF0" +
+ "ZWRfZml4ZWQ2NBj+DyADKAYSFwoOcmVwZWF0ZWRfaW50NjQY/w8gAygDEhgK" +
+ "DnJlcGVhdGVkX2Zsb2F0GP7/DyADKAISGQoPcmVwZWF0ZWRfdWludDY0GP//" +
+ "DyADKAQiDAoKRm9vUmVxdWVzdCINCgtGb29SZXNwb25zZSIMCgpCYXJSZXF1" +
+ "ZXN0Ig0KC0JhclJlc3BvbnNlKkAKC0ZvcmVpZ25FbnVtEg8KC0ZPUkVJR05f" +
+ "Rk9PEAQSDwoLRk9SRUlHTl9CQVIQBRIPCgtGT1JFSUdOX0JBWhAGKkcKFFRl" +
+ "c3RFbnVtV2l0aER1cFZhbHVlEggKBEZPTzEQARIICgRCQVIxEAISBwoDQkFa" +
+ "EAMSCAoERk9PMhABEggKBEJBUjIQAiqJAQoOVGVzdFNwYXJzZUVudW0SDAoI" +
+ "U1BBUlNFX0EQexIOCghTUEFSU0VfQhCm5wMSDwoIU1BBUlNFX0MQsrGABhIV" +
+ "CghTUEFSU0VfRBDx//////////8BEhUKCFNQQVJTRV9FELTe/P///////wES" +
+ "DAoIU1BBUlNFX0YQABIMCghTUEFSU0VfRxACMpkBCgtUZXN0U2VydmljZRJE" +
+ "CgNGb28SHS5wcm90b2J1Zl91bml0dGVzdC5Gb29SZXF1ZXN0Gh4ucHJvdG9i" +
+ "dWZfdW5pdHRlc3QuRm9vUmVzcG9uc2USRAoDQmFyEh0ucHJvdG9idWZfdW5p" +
+ "dHRlc3QuQmFyUmVxdWVzdBoeLnByb3RvYnVmX3VuaXR0ZXN0LkJhclJlc3Bv" +
+ "bnNlOkYKGG9wdGlvbmFsX2ludDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3Vu" +
+ "aXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAEgASgFOkYKGG9wdGlvbmFsX2lu" +
+ "dDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl" +
+ "bnNpb25zGAIgASgDOkcKGW9wdGlvbmFsX3VpbnQzMl9leHRlbnNpb24SJC5w" +
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgDIAEoDTpHChlv" +
+ "cHRpb25hbF91aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3Qu" +
+ "VGVzdEFsbEV4dGVuc2lvbnMYBCABKAQ6RwoZb3B0aW9uYWxfc2ludDMyX2V4" +
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z" +
+ "GAUgASgROkcKGW9wdGlvbmFsX3NpbnQ2NF9leHRlbnNpb24SJC5wcm90b2J1" +
+ "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgGIAEoEjpIChpvcHRpb25h" +
+ "bF9maXhlZDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB" +
+ "bGxFeHRlbnNpb25zGAcgASgHOkgKGm9wdGlvbmFsX2ZpeGVkNjRfZXh0ZW5z" +
+ "aW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYCCAB" +
+ "KAY6SQobb3B0aW9uYWxfc2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYCSABKA86SQobb3B0aW9uYWxf" +
+ "c2ZpeGVkNjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFs" +
+ "bEV4dGVuc2lvbnMYCiABKBA6RgoYb3B0aW9uYWxfZmxvYXRfZXh0ZW5zaW9u" +
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYCyABKAI6" +
+ "RwoZb3B0aW9uYWxfZG91YmxlX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGAwgASgBOkUKF29wdGlvbmFsX2Jvb2xf" +
+ "ZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lv" +
+ "bnMYDSABKAg6RwoZb3B0aW9uYWxfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3Rv" +
+ "YnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGA4gASgJOkYKGG9wdGlv" +
+ "bmFsX2J5dGVzX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RB" +
+ "bGxFeHRlbnNpb25zGA8gASgMOnEKF29wdGlvbmFsZ3JvdXBfZXh0ZW5zaW9u" +
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYECABKAoy" +
+ "Ki5wcm90b2J1Zl91bml0dGVzdC5PcHRpb25hbEdyb3VwX2V4dGVuc2lvbjp+" +
+ "CiFvcHRpb25hbF9uZXN0ZWRfbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1" +
+ "Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgSIAEoCzItLnByb3RvYnVm" +
+ "X3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0ZWRNZXNzYWdlOnMKIm9wdGlv" +
+ "bmFsX2ZvcmVpZ25fbWVzc2FnZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgTIAEoCzIhLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LkZvcmVpZ25NZXNzYWdlOngKIW9wdGlvbmFsX2ltcG9ydF9tZXNzYWdl" +
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp" +
+ "b25zGBQgASgLMicucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0LkltcG9ydE1l" +
+ "c3NhZ2U6eAoeb3B0aW9uYWxfbmVzdGVkX2VudW1fZXh0ZW5zaW9uEiQucHJv" +
+ "dG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYFSABKA4yKi5wcm90" +
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsVHlwZXMuTmVzdGVkRW51bTptCh9vcHRp" +
+ "b25hbF9mb3JlaWduX2VudW1fZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl" +
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYFiABKA4yHi5wcm90b2J1Zl91bml0dGVz" +
+ "dC5Gb3JlaWduRW51bTpyCh5vcHRpb25hbF9pbXBvcnRfZW51bV9leHRlbnNp" +
+ "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgXIAEo" +
+ "DjIkLnByb3RvYnVmX3VuaXR0ZXN0X2ltcG9ydC5JbXBvcnRFbnVtOlEKH29w" +
+ "dGlvbmFsX3N0cmluZ19waWVjZV9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgYIAEoCUICCAI6SQoXb3B0aW9uYWxf" +
+ "Y29yZF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0" +
+ "ZW5zaW9ucxgZIAEoCUICCAE6RgoYcmVwZWF0ZWRfaW50MzJfZXh0ZW5zaW9u" +
+ "EiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYHyADKAU6" +
+ "RgoYcmVwZWF0ZWRfaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRl" +
+ "c3QuVGVzdEFsbEV4dGVuc2lvbnMYICADKAM6RwoZcmVwZWF0ZWRfdWludDMy" +
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp" +
+ "b25zGCEgAygNOkcKGXJlcGVhdGVkX3VpbnQ2NF9leHRlbnNpb24SJC5wcm90" +
+ "b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgiIAMoBDpHChlyZXBl" +
+ "YXRlZF9zaW50MzJfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
+ "dEFsbEV4dGVuc2lvbnMYIyADKBE6RwoZcmVwZWF0ZWRfc2ludDY0X2V4dGVu" +
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGCQg" +
+ "AygSOkgKGnJlcGVhdGVkX2ZpeGVkMzJfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYJSADKAc6SAoacmVwZWF0ZWRf" +
+ "Zml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxs" +
+ "RXh0ZW5zaW9ucxgmIAMoBjpJChtyZXBlYXRlZF9zZml4ZWQzMl9leHRlbnNp" +
+ "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgnIAMo" +
+ "DzpJChtyZXBlYXRlZF9zZml4ZWQ2NF9leHRlbnNpb24SJC5wcm90b2J1Zl91" +
+ "bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxgoIAMoEDpGChhyZXBlYXRlZF9m" +
+ "bG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0" +
+ "ZW5zaW9ucxgpIAMoAjpHChlyZXBlYXRlZF9kb3VibGVfZXh0ZW5zaW9uEiQu" +
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYKiADKAE6RQoX" +
+ "cmVwZWF0ZWRfYm9vbF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5U" +
+ "ZXN0QWxsRXh0ZW5zaW9ucxgrIAMoCDpHChlyZXBlYXRlZF9zdHJpbmdfZXh0" +
+ "ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMY" +
+ "LCADKAk6RgoYcmVwZWF0ZWRfYnl0ZXNfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYLSADKAw6cQoXcmVwZWF0ZWRn" +
+ "cm91cF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0" +
+ "ZW5zaW9ucxguIAMoCjIqLnByb3RvYnVmX3VuaXR0ZXN0LlJlcGVhdGVkR3Jv" +
+ "dXBfZXh0ZW5zaW9uOn4KIXJlcGVhdGVkX25lc3RlZF9tZXNzYWdlX2V4dGVu" +
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDAg" +
+ "AygLMi0ucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZE1l" +
+ "c3NhZ2U6cwoicmVwZWF0ZWRfZm9yZWlnbl9tZXNzYWdlX2V4dGVuc2lvbhIk" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDEgAygLMiEu" +
+ "cHJvdG9idWZfdW5pdHRlc3QuRm9yZWlnbk1lc3NhZ2U6eAohcmVwZWF0ZWRf" +
+ "aW1wb3J0X21lc3NhZ2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3Qu" +
+ "VGVzdEFsbEV4dGVuc2lvbnMYMiADKAsyJy5wcm90b2J1Zl91bml0dGVzdF9p" +
+ "bXBvcnQuSW1wb3J0TWVzc2FnZTp4Ch5yZXBlYXRlZF9uZXN0ZWRfZW51bV9l" +
+ "eHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9u" +
+ "cxgzIAMoDjIqLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxUeXBlcy5OZXN0" +
+ "ZWRFbnVtOm0KH3JlcGVhdGVkX2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5w" +
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg0IAMoDjIeLnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtOnIKHnJlcGVhdGVkX2ltcG9y" +
+ "dF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxF" +
+ "eHRlbnNpb25zGDUgAygOMiQucHJvdG9idWZfdW5pdHRlc3RfaW1wb3J0Lklt" +
+ "cG9ydEVudW06UQofcmVwZWF0ZWRfc3RyaW5nX3BpZWNlX2V4dGVuc2lvbhIk" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDYgAygJQgII" +
+ "AjpJChdyZXBlYXRlZF9jb3JkX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGDcgAygJQgIIATpJChdkZWZhdWx0X2lu" +
+ "dDMyX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRl" +
+ "bnNpb25zGD0gASgFOgI0MTpJChdkZWZhdWx0X2ludDY0X2V4dGVuc2lvbhIk" +
+ "LnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGD4gASgDOgI0" +
+ "MjpKChhkZWZhdWx0X3VpbnQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxg/IAEoDToCNDM6SgoYZGVmYXVsdF91" +
+ "aW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbEV4" +
+ "dGVuc2lvbnMYQCABKAQ6AjQ0OksKGGRlZmF1bHRfc2ludDMyX2V4dGVuc2lv" +
+ "bhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEEgASgR" +
+ "OgMtNDU6SgoYZGVmYXVsdF9zaW50NjRfZXh0ZW5zaW9uEiQucHJvdG9idWZf" +
+ "dW5pdHRlc3QuVGVzdEFsbEV4dGVuc2lvbnMYQiABKBI6AjQ2OksKGWRlZmF1" +
+ "bHRfZml4ZWQzMl9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0" +
+ "QWxsRXh0ZW5zaW9ucxhDIAEoBzoCNDc6SwoZZGVmYXVsdF9maXhlZDY0X2V4" +
+ "dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25z" +
+ "GEQgASgGOgI0ODpMChpkZWZhdWx0X3NmaXhlZDMyX2V4dGVuc2lvbhIkLnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEUgASgPOgI0OTpN" +
+ "ChpkZWZhdWx0X3NmaXhlZDY0X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEYgASgQOgMtNTA6SwoXZGVmYXVsdF9m" +
+ "bG9hdF9leHRlbnNpb24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0" +
+ "ZW5zaW9ucxhHIAEoAjoENTEuNTpNChhkZWZhdWx0X2RvdWJsZV9leHRlbnNp" +
+ "b24SJC5wcm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhIIAEo" +
+ "AToFNTIwMDA6SgoWZGVmYXVsdF9ib29sX2V4dGVuc2lvbhIkLnByb3RvYnVm" +
+ "X3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGEkgASgIOgR0cnVlOk0KGGRl" +
+ "ZmF1bHRfc3RyaW5nX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRl" +
+ "c3RBbGxFeHRlbnNpb25zGEogASgJOgVoZWxsbzpMChdkZWZhdWx0X2J5dGVz" +
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp" +
+ "b25zGEsgASgMOgV3b3JsZDp8Ch1kZWZhdWx0X25lc3RlZF9lbnVtX2V4dGVu" +
+ "c2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFEg" +
+ "ASgOMioucHJvdG9idWZfdW5pdHRlc3QuVGVzdEFsbFR5cGVzLk5lc3RlZEVu" +
+ "dW06A0JBUjp5Ch5kZWZhdWx0X2ZvcmVpZ25fZW51bV9leHRlbnNpb24SJC5w" +
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0QWxsRXh0ZW5zaW9ucxhSIAEoDjIeLnBy" +
+ "b3RvYnVmX3VuaXR0ZXN0LkZvcmVpZ25FbnVtOgtGT1JFSUdOX0JBUjp9Ch1k" +
+ "ZWZhdWx0X2ltcG9ydF9lbnVtX2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0" +
+ "ZXN0LlRlc3RBbGxFeHRlbnNpb25zGFMgASgOMiQucHJvdG9idWZfdW5pdHRl" +
+ "c3RfaW1wb3J0LkltcG9ydEVudW06CklNUE9SVF9CQVI6VQoeZGVmYXVsdF9z" +
+ "dHJpbmdfcGllY2VfZXh0ZW5zaW9uEiQucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
+ "dEFsbEV4dGVuc2lvbnMYVCABKAk6A2FiY0ICCAI6TQoWZGVmYXVsdF9jb3Jk" +
+ "X2V4dGVuc2lvbhIkLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RBbGxFeHRlbnNp" +
+ "b25zGFUgASgJOgMxMjNCAggBOkIKE215X2V4dGVuc2lvbl9zdHJpbmcSJS5w" +
+ "cm90b2J1Zl91bml0dGVzdC5UZXN0RmllbGRPcmRlcmluZ3MYMiABKAk6PwoQ" +
+ "bXlfZXh0ZW5zaW9uX2ludBIlLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RGaWVs" +
+ "ZE9yZGVyaW5ncxgFIAEoBTpLChZwYWNrZWRfaW50MzJfZXh0ZW5zaW9uEicu" +
+ "cHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYWiADKAVC" +
+ "AhABOksKFnBhY2tlZF9pbnQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhbIAMoA0ICEAE6TAoXcGFja2Vk" +
+ "X3VpbnQzMl9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFj" +
+ "a2VkRXh0ZW5zaW9ucxhcIAMoDUICEAE6TAoXcGFja2VkX3VpbnQ2NF9leHRl" +
+ "bnNpb24SJy5wcm90b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9u" +
+ "cxhdIAMoBEICEAE6TAoXcGFja2VkX3NpbnQzMl9leHRlbnNpb24SJy5wcm90" +
+ "b2J1Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxheIAMoEUICEAE6" +
+ "TAoXcGFja2VkX3NpbnQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0dGVz" +
+ "dC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhfIAMoEkICEAE6TQoYcGFja2VkX2Zp" +
+ "eGVkMzJfZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVzdFBhY2tl" +
+ "ZEV4dGVuc2lvbnMYYCADKAdCAhABOk0KGHBhY2tlZF9maXhlZDY0X2V4dGVu" +
+ "c2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25z" +
+ "GGEgAygGQgIQATpOChlwYWNrZWRfc2ZpeGVkMzJfZXh0ZW5zaW9uEicucHJv" +
+ "dG9idWZfdW5pdHRlc3QuVGVzdFBhY2tlZEV4dGVuc2lvbnMYYiADKA9CAhAB" +
+ "Ok4KGXBhY2tlZF9zZml4ZWQ2NF9leHRlbnNpb24SJy5wcm90b2J1Zl91bml0" +
+ "dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhjIAMoEEICEAE6SwoWcGFja2Vk" +
+ "X2Zsb2F0X2V4dGVuc2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNr" +
+ "ZWRFeHRlbnNpb25zGGQgAygCQgIQATpMChdwYWNrZWRfZG91YmxlX2V4dGVu" +
+ "c2lvbhInLnByb3RvYnVmX3VuaXR0ZXN0LlRlc3RQYWNrZWRFeHRlbnNpb25z" +
+ "GGUgAygBQgIQATpKChVwYWNrZWRfYm9vbF9leHRlbnNpb24SJy5wcm90b2J1" +
+ "Zl91bml0dGVzdC5UZXN0UGFja2VkRXh0ZW5zaW9ucxhmIAMoCEICEAE6agoV" +
+ "cGFja2VkX2VudW1fZXh0ZW5zaW9uEicucHJvdG9idWZfdW5pdHRlc3QuVGVz" +
+ "dFBhY2tlZEV4dGVuc2lvbnMYZyADKA4yHi5wcm90b2J1Zl91bml0dGVzdC5G" +
+ "b3JlaWduRW51bUICEAFCSkINVW5pdHRlc3RQcm90b0gBwj42CiFHb29nbGUu" +
+ "UHJvdG9jb2xCdWZmZXJzLlRlc3RQcm90b3MSEVVuaXRUZXN0UHJvdG9GaWxl");
+ pbd::FileDescriptor.InternalDescriptorAssigner assigner = delegate(pbd::FileDescriptor root) {
+ descriptor = root;
+ internal__static_protobuf_unittest_TestAllTypes__Descriptor = Descriptor.MessageTypes[0];
+ internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Builder>(internal__static_protobuf_unittest_TestAllTypes__Descriptor,
+ new string[] { "OptionalInt32", "OptionalInt64", "OptionalUint32", "OptionalUint64", "OptionalSint32", "OptionalSint64", "OptionalFixed32", "OptionalFixed64", "OptionalSfixed32", "OptionalSfixed64", "OptionalFloat", "OptionalDouble", "OptionalBool", "OptionalString", "OptionalBytes", "OptionalGroup", "OptionalNestedMessage", "OptionalForeignMessage", "OptionalImportMessage", "OptionalNestedEnum", "OptionalForeignEnum", "OptionalImportEnum", "OptionalStringPiece", "OptionalCord", "RepeatedInt32", "RepeatedInt64", "RepeatedUint32", "RepeatedUint64", "RepeatedSint32", "RepeatedSint64", "RepeatedFixed32", "RepeatedFixed64", "RepeatedSfixed32", "RepeatedSfixed64", "RepeatedFloat", "RepeatedDouble", "RepeatedBool", "RepeatedString", "RepeatedBytes", "RepeatedGroup", "RepeatedNestedMessage", "RepeatedForeignMessage", "RepeatedImportMessage", "RepeatedNestedEnum", "RepeatedForeignEnum", "RepeatedImportEnum", "RepeatedStringPiece", "RepeatedCord", "DefaultInt32", "DefaultInt64", "DefaultUint32", "DefaultUint64", "DefaultSint32", "DefaultSint64", "DefaultFixed32", "DefaultFixed64", "DefaultSfixed32", "DefaultSfixed64", "DefaultFloat", "DefaultDouble", "DefaultBool", "DefaultString", "DefaultBytes", "DefaultNestedEnum", "DefaultForeignEnum", "DefaultImportEnum", "DefaultStringPiece", "DefaultCord", });
+ internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor,
+ new string[] { "Bb", });
+ internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor = internal__static_protobuf_unittest_TestAllTypes__Descriptor.NestedTypes[2];
+ internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder>(internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor = Descriptor.MessageTypes[1];
+ internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields, global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Builder>(internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor,
+ new string[] { "DeprecatedInt32", });
+ internal__static_protobuf_unittest_ForeignMessage__Descriptor = Descriptor.MessageTypes[2];
+ internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder>(internal__static_protobuf_unittest_ForeignMessage__Descriptor,
+ new string[] { "C", });
+ internal__static_protobuf_unittest_TestAllExtensions__Descriptor = Descriptor.MessageTypes[3];
+ internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestAllExtensions, global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Builder>(internal__static_protobuf_unittest_TestAllExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor = Descriptor.MessageTypes[4];
+ internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension, global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Builder>(internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor = Descriptor.MessageTypes[5];
+ internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension, global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Builder>(internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestNestedExtension__Descriptor = Descriptor.MessageTypes[6];
+ internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedExtension, global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Builder>(internal__static_protobuf_unittest_TestNestedExtension__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Test = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor.Extensions[0]);
+ internal__static_protobuf_unittest_TestRequired__Descriptor = Descriptor.MessageTypes[7];
+ internal__static_protobuf_unittest_TestRequired__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequired, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder>(internal__static_protobuf_unittest_TestRequired__Descriptor,
+ new string[] { "A", "Dummy2", "B", "Dummy4", "Dummy5", "Dummy6", "Dummy7", "Dummy8", "Dummy9", "Dummy10", "Dummy11", "Dummy12", "Dummy13", "Dummy14", "Dummy15", "Dummy16", "Dummy17", "Dummy18", "Dummy19", "Dummy20", "Dummy21", "Dummy22", "Dummy23", "Dummy24", "Dummy25", "Dummy26", "Dummy27", "Dummy28", "Dummy29", "Dummy30", "Dummy31", "Dummy32", "C", });
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Single = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Multi = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestRequired>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor.Extensions[1]);
+ internal__static_protobuf_unittest_TestRequiredForeign__Descriptor = Descriptor.MessageTypes[8];
+ internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign, global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Builder>(internal__static_protobuf_unittest_TestRequiredForeign__Descriptor,
+ new string[] { "OptionalMessage", "RepeatedMessage", "Dummy", });
+ internal__static_protobuf_unittest_TestForeignNested__Descriptor = Descriptor.MessageTypes[9];
+ internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestForeignNested, global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Builder>(internal__static_protobuf_unittest_TestForeignNested__Descriptor,
+ new string[] { "ForeignNested", });
+ internal__static_protobuf_unittest_TestEmptyMessage__Descriptor = Descriptor.MessageTypes[10];
+ internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Builder>(internal__static_protobuf_unittest_TestEmptyMessage__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor = Descriptor.MessageTypes[11];
+ internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions, global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Builder>(internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor = Descriptor.MessageTypes[12];
+ internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges, global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Builder>(internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor = Descriptor.MessageTypes[13];
+ internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber, global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Builder>(internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor,
+ new string[] { "A", "Bb", });
+ internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor = Descriptor.MessageTypes[14];
+ internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage, global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder>(internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor,
+ new string[] { "A", "I", });
+ internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor = Descriptor.MessageTypes[15];
+ internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder>(internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor,
+ new string[] { "Bb", });
+ internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor = Descriptor.MessageTypes[16];
+ internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB, global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder>(internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor,
+ new string[] { "A", "OptionalInt32", });
+ internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor = Descriptor.MessageTypes[17];
+ internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor,
+ new string[] { "A", "Foo", "Bar", });
+ internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor = internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor = internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor.NestedTypes[1];
+ internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar, global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder>(internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor,
+ new string[] { "A", });
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor = Descriptor.MessageTypes[18];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor,
+ new string[] { "OptionalNestedMessage", });
+ internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor = internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage, global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder>(internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor,
+ new string[] { "NestedmessageRepeatedInt32", "NestedmessageRepeatedForeignmessage", });
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor = Descriptor.MessageTypes[19];
+ internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames, global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Builder>(internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor,
+ new string[] { "PrimitiveField", "StringField", "EnumField", "MessageField", "StringPieceField", "CordField", "RepeatedPrimitiveField", "RepeatedStringField", "RepeatedEnumField", "RepeatedMessageField", "RepeatedStringPieceField", "RepeatedCordField", });
+ internal__static_protobuf_unittest_TestFieldOrderings__Descriptor = Descriptor.MessageTypes[20];
+ internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings, global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Builder>(internal__static_protobuf_unittest_TestFieldOrderings__Descriptor,
+ new string[] { "MyString", "MyInt", "MyFloat", });
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor = Descriptor.MessageTypes[21];
+ internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues, global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Builder>(internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor,
+ new string[] { "EscapedBytes", "LargeUint32", "LargeUint64", "SmallInt32", "SmallInt64", "Utf8String", "ZeroFloat", "OneFloat", "SmallFloat", "NegativeOneFloat", "NegativeFloat", "LargeFloat", "SmallNegativeFloat", "InfDouble", "NegInfDouble", "NanDouble", "InfFloat", "NegInfFloat", "NanFloat", });
+ internal__static_protobuf_unittest_OneString__Descriptor = Descriptor.MessageTypes[22];
+ internal__static_protobuf_unittest_OneString__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneString, global::Google.ProtocolBuffers.TestProtos.OneString.Builder>(internal__static_protobuf_unittest_OneString__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_OneBytes__Descriptor = Descriptor.MessageTypes[23];
+ internal__static_protobuf_unittest_OneBytes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.OneBytes, global::Google.ProtocolBuffers.TestProtos.OneBytes.Builder>(internal__static_protobuf_unittest_OneBytes__Descriptor,
+ new string[] { "Data", });
+ internal__static_protobuf_unittest_TestPackedTypes__Descriptor = Descriptor.MessageTypes[24];
+ internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedTypes, global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Builder>(internal__static_protobuf_unittest_TestPackedTypes__Descriptor,
+ new string[] { "PackedInt32", "PackedInt64", "PackedUint32", "PackedUint64", "PackedSint32", "PackedSint64", "PackedFixed32", "PackedFixed64", "PackedSfixed32", "PackedSfixed64", "PackedFloat", "PackedDouble", "PackedBool", "PackedEnum", });
+ internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor = Descriptor.MessageTypes[25];
+ internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes, global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Builder>(internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor,
+ new string[] { "UnpackedInt32", "UnpackedInt64", "UnpackedUint32", "UnpackedUint64", "UnpackedSint32", "UnpackedSint64", "UnpackedFixed32", "UnpackedFixed64", "UnpackedSfixed32", "UnpackedSfixed64", "UnpackedFloat", "UnpackedDouble", "UnpackedBool", "UnpackedEnum", });
+ internal__static_protobuf_unittest_TestPackedExtensions__Descriptor = Descriptor.MessageTypes[26];
+ internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions, global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Builder>(internal__static_protobuf_unittest_TestPackedExtensions__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor = Descriptor.MessageTypes[27];
+ internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor,
+ new string[] { "ScalarExtension", "EnumExtension", "DynamicEnumExtension", "MessageExtension", "DynamicMessageExtension", "RepeatedExtension", "PackedExtension", });
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor = internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor.NestedTypes[0];
+ internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType, global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder>(internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor,
+ new string[] { "DynamicField", });
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor = Descriptor.MessageTypes[28];
+ internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes, global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Builder>(internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor,
+ new string[] { "RepeatedFixed32", "RepeatedInt32", "RepeatedFixed64", "RepeatedInt64", "RepeatedFloat", "RepeatedUint64", });
+ internal__static_protobuf_unittest_FooRequest__Descriptor = Descriptor.MessageTypes[29];
+ internal__static_protobuf_unittest_FooRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooRequest, global::Google.ProtocolBuffers.TestProtos.FooRequest.Builder>(internal__static_protobuf_unittest_FooRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_FooResponse__Descriptor = Descriptor.MessageTypes[30];
+ internal__static_protobuf_unittest_FooResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder>(internal__static_protobuf_unittest_FooResponse__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_BarRequest__Descriptor = Descriptor.MessageTypes[31];
+ internal__static_protobuf_unittest_BarRequest__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarRequest, global::Google.ProtocolBuffers.TestProtos.BarRequest.Builder>(internal__static_protobuf_unittest_BarRequest__Descriptor,
+ new string[] { });
+ internal__static_protobuf_unittest_BarResponse__Descriptor = Descriptor.MessageTypes[32];
+ internal__static_protobuf_unittest_BarResponse__FieldAccessorTable =
+ new pb::FieldAccess.FieldAccessorTable<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder>(internal__static_protobuf_unittest_BarResponse__Descriptor,
+ new string[] { });
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalInt32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[0]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalInt64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[1]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[2]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalUint64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[3]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSint32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[4]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSint64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[5]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFixed32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[6]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFixed64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[7]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSfixed32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[8]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalSfixed64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[9]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalFloatExtension = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[10]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalDoubleExtension = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[11]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalBoolExtension = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[12]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[13]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[14]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalGroupExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[15]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalNestedMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[16]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalForeignMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[17]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalImportMessageExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[18]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalNestedEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[19]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalForeignEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[20]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalImportEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[21]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalStringPieceExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[22]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.OptionalCordExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[23]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[24]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[25]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[26]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[27]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[28]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[29]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[30]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[31]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[32]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[33]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[34]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[35]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[36]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedStringExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[37]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedBytesExtension = pb::GeneratedRepeatExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[38]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedGroupExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[39]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedNestedMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[40]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedForeignMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[41]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedImportMessageExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ImportMessage>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[42]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedNestedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[43]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedForeignEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[44]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedImportEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[45]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedStringPieceExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[46]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.RepeatedCordExtension = pb::GeneratedRepeatExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[47]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultInt32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[48]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultInt64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[49]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultUint32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[50]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultUint64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[51]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSint32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[52]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSint64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[53]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFixed32Extension = pb::GeneratedSingleExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[54]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFixed64Extension = pb::GeneratedSingleExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[55]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSfixed32Extension = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[56]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultSfixed64Extension = pb::GeneratedSingleExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[57]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultFloatExtension = pb::GeneratedSingleExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[58]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultDoubleExtension = pb::GeneratedSingleExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[59]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultBoolExtension = pb::GeneratedSingleExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[60]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultStringExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[61]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultBytesExtension = pb::GeneratedSingleExtension<pb::ByteString>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[62]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultNestedEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[63]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultForeignEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[64]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultImportEnumExtension = pb::GeneratedSingleExtension<global::Google.ProtocolBuffers.TestProtos.ImportEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[65]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultStringPieceExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[66]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.DefaultCordExtension = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[67]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.MyExtensionString = pb::GeneratedSingleExtension<string>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[68]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.MyExtensionInt = pb::GeneratedSingleExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[69]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedInt32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[70]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedInt64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[71]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedUint32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[72]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedUint64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[73]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSint32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[74]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSint64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[75]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFixed32Extension = pb::GeneratedRepeatExtension<uint>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[76]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFixed64Extension = pb::GeneratedRepeatExtension<ulong>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[77]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSfixed32Extension = pb::GeneratedRepeatExtension<int>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[78]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedSfixed64Extension = pb::GeneratedRepeatExtension<long>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[79]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedFloatExtension = pb::GeneratedRepeatExtension<float>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[80]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedDoubleExtension = pb::GeneratedRepeatExtension<double>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[81]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedBoolExtension = pb::GeneratedRepeatExtension<bool>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[82]);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.PackedEnumExtension = pb::GeneratedRepeatExtension<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>.CreateInstance(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor.Extensions[83]);
+ pb::ExtensionRegistry registry = pb::ExtensionRegistry.CreateInstance();
+ RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.RegisterAllExtensions(registry);
+ global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.RegisterAllExtensions(registry);
+ return registry;
+ };
+ pbd::FileDescriptor.InternalBuildGeneratedFileFrom(descriptorData,
+ new pbd::FileDescriptor[] {
+ global::Google.ProtocolBuffers.DescriptorProtos.CSharpOptions.Descriptor,
+ global::Google.ProtocolBuffers.TestProtos.UnitTestImportProtoFile.Descriptor,
+ }, assigner);
+ }
+ #endregion
+
+ }
+ #region Enums
+ public enum ForeignEnum {
+ FOREIGN_FOO = 4,
+ FOREIGN_BAR = 5,
+ FOREIGN_BAZ = 6,
+ }
+
+ public enum TestEnumWithDupValue {
+ FOO1 = 1,
+ BAR1 = 2,
+ BAZ = 3,
+ FOO2 = 1,
+ BAR2 = 2,
+ }
+
+ public enum TestSparseEnum {
+ SPARSE_A = 123,
+ SPARSE_B = 62374,
+ SPARSE_C = 12589234,
+ SPARSE_D = -15,
+ SPARSE_E = -53452,
+ SPARSE_F = 0,
+ SPARSE_G = 2,
+ }
+
+ #endregion
+
+ #region Messages
+ public sealed partial class TestAllTypes : pb::GeneratedMessage<TestAllTypes, TestAllTypes.Builder> {
+ private static readonly TestAllTypes defaultInstance = new Builder().BuildPartial();
+ public static TestAllTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestAllTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllTypes, TestAllTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllTypes__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public enum NestedEnum {
+ FOO = 1,
+ BAR = 2,
+ BAZ = 3,
+ }
+
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllTypes_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private int bb_ = 0;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasBb) {
+ output.WriteInt32(1, Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ NestedMessage result = new NestedMessage();
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new NestedMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ NestedMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) return this;
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ Bb = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasBb {
+ get { return result.HasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class OptionalGroup : pb::GeneratedMessage<OptionalGroup, OptionalGroup.Builder> {
+ private static readonly OptionalGroup defaultInstance = new Builder().BuildPartial();
+ public static OptionalGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OptionalGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup, OptionalGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllTypes_OptionalGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(17, A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static OptionalGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OptionalGroup result = new OptionalGroup();
+
+ protected override OptionalGroup MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OptionalGroup();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Descriptor; }
+ }
+
+ public override OptionalGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance; }
+ }
+
+ public override OptionalGroup BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OptionalGroup returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup) {
+ return MergeFrom((OptionalGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 136: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class RepeatedGroup : pb::GeneratedMessage<RepeatedGroup, RepeatedGroup.Builder> {
+ private static readonly RepeatedGroup defaultInstance = new Builder().BuildPartial();
+ public static RepeatedGroup DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override RepeatedGroup ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup, RepeatedGroup.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllTypes_RepeatedGroup__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(47, A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static RepeatedGroup ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ RepeatedGroup result = new RepeatedGroup();
+
+ protected override RepeatedGroup MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new RepeatedGroup();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Descriptor; }
+ }
+
+ public override RepeatedGroup DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance; }
+ }
+
+ public override RepeatedGroup BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ RepeatedGroup returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup) {
+ return MergeFrom((RepeatedGroup) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 376: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int OptionalInt32FieldNumber = 1;
+ private bool hasOptionalInt32;
+ private int optionalInt32_ = 0;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public const int OptionalInt64FieldNumber = 2;
+ private bool hasOptionalInt64;
+ private long optionalInt64_ = 0L;
+ public bool HasOptionalInt64 {
+ get { return hasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return optionalInt64_; }
+ }
+
+ public const int OptionalUint32FieldNumber = 3;
+ private bool hasOptionalUint32;
+ private uint optionalUint32_ = 0;
+ public bool HasOptionalUint32 {
+ get { return hasOptionalUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalUint32 {
+ get { return optionalUint32_; }
+ }
+
+ public const int OptionalUint64FieldNumber = 4;
+ private bool hasOptionalUint64;
+ private ulong optionalUint64_ = 0UL;
+ public bool HasOptionalUint64 {
+ get { return hasOptionalUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalUint64 {
+ get { return optionalUint64_; }
+ }
+
+ public const int OptionalSint32FieldNumber = 5;
+ private bool hasOptionalSint32;
+ private int optionalSint32_ = 0;
+ public bool HasOptionalSint32 {
+ get { return hasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return optionalSint32_; }
+ }
+
+ public const int OptionalSint64FieldNumber = 6;
+ private bool hasOptionalSint64;
+ private long optionalSint64_ = 0;
+ public bool HasOptionalSint64 {
+ get { return hasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return optionalSint64_; }
+ }
+
+ public const int OptionalFixed32FieldNumber = 7;
+ private bool hasOptionalFixed32;
+ private uint optionalFixed32_ = 0;
+ public bool HasOptionalFixed32 {
+ get { return hasOptionalFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalFixed32 {
+ get { return optionalFixed32_; }
+ }
+
+ public const int OptionalFixed64FieldNumber = 8;
+ private bool hasOptionalFixed64;
+ private ulong optionalFixed64_ = 0;
+ public bool HasOptionalFixed64 {
+ get { return hasOptionalFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalFixed64 {
+ get { return optionalFixed64_; }
+ }
+
+ public const int OptionalSfixed32FieldNumber = 9;
+ private bool hasOptionalSfixed32;
+ private int optionalSfixed32_ = 0;
+ public bool HasOptionalSfixed32 {
+ get { return hasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return optionalSfixed32_; }
+ }
+
+ public const int OptionalSfixed64FieldNumber = 10;
+ private bool hasOptionalSfixed64;
+ private long optionalSfixed64_ = 0;
+ public bool HasOptionalSfixed64 {
+ get { return hasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return optionalSfixed64_; }
+ }
+
+ public const int OptionalFloatFieldNumber = 11;
+ private bool hasOptionalFloat;
+ private float optionalFloat_ = 0F;
+ public bool HasOptionalFloat {
+ get { return hasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return optionalFloat_; }
+ }
+
+ public const int OptionalDoubleFieldNumber = 12;
+ private bool hasOptionalDouble;
+ private double optionalDouble_ = 0D;
+ public bool HasOptionalDouble {
+ get { return hasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return optionalDouble_; }
+ }
+
+ public const int OptionalBoolFieldNumber = 13;
+ private bool hasOptionalBool;
+ private bool optionalBool_ = false;
+ public bool HasOptionalBool {
+ get { return hasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return optionalBool_; }
+ }
+
+ public const int OptionalStringFieldNumber = 14;
+ private bool hasOptionalString;
+ private string optionalString_ = "";
+ public bool HasOptionalString {
+ get { return hasOptionalString; }
+ }
+ public string OptionalString {
+ get { return optionalString_; }
+ }
+
+ public const int OptionalBytesFieldNumber = 15;
+ private bool hasOptionalBytes;
+ private pb::ByteString optionalBytes_ = pb::ByteString.Empty;
+ public bool HasOptionalBytes {
+ get { return hasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return optionalBytes_; }
+ }
+
+ public const int OptionalGroupFieldNumber = 16;
+ private bool hasOptionalGroup;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance;
+ public bool HasOptionalGroup {
+ get { return hasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
+ get { return optionalGroup_; }
+ }
+
+ public const int OptionalNestedMessageFieldNumber = 18;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_; }
+ }
+
+ public const int OptionalForeignMessageFieldNumber = 19;
+ private bool hasOptionalForeignMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ public bool HasOptionalForeignMessage {
+ get { return hasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
+ get { return optionalForeignMessage_; }
+ }
+
+ public const int OptionalImportMessageFieldNumber = 20;
+ private bool hasOptionalImportMessage;
+ private global::Google.ProtocolBuffers.TestProtos.ImportMessage optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance;
+ public bool HasOptionalImportMessage {
+ get { return hasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
+ get { return optionalImportMessage_; }
+ }
+
+ public const int OptionalNestedEnumFieldNumber = 21;
+ private bool hasOptionalNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.FOO;
+ public bool HasOptionalNestedEnum {
+ get { return hasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return optionalNestedEnum_; }
+ }
+
+ public const int OptionalForeignEnumFieldNumber = 22;
+ private bool hasOptionalForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasOptionalForeignEnum {
+ get { return hasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {
+ get { return optionalForeignEnum_; }
+ }
+
+ public const int OptionalImportEnumFieldNumber = 23;
+ private bool hasOptionalImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnum optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_FOO;
+ public bool HasOptionalImportEnum {
+ get { return hasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {
+ get { return optionalImportEnum_; }
+ }
+
+ public const int OptionalStringPieceFieldNumber = 24;
+ private bool hasOptionalStringPiece;
+ private string optionalStringPiece_ = "";
+ public bool HasOptionalStringPiece {
+ get { return hasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return optionalStringPiece_; }
+ }
+
+ public const int OptionalCordFieldNumber = 25;
+ private bool hasOptionalCord;
+ private string optionalCord_ = "";
+ public bool HasOptionalCord {
+ get { return hasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return optionalCord_; }
+ }
+
+ public const int RepeatedInt32FieldNumber = 31;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 32;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedUint32FieldNumber = 33;
+ private pbc::PopsicleList<uint> repeatedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedUint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint32_); }
+ }
+ public int RepeatedUint32Count {
+ get { return repeatedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedUint32(int index) {
+ return repeatedUint32_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 34;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public const int RepeatedSint32FieldNumber = 35;
+ private pbc::PopsicleList<int> repeatedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSint32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint32_); }
+ }
+ public int RepeatedSint32Count {
+ get { return repeatedSint32_.Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return repeatedSint32_[index];
+ }
+
+ public const int RepeatedSint64FieldNumber = 36;
+ private pbc::PopsicleList<long> repeatedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSint64_); }
+ }
+ public int RepeatedSint64Count {
+ get { return repeatedSint64_.Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return repeatedSint64_[index];
+ }
+
+ public const int RepeatedFixed32FieldNumber = 37;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 38;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedSfixed32FieldNumber = 39;
+ private pbc::PopsicleList<int> repeatedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed32_); }
+ }
+ public int RepeatedSfixed32Count {
+ get { return repeatedSfixed32_.Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return repeatedSfixed32_[index];
+ }
+
+ public const int RepeatedSfixed64FieldNumber = 40;
+ private pbc::PopsicleList<long> repeatedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedSfixed64_); }
+ }
+ public int RepeatedSfixed64Count {
+ get { return repeatedSfixed64_.Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return repeatedSfixed64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 41;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedDoubleFieldNumber = 42;
+ private pbc::PopsicleList<double> repeatedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> RepeatedDoubleList {
+ get { return pbc::Lists.AsReadOnly(repeatedDouble_); }
+ }
+ public int RepeatedDoubleCount {
+ get { return repeatedDouble_.Count; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return repeatedDouble_[index];
+ }
+
+ public const int RepeatedBoolFieldNumber = 43;
+ private pbc::PopsicleList<bool> repeatedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> RepeatedBoolList {
+ get { return pbc::Lists.AsReadOnly(repeatedBool_); }
+ }
+ public int RepeatedBoolCount {
+ get { return repeatedBool_.Count; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return repeatedBool_[index];
+ }
+
+ public const int RepeatedStringFieldNumber = 44;
+ private pbc::PopsicleList<string> repeatedString_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringList {
+ get { return pbc::Lists.AsReadOnly(repeatedString_); }
+ }
+ public int RepeatedStringCount {
+ get { return repeatedString_.Count; }
+ }
+ public string GetRepeatedString(int index) {
+ return repeatedString_[index];
+ }
+
+ public const int RepeatedBytesFieldNumber = 45;
+ private pbc::PopsicleList<pb::ByteString> repeatedBytes_ = new pbc::PopsicleList<pb::ByteString>();
+ public scg::IList<pb::ByteString> RepeatedBytesList {
+ get { return pbc::Lists.AsReadOnly(repeatedBytes_); }
+ }
+ public int RepeatedBytesCount {
+ get { return repeatedBytes_.Count; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return repeatedBytes_[index];
+ }
+
+ public const int RepeatedGroupFieldNumber = 46;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> repeatedGroup_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> RepeatedGroupList {
+ get { return repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return repeatedGroup_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return repeatedGroup_[index];
+ }
+
+ public const int RepeatedNestedMessageFieldNumber = 48;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> repeatedNestedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return repeatedNestedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return repeatedNestedMessage_[index];
+ }
+
+ public const int RepeatedForeignMessageFieldNumber = 49;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> repeatedForeignMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedForeignMessageList {
+ get { return repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return repeatedForeignMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return repeatedForeignMessage_[index];
+ }
+
+ public const int RepeatedImportMessageFieldNumber = 50;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> repeatedImportMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> RepeatedImportMessageList {
+ get { return repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return repeatedImportMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage GetRepeatedImportMessage(int index) {
+ return repeatedImportMessage_[index];
+ }
+
+ public const int RepeatedNestedEnumFieldNumber = 51;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> repeatedNestedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedNestedEnum_); }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return repeatedNestedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return repeatedNestedEnum_[index];
+ }
+
+ public const int RepeatedForeignEnumFieldNumber = 52;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> repeatedForeignEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedForeignEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedForeignEnum_); }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return repeatedForeignEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return repeatedForeignEnum_[index];
+ }
+
+ public const int RepeatedImportEnumFieldNumber = 53;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> repeatedImportEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> RepeatedImportEnumList {
+ get { return pbc::Lists.AsReadOnly(repeatedImportEnum_); }
+ }
+ public int RepeatedImportEnumCount {
+ get { return repeatedImportEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum GetRepeatedImportEnum(int index) {
+ return repeatedImportEnum_[index];
+ }
+
+ public const int RepeatedStringPieceFieldNumber = 54;
+ private pbc::PopsicleList<string> repeatedStringPiece_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPiece_); }
+ }
+ public int RepeatedStringPieceCount {
+ get { return repeatedStringPiece_.Count; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return repeatedStringPiece_[index];
+ }
+
+ public const int RepeatedCordFieldNumber = 55;
+ private pbc::PopsicleList<string> repeatedCord_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordList {
+ get { return pbc::Lists.AsReadOnly(repeatedCord_); }
+ }
+ public int RepeatedCordCount {
+ get { return repeatedCord_.Count; }
+ }
+ public string GetRepeatedCord(int index) {
+ return repeatedCord_[index];
+ }
+
+ public const int DefaultInt32FieldNumber = 61;
+ private bool hasDefaultInt32;
+ private int defaultInt32_ = 41;
+ public bool HasDefaultInt32 {
+ get { return hasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return defaultInt32_; }
+ }
+
+ public const int DefaultInt64FieldNumber = 62;
+ private bool hasDefaultInt64;
+ private long defaultInt64_ = 42L;
+ public bool HasDefaultInt64 {
+ get { return hasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return defaultInt64_; }
+ }
+
+ public const int DefaultUint32FieldNumber = 63;
+ private bool hasDefaultUint32;
+ private uint defaultUint32_ = 43;
+ public bool HasDefaultUint32 {
+ get { return hasDefaultUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultUint32 {
+ get { return defaultUint32_; }
+ }
+
+ public const int DefaultUint64FieldNumber = 64;
+ private bool hasDefaultUint64;
+ private ulong defaultUint64_ = 44UL;
+ public bool HasDefaultUint64 {
+ get { return hasDefaultUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultUint64 {
+ get { return defaultUint64_; }
+ }
+
+ public const int DefaultSint32FieldNumber = 65;
+ private bool hasDefaultSint32;
+ private int defaultSint32_ = -45;
+ public bool HasDefaultSint32 {
+ get { return hasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return defaultSint32_; }
+ }
+
+ public const int DefaultSint64FieldNumber = 66;
+ private bool hasDefaultSint64;
+ private long defaultSint64_ = 46;
+ public bool HasDefaultSint64 {
+ get { return hasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return defaultSint64_; }
+ }
+
+ public const int DefaultFixed32FieldNumber = 67;
+ private bool hasDefaultFixed32;
+ private uint defaultFixed32_ = 47;
+ public bool HasDefaultFixed32 {
+ get { return hasDefaultFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultFixed32 {
+ get { return defaultFixed32_; }
+ }
+
+ public const int DefaultFixed64FieldNumber = 68;
+ private bool hasDefaultFixed64;
+ private ulong defaultFixed64_ = 48;
+ public bool HasDefaultFixed64 {
+ get { return hasDefaultFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultFixed64 {
+ get { return defaultFixed64_; }
+ }
+
+ public const int DefaultSfixed32FieldNumber = 69;
+ private bool hasDefaultSfixed32;
+ private int defaultSfixed32_ = 49;
+ public bool HasDefaultSfixed32 {
+ get { return hasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return defaultSfixed32_; }
+ }
+
+ public const int DefaultSfixed64FieldNumber = 70;
+ private bool hasDefaultSfixed64;
+ private long defaultSfixed64_ = -50;
+ public bool HasDefaultSfixed64 {
+ get { return hasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return defaultSfixed64_; }
+ }
+
+ public const int DefaultFloatFieldNumber = 71;
+ private bool hasDefaultFloat;
+ private float defaultFloat_ = 51.5F;
+ public bool HasDefaultFloat {
+ get { return hasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return defaultFloat_; }
+ }
+
+ public const int DefaultDoubleFieldNumber = 72;
+ private bool hasDefaultDouble;
+ private double defaultDouble_ = 52000D;
+ public bool HasDefaultDouble {
+ get { return hasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return defaultDouble_; }
+ }
+
+ public const int DefaultBoolFieldNumber = 73;
+ private bool hasDefaultBool;
+ private bool defaultBool_ = true;
+ public bool HasDefaultBool {
+ get { return hasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return defaultBool_; }
+ }
+
+ public const int DefaultStringFieldNumber = 74;
+ private bool hasDefaultString;
+ private string defaultString_ = "hello";
+ public bool HasDefaultString {
+ get { return hasDefaultString; }
+ }
+ public string DefaultString {
+ get { return defaultString_; }
+ }
+
+ public const int DefaultBytesFieldNumber = 75;
+ private bool hasDefaultBytes;
+ private pb::ByteString defaultBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor.Fields[62].DefaultValue;
+ public bool HasDefaultBytes {
+ get { return hasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return defaultBytes_; }
+ }
+
+ public const int DefaultNestedEnumFieldNumber = 81;
+ private bool hasDefaultNestedEnum;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.BAR;
+ public bool HasDefaultNestedEnum {
+ get { return hasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
+ get { return defaultNestedEnum_; }
+ }
+
+ public const int DefaultForeignEnumFieldNumber = 82;
+ private bool hasDefaultForeignEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_BAR;
+ public bool HasDefaultForeignEnum {
+ get { return hasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {
+ get { return defaultForeignEnum_; }
+ }
+
+ public const int DefaultImportEnumFieldNumber = 83;
+ private bool hasDefaultImportEnum;
+ private global::Google.ProtocolBuffers.TestProtos.ImportEnum defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_BAR;
+ public bool HasDefaultImportEnum {
+ get { return hasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {
+ get { return defaultImportEnum_; }
+ }
+
+ public const int DefaultStringPieceFieldNumber = 84;
+ private bool hasDefaultStringPiece;
+ private string defaultStringPiece_ = "abc";
+ public bool HasDefaultStringPiece {
+ get { return hasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return defaultStringPiece_; }
+ }
+
+ public const int DefaultCordFieldNumber = 85;
+ private bool hasDefaultCord;
+ private string defaultCord_ = "123";
+ public bool HasDefaultCord {
+ get { return hasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return defaultCord_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasOptionalInt32) {
+ output.WriteInt32(1, OptionalInt32);
+ }
+ if (HasOptionalInt64) {
+ output.WriteInt64(2, OptionalInt64);
+ }
+ if (HasOptionalUint32) {
+ output.WriteUInt32(3, OptionalUint32);
+ }
+ if (HasOptionalUint64) {
+ output.WriteUInt64(4, OptionalUint64);
+ }
+ if (HasOptionalSint32) {
+ output.WriteSInt32(5, OptionalSint32);
+ }
+ if (HasOptionalSint64) {
+ output.WriteSInt64(6, OptionalSint64);
+ }
+ if (HasOptionalFixed32) {
+ output.WriteFixed32(7, OptionalFixed32);
+ }
+ if (HasOptionalFixed64) {
+ output.WriteFixed64(8, OptionalFixed64);
+ }
+ if (HasOptionalSfixed32) {
+ output.WriteSFixed32(9, OptionalSfixed32);
+ }
+ if (HasOptionalSfixed64) {
+ output.WriteSFixed64(10, OptionalSfixed64);
+ }
+ if (HasOptionalFloat) {
+ output.WriteFloat(11, OptionalFloat);
+ }
+ if (HasOptionalDouble) {
+ output.WriteDouble(12, OptionalDouble);
+ }
+ if (HasOptionalBool) {
+ output.WriteBool(13, OptionalBool);
+ }
+ if (HasOptionalString) {
+ output.WriteString(14, OptionalString);
+ }
+ if (HasOptionalBytes) {
+ output.WriteBytes(15, OptionalBytes);
+ }
+ if (HasOptionalGroup) {
+ output.WriteGroup(16, OptionalGroup);
+ }
+ if (HasOptionalNestedMessage) {
+ output.WriteMessage(18, OptionalNestedMessage);
+ }
+ if (HasOptionalForeignMessage) {
+ output.WriteMessage(19, OptionalForeignMessage);
+ }
+ if (HasOptionalImportMessage) {
+ output.WriteMessage(20, OptionalImportMessage);
+ }
+ if (HasOptionalNestedEnum) {
+ output.WriteEnum(21, (int) OptionalNestedEnum);
+ }
+ if (HasOptionalForeignEnum) {
+ output.WriteEnum(22, (int) OptionalForeignEnum);
+ }
+ if (HasOptionalImportEnum) {
+ output.WriteEnum(23, (int) OptionalImportEnum);
+ }
+ if (HasOptionalStringPiece) {
+ output.WriteString(24, OptionalStringPiece);
+ }
+ if (HasOptionalCord) {
+ output.WriteString(25, OptionalCord);
+ }
+ if (repeatedInt32_.Count > 0) {
+ foreach (int element in repeatedInt32_) {
+ output.WriteInt32(31, element);
+ }
+ }
+ if (repeatedInt64_.Count > 0) {
+ foreach (long element in repeatedInt64_) {
+ output.WriteInt64(32, element);
+ }
+ }
+ if (repeatedUint32_.Count > 0) {
+ foreach (uint element in repeatedUint32_) {
+ output.WriteUInt32(33, element);
+ }
+ }
+ if (repeatedUint64_.Count > 0) {
+ foreach (ulong element in repeatedUint64_) {
+ output.WriteUInt64(34, element);
+ }
+ }
+ if (repeatedSint32_.Count > 0) {
+ foreach (int element in repeatedSint32_) {
+ output.WriteSInt32(35, element);
+ }
+ }
+ if (repeatedSint64_.Count > 0) {
+ foreach (long element in repeatedSint64_) {
+ output.WriteSInt64(36, element);
+ }
+ }
+ if (repeatedFixed32_.Count > 0) {
+ foreach (uint element in repeatedFixed32_) {
+ output.WriteFixed32(37, element);
+ }
+ }
+ if (repeatedFixed64_.Count > 0) {
+ foreach (ulong element in repeatedFixed64_) {
+ output.WriteFixed64(38, element);
+ }
+ }
+ if (repeatedSfixed32_.Count > 0) {
+ foreach (int element in repeatedSfixed32_) {
+ output.WriteSFixed32(39, element);
+ }
+ }
+ if (repeatedSfixed64_.Count > 0) {
+ foreach (long element in repeatedSfixed64_) {
+ output.WriteSFixed64(40, element);
+ }
+ }
+ if (repeatedFloat_.Count > 0) {
+ foreach (float element in repeatedFloat_) {
+ output.WriteFloat(41, element);
+ }
+ }
+ if (repeatedDouble_.Count > 0) {
+ foreach (double element in repeatedDouble_) {
+ output.WriteDouble(42, element);
+ }
+ }
+ if (repeatedBool_.Count > 0) {
+ foreach (bool element in repeatedBool_) {
+ output.WriteBool(43, element);
+ }
+ }
+ if (repeatedString_.Count > 0) {
+ foreach (string element in repeatedString_) {
+ output.WriteString(44, element);
+ }
+ }
+ if (repeatedBytes_.Count > 0) {
+ foreach (pb::ByteString element in repeatedBytes_) {
+ output.WriteBytes(45, element);
+ }
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup element in RepeatedGroupList) {
+ output.WriteGroup(46, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage element in RepeatedNestedMessageList) {
+ output.WriteMessage(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedForeignMessageList) {
+ output.WriteMessage(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportMessage element in RepeatedImportMessageList) {
+ output.WriteMessage(50, element);
+ }
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (int element in repeatedNestedEnum_) {
+ output.WriteEnum(51, element);
+ }
+ }
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (int element in repeatedForeignEnum_) {
+ output.WriteEnum(52, element);
+ }
+ }
+ if (repeatedImportEnum_.Count > 0) {
+ foreach (int element in repeatedImportEnum_) {
+ output.WriteEnum(53, element);
+ }
+ }
+ if (repeatedStringPiece_.Count > 0) {
+ foreach (string element in repeatedStringPiece_) {
+ output.WriteString(54, element);
+ }
+ }
+ if (repeatedCord_.Count > 0) {
+ foreach (string element in repeatedCord_) {
+ output.WriteString(55, element);
+ }
+ }
+ if (HasDefaultInt32) {
+ output.WriteInt32(61, DefaultInt32);
+ }
+ if (HasDefaultInt64) {
+ output.WriteInt64(62, DefaultInt64);
+ }
+ if (HasDefaultUint32) {
+ output.WriteUInt32(63, DefaultUint32);
+ }
+ if (HasDefaultUint64) {
+ output.WriteUInt64(64, DefaultUint64);
+ }
+ if (HasDefaultSint32) {
+ output.WriteSInt32(65, DefaultSint32);
+ }
+ if (HasDefaultSint64) {
+ output.WriteSInt64(66, DefaultSint64);
+ }
+ if (HasDefaultFixed32) {
+ output.WriteFixed32(67, DefaultFixed32);
+ }
+ if (HasDefaultFixed64) {
+ output.WriteFixed64(68, DefaultFixed64);
+ }
+ if (HasDefaultSfixed32) {
+ output.WriteSFixed32(69, DefaultSfixed32);
+ }
+ if (HasDefaultSfixed64) {
+ output.WriteSFixed64(70, DefaultSfixed64);
+ }
+ if (HasDefaultFloat) {
+ output.WriteFloat(71, DefaultFloat);
+ }
+ if (HasDefaultDouble) {
+ output.WriteDouble(72, DefaultDouble);
+ }
+ if (HasDefaultBool) {
+ output.WriteBool(73, DefaultBool);
+ }
+ if (HasDefaultString) {
+ output.WriteString(74, DefaultString);
+ }
+ if (HasDefaultBytes) {
+ output.WriteBytes(75, DefaultBytes);
+ }
+ if (HasDefaultNestedEnum) {
+ output.WriteEnum(81, (int) DefaultNestedEnum);
+ }
+ if (HasDefaultForeignEnum) {
+ output.WriteEnum(82, (int) DefaultForeignEnum);
+ }
+ if (HasDefaultImportEnum) {
+ output.WriteEnum(83, (int) DefaultImportEnum);
+ }
+ if (HasDefaultStringPiece) {
+ output.WriteString(84, DefaultStringPiece);
+ }
+ if (HasDefaultCord) {
+ output.WriteString(85, DefaultCord);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, OptionalInt32);
+ }
+ if (HasOptionalInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(2, OptionalInt64);
+ }
+ if (HasOptionalUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(3, OptionalUint32);
+ }
+ if (HasOptionalUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(4, OptionalUint64);
+ }
+ if (HasOptionalSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(5, OptionalSint32);
+ }
+ if (HasOptionalSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(6, OptionalSint64);
+ }
+ if (HasOptionalFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(7, OptionalFixed32);
+ }
+ if (HasOptionalFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(8, OptionalFixed64);
+ }
+ if (HasOptionalSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(9, OptionalSfixed32);
+ }
+ if (HasOptionalSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(10, OptionalSfixed64);
+ }
+ if (HasOptionalFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, OptionalFloat);
+ }
+ if (HasOptionalDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(12, OptionalDouble);
+ }
+ if (HasOptionalBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(13, OptionalBool);
+ }
+ if (HasOptionalString) {
+ size += pb::CodedOutputStream.ComputeStringSize(14, OptionalString);
+ }
+ if (HasOptionalBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(15, OptionalBytes);
+ }
+ if (HasOptionalGroup) {
+ size += pb::CodedOutputStream.ComputeGroupSize(16, OptionalGroup);
+ }
+ if (HasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(18, OptionalNestedMessage);
+ }
+ if (HasOptionalForeignMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(19, OptionalForeignMessage);
+ }
+ if (HasOptionalImportMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(20, OptionalImportMessage);
+ }
+ if (HasOptionalNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(21, (int) OptionalNestedEnum);
+ }
+ if (HasOptionalForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(22, (int) OptionalForeignEnum);
+ }
+ if (HasOptionalImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(23, (int) OptionalImportEnum);
+ }
+ if (HasOptionalStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(24, OptionalStringPiece);
+ }
+ if (HasOptionalCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(25, OptionalCord);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in RepeatedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 2 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedDouble_.Count;
+ size += dataSize;
+ size += 2 * repeatedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * repeatedBool_.Count;
+ size += dataSize;
+ size += 2 * repeatedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedString_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (pb::ByteString element in RepeatedBytesList) {
+ dataSize += pb::CodedOutputStream.ComputeBytesSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedBytes_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup element in RepeatedGroupList) {
+ size += pb::CodedOutputStream.ComputeGroupSize(46, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage element in RepeatedNestedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(48, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedForeignMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(49, element);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportMessage element in RepeatedImportMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(50, element);
+ }
+ {
+ int dataSize = 0;
+ if (repeatedNestedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum element in repeatedNestedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedNestedEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedForeignEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in repeatedForeignEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedForeignEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ if (repeatedImportEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ImportEnum element in repeatedImportEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * repeatedImportEnum_.Count;
+ }
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedStringPiece_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedCord_.Count;
+ }
+ if (HasDefaultInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(61, DefaultInt32);
+ }
+ if (HasDefaultInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(62, DefaultInt64);
+ }
+ if (HasDefaultUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(63, DefaultUint32);
+ }
+ if (HasDefaultUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(64, DefaultUint64);
+ }
+ if (HasDefaultSint32) {
+ size += pb::CodedOutputStream.ComputeSInt32Size(65, DefaultSint32);
+ }
+ if (HasDefaultSint64) {
+ size += pb::CodedOutputStream.ComputeSInt64Size(66, DefaultSint64);
+ }
+ if (HasDefaultFixed32) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(67, DefaultFixed32);
+ }
+ if (HasDefaultFixed64) {
+ size += pb::CodedOutputStream.ComputeFixed64Size(68, DefaultFixed64);
+ }
+ if (HasDefaultSfixed32) {
+ size += pb::CodedOutputStream.ComputeSFixed32Size(69, DefaultSfixed32);
+ }
+ if (HasDefaultSfixed64) {
+ size += pb::CodedOutputStream.ComputeSFixed64Size(70, DefaultSfixed64);
+ }
+ if (HasDefaultFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(71, DefaultFloat);
+ }
+ if (HasDefaultDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(72, DefaultDouble);
+ }
+ if (HasDefaultBool) {
+ size += pb::CodedOutputStream.ComputeBoolSize(73, DefaultBool);
+ }
+ if (HasDefaultString) {
+ size += pb::CodedOutputStream.ComputeStringSize(74, DefaultString);
+ }
+ if (HasDefaultBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(75, DefaultBytes);
+ }
+ if (HasDefaultNestedEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(81, (int) DefaultNestedEnum);
+ }
+ if (HasDefaultForeignEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(82, (int) DefaultForeignEnum);
+ }
+ if (HasDefaultImportEnum) {
+ size += pb::CodedOutputStream.ComputeEnumSize(83, (int) DefaultImportEnum);
+ }
+ if (HasDefaultStringPiece) {
+ size += pb::CodedOutputStream.ComputeStringSize(84, DefaultStringPiece);
+ }
+ if (HasDefaultCord) {
+ size += pb::CodedOutputStream.ComputeStringSize(85, DefaultCord);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestAllTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllTypes ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllTypes prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestAllTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestAllTypes result = new TestAllTypes();
+
+ protected override TestAllTypes MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestAllTypes();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor; }
+ }
+
+ public override TestAllTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance; }
+ }
+
+ public override TestAllTypes BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.repeatedInt32_.MakeReadOnly();
+ result.repeatedInt64_.MakeReadOnly();
+ result.repeatedUint32_.MakeReadOnly();
+ result.repeatedUint64_.MakeReadOnly();
+ result.repeatedSint32_.MakeReadOnly();
+ result.repeatedSint64_.MakeReadOnly();
+ result.repeatedFixed32_.MakeReadOnly();
+ result.repeatedFixed64_.MakeReadOnly();
+ result.repeatedSfixed32_.MakeReadOnly();
+ result.repeatedSfixed64_.MakeReadOnly();
+ result.repeatedFloat_.MakeReadOnly();
+ result.repeatedDouble_.MakeReadOnly();
+ result.repeatedBool_.MakeReadOnly();
+ result.repeatedString_.MakeReadOnly();
+ result.repeatedBytes_.MakeReadOnly();
+ result.repeatedGroup_.MakeReadOnly();
+ result.repeatedNestedMessage_.MakeReadOnly();
+ result.repeatedForeignMessage_.MakeReadOnly();
+ result.repeatedImportMessage_.MakeReadOnly();
+ result.repeatedNestedEnum_.MakeReadOnly();
+ result.repeatedForeignEnum_.MakeReadOnly();
+ result.repeatedImportEnum_.MakeReadOnly();
+ result.repeatedStringPiece_.MakeReadOnly();
+ result.repeatedCord_.MakeReadOnly();
+ TestAllTypes returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllTypes) {
+ return MergeFrom((TestAllTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllTypes.DefaultInstance) return this;
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ if (other.HasOptionalInt64) {
+ OptionalInt64 = other.OptionalInt64;
+ }
+ if (other.HasOptionalUint32) {
+ OptionalUint32 = other.OptionalUint32;
+ }
+ if (other.HasOptionalUint64) {
+ OptionalUint64 = other.OptionalUint64;
+ }
+ if (other.HasOptionalSint32) {
+ OptionalSint32 = other.OptionalSint32;
+ }
+ if (other.HasOptionalSint64) {
+ OptionalSint64 = other.OptionalSint64;
+ }
+ if (other.HasOptionalFixed32) {
+ OptionalFixed32 = other.OptionalFixed32;
+ }
+ if (other.HasOptionalFixed64) {
+ OptionalFixed64 = other.OptionalFixed64;
+ }
+ if (other.HasOptionalSfixed32) {
+ OptionalSfixed32 = other.OptionalSfixed32;
+ }
+ if (other.HasOptionalSfixed64) {
+ OptionalSfixed64 = other.OptionalSfixed64;
+ }
+ if (other.HasOptionalFloat) {
+ OptionalFloat = other.OptionalFloat;
+ }
+ if (other.HasOptionalDouble) {
+ OptionalDouble = other.OptionalDouble;
+ }
+ if (other.HasOptionalBool) {
+ OptionalBool = other.OptionalBool;
+ }
+ if (other.HasOptionalString) {
+ OptionalString = other.OptionalString;
+ }
+ if (other.HasOptionalBytes) {
+ OptionalBytes = other.OptionalBytes;
+ }
+ if (other.HasOptionalGroup) {
+ MergeOptionalGroup(other.OptionalGroup);
+ }
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ if (other.HasOptionalForeignMessage) {
+ MergeOptionalForeignMessage(other.OptionalForeignMessage);
+ }
+ if (other.HasOptionalImportMessage) {
+ MergeOptionalImportMessage(other.OptionalImportMessage);
+ }
+ if (other.HasOptionalNestedEnum) {
+ OptionalNestedEnum = other.OptionalNestedEnum;
+ }
+ if (other.HasOptionalForeignEnum) {
+ OptionalForeignEnum = other.OptionalForeignEnum;
+ }
+ if (other.HasOptionalImportEnum) {
+ OptionalImportEnum = other.OptionalImportEnum;
+ }
+ if (other.HasOptionalStringPiece) {
+ OptionalStringPiece = other.OptionalStringPiece;
+ }
+ if (other.HasOptionalCord) {
+ OptionalCord = other.OptionalCord;
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ base.AddRange(other.repeatedInt32_, result.repeatedInt32_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ base.AddRange(other.repeatedInt64_, result.repeatedInt64_);
+ }
+ if (other.repeatedUint32_.Count != 0) {
+ base.AddRange(other.repeatedUint32_, result.repeatedUint32_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ base.AddRange(other.repeatedUint64_, result.repeatedUint64_);
+ }
+ if (other.repeatedSint32_.Count != 0) {
+ base.AddRange(other.repeatedSint32_, result.repeatedSint32_);
+ }
+ if (other.repeatedSint64_.Count != 0) {
+ base.AddRange(other.repeatedSint64_, result.repeatedSint64_);
+ }
+ if (other.repeatedFixed32_.Count != 0) {
+ base.AddRange(other.repeatedFixed32_, result.repeatedFixed32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ base.AddRange(other.repeatedFixed64_, result.repeatedFixed64_);
+ }
+ if (other.repeatedSfixed32_.Count != 0) {
+ base.AddRange(other.repeatedSfixed32_, result.repeatedSfixed32_);
+ }
+ if (other.repeatedSfixed64_.Count != 0) {
+ base.AddRange(other.repeatedSfixed64_, result.repeatedSfixed64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ base.AddRange(other.repeatedFloat_, result.repeatedFloat_);
+ }
+ if (other.repeatedDouble_.Count != 0) {
+ base.AddRange(other.repeatedDouble_, result.repeatedDouble_);
+ }
+ if (other.repeatedBool_.Count != 0) {
+ base.AddRange(other.repeatedBool_, result.repeatedBool_);
+ }
+ if (other.repeatedString_.Count != 0) {
+ base.AddRange(other.repeatedString_, result.repeatedString_);
+ }
+ if (other.repeatedBytes_.Count != 0) {
+ base.AddRange(other.repeatedBytes_, result.repeatedBytes_);
+ }
+ if (other.repeatedGroup_.Count != 0) {
+ base.AddRange(other.repeatedGroup_, result.repeatedGroup_);
+ }
+ if (other.repeatedNestedMessage_.Count != 0) {
+ base.AddRange(other.repeatedNestedMessage_, result.repeatedNestedMessage_);
+ }
+ if (other.repeatedForeignMessage_.Count != 0) {
+ base.AddRange(other.repeatedForeignMessage_, result.repeatedForeignMessage_);
+ }
+ if (other.repeatedImportMessage_.Count != 0) {
+ base.AddRange(other.repeatedImportMessage_, result.repeatedImportMessage_);
+ }
+ if (other.repeatedNestedEnum_.Count != 0) {
+ base.AddRange(other.repeatedNestedEnum_, result.repeatedNestedEnum_);
+ }
+ if (other.repeatedForeignEnum_.Count != 0) {
+ base.AddRange(other.repeatedForeignEnum_, result.repeatedForeignEnum_);
+ }
+ if (other.repeatedImportEnum_.Count != 0) {
+ base.AddRange(other.repeatedImportEnum_, result.repeatedImportEnum_);
+ }
+ if (other.repeatedStringPiece_.Count != 0) {
+ base.AddRange(other.repeatedStringPiece_, result.repeatedStringPiece_);
+ }
+ if (other.repeatedCord_.Count != 0) {
+ base.AddRange(other.repeatedCord_, result.repeatedCord_);
+ }
+ if (other.HasDefaultInt32) {
+ DefaultInt32 = other.DefaultInt32;
+ }
+ if (other.HasDefaultInt64) {
+ DefaultInt64 = other.DefaultInt64;
+ }
+ if (other.HasDefaultUint32) {
+ DefaultUint32 = other.DefaultUint32;
+ }
+ if (other.HasDefaultUint64) {
+ DefaultUint64 = other.DefaultUint64;
+ }
+ if (other.HasDefaultSint32) {
+ DefaultSint32 = other.DefaultSint32;
+ }
+ if (other.HasDefaultSint64) {
+ DefaultSint64 = other.DefaultSint64;
+ }
+ if (other.HasDefaultFixed32) {
+ DefaultFixed32 = other.DefaultFixed32;
+ }
+ if (other.HasDefaultFixed64) {
+ DefaultFixed64 = other.DefaultFixed64;
+ }
+ if (other.HasDefaultSfixed32) {
+ DefaultSfixed32 = other.DefaultSfixed32;
+ }
+ if (other.HasDefaultSfixed64) {
+ DefaultSfixed64 = other.DefaultSfixed64;
+ }
+ if (other.HasDefaultFloat) {
+ DefaultFloat = other.DefaultFloat;
+ }
+ if (other.HasDefaultDouble) {
+ DefaultDouble = other.DefaultDouble;
+ }
+ if (other.HasDefaultBool) {
+ DefaultBool = other.DefaultBool;
+ }
+ if (other.HasDefaultString) {
+ DefaultString = other.DefaultString;
+ }
+ if (other.HasDefaultBytes) {
+ DefaultBytes = other.DefaultBytes;
+ }
+ if (other.HasDefaultNestedEnum) {
+ DefaultNestedEnum = other.DefaultNestedEnum;
+ }
+ if (other.HasDefaultForeignEnum) {
+ DefaultForeignEnum = other.DefaultForeignEnum;
+ }
+ if (other.HasDefaultImportEnum) {
+ DefaultImportEnum = other.DefaultImportEnum;
+ }
+ if (other.HasDefaultStringPiece) {
+ DefaultStringPiece = other.DefaultStringPiece;
+ }
+ if (other.HasDefaultCord) {
+ DefaultCord = other.DefaultCord;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ OptionalInt32 = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ OptionalInt64 = input.ReadInt64();
+ break;
+ }
+ case 24: {
+ OptionalUint32 = input.ReadUInt32();
+ break;
+ }
+ case 32: {
+ OptionalUint64 = input.ReadUInt64();
+ break;
+ }
+ case 40: {
+ OptionalSint32 = input.ReadSInt32();
+ break;
+ }
+ case 48: {
+ OptionalSint64 = input.ReadSInt64();
+ break;
+ }
+ case 61: {
+ OptionalFixed32 = input.ReadFixed32();
+ break;
+ }
+ case 65: {
+ OptionalFixed64 = input.ReadFixed64();
+ break;
+ }
+ case 77: {
+ OptionalSfixed32 = input.ReadSFixed32();
+ break;
+ }
+ case 81: {
+ OptionalSfixed64 = input.ReadSFixed64();
+ break;
+ }
+ case 93: {
+ OptionalFloat = input.ReadFloat();
+ break;
+ }
+ case 97: {
+ OptionalDouble = input.ReadDouble();
+ break;
+ }
+ case 104: {
+ OptionalBool = input.ReadBool();
+ break;
+ }
+ case 114: {
+ OptionalString = input.ReadString();
+ break;
+ }
+ case 122: {
+ OptionalBytes = input.ReadBytes();
+ break;
+ }
+ case 131: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder();
+ if (HasOptionalGroup) {
+ subBuilder.MergeFrom(OptionalGroup);
+ }
+ input.ReadGroup(16, subBuilder, extensionRegistry);
+ OptionalGroup = subBuilder.BuildPartial();
+ break;
+ }
+ case 146: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (HasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 154: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (HasOptionalForeignMessage) {
+ subBuilder.MergeFrom(OptionalForeignMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalForeignMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 162: {
+ global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder();
+ if (HasOptionalImportMessage) {
+ subBuilder.MergeFrom(OptionalImportMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalImportMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 168: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(21, (ulong) rawValue);
+ } else {
+ OptionalNestedEnum = (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum) rawValue;
+ }
+ break;
+ }
+ case 176: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(22, (ulong) rawValue);
+ } else {
+ OptionalForeignEnum = (global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue;
+ }
+ break;
+ }
+ case 184: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ImportEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(23, (ulong) rawValue);
+ } else {
+ OptionalImportEnum = (global::Google.ProtocolBuffers.TestProtos.ImportEnum) rawValue;
+ }
+ break;
+ }
+ case 194: {
+ OptionalStringPiece = input.ReadString();
+ break;
+ }
+ case 202: {
+ OptionalCord = input.ReadString();
+ break;
+ }
+ case 248: {
+ AddRepeatedInt32(input.ReadInt32());
+ break;
+ }
+ case 256: {
+ AddRepeatedInt64(input.ReadInt64());
+ break;
+ }
+ case 264: {
+ AddRepeatedUint32(input.ReadUInt32());
+ break;
+ }
+ case 272: {
+ AddRepeatedUint64(input.ReadUInt64());
+ break;
+ }
+ case 280: {
+ AddRepeatedSint32(input.ReadSInt32());
+ break;
+ }
+ case 288: {
+ AddRepeatedSint64(input.ReadSInt64());
+ break;
+ }
+ case 301: {
+ AddRepeatedFixed32(input.ReadFixed32());
+ break;
+ }
+ case 305: {
+ AddRepeatedFixed64(input.ReadFixed64());
+ break;
+ }
+ case 317: {
+ AddRepeatedSfixed32(input.ReadSFixed32());
+ break;
+ }
+ case 321: {
+ AddRepeatedSfixed64(input.ReadSFixed64());
+ break;
+ }
+ case 333: {
+ AddRepeatedFloat(input.ReadFloat());
+ break;
+ }
+ case 337: {
+ AddRepeatedDouble(input.ReadDouble());
+ break;
+ }
+ case 344: {
+ AddRepeatedBool(input.ReadBool());
+ break;
+ }
+ case 354: {
+ AddRepeatedString(input.ReadString());
+ break;
+ }
+ case 362: {
+ AddRepeatedBytes(input.ReadBytes());
+ break;
+ }
+ case 371: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.CreateBuilder();
+ input.ReadGroup(46, subBuilder, extensionRegistry);
+ AddRepeatedGroup(subBuilder.BuildPartial());
+ break;
+ }
+ case 386: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddRepeatedNestedMessage(subBuilder.BuildPartial());
+ break;
+ }
+ case 394: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddRepeatedForeignMessage(subBuilder.BuildPartial());
+ break;
+ }
+ case 402: {
+ global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddRepeatedImportMessage(subBuilder.BuildPartial());
+ break;
+ }
+ case 408: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(51, (ulong) rawValue);
+ } else {
+ AddRepeatedNestedEnum((global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum) rawValue);
+ }
+ break;
+ }
+ case 416: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(52, (ulong) rawValue);
+ } else {
+ AddRepeatedForeignEnum((global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue);
+ }
+ break;
+ }
+ case 424: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ImportEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(53, (ulong) rawValue);
+ } else {
+ AddRepeatedImportEnum((global::Google.ProtocolBuffers.TestProtos.ImportEnum) rawValue);
+ }
+ break;
+ }
+ case 434: {
+ AddRepeatedStringPiece(input.ReadString());
+ break;
+ }
+ case 442: {
+ AddRepeatedCord(input.ReadString());
+ break;
+ }
+ case 488: {
+ DefaultInt32 = input.ReadInt32();
+ break;
+ }
+ case 496: {
+ DefaultInt64 = input.ReadInt64();
+ break;
+ }
+ case 504: {
+ DefaultUint32 = input.ReadUInt32();
+ break;
+ }
+ case 512: {
+ DefaultUint64 = input.ReadUInt64();
+ break;
+ }
+ case 520: {
+ DefaultSint32 = input.ReadSInt32();
+ break;
+ }
+ case 528: {
+ DefaultSint64 = input.ReadSInt64();
+ break;
+ }
+ case 541: {
+ DefaultFixed32 = input.ReadFixed32();
+ break;
+ }
+ case 545: {
+ DefaultFixed64 = input.ReadFixed64();
+ break;
+ }
+ case 557: {
+ DefaultSfixed32 = input.ReadSFixed32();
+ break;
+ }
+ case 561: {
+ DefaultSfixed64 = input.ReadSFixed64();
+ break;
+ }
+ case 573: {
+ DefaultFloat = input.ReadFloat();
+ break;
+ }
+ case 577: {
+ DefaultDouble = input.ReadDouble();
+ break;
+ }
+ case 584: {
+ DefaultBool = input.ReadBool();
+ break;
+ }
+ case 594: {
+ DefaultString = input.ReadString();
+ break;
+ }
+ case 602: {
+ DefaultBytes = input.ReadBytes();
+ break;
+ }
+ case 648: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(81, (ulong) rawValue);
+ } else {
+ DefaultNestedEnum = (global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum) rawValue;
+ }
+ break;
+ }
+ case 656: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(82, (ulong) rawValue);
+ } else {
+ DefaultForeignEnum = (global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue;
+ }
+ break;
+ }
+ case 664: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ImportEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(83, (ulong) rawValue);
+ } else {
+ DefaultImportEnum = (global::Google.ProtocolBuffers.TestProtos.ImportEnum) rawValue;
+ }
+ break;
+ }
+ case 674: {
+ DefaultStringPiece = input.ReadString();
+ break;
+ }
+ case 682: {
+ DefaultCord = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasOptionalInt32 {
+ get { return result.HasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalInt64 {
+ get { return result.HasOptionalInt64; }
+ }
+ public long OptionalInt64 {
+ get { return result.OptionalInt64; }
+ set { SetOptionalInt64(value); }
+ }
+ public Builder SetOptionalInt64(long value) {
+ result.hasOptionalInt64 = true;
+ result.optionalInt64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt64() {
+ result.hasOptionalInt64 = false;
+ result.optionalInt64_ = 0L;
+ return this;
+ }
+
+ public bool HasOptionalUint32 {
+ get { return result.HasOptionalUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalUint32 {
+ get { return result.OptionalUint32; }
+ set { SetOptionalUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalUint32(uint value) {
+ result.hasOptionalUint32 = true;
+ result.optionalUint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint32() {
+ result.hasOptionalUint32 = false;
+ result.optionalUint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalUint64 {
+ get { return result.HasOptionalUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalUint64 {
+ get { return result.OptionalUint64; }
+ set { SetOptionalUint64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalUint64(ulong value) {
+ result.hasOptionalUint64 = true;
+ result.optionalUint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalUint64() {
+ result.hasOptionalUint64 = false;
+ result.optionalUint64_ = 0UL;
+ return this;
+ }
+
+ public bool HasOptionalSint32 {
+ get { return result.HasOptionalSint32; }
+ }
+ public int OptionalSint32 {
+ get { return result.OptionalSint32; }
+ set { SetOptionalSint32(value); }
+ }
+ public Builder SetOptionalSint32(int value) {
+ result.hasOptionalSint32 = true;
+ result.optionalSint32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint32() {
+ result.hasOptionalSint32 = false;
+ result.optionalSint32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSint64 {
+ get { return result.HasOptionalSint64; }
+ }
+ public long OptionalSint64 {
+ get { return result.OptionalSint64; }
+ set { SetOptionalSint64(value); }
+ }
+ public Builder SetOptionalSint64(long value) {
+ result.hasOptionalSint64 = true;
+ result.optionalSint64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSint64() {
+ result.hasOptionalSint64 = false;
+ result.optionalSint64_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFixed32 {
+ get { return result.HasOptionalFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint OptionalFixed32 {
+ get { return result.OptionalFixed32; }
+ set { SetOptionalFixed32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalFixed32(uint value) {
+ result.hasOptionalFixed32 = true;
+ result.optionalFixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed32() {
+ result.hasOptionalFixed32 = false;
+ result.optionalFixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFixed64 {
+ get { return result.HasOptionalFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong OptionalFixed64 {
+ get { return result.OptionalFixed64; }
+ set { SetOptionalFixed64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetOptionalFixed64(ulong value) {
+ result.hasOptionalFixed64 = true;
+ result.optionalFixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFixed64() {
+ result.hasOptionalFixed64 = false;
+ result.optionalFixed64_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSfixed32 {
+ get { return result.HasOptionalSfixed32; }
+ }
+ public int OptionalSfixed32 {
+ get { return result.OptionalSfixed32; }
+ set { SetOptionalSfixed32(value); }
+ }
+ public Builder SetOptionalSfixed32(int value) {
+ result.hasOptionalSfixed32 = true;
+ result.optionalSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed32() {
+ result.hasOptionalSfixed32 = false;
+ result.optionalSfixed32_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalSfixed64 {
+ get { return result.HasOptionalSfixed64; }
+ }
+ public long OptionalSfixed64 {
+ get { return result.OptionalSfixed64; }
+ set { SetOptionalSfixed64(value); }
+ }
+ public Builder SetOptionalSfixed64(long value) {
+ result.hasOptionalSfixed64 = true;
+ result.optionalSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearOptionalSfixed64() {
+ result.hasOptionalSfixed64 = false;
+ result.optionalSfixed64_ = 0;
+ return this;
+ }
+
+ public bool HasOptionalFloat {
+ get { return result.HasOptionalFloat; }
+ }
+ public float OptionalFloat {
+ get { return result.OptionalFloat; }
+ set { SetOptionalFloat(value); }
+ }
+ public Builder SetOptionalFloat(float value) {
+ result.hasOptionalFloat = true;
+ result.optionalFloat_ = value;
+ return this;
+ }
+ public Builder ClearOptionalFloat() {
+ result.hasOptionalFloat = false;
+ result.optionalFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOptionalDouble {
+ get { return result.HasOptionalDouble; }
+ }
+ public double OptionalDouble {
+ get { return result.OptionalDouble; }
+ set { SetOptionalDouble(value); }
+ }
+ public Builder SetOptionalDouble(double value) {
+ result.hasOptionalDouble = true;
+ result.optionalDouble_ = value;
+ return this;
+ }
+ public Builder ClearOptionalDouble() {
+ result.hasOptionalDouble = false;
+ result.optionalDouble_ = 0D;
+ return this;
+ }
+
+ public bool HasOptionalBool {
+ get { return result.HasOptionalBool; }
+ }
+ public bool OptionalBool {
+ get { return result.OptionalBool; }
+ set { SetOptionalBool(value); }
+ }
+ public Builder SetOptionalBool(bool value) {
+ result.hasOptionalBool = true;
+ result.optionalBool_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBool() {
+ result.hasOptionalBool = false;
+ result.optionalBool_ = false;
+ return this;
+ }
+
+ public bool HasOptionalString {
+ get { return result.HasOptionalString; }
+ }
+ public string OptionalString {
+ get { return result.OptionalString; }
+ set { SetOptionalString(value); }
+ }
+ public Builder SetOptionalString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalString = true;
+ result.optionalString_ = value;
+ return this;
+ }
+ public Builder ClearOptionalString() {
+ result.hasOptionalString = false;
+ result.optionalString_ = "";
+ return this;
+ }
+
+ public bool HasOptionalBytes {
+ get { return result.HasOptionalBytes; }
+ }
+ public pb::ByteString OptionalBytes {
+ get { return result.OptionalBytes; }
+ set { SetOptionalBytes(value); }
+ }
+ public Builder SetOptionalBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalBytes = true;
+ result.optionalBytes_ = value;
+ return this;
+ }
+ public Builder ClearOptionalBytes() {
+ result.hasOptionalBytes = false;
+ result.optionalBytes_ = pb::ByteString.Empty;
+ return this;
+ }
+
+ public bool HasOptionalGroup {
+ get { return result.HasOptionalGroup; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup OptionalGroup {
+ get { return result.OptionalGroup; }
+ set { SetOptionalGroup(value); }
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = value;
+ return this;
+ }
+ public Builder SetOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalGroup = true;
+ result.optionalGroup_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalGroup &&
+ result.optionalGroup_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance) {
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.CreateBuilder(result.optionalGroup_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalGroup_ = value;
+ }
+ result.hasOptionalGroup = true;
+ return this;
+ }
+ public Builder ClearOptionalGroup() {
+ result.hasOptionalGroup = false;
+ result.optionalGroup_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.OptionalGroup.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalNestedMessage {
+ get { return result.HasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalForeignMessage {
+ get { return result.HasOptionalForeignMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage OptionalForeignMessage {
+ get { return result.OptionalForeignMessage; }
+ set { SetOptionalForeignMessage(value); }
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalForeignMessage = true;
+ result.optionalForeignMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalForeignMessage &&
+ result.optionalForeignMessage_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.optionalForeignMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalForeignMessage_ = value;
+ }
+ result.hasOptionalForeignMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalForeignMessage() {
+ result.hasOptionalForeignMessage = false;
+ result.optionalForeignMessage_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalImportMessage {
+ get { return result.HasOptionalImportMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage OptionalImportMessage {
+ get { return result.OptionalImportMessage; }
+ set { SetOptionalImportMessage(value); }
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalImportMessage = true;
+ result.optionalImportMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalImportMessage &&
+ result.optionalImportMessage_ != global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance) {
+ result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.CreateBuilder(result.optionalImportMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalImportMessage_ = value;
+ }
+ result.hasOptionalImportMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalImportMessage() {
+ result.hasOptionalImportMessage = false;
+ result.optionalImportMessage_ = global::Google.ProtocolBuffers.TestProtos.ImportMessage.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalNestedEnum {
+ get { return result.HasOptionalNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum OptionalNestedEnum {
+ get { return result.OptionalNestedEnum; }
+ set { SetOptionalNestedEnum(value); }
+ }
+ public Builder SetOptionalNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ result.hasOptionalNestedEnum = true;
+ result.optionalNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalNestedEnum() {
+ result.hasOptionalNestedEnum = false;
+ result.optionalNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.FOO;
+ return this;
+ }
+
+ public bool HasOptionalForeignEnum {
+ get { return result.HasOptionalForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum OptionalForeignEnum {
+ get { return result.OptionalForeignEnum; }
+ set { SetOptionalForeignEnum(value); }
+ }
+ public Builder SetOptionalForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.hasOptionalForeignEnum = true;
+ result.optionalForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalForeignEnum() {
+ result.hasOptionalForeignEnum = false;
+ result.optionalForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasOptionalImportEnum {
+ get { return result.HasOptionalImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum OptionalImportEnum {
+ get { return result.OptionalImportEnum; }
+ set { SetOptionalImportEnum(value); }
+ }
+ public Builder SetOptionalImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ result.hasOptionalImportEnum = true;
+ result.optionalImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearOptionalImportEnum() {
+ result.hasOptionalImportEnum = false;
+ result.optionalImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_FOO;
+ return this;
+ }
+
+ public bool HasOptionalStringPiece {
+ get { return result.HasOptionalStringPiece; }
+ }
+ public string OptionalStringPiece {
+ get { return result.OptionalStringPiece; }
+ set { SetOptionalStringPiece(value); }
+ }
+ public Builder SetOptionalStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalStringPiece = true;
+ result.optionalStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearOptionalStringPiece() {
+ result.hasOptionalStringPiece = false;
+ result.optionalStringPiece_ = "";
+ return this;
+ }
+
+ public bool HasOptionalCord {
+ get { return result.HasOptionalCord; }
+ }
+ public string OptionalCord {
+ get { return result.OptionalCord; }
+ set { SetOptionalCord(value); }
+ }
+ public Builder SetOptionalCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalCord = true;
+ result.optionalCord_ = value;
+ return this;
+ }
+ public Builder ClearOptionalCord() {
+ result.hasOptionalCord = false;
+ result.optionalCord_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return result.repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedInt32_);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return result.repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.repeatedInt64_);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedUint32List {
+ get { return result.repeatedUint32_; }
+ }
+ public int RepeatedUint32Count {
+ get { return result.RepeatedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedUint32(int index) {
+ return result.GetRepeatedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint32(int index, uint value) {
+ result.repeatedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint32(uint value) {
+ result.repeatedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.repeatedUint32_);
+ return this;
+ }
+ public Builder ClearRepeatedUint32() {
+ result.repeatedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return result.repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint64(ulong value) {
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.repeatedUint64_);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSint32List {
+ get { return result.repeatedSint32_; }
+ }
+ public int RepeatedSint32Count {
+ get { return result.RepeatedSint32Count; }
+ }
+ public int GetRepeatedSint32(int index) {
+ return result.GetRepeatedSint32(index);
+ }
+ public Builder SetRepeatedSint32(int index, int value) {
+ result.repeatedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint32(int value) {
+ result.repeatedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedSint32_);
+ return this;
+ }
+ public Builder ClearRepeatedSint32() {
+ result.repeatedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSint64List {
+ get { return result.repeatedSint64_; }
+ }
+ public int RepeatedSint64Count {
+ get { return result.RepeatedSint64Count; }
+ }
+ public long GetRepeatedSint64(int index) {
+ return result.GetRepeatedSint64(index);
+ }
+ public Builder SetRepeatedSint64(int index, long value) {
+ result.repeatedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSint64(long value) {
+ result.repeatedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSint64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.repeatedSint64_);
+ return this;
+ }
+ public Builder ClearRepeatedSint64() {
+ result.repeatedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return result.repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed32(uint value) {
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.repeatedFixed32_);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return result.repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed64(ulong value) {
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.repeatedFixed64_);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedSfixed32List {
+ get { return result.repeatedSfixed32_; }
+ }
+ public int RepeatedSfixed32Count {
+ get { return result.RepeatedSfixed32Count; }
+ }
+ public int GetRepeatedSfixed32(int index) {
+ return result.GetRepeatedSfixed32(index);
+ }
+ public Builder SetRepeatedSfixed32(int index, int value) {
+ result.repeatedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed32(int value) {
+ result.repeatedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedSfixed32_);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed32() {
+ result.repeatedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedSfixed64List {
+ get { return result.repeatedSfixed64_; }
+ }
+ public int RepeatedSfixed64Count {
+ get { return result.RepeatedSfixed64Count; }
+ }
+ public long GetRepeatedSfixed64(int index) {
+ return result.GetRepeatedSfixed64(index);
+ }
+ public Builder SetRepeatedSfixed64(int index, long value) {
+ result.repeatedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedSfixed64(long value) {
+ result.repeatedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedSfixed64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.repeatedSfixed64_);
+ return this;
+ }
+ public Builder ClearRepeatedSfixed64() {
+ result.repeatedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return result.repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ base.AddRange(values, result.repeatedFloat_);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> RepeatedDoubleList {
+ get { return result.repeatedDouble_; }
+ }
+ public int RepeatedDoubleCount {
+ get { return result.RepeatedDoubleCount; }
+ }
+ public double GetRepeatedDouble(int index) {
+ return result.GetRepeatedDouble(index);
+ }
+ public Builder SetRepeatedDouble(int index, double value) {
+ result.repeatedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedDouble(double value) {
+ result.repeatedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedDouble(scg::IEnumerable<double> values) {
+ base.AddRange(values, result.repeatedDouble_);
+ return this;
+ }
+ public Builder ClearRepeatedDouble() {
+ result.repeatedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> RepeatedBoolList {
+ get { return result.repeatedBool_; }
+ }
+ public int RepeatedBoolCount {
+ get { return result.RepeatedBoolCount; }
+ }
+ public bool GetRepeatedBool(int index) {
+ return result.GetRepeatedBool(index);
+ }
+ public Builder SetRepeatedBool(int index, bool value) {
+ result.repeatedBool_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBool(bool value) {
+ result.repeatedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBool(scg::IEnumerable<bool> values) {
+ base.AddRange(values, result.repeatedBool_);
+ return this;
+ }
+ public Builder ClearRepeatedBool() {
+ result.repeatedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringList {
+ get { return result.repeatedString_; }
+ }
+ public int RepeatedStringCount {
+ get { return result.RepeatedStringCount; }
+ }
+ public string GetRepeatedString(int index) {
+ return result.GetRepeatedString(index);
+ }
+ public Builder SetRepeatedString(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedString_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedString_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedString(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedString_);
+ return this;
+ }
+ public Builder ClearRepeatedString() {
+ result.repeatedString_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<pb::ByteString> RepeatedBytesList {
+ get { return result.repeatedBytes_; }
+ }
+ public int RepeatedBytesCount {
+ get { return result.RepeatedBytesCount; }
+ }
+ public pb::ByteString GetRepeatedBytes(int index) {
+ return result.GetRepeatedBytes(index);
+ }
+ public Builder SetRepeatedBytes(int index, pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedBytes_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedBytes_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedBytes(scg::IEnumerable<pb::ByteString> values) {
+ base.AddRange(values, result.repeatedBytes_);
+ return this;
+ }
+ public Builder ClearRepeatedBytes() {
+ result.repeatedBytes_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> RepeatedGroupList {
+ get { return result.repeatedGroup_; }
+ }
+ public int RepeatedGroupCount {
+ get { return result.RepeatedGroupCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup GetRepeatedGroup(int index) {
+ return result.GetRepeatedGroup(index);
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedGroup_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedGroup(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedGroup_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedGroup_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedGroup(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedGroup_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedGroup(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.RepeatedGroup> values) {
+ base.AddRange(values, result.repeatedGroup_);
+ return this;
+ }
+ public Builder ClearRepeatedGroup() {
+ result.repeatedGroup_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> RepeatedNestedMessageList {
+ get { return result.repeatedNestedMessage_; }
+ }
+ public int RepeatedNestedMessageCount {
+ get { return result.RepeatedNestedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage GetRepeatedNestedMessage(int index) {
+ return result.GetRepeatedNestedMessage(index);
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedNestedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedNestedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedNestedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedNestedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedNestedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage> values) {
+ base.AddRange(values, result.repeatedNestedMessage_);
+ return this;
+ }
+ public Builder ClearRepeatedNestedMessage() {
+ result.repeatedNestedMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedForeignMessageList {
+ get { return result.repeatedForeignMessage_; }
+ }
+ public int RepeatedForeignMessageCount {
+ get { return result.RepeatedForeignMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedForeignMessage(int index) {
+ return result.GetRepeatedForeignMessage(index);
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedForeignMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedForeignMessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedForeignMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedForeignMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedForeignMessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedForeignMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ base.AddRange(values, result.repeatedForeignMessage_);
+ return this;
+ }
+ public Builder ClearRepeatedForeignMessage() {
+ result.repeatedForeignMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportMessage> RepeatedImportMessageList {
+ get { return result.repeatedImportMessage_; }
+ }
+ public int RepeatedImportMessageCount {
+ get { return result.RepeatedImportMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportMessage GetRepeatedImportMessage(int index) {
+ return result.GetRepeatedImportMessage(index);
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedImportMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedImportMessage(int index, global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedImportMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedImportMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedImportMessage(global::Google.ProtocolBuffers.TestProtos.ImportMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedImportMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedImportMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportMessage> values) {
+ base.AddRange(values, result.repeatedImportMessage_);
+ return this;
+ }
+ public Builder ClearRepeatedImportMessage() {
+ result.repeatedImportMessage_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> RepeatedNestedEnumList {
+ get { return result.repeatedNestedEnum_; }
+ }
+ public int RepeatedNestedEnumCount {
+ get { return result.RepeatedNestedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum GetRepeatedNestedEnum(int index) {
+ return result.GetRepeatedNestedEnum(index);
+ }
+ public Builder SetRepeatedNestedEnum(int index, global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ result.repeatedNestedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ result.repeatedNestedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedNestedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum> values) {
+ base.AddRange(values, result.repeatedNestedEnum_);
+ return this;
+ }
+ public Builder ClearRepeatedNestedEnum() {
+ result.repeatedNestedEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedForeignEnumList {
+ get { return result.repeatedForeignEnum_; }
+ }
+ public int RepeatedForeignEnumCount {
+ get { return result.RepeatedForeignEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedForeignEnum(int index) {
+ return result.GetRepeatedForeignEnum(index);
+ }
+ public Builder SetRepeatedForeignEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.repeatedForeignEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.repeatedForeignEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedForeignEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ base.AddRange(values, result.repeatedForeignEnum_);
+ return this;
+ }
+ public Builder ClearRepeatedForeignEnum() {
+ result.repeatedForeignEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ImportEnum> RepeatedImportEnumList {
+ get { return result.repeatedImportEnum_; }
+ }
+ public int RepeatedImportEnumCount {
+ get { return result.RepeatedImportEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum GetRepeatedImportEnum(int index) {
+ return result.GetRepeatedImportEnum(index);
+ }
+ public Builder SetRepeatedImportEnum(int index, global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ result.repeatedImportEnum_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ result.repeatedImportEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedImportEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ImportEnum> values) {
+ base.AddRange(values, result.repeatedImportEnum_);
+ return this;
+ }
+ public Builder ClearRepeatedImportEnum() {
+ result.repeatedImportEnum_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceList {
+ get { return result.repeatedStringPiece_; }
+ }
+ public int RepeatedStringPieceCount {
+ get { return result.RepeatedStringPieceCount; }
+ }
+ public string GetRepeatedStringPiece(int index) {
+ return result.GetRepeatedStringPiece(index);
+ }
+ public Builder SetRepeatedStringPiece(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedStringPiece_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedStringPiece_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPiece(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedStringPiece_);
+ return this;
+ }
+ public Builder ClearRepeatedStringPiece() {
+ result.repeatedStringPiece_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordList {
+ get { return result.repeatedCord_; }
+ }
+ public int RepeatedCordCount {
+ get { return result.RepeatedCordCount; }
+ }
+ public string GetRepeatedCord(int index) {
+ return result.GetRepeatedCord(index);
+ }
+ public Builder SetRepeatedCord(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedCord_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedCord_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCord(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedCord_);
+ return this;
+ }
+ public Builder ClearRepeatedCord() {
+ result.repeatedCord_.Clear();
+ return this;
+ }
+
+ public bool HasDefaultInt32 {
+ get { return result.HasDefaultInt32; }
+ }
+ public int DefaultInt32 {
+ get { return result.DefaultInt32; }
+ set { SetDefaultInt32(value); }
+ }
+ public Builder SetDefaultInt32(int value) {
+ result.hasDefaultInt32 = true;
+ result.defaultInt32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt32() {
+ result.hasDefaultInt32 = false;
+ result.defaultInt32_ = 41;
+ return this;
+ }
+
+ public bool HasDefaultInt64 {
+ get { return result.HasDefaultInt64; }
+ }
+ public long DefaultInt64 {
+ get { return result.DefaultInt64; }
+ set { SetDefaultInt64(value); }
+ }
+ public Builder SetDefaultInt64(long value) {
+ result.hasDefaultInt64 = true;
+ result.defaultInt64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultInt64() {
+ result.hasDefaultInt64 = false;
+ result.defaultInt64_ = 42L;
+ return this;
+ }
+
+ public bool HasDefaultUint32 {
+ get { return result.HasDefaultUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultUint32 {
+ get { return result.DefaultUint32; }
+ set { SetDefaultUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultUint32(uint value) {
+ result.hasDefaultUint32 = true;
+ result.defaultUint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint32() {
+ result.hasDefaultUint32 = false;
+ result.defaultUint32_ = 43;
+ return this;
+ }
+
+ public bool HasDefaultUint64 {
+ get { return result.HasDefaultUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultUint64 {
+ get { return result.DefaultUint64; }
+ set { SetDefaultUint64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultUint64(ulong value) {
+ result.hasDefaultUint64 = true;
+ result.defaultUint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultUint64() {
+ result.hasDefaultUint64 = false;
+ result.defaultUint64_ = 44UL;
+ return this;
+ }
+
+ public bool HasDefaultSint32 {
+ get { return result.HasDefaultSint32; }
+ }
+ public int DefaultSint32 {
+ get { return result.DefaultSint32; }
+ set { SetDefaultSint32(value); }
+ }
+ public Builder SetDefaultSint32(int value) {
+ result.hasDefaultSint32 = true;
+ result.defaultSint32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint32() {
+ result.hasDefaultSint32 = false;
+ result.defaultSint32_ = -45;
+ return this;
+ }
+
+ public bool HasDefaultSint64 {
+ get { return result.HasDefaultSint64; }
+ }
+ public long DefaultSint64 {
+ get { return result.DefaultSint64; }
+ set { SetDefaultSint64(value); }
+ }
+ public Builder SetDefaultSint64(long value) {
+ result.hasDefaultSint64 = true;
+ result.defaultSint64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSint64() {
+ result.hasDefaultSint64 = false;
+ result.defaultSint64_ = 46;
+ return this;
+ }
+
+ public bool HasDefaultFixed32 {
+ get { return result.HasDefaultFixed32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint DefaultFixed32 {
+ get { return result.DefaultFixed32; }
+ set { SetDefaultFixed32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultFixed32(uint value) {
+ result.hasDefaultFixed32 = true;
+ result.defaultFixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed32() {
+ result.hasDefaultFixed32 = false;
+ result.defaultFixed32_ = 47;
+ return this;
+ }
+
+ public bool HasDefaultFixed64 {
+ get { return result.HasDefaultFixed64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong DefaultFixed64 {
+ get { return result.DefaultFixed64; }
+ set { SetDefaultFixed64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetDefaultFixed64(ulong value) {
+ result.hasDefaultFixed64 = true;
+ result.defaultFixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFixed64() {
+ result.hasDefaultFixed64 = false;
+ result.defaultFixed64_ = 48;
+ return this;
+ }
+
+ public bool HasDefaultSfixed32 {
+ get { return result.HasDefaultSfixed32; }
+ }
+ public int DefaultSfixed32 {
+ get { return result.DefaultSfixed32; }
+ set { SetDefaultSfixed32(value); }
+ }
+ public Builder SetDefaultSfixed32(int value) {
+ result.hasDefaultSfixed32 = true;
+ result.defaultSfixed32_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed32() {
+ result.hasDefaultSfixed32 = false;
+ result.defaultSfixed32_ = 49;
+ return this;
+ }
+
+ public bool HasDefaultSfixed64 {
+ get { return result.HasDefaultSfixed64; }
+ }
+ public long DefaultSfixed64 {
+ get { return result.DefaultSfixed64; }
+ set { SetDefaultSfixed64(value); }
+ }
+ public Builder SetDefaultSfixed64(long value) {
+ result.hasDefaultSfixed64 = true;
+ result.defaultSfixed64_ = value;
+ return this;
+ }
+ public Builder ClearDefaultSfixed64() {
+ result.hasDefaultSfixed64 = false;
+ result.defaultSfixed64_ = -50;
+ return this;
+ }
+
+ public bool HasDefaultFloat {
+ get { return result.HasDefaultFloat; }
+ }
+ public float DefaultFloat {
+ get { return result.DefaultFloat; }
+ set { SetDefaultFloat(value); }
+ }
+ public Builder SetDefaultFloat(float value) {
+ result.hasDefaultFloat = true;
+ result.defaultFloat_ = value;
+ return this;
+ }
+ public Builder ClearDefaultFloat() {
+ result.hasDefaultFloat = false;
+ result.defaultFloat_ = 51.5F;
+ return this;
+ }
+
+ public bool HasDefaultDouble {
+ get { return result.HasDefaultDouble; }
+ }
+ public double DefaultDouble {
+ get { return result.DefaultDouble; }
+ set { SetDefaultDouble(value); }
+ }
+ public Builder SetDefaultDouble(double value) {
+ result.hasDefaultDouble = true;
+ result.defaultDouble_ = value;
+ return this;
+ }
+ public Builder ClearDefaultDouble() {
+ result.hasDefaultDouble = false;
+ result.defaultDouble_ = 52000D;
+ return this;
+ }
+
+ public bool HasDefaultBool {
+ get { return result.HasDefaultBool; }
+ }
+ public bool DefaultBool {
+ get { return result.DefaultBool; }
+ set { SetDefaultBool(value); }
+ }
+ public Builder SetDefaultBool(bool value) {
+ result.hasDefaultBool = true;
+ result.defaultBool_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBool() {
+ result.hasDefaultBool = false;
+ result.defaultBool_ = true;
+ return this;
+ }
+
+ public bool HasDefaultString {
+ get { return result.HasDefaultString; }
+ }
+ public string DefaultString {
+ get { return result.DefaultString; }
+ set { SetDefaultString(value); }
+ }
+ public Builder SetDefaultString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDefaultString = true;
+ result.defaultString_ = value;
+ return this;
+ }
+ public Builder ClearDefaultString() {
+ result.hasDefaultString = false;
+ result.defaultString_ = "hello";
+ return this;
+ }
+
+ public bool HasDefaultBytes {
+ get { return result.HasDefaultBytes; }
+ }
+ public pb::ByteString DefaultBytes {
+ get { return result.DefaultBytes; }
+ set { SetDefaultBytes(value); }
+ }
+ public Builder SetDefaultBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDefaultBytes = true;
+ result.defaultBytes_ = value;
+ return this;
+ }
+ public Builder ClearDefaultBytes() {
+ result.hasDefaultBytes = false;
+ result.defaultBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Descriptor.Fields[62].DefaultValue;
+ return this;
+ }
+
+ public bool HasDefaultNestedEnum {
+ get { return result.HasDefaultNestedEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum DefaultNestedEnum {
+ get { return result.DefaultNestedEnum; }
+ set { SetDefaultNestedEnum(value); }
+ }
+ public Builder SetDefaultNestedEnum(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum value) {
+ result.hasDefaultNestedEnum = true;
+ result.defaultNestedEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultNestedEnum() {
+ result.hasDefaultNestedEnum = false;
+ result.defaultNestedEnum_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedEnum.BAR;
+ return this;
+ }
+
+ public bool HasDefaultForeignEnum {
+ get { return result.HasDefaultForeignEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum DefaultForeignEnum {
+ get { return result.DefaultForeignEnum; }
+ set { SetDefaultForeignEnum(value); }
+ }
+ public Builder SetDefaultForeignEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.hasDefaultForeignEnum = true;
+ result.defaultForeignEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultForeignEnum() {
+ result.hasDefaultForeignEnum = false;
+ result.defaultForeignEnum_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_BAR;
+ return this;
+ }
+
+ public bool HasDefaultImportEnum {
+ get { return result.HasDefaultImportEnum; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ImportEnum DefaultImportEnum {
+ get { return result.DefaultImportEnum; }
+ set { SetDefaultImportEnum(value); }
+ }
+ public Builder SetDefaultImportEnum(global::Google.ProtocolBuffers.TestProtos.ImportEnum value) {
+ result.hasDefaultImportEnum = true;
+ result.defaultImportEnum_ = value;
+ return this;
+ }
+ public Builder ClearDefaultImportEnum() {
+ result.hasDefaultImportEnum = false;
+ result.defaultImportEnum_ = global::Google.ProtocolBuffers.TestProtos.ImportEnum.IMPORT_BAR;
+ return this;
+ }
+
+ public bool HasDefaultStringPiece {
+ get { return result.HasDefaultStringPiece; }
+ }
+ public string DefaultStringPiece {
+ get { return result.DefaultStringPiece; }
+ set { SetDefaultStringPiece(value); }
+ }
+ public Builder SetDefaultStringPiece(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDefaultStringPiece = true;
+ result.defaultStringPiece_ = value;
+ return this;
+ }
+ public Builder ClearDefaultStringPiece() {
+ result.hasDefaultStringPiece = false;
+ result.defaultStringPiece_ = "abc";
+ return this;
+ }
+
+ public bool HasDefaultCord {
+ get { return result.HasDefaultCord; }
+ }
+ public string DefaultCord {
+ get { return result.DefaultCord; }
+ set { SetDefaultCord(value); }
+ }
+ public Builder SetDefaultCord(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDefaultCord = true;
+ result.defaultCord_ = value;
+ return this;
+ }
+ public Builder ClearDefaultCord() {
+ result.hasDefaultCord = false;
+ result.defaultCord_ = "123";
+ return this;
+ }
+ }
+ static TestAllTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestDeprecatedFields : pb::GeneratedMessage<TestDeprecatedFields, TestDeprecatedFields.Builder> {
+ private static readonly TestDeprecatedFields defaultInstance = new Builder().BuildPartial();
+ public static TestDeprecatedFields DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestDeprecatedFields ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDeprecatedFields__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDeprecatedFields, TestDeprecatedFields.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDeprecatedFields__FieldAccessorTable; }
+ }
+
+ public const int DeprecatedInt32FieldNumber = 1;
+ private bool hasDeprecatedInt32;
+ private int deprecatedInt32_ = 0;
+ public bool HasDeprecatedInt32 {
+ get { return hasDeprecatedInt32; }
+ }
+ public int DeprecatedInt32 {
+ get { return deprecatedInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasDeprecatedInt32) {
+ output.WriteInt32(1, DeprecatedInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasDeprecatedInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, DeprecatedInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDeprecatedFields ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDeprecatedFields prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDeprecatedFields, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestDeprecatedFields result = new TestDeprecatedFields();
+
+ protected override TestDeprecatedFields MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestDeprecatedFields();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.Descriptor; }
+ }
+
+ public override TestDeprecatedFields DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance; }
+ }
+
+ public override TestDeprecatedFields BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestDeprecatedFields returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDeprecatedFields) {
+ return MergeFrom((TestDeprecatedFields) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDeprecatedFields other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDeprecatedFields.DefaultInstance) return this;
+ if (other.HasDeprecatedInt32) {
+ DeprecatedInt32 = other.DeprecatedInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ DeprecatedInt32 = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasDeprecatedInt32 {
+ get { return result.HasDeprecatedInt32; }
+ }
+ public int DeprecatedInt32 {
+ get { return result.DeprecatedInt32; }
+ set { SetDeprecatedInt32(value); }
+ }
+ public Builder SetDeprecatedInt32(int value) {
+ result.hasDeprecatedInt32 = true;
+ result.deprecatedInt32_ = value;
+ return this;
+ }
+ public Builder ClearDeprecatedInt32() {
+ result.hasDeprecatedInt32 = false;
+ result.deprecatedInt32_ = 0;
+ return this;
+ }
+ }
+ static TestDeprecatedFields() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class ForeignMessage : pb::GeneratedMessage<ForeignMessage, ForeignMessage.Builder> {
+ private static readonly ForeignMessage defaultInstance = new Builder().BuildPartial();
+ public static ForeignMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override ForeignMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_ForeignMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<ForeignMessage, ForeignMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_ForeignMessage__FieldAccessorTable; }
+ }
+
+ public const int CFieldNumber = 1;
+ private bool hasC;
+ private int c_ = 0;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasC) {
+ output.WriteInt32(1, C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static ForeignMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static ForeignMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static ForeignMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(ForeignMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<ForeignMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ ForeignMessage result = new ForeignMessage();
+
+ protected override ForeignMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new ForeignMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Descriptor; }
+ }
+
+ public override ForeignMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance; }
+ }
+
+ public override ForeignMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ ForeignMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is ForeignMessage) {
+ return MergeFrom((ForeignMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(ForeignMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) return this;
+ if (other.HasC) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ C = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasC {
+ get { return result.HasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static ForeignMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestAllExtensions : pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder> {
+ private static readonly TestAllExtensions defaultInstance = new Builder().BuildPartial();
+ public static TestAllExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestAllExtensions DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestAllExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestAllExtensions, TestAllExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestAllExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessage<TestAllExtensions, TestAllExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestAllExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestAllExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestAllExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestAllExtensions ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestAllExtensions prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilder<TestAllExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestAllExtensions result = new TestAllExtensions();
+
+ protected override TestAllExtensions MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestAllExtensions();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.Descriptor; }
+ }
+
+ public override TestAllExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.DefaultInstance; }
+ }
+
+ public override TestAllExtensions BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestAllExtensions returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestAllExtensions) {
+ return MergeFrom((TestAllExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestAllExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestAllExtensions.DefaultInstance) return this;
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestAllExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class OptionalGroup_extension : pb::GeneratedMessage<OptionalGroup_extension, OptionalGroup_extension.Builder> {
+ private static readonly OptionalGroup_extension defaultInstance = new Builder().BuildPartial();
+ public static OptionalGroup_extension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OptionalGroup_extension DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OptionalGroup_extension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OptionalGroup_extension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OptionalGroup_extension, OptionalGroup_extension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OptionalGroup_extension__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 17;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(17, A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static OptionalGroup_extension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OptionalGroup_extension ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OptionalGroup_extension prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<OptionalGroup_extension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OptionalGroup_extension result = new OptionalGroup_extension();
+
+ protected override OptionalGroup_extension MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OptionalGroup_extension();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.Descriptor; }
+ }
+
+ public override OptionalGroup_extension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.DefaultInstance; }
+ }
+
+ public override OptionalGroup_extension BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OptionalGroup_extension returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OptionalGroup_extension) {
+ return MergeFrom((OptionalGroup_extension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OptionalGroup_extension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OptionalGroup_extension.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 136: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static OptionalGroup_extension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class RepeatedGroup_extension : pb::GeneratedMessage<RepeatedGroup_extension, RepeatedGroup_extension.Builder> {
+ private static readonly RepeatedGroup_extension defaultInstance = new Builder().BuildPartial();
+ public static RepeatedGroup_extension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override RepeatedGroup_extension DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override RepeatedGroup_extension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_RepeatedGroup_extension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<RepeatedGroup_extension, RepeatedGroup_extension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_RepeatedGroup_extension__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 47;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(47, A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(47, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static RepeatedGroup_extension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static RepeatedGroup_extension ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(RepeatedGroup_extension prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<RepeatedGroup_extension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ RepeatedGroup_extension result = new RepeatedGroup_extension();
+
+ protected override RepeatedGroup_extension MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new RepeatedGroup_extension();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.Descriptor; }
+ }
+
+ public override RepeatedGroup_extension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.DefaultInstance; }
+ }
+
+ public override RepeatedGroup_extension BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ RepeatedGroup_extension returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is RepeatedGroup_extension) {
+ return MergeFrom((RepeatedGroup_extension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(RepeatedGroup_extension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.RepeatedGroup_extension.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 376: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static RepeatedGroup_extension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestNestedExtension : pb::GeneratedMessage<TestNestedExtension, TestNestedExtension.Builder> {
+ private static readonly TestNestedExtension defaultInstance = new Builder().BuildPartial();
+ public static TestNestedExtension DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestNestedExtension ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestNestedExtension__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedExtension, TestNestedExtension.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestNestedExtension__FieldAccessorTable; }
+ }
+
+ public const int TestFieldNumber = 1002;
+ public static pb::GeneratedExtensionBase<string> Test;
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestNestedExtension ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedExtension ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedExtension ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedExtension prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedExtension, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestNestedExtension result = new TestNestedExtension();
+
+ protected override TestNestedExtension MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestNestedExtension();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.Descriptor; }
+ }
+
+ public override TestNestedExtension DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance; }
+ }
+
+ public override TestNestedExtension BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestNestedExtension returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedExtension) {
+ return MergeFrom((TestNestedExtension) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedExtension other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedExtension.DefaultInstance) return this;
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestNestedExtension() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestRequired : pb::GeneratedMessage<TestRequired, TestRequired.Builder> {
+ private static readonly TestRequired defaultInstance = new Builder().BuildPartial();
+ public static TestRequired DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequired DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestRequired ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRequired__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequired, TestRequired.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRequired__FieldAccessorTable; }
+ }
+
+ public const int SingleFieldNumber = 1000;
+ public static pb::GeneratedExtensionBase<global::Google.ProtocolBuffers.TestProtos.TestRequired> Single;
+ public const int MultiFieldNumber = 1001;
+ public static pb::GeneratedExtensionBase<scg::IList<global::Google.ProtocolBuffers.TestProtos.TestRequired>> Multi;
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int Dummy2FieldNumber = 2;
+ private bool hasDummy2;
+ private int dummy2_ = 0;
+ public bool HasDummy2 {
+ get { return hasDummy2; }
+ }
+ public int Dummy2 {
+ get { return dummy2_; }
+ }
+
+ public const int BFieldNumber = 3;
+ private bool hasB;
+ private int b_ = 0;
+ public bool HasB {
+ get { return hasB; }
+ }
+ public int B {
+ get { return b_; }
+ }
+
+ public const int Dummy4FieldNumber = 4;
+ private bool hasDummy4;
+ private int dummy4_ = 0;
+ public bool HasDummy4 {
+ get { return hasDummy4; }
+ }
+ public int Dummy4 {
+ get { return dummy4_; }
+ }
+
+ public const int Dummy5FieldNumber = 5;
+ private bool hasDummy5;
+ private int dummy5_ = 0;
+ public bool HasDummy5 {
+ get { return hasDummy5; }
+ }
+ public int Dummy5 {
+ get { return dummy5_; }
+ }
+
+ public const int Dummy6FieldNumber = 6;
+ private bool hasDummy6;
+ private int dummy6_ = 0;
+ public bool HasDummy6 {
+ get { return hasDummy6; }
+ }
+ public int Dummy6 {
+ get { return dummy6_; }
+ }
+
+ public const int Dummy7FieldNumber = 7;
+ private bool hasDummy7;
+ private int dummy7_ = 0;
+ public bool HasDummy7 {
+ get { return hasDummy7; }
+ }
+ public int Dummy7 {
+ get { return dummy7_; }
+ }
+
+ public const int Dummy8FieldNumber = 8;
+ private bool hasDummy8;
+ private int dummy8_ = 0;
+ public bool HasDummy8 {
+ get { return hasDummy8; }
+ }
+ public int Dummy8 {
+ get { return dummy8_; }
+ }
+
+ public const int Dummy9FieldNumber = 9;
+ private bool hasDummy9;
+ private int dummy9_ = 0;
+ public bool HasDummy9 {
+ get { return hasDummy9; }
+ }
+ public int Dummy9 {
+ get { return dummy9_; }
+ }
+
+ public const int Dummy10FieldNumber = 10;
+ private bool hasDummy10;
+ private int dummy10_ = 0;
+ public bool HasDummy10 {
+ get { return hasDummy10; }
+ }
+ public int Dummy10 {
+ get { return dummy10_; }
+ }
+
+ public const int Dummy11FieldNumber = 11;
+ private bool hasDummy11;
+ private int dummy11_ = 0;
+ public bool HasDummy11 {
+ get { return hasDummy11; }
+ }
+ public int Dummy11 {
+ get { return dummy11_; }
+ }
+
+ public const int Dummy12FieldNumber = 12;
+ private bool hasDummy12;
+ private int dummy12_ = 0;
+ public bool HasDummy12 {
+ get { return hasDummy12; }
+ }
+ public int Dummy12 {
+ get { return dummy12_; }
+ }
+
+ public const int Dummy13FieldNumber = 13;
+ private bool hasDummy13;
+ private int dummy13_ = 0;
+ public bool HasDummy13 {
+ get { return hasDummy13; }
+ }
+ public int Dummy13 {
+ get { return dummy13_; }
+ }
+
+ public const int Dummy14FieldNumber = 14;
+ private bool hasDummy14;
+ private int dummy14_ = 0;
+ public bool HasDummy14 {
+ get { return hasDummy14; }
+ }
+ public int Dummy14 {
+ get { return dummy14_; }
+ }
+
+ public const int Dummy15FieldNumber = 15;
+ private bool hasDummy15;
+ private int dummy15_ = 0;
+ public bool HasDummy15 {
+ get { return hasDummy15; }
+ }
+ public int Dummy15 {
+ get { return dummy15_; }
+ }
+
+ public const int Dummy16FieldNumber = 16;
+ private bool hasDummy16;
+ private int dummy16_ = 0;
+ public bool HasDummy16 {
+ get { return hasDummy16; }
+ }
+ public int Dummy16 {
+ get { return dummy16_; }
+ }
+
+ public const int Dummy17FieldNumber = 17;
+ private bool hasDummy17;
+ private int dummy17_ = 0;
+ public bool HasDummy17 {
+ get { return hasDummy17; }
+ }
+ public int Dummy17 {
+ get { return dummy17_; }
+ }
+
+ public const int Dummy18FieldNumber = 18;
+ private bool hasDummy18;
+ private int dummy18_ = 0;
+ public bool HasDummy18 {
+ get { return hasDummy18; }
+ }
+ public int Dummy18 {
+ get { return dummy18_; }
+ }
+
+ public const int Dummy19FieldNumber = 19;
+ private bool hasDummy19;
+ private int dummy19_ = 0;
+ public bool HasDummy19 {
+ get { return hasDummy19; }
+ }
+ public int Dummy19 {
+ get { return dummy19_; }
+ }
+
+ public const int Dummy20FieldNumber = 20;
+ private bool hasDummy20;
+ private int dummy20_ = 0;
+ public bool HasDummy20 {
+ get { return hasDummy20; }
+ }
+ public int Dummy20 {
+ get { return dummy20_; }
+ }
+
+ public const int Dummy21FieldNumber = 21;
+ private bool hasDummy21;
+ private int dummy21_ = 0;
+ public bool HasDummy21 {
+ get { return hasDummy21; }
+ }
+ public int Dummy21 {
+ get { return dummy21_; }
+ }
+
+ public const int Dummy22FieldNumber = 22;
+ private bool hasDummy22;
+ private int dummy22_ = 0;
+ public bool HasDummy22 {
+ get { return hasDummy22; }
+ }
+ public int Dummy22 {
+ get { return dummy22_; }
+ }
+
+ public const int Dummy23FieldNumber = 23;
+ private bool hasDummy23;
+ private int dummy23_ = 0;
+ public bool HasDummy23 {
+ get { return hasDummy23; }
+ }
+ public int Dummy23 {
+ get { return dummy23_; }
+ }
+
+ public const int Dummy24FieldNumber = 24;
+ private bool hasDummy24;
+ private int dummy24_ = 0;
+ public bool HasDummy24 {
+ get { return hasDummy24; }
+ }
+ public int Dummy24 {
+ get { return dummy24_; }
+ }
+
+ public const int Dummy25FieldNumber = 25;
+ private bool hasDummy25;
+ private int dummy25_ = 0;
+ public bool HasDummy25 {
+ get { return hasDummy25; }
+ }
+ public int Dummy25 {
+ get { return dummy25_; }
+ }
+
+ public const int Dummy26FieldNumber = 26;
+ private bool hasDummy26;
+ private int dummy26_ = 0;
+ public bool HasDummy26 {
+ get { return hasDummy26; }
+ }
+ public int Dummy26 {
+ get { return dummy26_; }
+ }
+
+ public const int Dummy27FieldNumber = 27;
+ private bool hasDummy27;
+ private int dummy27_ = 0;
+ public bool HasDummy27 {
+ get { return hasDummy27; }
+ }
+ public int Dummy27 {
+ get { return dummy27_; }
+ }
+
+ public const int Dummy28FieldNumber = 28;
+ private bool hasDummy28;
+ private int dummy28_ = 0;
+ public bool HasDummy28 {
+ get { return hasDummy28; }
+ }
+ public int Dummy28 {
+ get { return dummy28_; }
+ }
+
+ public const int Dummy29FieldNumber = 29;
+ private bool hasDummy29;
+ private int dummy29_ = 0;
+ public bool HasDummy29 {
+ get { return hasDummy29; }
+ }
+ public int Dummy29 {
+ get { return dummy29_; }
+ }
+
+ public const int Dummy30FieldNumber = 30;
+ private bool hasDummy30;
+ private int dummy30_ = 0;
+ public bool HasDummy30 {
+ get { return hasDummy30; }
+ }
+ public int Dummy30 {
+ get { return dummy30_; }
+ }
+
+ public const int Dummy31FieldNumber = 31;
+ private bool hasDummy31;
+ private int dummy31_ = 0;
+ public bool HasDummy31 {
+ get { return hasDummy31; }
+ }
+ public int Dummy31 {
+ get { return dummy31_; }
+ }
+
+ public const int Dummy32FieldNumber = 32;
+ private bool hasDummy32;
+ private int dummy32_ = 0;
+ public bool HasDummy32 {
+ get { return hasDummy32; }
+ }
+ public int Dummy32 {
+ get { return dummy32_; }
+ }
+
+ public const int CFieldNumber = 33;
+ private bool hasC;
+ private int c_ = 0;
+ public bool HasC {
+ get { return hasC; }
+ }
+ public int C {
+ get { return c_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!hasA) return false;
+ if (!hasB) return false;
+ if (!hasC) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(1, A);
+ }
+ if (HasDummy2) {
+ output.WriteInt32(2, Dummy2);
+ }
+ if (HasB) {
+ output.WriteInt32(3, B);
+ }
+ if (HasDummy4) {
+ output.WriteInt32(4, Dummy4);
+ }
+ if (HasDummy5) {
+ output.WriteInt32(5, Dummy5);
+ }
+ if (HasDummy6) {
+ output.WriteInt32(6, Dummy6);
+ }
+ if (HasDummy7) {
+ output.WriteInt32(7, Dummy7);
+ }
+ if (HasDummy8) {
+ output.WriteInt32(8, Dummy8);
+ }
+ if (HasDummy9) {
+ output.WriteInt32(9, Dummy9);
+ }
+ if (HasDummy10) {
+ output.WriteInt32(10, Dummy10);
+ }
+ if (HasDummy11) {
+ output.WriteInt32(11, Dummy11);
+ }
+ if (HasDummy12) {
+ output.WriteInt32(12, Dummy12);
+ }
+ if (HasDummy13) {
+ output.WriteInt32(13, Dummy13);
+ }
+ if (HasDummy14) {
+ output.WriteInt32(14, Dummy14);
+ }
+ if (HasDummy15) {
+ output.WriteInt32(15, Dummy15);
+ }
+ if (HasDummy16) {
+ output.WriteInt32(16, Dummy16);
+ }
+ if (HasDummy17) {
+ output.WriteInt32(17, Dummy17);
+ }
+ if (HasDummy18) {
+ output.WriteInt32(18, Dummy18);
+ }
+ if (HasDummy19) {
+ output.WriteInt32(19, Dummy19);
+ }
+ if (HasDummy20) {
+ output.WriteInt32(20, Dummy20);
+ }
+ if (HasDummy21) {
+ output.WriteInt32(21, Dummy21);
+ }
+ if (HasDummy22) {
+ output.WriteInt32(22, Dummy22);
+ }
+ if (HasDummy23) {
+ output.WriteInt32(23, Dummy23);
+ }
+ if (HasDummy24) {
+ output.WriteInt32(24, Dummy24);
+ }
+ if (HasDummy25) {
+ output.WriteInt32(25, Dummy25);
+ }
+ if (HasDummy26) {
+ output.WriteInt32(26, Dummy26);
+ }
+ if (HasDummy27) {
+ output.WriteInt32(27, Dummy27);
+ }
+ if (HasDummy28) {
+ output.WriteInt32(28, Dummy28);
+ }
+ if (HasDummy29) {
+ output.WriteInt32(29, Dummy29);
+ }
+ if (HasDummy30) {
+ output.WriteInt32(30, Dummy30);
+ }
+ if (HasDummy31) {
+ output.WriteInt32(31, Dummy31);
+ }
+ if (HasDummy32) {
+ output.WriteInt32(32, Dummy32);
+ }
+ if (HasC) {
+ output.WriteInt32(33, C);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (HasDummy2) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, Dummy2);
+ }
+ if (HasB) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, B);
+ }
+ if (HasDummy4) {
+ size += pb::CodedOutputStream.ComputeInt32Size(4, Dummy4);
+ }
+ if (HasDummy5) {
+ size += pb::CodedOutputStream.ComputeInt32Size(5, Dummy5);
+ }
+ if (HasDummy6) {
+ size += pb::CodedOutputStream.ComputeInt32Size(6, Dummy6);
+ }
+ if (HasDummy7) {
+ size += pb::CodedOutputStream.ComputeInt32Size(7, Dummy7);
+ }
+ if (HasDummy8) {
+ size += pb::CodedOutputStream.ComputeInt32Size(8, Dummy8);
+ }
+ if (HasDummy9) {
+ size += pb::CodedOutputStream.ComputeInt32Size(9, Dummy9);
+ }
+ if (HasDummy10) {
+ size += pb::CodedOutputStream.ComputeInt32Size(10, Dummy10);
+ }
+ if (HasDummy11) {
+ size += pb::CodedOutputStream.ComputeInt32Size(11, Dummy11);
+ }
+ if (HasDummy12) {
+ size += pb::CodedOutputStream.ComputeInt32Size(12, Dummy12);
+ }
+ if (HasDummy13) {
+ size += pb::CodedOutputStream.ComputeInt32Size(13, Dummy13);
+ }
+ if (HasDummy14) {
+ size += pb::CodedOutputStream.ComputeInt32Size(14, Dummy14);
+ }
+ if (HasDummy15) {
+ size += pb::CodedOutputStream.ComputeInt32Size(15, Dummy15);
+ }
+ if (HasDummy16) {
+ size += pb::CodedOutputStream.ComputeInt32Size(16, Dummy16);
+ }
+ if (HasDummy17) {
+ size += pb::CodedOutputStream.ComputeInt32Size(17, Dummy17);
+ }
+ if (HasDummy18) {
+ size += pb::CodedOutputStream.ComputeInt32Size(18, Dummy18);
+ }
+ if (HasDummy19) {
+ size += pb::CodedOutputStream.ComputeInt32Size(19, Dummy19);
+ }
+ if (HasDummy20) {
+ size += pb::CodedOutputStream.ComputeInt32Size(20, Dummy20);
+ }
+ if (HasDummy21) {
+ size += pb::CodedOutputStream.ComputeInt32Size(21, Dummy21);
+ }
+ if (HasDummy22) {
+ size += pb::CodedOutputStream.ComputeInt32Size(22, Dummy22);
+ }
+ if (HasDummy23) {
+ size += pb::CodedOutputStream.ComputeInt32Size(23, Dummy23);
+ }
+ if (HasDummy24) {
+ size += pb::CodedOutputStream.ComputeInt32Size(24, Dummy24);
+ }
+ if (HasDummy25) {
+ size += pb::CodedOutputStream.ComputeInt32Size(25, Dummy25);
+ }
+ if (HasDummy26) {
+ size += pb::CodedOutputStream.ComputeInt32Size(26, Dummy26);
+ }
+ if (HasDummy27) {
+ size += pb::CodedOutputStream.ComputeInt32Size(27, Dummy27);
+ }
+ if (HasDummy28) {
+ size += pb::CodedOutputStream.ComputeInt32Size(28, Dummy28);
+ }
+ if (HasDummy29) {
+ size += pb::CodedOutputStream.ComputeInt32Size(29, Dummy29);
+ }
+ if (HasDummy30) {
+ size += pb::CodedOutputStream.ComputeInt32Size(30, Dummy30);
+ }
+ if (HasDummy31) {
+ size += pb::CodedOutputStream.ComputeInt32Size(31, Dummy31);
+ }
+ if (HasDummy32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(32, Dummy32);
+ }
+ if (HasC) {
+ size += pb::CodedOutputStream.ComputeInt32Size(33, C);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestRequired ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequired ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequired ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequired ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequired prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequired, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestRequired result = new TestRequired();
+
+ protected override TestRequired MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestRequired();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequired.Descriptor; }
+ }
+
+ public override TestRequired DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance; }
+ }
+
+ public override TestRequired BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestRequired returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequired) {
+ return MergeFrom((TestRequired) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequired other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasDummy2) {
+ Dummy2 = other.Dummy2;
+ }
+ if (other.HasB) {
+ B = other.B;
+ }
+ if (other.HasDummy4) {
+ Dummy4 = other.Dummy4;
+ }
+ if (other.HasDummy5) {
+ Dummy5 = other.Dummy5;
+ }
+ if (other.HasDummy6) {
+ Dummy6 = other.Dummy6;
+ }
+ if (other.HasDummy7) {
+ Dummy7 = other.Dummy7;
+ }
+ if (other.HasDummy8) {
+ Dummy8 = other.Dummy8;
+ }
+ if (other.HasDummy9) {
+ Dummy9 = other.Dummy9;
+ }
+ if (other.HasDummy10) {
+ Dummy10 = other.Dummy10;
+ }
+ if (other.HasDummy11) {
+ Dummy11 = other.Dummy11;
+ }
+ if (other.HasDummy12) {
+ Dummy12 = other.Dummy12;
+ }
+ if (other.HasDummy13) {
+ Dummy13 = other.Dummy13;
+ }
+ if (other.HasDummy14) {
+ Dummy14 = other.Dummy14;
+ }
+ if (other.HasDummy15) {
+ Dummy15 = other.Dummy15;
+ }
+ if (other.HasDummy16) {
+ Dummy16 = other.Dummy16;
+ }
+ if (other.HasDummy17) {
+ Dummy17 = other.Dummy17;
+ }
+ if (other.HasDummy18) {
+ Dummy18 = other.Dummy18;
+ }
+ if (other.HasDummy19) {
+ Dummy19 = other.Dummy19;
+ }
+ if (other.HasDummy20) {
+ Dummy20 = other.Dummy20;
+ }
+ if (other.HasDummy21) {
+ Dummy21 = other.Dummy21;
+ }
+ if (other.HasDummy22) {
+ Dummy22 = other.Dummy22;
+ }
+ if (other.HasDummy23) {
+ Dummy23 = other.Dummy23;
+ }
+ if (other.HasDummy24) {
+ Dummy24 = other.Dummy24;
+ }
+ if (other.HasDummy25) {
+ Dummy25 = other.Dummy25;
+ }
+ if (other.HasDummy26) {
+ Dummy26 = other.Dummy26;
+ }
+ if (other.HasDummy27) {
+ Dummy27 = other.Dummy27;
+ }
+ if (other.HasDummy28) {
+ Dummy28 = other.Dummy28;
+ }
+ if (other.HasDummy29) {
+ Dummy29 = other.Dummy29;
+ }
+ if (other.HasDummy30) {
+ Dummy30 = other.Dummy30;
+ }
+ if (other.HasDummy31) {
+ Dummy31 = other.Dummy31;
+ }
+ if (other.HasDummy32) {
+ Dummy32 = other.Dummy32;
+ }
+ if (other.HasC) {
+ C = other.C;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ A = input.ReadInt32();
+ break;
+ }
+ case 16: {
+ Dummy2 = input.ReadInt32();
+ break;
+ }
+ case 24: {
+ B = input.ReadInt32();
+ break;
+ }
+ case 32: {
+ Dummy4 = input.ReadInt32();
+ break;
+ }
+ case 40: {
+ Dummy5 = input.ReadInt32();
+ break;
+ }
+ case 48: {
+ Dummy6 = input.ReadInt32();
+ break;
+ }
+ case 56: {
+ Dummy7 = input.ReadInt32();
+ break;
+ }
+ case 64: {
+ Dummy8 = input.ReadInt32();
+ break;
+ }
+ case 72: {
+ Dummy9 = input.ReadInt32();
+ break;
+ }
+ case 80: {
+ Dummy10 = input.ReadInt32();
+ break;
+ }
+ case 88: {
+ Dummy11 = input.ReadInt32();
+ break;
+ }
+ case 96: {
+ Dummy12 = input.ReadInt32();
+ break;
+ }
+ case 104: {
+ Dummy13 = input.ReadInt32();
+ break;
+ }
+ case 112: {
+ Dummy14 = input.ReadInt32();
+ break;
+ }
+ case 120: {
+ Dummy15 = input.ReadInt32();
+ break;
+ }
+ case 128: {
+ Dummy16 = input.ReadInt32();
+ break;
+ }
+ case 136: {
+ Dummy17 = input.ReadInt32();
+ break;
+ }
+ case 144: {
+ Dummy18 = input.ReadInt32();
+ break;
+ }
+ case 152: {
+ Dummy19 = input.ReadInt32();
+ break;
+ }
+ case 160: {
+ Dummy20 = input.ReadInt32();
+ break;
+ }
+ case 168: {
+ Dummy21 = input.ReadInt32();
+ break;
+ }
+ case 176: {
+ Dummy22 = input.ReadInt32();
+ break;
+ }
+ case 184: {
+ Dummy23 = input.ReadInt32();
+ break;
+ }
+ case 192: {
+ Dummy24 = input.ReadInt32();
+ break;
+ }
+ case 200: {
+ Dummy25 = input.ReadInt32();
+ break;
+ }
+ case 208: {
+ Dummy26 = input.ReadInt32();
+ break;
+ }
+ case 216: {
+ Dummy27 = input.ReadInt32();
+ break;
+ }
+ case 224: {
+ Dummy28 = input.ReadInt32();
+ break;
+ }
+ case 232: {
+ Dummy29 = input.ReadInt32();
+ break;
+ }
+ case 240: {
+ Dummy30 = input.ReadInt32();
+ break;
+ }
+ case 248: {
+ Dummy31 = input.ReadInt32();
+ break;
+ }
+ case 256: {
+ Dummy32 = input.ReadInt32();
+ break;
+ }
+ case 264: {
+ C = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasDummy2 {
+ get { return result.HasDummy2; }
+ }
+ public int Dummy2 {
+ get { return result.Dummy2; }
+ set { SetDummy2(value); }
+ }
+ public Builder SetDummy2(int value) {
+ result.hasDummy2 = true;
+ result.dummy2_ = value;
+ return this;
+ }
+ public Builder ClearDummy2() {
+ result.hasDummy2 = false;
+ result.dummy2_ = 0;
+ return this;
+ }
+
+ public bool HasB {
+ get { return result.HasB; }
+ }
+ public int B {
+ get { return result.B; }
+ set { SetB(value); }
+ }
+ public Builder SetB(int value) {
+ result.hasB = true;
+ result.b_ = value;
+ return this;
+ }
+ public Builder ClearB() {
+ result.hasB = false;
+ result.b_ = 0;
+ return this;
+ }
+
+ public bool HasDummy4 {
+ get { return result.HasDummy4; }
+ }
+ public int Dummy4 {
+ get { return result.Dummy4; }
+ set { SetDummy4(value); }
+ }
+ public Builder SetDummy4(int value) {
+ result.hasDummy4 = true;
+ result.dummy4_ = value;
+ return this;
+ }
+ public Builder ClearDummy4() {
+ result.hasDummy4 = false;
+ result.dummy4_ = 0;
+ return this;
+ }
+
+ public bool HasDummy5 {
+ get { return result.HasDummy5; }
+ }
+ public int Dummy5 {
+ get { return result.Dummy5; }
+ set { SetDummy5(value); }
+ }
+ public Builder SetDummy5(int value) {
+ result.hasDummy5 = true;
+ result.dummy5_ = value;
+ return this;
+ }
+ public Builder ClearDummy5() {
+ result.hasDummy5 = false;
+ result.dummy5_ = 0;
+ return this;
+ }
+
+ public bool HasDummy6 {
+ get { return result.HasDummy6; }
+ }
+ public int Dummy6 {
+ get { return result.Dummy6; }
+ set { SetDummy6(value); }
+ }
+ public Builder SetDummy6(int value) {
+ result.hasDummy6 = true;
+ result.dummy6_ = value;
+ return this;
+ }
+ public Builder ClearDummy6() {
+ result.hasDummy6 = false;
+ result.dummy6_ = 0;
+ return this;
+ }
+
+ public bool HasDummy7 {
+ get { return result.HasDummy7; }
+ }
+ public int Dummy7 {
+ get { return result.Dummy7; }
+ set { SetDummy7(value); }
+ }
+ public Builder SetDummy7(int value) {
+ result.hasDummy7 = true;
+ result.dummy7_ = value;
+ return this;
+ }
+ public Builder ClearDummy7() {
+ result.hasDummy7 = false;
+ result.dummy7_ = 0;
+ return this;
+ }
+
+ public bool HasDummy8 {
+ get { return result.HasDummy8; }
+ }
+ public int Dummy8 {
+ get { return result.Dummy8; }
+ set { SetDummy8(value); }
+ }
+ public Builder SetDummy8(int value) {
+ result.hasDummy8 = true;
+ result.dummy8_ = value;
+ return this;
+ }
+ public Builder ClearDummy8() {
+ result.hasDummy8 = false;
+ result.dummy8_ = 0;
+ return this;
+ }
+
+ public bool HasDummy9 {
+ get { return result.HasDummy9; }
+ }
+ public int Dummy9 {
+ get { return result.Dummy9; }
+ set { SetDummy9(value); }
+ }
+ public Builder SetDummy9(int value) {
+ result.hasDummy9 = true;
+ result.dummy9_ = value;
+ return this;
+ }
+ public Builder ClearDummy9() {
+ result.hasDummy9 = false;
+ result.dummy9_ = 0;
+ return this;
+ }
+
+ public bool HasDummy10 {
+ get { return result.HasDummy10; }
+ }
+ public int Dummy10 {
+ get { return result.Dummy10; }
+ set { SetDummy10(value); }
+ }
+ public Builder SetDummy10(int value) {
+ result.hasDummy10 = true;
+ result.dummy10_ = value;
+ return this;
+ }
+ public Builder ClearDummy10() {
+ result.hasDummy10 = false;
+ result.dummy10_ = 0;
+ return this;
+ }
+
+ public bool HasDummy11 {
+ get { return result.HasDummy11; }
+ }
+ public int Dummy11 {
+ get { return result.Dummy11; }
+ set { SetDummy11(value); }
+ }
+ public Builder SetDummy11(int value) {
+ result.hasDummy11 = true;
+ result.dummy11_ = value;
+ return this;
+ }
+ public Builder ClearDummy11() {
+ result.hasDummy11 = false;
+ result.dummy11_ = 0;
+ return this;
+ }
+
+ public bool HasDummy12 {
+ get { return result.HasDummy12; }
+ }
+ public int Dummy12 {
+ get { return result.Dummy12; }
+ set { SetDummy12(value); }
+ }
+ public Builder SetDummy12(int value) {
+ result.hasDummy12 = true;
+ result.dummy12_ = value;
+ return this;
+ }
+ public Builder ClearDummy12() {
+ result.hasDummy12 = false;
+ result.dummy12_ = 0;
+ return this;
+ }
+
+ public bool HasDummy13 {
+ get { return result.HasDummy13; }
+ }
+ public int Dummy13 {
+ get { return result.Dummy13; }
+ set { SetDummy13(value); }
+ }
+ public Builder SetDummy13(int value) {
+ result.hasDummy13 = true;
+ result.dummy13_ = value;
+ return this;
+ }
+ public Builder ClearDummy13() {
+ result.hasDummy13 = false;
+ result.dummy13_ = 0;
+ return this;
+ }
+
+ public bool HasDummy14 {
+ get { return result.HasDummy14; }
+ }
+ public int Dummy14 {
+ get { return result.Dummy14; }
+ set { SetDummy14(value); }
+ }
+ public Builder SetDummy14(int value) {
+ result.hasDummy14 = true;
+ result.dummy14_ = value;
+ return this;
+ }
+ public Builder ClearDummy14() {
+ result.hasDummy14 = false;
+ result.dummy14_ = 0;
+ return this;
+ }
+
+ public bool HasDummy15 {
+ get { return result.HasDummy15; }
+ }
+ public int Dummy15 {
+ get { return result.Dummy15; }
+ set { SetDummy15(value); }
+ }
+ public Builder SetDummy15(int value) {
+ result.hasDummy15 = true;
+ result.dummy15_ = value;
+ return this;
+ }
+ public Builder ClearDummy15() {
+ result.hasDummy15 = false;
+ result.dummy15_ = 0;
+ return this;
+ }
+
+ public bool HasDummy16 {
+ get { return result.HasDummy16; }
+ }
+ public int Dummy16 {
+ get { return result.Dummy16; }
+ set { SetDummy16(value); }
+ }
+ public Builder SetDummy16(int value) {
+ result.hasDummy16 = true;
+ result.dummy16_ = value;
+ return this;
+ }
+ public Builder ClearDummy16() {
+ result.hasDummy16 = false;
+ result.dummy16_ = 0;
+ return this;
+ }
+
+ public bool HasDummy17 {
+ get { return result.HasDummy17; }
+ }
+ public int Dummy17 {
+ get { return result.Dummy17; }
+ set { SetDummy17(value); }
+ }
+ public Builder SetDummy17(int value) {
+ result.hasDummy17 = true;
+ result.dummy17_ = value;
+ return this;
+ }
+ public Builder ClearDummy17() {
+ result.hasDummy17 = false;
+ result.dummy17_ = 0;
+ return this;
+ }
+
+ public bool HasDummy18 {
+ get { return result.HasDummy18; }
+ }
+ public int Dummy18 {
+ get { return result.Dummy18; }
+ set { SetDummy18(value); }
+ }
+ public Builder SetDummy18(int value) {
+ result.hasDummy18 = true;
+ result.dummy18_ = value;
+ return this;
+ }
+ public Builder ClearDummy18() {
+ result.hasDummy18 = false;
+ result.dummy18_ = 0;
+ return this;
+ }
+
+ public bool HasDummy19 {
+ get { return result.HasDummy19; }
+ }
+ public int Dummy19 {
+ get { return result.Dummy19; }
+ set { SetDummy19(value); }
+ }
+ public Builder SetDummy19(int value) {
+ result.hasDummy19 = true;
+ result.dummy19_ = value;
+ return this;
+ }
+ public Builder ClearDummy19() {
+ result.hasDummy19 = false;
+ result.dummy19_ = 0;
+ return this;
+ }
+
+ public bool HasDummy20 {
+ get { return result.HasDummy20; }
+ }
+ public int Dummy20 {
+ get { return result.Dummy20; }
+ set { SetDummy20(value); }
+ }
+ public Builder SetDummy20(int value) {
+ result.hasDummy20 = true;
+ result.dummy20_ = value;
+ return this;
+ }
+ public Builder ClearDummy20() {
+ result.hasDummy20 = false;
+ result.dummy20_ = 0;
+ return this;
+ }
+
+ public bool HasDummy21 {
+ get { return result.HasDummy21; }
+ }
+ public int Dummy21 {
+ get { return result.Dummy21; }
+ set { SetDummy21(value); }
+ }
+ public Builder SetDummy21(int value) {
+ result.hasDummy21 = true;
+ result.dummy21_ = value;
+ return this;
+ }
+ public Builder ClearDummy21() {
+ result.hasDummy21 = false;
+ result.dummy21_ = 0;
+ return this;
+ }
+
+ public bool HasDummy22 {
+ get { return result.HasDummy22; }
+ }
+ public int Dummy22 {
+ get { return result.Dummy22; }
+ set { SetDummy22(value); }
+ }
+ public Builder SetDummy22(int value) {
+ result.hasDummy22 = true;
+ result.dummy22_ = value;
+ return this;
+ }
+ public Builder ClearDummy22() {
+ result.hasDummy22 = false;
+ result.dummy22_ = 0;
+ return this;
+ }
+
+ public bool HasDummy23 {
+ get { return result.HasDummy23; }
+ }
+ public int Dummy23 {
+ get { return result.Dummy23; }
+ set { SetDummy23(value); }
+ }
+ public Builder SetDummy23(int value) {
+ result.hasDummy23 = true;
+ result.dummy23_ = value;
+ return this;
+ }
+ public Builder ClearDummy23() {
+ result.hasDummy23 = false;
+ result.dummy23_ = 0;
+ return this;
+ }
+
+ public bool HasDummy24 {
+ get { return result.HasDummy24; }
+ }
+ public int Dummy24 {
+ get { return result.Dummy24; }
+ set { SetDummy24(value); }
+ }
+ public Builder SetDummy24(int value) {
+ result.hasDummy24 = true;
+ result.dummy24_ = value;
+ return this;
+ }
+ public Builder ClearDummy24() {
+ result.hasDummy24 = false;
+ result.dummy24_ = 0;
+ return this;
+ }
+
+ public bool HasDummy25 {
+ get { return result.HasDummy25; }
+ }
+ public int Dummy25 {
+ get { return result.Dummy25; }
+ set { SetDummy25(value); }
+ }
+ public Builder SetDummy25(int value) {
+ result.hasDummy25 = true;
+ result.dummy25_ = value;
+ return this;
+ }
+ public Builder ClearDummy25() {
+ result.hasDummy25 = false;
+ result.dummy25_ = 0;
+ return this;
+ }
+
+ public bool HasDummy26 {
+ get { return result.HasDummy26; }
+ }
+ public int Dummy26 {
+ get { return result.Dummy26; }
+ set { SetDummy26(value); }
+ }
+ public Builder SetDummy26(int value) {
+ result.hasDummy26 = true;
+ result.dummy26_ = value;
+ return this;
+ }
+ public Builder ClearDummy26() {
+ result.hasDummy26 = false;
+ result.dummy26_ = 0;
+ return this;
+ }
+
+ public bool HasDummy27 {
+ get { return result.HasDummy27; }
+ }
+ public int Dummy27 {
+ get { return result.Dummy27; }
+ set { SetDummy27(value); }
+ }
+ public Builder SetDummy27(int value) {
+ result.hasDummy27 = true;
+ result.dummy27_ = value;
+ return this;
+ }
+ public Builder ClearDummy27() {
+ result.hasDummy27 = false;
+ result.dummy27_ = 0;
+ return this;
+ }
+
+ public bool HasDummy28 {
+ get { return result.HasDummy28; }
+ }
+ public int Dummy28 {
+ get { return result.Dummy28; }
+ set { SetDummy28(value); }
+ }
+ public Builder SetDummy28(int value) {
+ result.hasDummy28 = true;
+ result.dummy28_ = value;
+ return this;
+ }
+ public Builder ClearDummy28() {
+ result.hasDummy28 = false;
+ result.dummy28_ = 0;
+ return this;
+ }
+
+ public bool HasDummy29 {
+ get { return result.HasDummy29; }
+ }
+ public int Dummy29 {
+ get { return result.Dummy29; }
+ set { SetDummy29(value); }
+ }
+ public Builder SetDummy29(int value) {
+ result.hasDummy29 = true;
+ result.dummy29_ = value;
+ return this;
+ }
+ public Builder ClearDummy29() {
+ result.hasDummy29 = false;
+ result.dummy29_ = 0;
+ return this;
+ }
+
+ public bool HasDummy30 {
+ get { return result.HasDummy30; }
+ }
+ public int Dummy30 {
+ get { return result.Dummy30; }
+ set { SetDummy30(value); }
+ }
+ public Builder SetDummy30(int value) {
+ result.hasDummy30 = true;
+ result.dummy30_ = value;
+ return this;
+ }
+ public Builder ClearDummy30() {
+ result.hasDummy30 = false;
+ result.dummy30_ = 0;
+ return this;
+ }
+
+ public bool HasDummy31 {
+ get { return result.HasDummy31; }
+ }
+ public int Dummy31 {
+ get { return result.Dummy31; }
+ set { SetDummy31(value); }
+ }
+ public Builder SetDummy31(int value) {
+ result.hasDummy31 = true;
+ result.dummy31_ = value;
+ return this;
+ }
+ public Builder ClearDummy31() {
+ result.hasDummy31 = false;
+ result.dummy31_ = 0;
+ return this;
+ }
+
+ public bool HasDummy32 {
+ get { return result.HasDummy32; }
+ }
+ public int Dummy32 {
+ get { return result.Dummy32; }
+ set { SetDummy32(value); }
+ }
+ public Builder SetDummy32(int value) {
+ result.hasDummy32 = true;
+ result.dummy32_ = value;
+ return this;
+ }
+ public Builder ClearDummy32() {
+ result.hasDummy32 = false;
+ result.dummy32_ = 0;
+ return this;
+ }
+
+ public bool HasC {
+ get { return result.HasC; }
+ }
+ public int C {
+ get { return result.C; }
+ set { SetC(value); }
+ }
+ public Builder SetC(int value) {
+ result.hasC = true;
+ result.c_ = value;
+ return this;
+ }
+ public Builder ClearC() {
+ result.hasC = false;
+ result.c_ = 0;
+ return this;
+ }
+ }
+ static TestRequired() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestRequiredForeign : pb::GeneratedMessage<TestRequiredForeign, TestRequiredForeign.Builder> {
+ private static readonly TestRequiredForeign defaultInstance = new Builder().BuildPartial();
+ public static TestRequiredForeign DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRequiredForeign DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestRequiredForeign ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRequiredForeign__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRequiredForeign, TestRequiredForeign.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRequiredForeign__FieldAccessorTable; }
+ }
+
+ public const int OptionalMessageFieldNumber = 1;
+ private bool hasOptionalMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestRequired optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance;
+ public bool HasOptionalMessage {
+ get { return hasOptionalMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
+ get { return optionalMessage_; }
+ }
+
+ public const int RepeatedMessageFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired> repeatedMessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.TestRequired> RepeatedMessageList {
+ get { return repeatedMessage_; }
+ }
+ public int RepeatedMessageCount {
+ get { return repeatedMessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired GetRepeatedMessage(int index) {
+ return repeatedMessage_[index];
+ }
+
+ public const int DummyFieldNumber = 3;
+ private bool hasDummy;
+ private int dummy_ = 0;
+ public bool HasDummy {
+ get { return hasDummy; }
+ }
+ public int Dummy {
+ get { return dummy_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (HasOptionalMessage) {
+ if (!OptionalMessage.IsInitialized) return false;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ if (!element.IsInitialized) return false;
+ }
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasOptionalMessage) {
+ output.WriteMessage(1, OptionalMessage);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ output.WriteMessage(2, element);
+ }
+ if (HasDummy) {
+ output.WriteInt32(3, Dummy);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasOptionalMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalMessage);
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.TestRequired element in RepeatedMessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ if (HasDummy) {
+ size += pb::CodedOutputStream.ComputeInt32Size(3, Dummy);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestRequiredForeign ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRequiredForeign ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRequiredForeign ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRequiredForeign prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRequiredForeign, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestRequiredForeign result = new TestRequiredForeign();
+
+ protected override TestRequiredForeign MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestRequiredForeign();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.Descriptor; }
+ }
+
+ public override TestRequiredForeign DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.DefaultInstance; }
+ }
+
+ public override TestRequiredForeign BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.repeatedMessage_.MakeReadOnly();
+ TestRequiredForeign returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRequiredForeign) {
+ return MergeFrom((TestRequiredForeign) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRequiredForeign other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRequiredForeign.DefaultInstance) return this;
+ if (other.HasOptionalMessage) {
+ MergeOptionalMessage(other.OptionalMessage);
+ }
+ if (other.repeatedMessage_.Count != 0) {
+ base.AddRange(other.repeatedMessage_, result.repeatedMessage_);
+ }
+ if (other.HasDummy) {
+ Dummy = other.Dummy;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder();
+ if (HasOptionalMessage) {
+ subBuilder.MergeFrom(OptionalMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalMessage = subBuilder.BuildPartial();
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddRepeatedMessage(subBuilder.BuildPartial());
+ break;
+ }
+ case 24: {
+ Dummy = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasOptionalMessage {
+ get { return result.HasOptionalMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired OptionalMessage {
+ get { return result.OptionalMessage; }
+ set { SetOptionalMessage(value); }
+ }
+ public Builder SetOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalMessage = true;
+ result.optionalMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalMessage = true;
+ result.optionalMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalMessage &&
+ result.optionalMessage_ != global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance) {
+ result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.CreateBuilder(result.optionalMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalMessage_ = value;
+ }
+ result.hasOptionalMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalMessage() {
+ result.hasOptionalMessage = false;
+ result.optionalMessage_ = global::Google.ProtocolBuffers.TestProtos.TestRequired.DefaultInstance;
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.TestRequired> RepeatedMessageList {
+ get { return result.repeatedMessage_; }
+ }
+ public int RepeatedMessageCount {
+ get { return result.RepeatedMessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRequired GetRepeatedMessage(int index) {
+ return result.GetRepeatedMessage(index);
+ }
+ public Builder SetRepeatedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedMessage_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedMessage(int index, global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedMessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedMessage_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedMessage(global::Google.ProtocolBuffers.TestProtos.TestRequired.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedMessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedMessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.TestRequired> values) {
+ base.AddRange(values, result.repeatedMessage_);
+ return this;
+ }
+ public Builder ClearRepeatedMessage() {
+ result.repeatedMessage_.Clear();
+ return this;
+ }
+
+ public bool HasDummy {
+ get { return result.HasDummy; }
+ }
+ public int Dummy {
+ get { return result.Dummy; }
+ set { SetDummy(value); }
+ }
+ public Builder SetDummy(int value) {
+ result.hasDummy = true;
+ result.dummy_ = value;
+ return this;
+ }
+ public Builder ClearDummy() {
+ result.hasDummy = false;
+ result.dummy_ = 0;
+ return this;
+ }
+ }
+ static TestRequiredForeign() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestForeignNested : pb::GeneratedMessage<TestForeignNested, TestForeignNested.Builder> {
+ private static readonly TestForeignNested defaultInstance = new Builder().BuildPartial();
+ public static TestForeignNested DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestForeignNested DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestForeignNested ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestForeignNested__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestForeignNested, TestForeignNested.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestForeignNested__FieldAccessorTable; }
+ }
+
+ public const int ForeignNestedFieldNumber = 1;
+ private bool hasForeignNested;
+ private global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ public bool HasForeignNested {
+ get { return hasForeignNested; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
+ get { return foreignNested_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasForeignNested) {
+ output.WriteMessage(1, ForeignNested);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasForeignNested) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, ForeignNested);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestForeignNested ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestForeignNested ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestForeignNested ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestForeignNested ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestForeignNested prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestForeignNested, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestForeignNested result = new TestForeignNested();
+
+ protected override TestForeignNested MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestForeignNested();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestForeignNested.Descriptor; }
+ }
+
+ public override TestForeignNested DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestForeignNested.DefaultInstance; }
+ }
+
+ public override TestForeignNested BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestForeignNested returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestForeignNested) {
+ return MergeFrom((TestForeignNested) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestForeignNested other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestForeignNested.DefaultInstance) return this;
+ if (other.HasForeignNested) {
+ MergeForeignNested(other.ForeignNested);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder();
+ if (HasForeignNested) {
+ subBuilder.MergeFrom(ForeignNested);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ ForeignNested = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasForeignNested {
+ get { return result.HasForeignNested; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage ForeignNested {
+ get { return result.ForeignNested; }
+ set { SetForeignNested(value); }
+ }
+ public Builder SetForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasForeignNested = true;
+ result.foreignNested_ = value;
+ return this;
+ }
+ public Builder SetForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasForeignNested = true;
+ result.foreignNested_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeForeignNested(global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasForeignNested &&
+ result.foreignNested_ != global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance) {
+ result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.CreateBuilder(result.foreignNested_).MergeFrom(value).BuildPartial();
+ } else {
+ result.foreignNested_ = value;
+ }
+ result.hasForeignNested = true;
+ return this;
+ }
+ public Builder ClearForeignNested() {
+ result.hasForeignNested = false;
+ result.foreignNested_ = global::Google.ProtocolBuffers.TestProtos.TestAllTypes.Types.NestedMessage.DefaultInstance;
+ return this;
+ }
+ }
+ static TestForeignNested() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestEmptyMessage : pb::GeneratedMessage<TestEmptyMessage, TestEmptyMessage.Builder> {
+ private static readonly TestEmptyMessage defaultInstance = new Builder().BuildPartial();
+ public static TestEmptyMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestEmptyMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestEmptyMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEmptyMessage, TestEmptyMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestEmptyMessage__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestEmptyMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestEmptyMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestEmptyMessage result = new TestEmptyMessage();
+
+ protected override TestEmptyMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestEmptyMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.Descriptor; }
+ }
+
+ public override TestEmptyMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.DefaultInstance; }
+ }
+
+ public override TestEmptyMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestEmptyMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEmptyMessage) {
+ return MergeFrom((TestEmptyMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessage.DefaultInstance) return this;
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestEmptyMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestEmptyMessageWithExtensions : pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> {
+ private static readonly TestEmptyMessageWithExtensions defaultInstance = new Builder().BuildPartial();
+ public static TestEmptyMessageWithExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensions DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestEmptyMessageWithExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestEmptyMessageWithExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessage<TestEmptyMessageWithExtensions, TestEmptyMessageWithExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestEmptyMessageWithExtensions ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestEmptyMessageWithExtensions prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilder<TestEmptyMessageWithExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestEmptyMessageWithExtensions result = new TestEmptyMessageWithExtensions();
+
+ protected override TestEmptyMessageWithExtensions MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestEmptyMessageWithExtensions();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.Descriptor; }
+ }
+
+ public override TestEmptyMessageWithExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.DefaultInstance; }
+ }
+
+ public override TestEmptyMessageWithExtensions BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestEmptyMessageWithExtensions returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestEmptyMessageWithExtensions) {
+ return MergeFrom((TestEmptyMessageWithExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestEmptyMessageWithExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestEmptyMessageWithExtensions.DefaultInstance) return this;
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestEmptyMessageWithExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestMultipleExtensionRanges : pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> {
+ private static readonly TestMultipleExtensionRanges defaultInstance = new Builder().BuildPartial();
+ public static TestMultipleExtensionRanges DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestMultipleExtensionRanges ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestMultipleExtensionRanges__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestMultipleExtensionRanges__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessage<TestMultipleExtensionRanges, TestMultipleExtensionRanges.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(43, output);
+ extensionWriter.WriteUntil(4244, output);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMultipleExtensionRanges ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMultipleExtensionRanges prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilder<TestMultipleExtensionRanges, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestMultipleExtensionRanges result = new TestMultipleExtensionRanges();
+
+ protected override TestMultipleExtensionRanges MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestMultipleExtensionRanges();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.Descriptor; }
+ }
+
+ public override TestMultipleExtensionRanges DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance; }
+ }
+
+ public override TestMultipleExtensionRanges BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestMultipleExtensionRanges returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMultipleExtensionRanges) {
+ return MergeFrom((TestMultipleExtensionRanges) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMultipleExtensionRanges other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMultipleExtensionRanges.DefaultInstance) return this;
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestMultipleExtensionRanges() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestReallyLargeTagNumber : pb::GeneratedMessage<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> {
+ private static readonly TestReallyLargeTagNumber defaultInstance = new Builder().BuildPartial();
+ public static TestReallyLargeTagNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestReallyLargeTagNumber DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestReallyLargeTagNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestReallyLargeTagNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestReallyLargeTagNumber, TestReallyLargeTagNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestReallyLargeTagNumber__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int BbFieldNumber = 268435455;
+ private bool hasBb;
+ private int bb_ = 0;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public int Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(1, A);
+ }
+ if (HasBb) {
+ output.WriteInt32(268435455, Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (HasBb) {
+ size += pb::CodedOutputStream.ComputeInt32Size(268435455, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestReallyLargeTagNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestReallyLargeTagNumber ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestReallyLargeTagNumber prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestReallyLargeTagNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestReallyLargeTagNumber result = new TestReallyLargeTagNumber();
+
+ protected override TestReallyLargeTagNumber MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestReallyLargeTagNumber();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.Descriptor; }
+ }
+
+ public override TestReallyLargeTagNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.DefaultInstance; }
+ }
+
+ public override TestReallyLargeTagNumber BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestReallyLargeTagNumber returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestReallyLargeTagNumber) {
+ return MergeFrom((TestReallyLargeTagNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestReallyLargeTagNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestReallyLargeTagNumber.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasBb) {
+ Bb = other.Bb;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ A = input.ReadInt32();
+ break;
+ }
+ case 2147483640: {
+ Bb = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasBb {
+ get { return result.HasBb; }
+ }
+ public int Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(int value) {
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder ClearBb() {
+ result.hasBb = false;
+ result.bb_ = 0;
+ return this;
+ }
+ }
+ static TestReallyLargeTagNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestRecursiveMessage : pb::GeneratedMessage<TestRecursiveMessage, TestRecursiveMessage.Builder> {
+ private static readonly TestRecursiveMessage defaultInstance = new Builder().BuildPartial();
+ public static TestRecursiveMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRecursiveMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestRecursiveMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRecursiveMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRecursiveMessage, TestRecursiveMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRecursiveMessage__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
+ get { return a_; }
+ }
+
+ public const int IFieldNumber = 2;
+ private bool hasI;
+ private int i_ = 0;
+ public bool HasI {
+ get { return hasI; }
+ }
+ public int I {
+ get { return i_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteMessage(1, A);
+ }
+ if (HasI) {
+ output.WriteInt32(2, I);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, A);
+ }
+ if (HasI) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, I);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestRecursiveMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRecursiveMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRecursiveMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRecursiveMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestRecursiveMessage result = new TestRecursiveMessage();
+
+ protected override TestRecursiveMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestRecursiveMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Descriptor; }
+ }
+
+ public override TestRecursiveMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance; }
+ }
+
+ public override TestRecursiveMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestRecursiveMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRecursiveMessage) {
+ return MergeFrom((TestRecursiveMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRecursiveMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) return this;
+ if (other.HasA) {
+ MergeA(other.A);
+ }
+ if (other.HasI) {
+ I = other.I;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder();
+ if (HasA) {
+ subBuilder.MergeFrom(A);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ A = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ I = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasA = true;
+ result.a_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasA &&
+ result.a_ != global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance) {
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();
+ } else {
+ result.a_ = value;
+ }
+ result.hasA = true;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestRecursiveMessage.DefaultInstance;
+ return this;
+ }
+
+ public bool HasI {
+ get { return result.HasI; }
+ }
+ public int I {
+ get { return result.I; }
+ set { SetI(value); }
+ }
+ public Builder SetI(int value) {
+ result.hasI = true;
+ result.i_ = value;
+ return this;
+ }
+ public Builder ClearI() {
+ result.hasI = false;
+ result.i_ = 0;
+ return this;
+ }
+ }
+ static TestRecursiveMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestMutualRecursionA : pb::GeneratedMessage<TestMutualRecursionA, TestMutualRecursionA.Builder> {
+ private static readonly TestMutualRecursionA defaultInstance = new Builder().BuildPartial();
+ public static TestMutualRecursionA DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMutualRecursionA DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestMutualRecursionA ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestMutualRecursionA__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMutualRecursionA, TestMutualRecursionA.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestMutualRecursionA__FieldAccessorTable; }
+ }
+
+ public const int BbFieldNumber = 1;
+ private bool hasBb;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance;
+ public bool HasBb {
+ get { return hasBb; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
+ get { return bb_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasBb) {
+ output.WriteMessage(1, Bb);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasBb) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, Bb);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestMutualRecursionA ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionA ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMutualRecursionA prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionA, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestMutualRecursionA result = new TestMutualRecursionA();
+
+ protected override TestMutualRecursionA MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestMutualRecursionA();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Descriptor; }
+ }
+
+ public override TestMutualRecursionA DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance; }
+ }
+
+ public override TestMutualRecursionA BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestMutualRecursionA returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMutualRecursionA) {
+ return MergeFrom((TestMutualRecursionA) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMutualRecursionA other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) return this;
+ if (other.HasBb) {
+ MergeBb(other.Bb);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder();
+ if (HasBb) {
+ subBuilder.MergeFrom(Bb);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ Bb = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasBb {
+ get { return result.HasBb; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB Bb {
+ get { return result.Bb; }
+ set { SetBb(value); }
+ }
+ public Builder SetBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasBb = true;
+ result.bb_ = value;
+ return this;
+ }
+ public Builder SetBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasBb = true;
+ result.bb_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBb(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasBb &&
+ result.bb_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) {
+ result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.CreateBuilder(result.bb_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bb_ = value;
+ }
+ result.hasBb = true;
+ return this;
+ }
+ public Builder ClearBb() {
+ result.hasBb = false;
+ result.bb_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance;
+ return this;
+ }
+ }
+ static TestMutualRecursionA() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestMutualRecursionB : pb::GeneratedMessage<TestMutualRecursionB, TestMutualRecursionB.Builder> {
+ private static readonly TestMutualRecursionB defaultInstance = new Builder().BuildPartial();
+ public static TestMutualRecursionB DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestMutualRecursionB DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestMutualRecursionB ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestMutualRecursionB__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestMutualRecursionB, TestMutualRecursionB.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestMutualRecursionB__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
+ get { return a_; }
+ }
+
+ public const int OptionalInt32FieldNumber = 2;
+ private bool hasOptionalInt32;
+ private int optionalInt32_ = 0;
+ public bool HasOptionalInt32 {
+ get { return hasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return optionalInt32_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteMessage(1, A);
+ }
+ if (HasOptionalInt32) {
+ output.WriteInt32(2, OptionalInt32);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, A);
+ }
+ if (HasOptionalInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2, OptionalInt32);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestMutualRecursionB ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestMutualRecursionB ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestMutualRecursionB prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestMutualRecursionB, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestMutualRecursionB result = new TestMutualRecursionB();
+
+ protected override TestMutualRecursionB MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestMutualRecursionB();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.Descriptor; }
+ }
+
+ public override TestMutualRecursionB DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance; }
+ }
+
+ public override TestMutualRecursionB BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestMutualRecursionB returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestMutualRecursionB) {
+ return MergeFrom((TestMutualRecursionB) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestMutualRecursionB other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionB.DefaultInstance) return this;
+ if (other.HasA) {
+ MergeA(other.A);
+ }
+ if (other.HasOptionalInt32) {
+ OptionalInt32 = other.OptionalInt32;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder();
+ if (HasA) {
+ subBuilder.MergeFrom(A);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ A = subBuilder.BuildPartial();
+ break;
+ }
+ case 16: {
+ OptionalInt32 = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder SetA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasA = true;
+ result.a_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeA(global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasA &&
+ result.a_ != global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance) {
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.CreateBuilder(result.a_).MergeFrom(value).BuildPartial();
+ } else {
+ result.a_ = value;
+ }
+ result.hasA = true;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = global::Google.ProtocolBuffers.TestProtos.TestMutualRecursionA.DefaultInstance;
+ return this;
+ }
+
+ public bool HasOptionalInt32 {
+ get { return result.HasOptionalInt32; }
+ }
+ public int OptionalInt32 {
+ get { return result.OptionalInt32; }
+ set { SetOptionalInt32(value); }
+ }
+ public Builder SetOptionalInt32(int value) {
+ result.hasOptionalInt32 = true;
+ result.optionalInt32_ = value;
+ return this;
+ }
+ public Builder ClearOptionalInt32() {
+ result.hasOptionalInt32 = false;
+ result.optionalInt32_ = 0;
+ return this;
+ }
+ }
+ static TestMutualRecursionB() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestDupFieldNumber : pb::GeneratedMessage<TestDupFieldNumber, TestDupFieldNumber.Builder> {
+ private static readonly TestDupFieldNumber defaultInstance = new Builder().BuildPartial();
+ public static TestDupFieldNumber DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDupFieldNumber DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestDupFieldNumber ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDupFieldNumber__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDupFieldNumber, TestDupFieldNumber.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDupFieldNumber__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public sealed partial class Foo : pb::GeneratedMessage<Foo, Foo.Builder> {
+ private static readonly Foo defaultInstance = new Builder().BuildPartial();
+ public static Foo DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override Foo ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDupFieldNumber_Foo__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Foo, Foo.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDupFieldNumber_Foo__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(1, A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static Foo ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Foo ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Foo ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Foo ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Foo prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<Foo, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ Foo result = new Foo();
+
+ protected override Foo MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new Foo();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Descriptor; }
+ }
+
+ public override Foo DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance; }
+ }
+
+ public override Foo BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ Foo returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Foo) {
+ return MergeFrom((Foo) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Foo other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static Foo() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class Bar : pb::GeneratedMessage<Bar, Bar.Builder> {
+ private static readonly Bar defaultInstance = new Builder().BuildPartial();
+ public static Bar DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override Bar DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override Bar ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDupFieldNumber_Bar__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<Bar, Bar.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDupFieldNumber_Bar__FieldAccessorTable; }
+ }
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(1, A);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static Bar ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static Bar ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Bar ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Bar ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static Bar ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static Bar ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(Bar prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<Bar, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ Bar result = new Bar();
+
+ protected override Bar MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new Bar();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Descriptor; }
+ }
+
+ public override Bar DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance; }
+ }
+
+ public override Bar BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ Bar returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is Bar) {
+ return MergeFrom((Bar) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(Bar other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ A = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+ }
+ static Bar() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int AFieldNumber = 1;
+ private bool hasA;
+ private int a_ = 0;
+ public bool HasA {
+ get { return hasA; }
+ }
+ public int A {
+ get { return a_; }
+ }
+
+ public const int FooFieldNumber = 2;
+ private bool hasFoo;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance;
+ public bool HasFoo {
+ get { return hasFoo; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
+ get { return foo_; }
+ }
+
+ public const int BarFieldNumber = 3;
+ private bool hasBar;
+ private global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance;
+ public bool HasBar {
+ get { return hasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
+ get { return bar_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasA) {
+ output.WriteInt32(1, A);
+ }
+ if (HasFoo) {
+ output.WriteGroup(2, Foo);
+ }
+ if (HasBar) {
+ output.WriteGroup(3, Bar);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasA) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, A);
+ }
+ if (HasFoo) {
+ size += pb::CodedOutputStream.ComputeGroupSize(2, Foo);
+ }
+ if (HasBar) {
+ size += pb::CodedOutputStream.ComputeGroupSize(3, Bar);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestDupFieldNumber ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDupFieldNumber ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDupFieldNumber prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDupFieldNumber, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestDupFieldNumber result = new TestDupFieldNumber();
+
+ protected override TestDupFieldNumber MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestDupFieldNumber();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Descriptor; }
+ }
+
+ public override TestDupFieldNumber DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.DefaultInstance; }
+ }
+
+ public override TestDupFieldNumber BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestDupFieldNumber returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDupFieldNumber) {
+ return MergeFrom((TestDupFieldNumber) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDupFieldNumber other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.DefaultInstance) return this;
+ if (other.HasA) {
+ A = other.A;
+ }
+ if (other.HasFoo) {
+ MergeFoo(other.Foo);
+ }
+ if (other.HasBar) {
+ MergeBar(other.Bar);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ A = input.ReadInt32();
+ break;
+ }
+ case 19: {
+ global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder();
+ if (HasFoo) {
+ subBuilder.MergeFrom(Foo);
+ }
+ input.ReadGroup(2, subBuilder, extensionRegistry);
+ Foo = subBuilder.BuildPartial();
+ break;
+ }
+ case 27: {
+ global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder();
+ if (HasBar) {
+ subBuilder.MergeFrom(Bar);
+ }
+ input.ReadGroup(3, subBuilder, extensionRegistry);
+ Bar = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasA {
+ get { return result.HasA; }
+ }
+ public int A {
+ get { return result.A; }
+ set { SetA(value); }
+ }
+ public Builder SetA(int value) {
+ result.hasA = true;
+ result.a_ = value;
+ return this;
+ }
+ public Builder ClearA() {
+ result.hasA = false;
+ result.a_ = 0;
+ return this;
+ }
+
+ public bool HasFoo {
+ get { return result.HasFoo; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo Foo {
+ get { return result.Foo; }
+ set { SetFoo(value); }
+ }
+ public Builder SetFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasFoo = true;
+ result.foo_ = value;
+ return this;
+ }
+ public Builder SetFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasFoo = true;
+ result.foo_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeFoo(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasFoo &&
+ result.foo_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance) {
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.CreateBuilder(result.foo_).MergeFrom(value).BuildPartial();
+ } else {
+ result.foo_ = value;
+ }
+ result.hasFoo = true;
+ return this;
+ }
+ public Builder ClearFoo() {
+ result.hasFoo = false;
+ result.foo_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Foo.DefaultInstance;
+ return this;
+ }
+
+ public bool HasBar {
+ get { return result.HasBar; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar Bar {
+ get { return result.Bar; }
+ set { SetBar(value); }
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasBar = true;
+ result.bar_ = value;
+ return this;
+ }
+ public Builder SetBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasBar = true;
+ result.bar_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeBar(global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasBar &&
+ result.bar_ != global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance) {
+ result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.CreateBuilder(result.bar_).MergeFrom(value).BuildPartial();
+ } else {
+ result.bar_ = value;
+ }
+ result.hasBar = true;
+ return this;
+ }
+ public Builder ClearBar() {
+ result.hasBar = false;
+ result.bar_ = global::Google.ProtocolBuffers.TestProtos.TestDupFieldNumber.Types.Bar.DefaultInstance;
+ return this;
+ }
+ }
+ static TestDupFieldNumber() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestNestedMessageHasBits : pb::GeneratedMessage<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> {
+ private static readonly TestNestedMessageHasBits defaultInstance = new Builder().BuildPartial();
+ public static TestNestedMessageHasBits DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestNestedMessageHasBits DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestNestedMessageHasBits ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestNestedMessageHasBits__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestNestedMessageHasBits, TestNestedMessageHasBits.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestNestedMessageHasBits__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public sealed partial class NestedMessage : pb::GeneratedMessage<NestedMessage, NestedMessage.Builder> {
+ private static readonly NestedMessage defaultInstance = new Builder().BuildPartial();
+ public static NestedMessage DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override NestedMessage ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<NestedMessage, NestedMessage.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestNestedMessageHasBits_NestedMessage__FieldAccessorTable; }
+ }
+
+ public const int NestedmessageRepeatedInt32FieldNumber = 1;
+ private pbc::PopsicleList<int> nestedmessageRepeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> NestedmessageRepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(nestedmessageRepeatedInt32_); }
+ }
+ public int NestedmessageRepeatedInt32Count {
+ get { return nestedmessageRepeatedInt32_.Count; }
+ }
+ public int GetNestedmessageRepeatedInt32(int index) {
+ return nestedmessageRepeatedInt32_[index];
+ }
+
+ public const int NestedmessageRepeatedForeignmessageFieldNumber = 2;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> nestedmessageRepeatedForeignmessage_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> NestedmessageRepeatedForeignmessageList {
+ get { return nestedmessageRepeatedForeignmessage_; }
+ }
+ public int NestedmessageRepeatedForeignmessageCount {
+ get { return nestedmessageRepeatedForeignmessage_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetNestedmessageRepeatedForeignmessage(int index) {
+ return nestedmessageRepeatedForeignmessage_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (nestedmessageRepeatedInt32_.Count > 0) {
+ foreach (int element in nestedmessageRepeatedInt32_) {
+ output.WriteInt32(1, element);
+ }
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in NestedmessageRepeatedForeignmessageList) {
+ output.WriteMessage(2, element);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in NestedmessageRepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * nestedmessageRepeatedInt32_.Count;
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in NestedmessageRepeatedForeignmessageList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2, element);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static NestedMessage ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static NestedMessage ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static NestedMessage ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(NestedMessage prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<NestedMessage, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ NestedMessage result = new NestedMessage();
+
+ protected override NestedMessage MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new NestedMessage();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Descriptor; }
+ }
+
+ public override NestedMessage DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance; }
+ }
+
+ public override NestedMessage BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.nestedmessageRepeatedInt32_.MakeReadOnly();
+ result.nestedmessageRepeatedForeignmessage_.MakeReadOnly();
+ NestedMessage returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is NestedMessage) {
+ return MergeFrom((NestedMessage) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(NestedMessage other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) return this;
+ if (other.nestedmessageRepeatedInt32_.Count != 0) {
+ base.AddRange(other.nestedmessageRepeatedInt32_, result.nestedmessageRepeatedInt32_);
+ }
+ if (other.nestedmessageRepeatedForeignmessage_.Count != 0) {
+ base.AddRange(other.nestedmessageRepeatedForeignmessage_, result.nestedmessageRepeatedForeignmessage_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ AddNestedmessageRepeatedInt32(input.ReadInt32());
+ break;
+ }
+ case 18: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddNestedmessageRepeatedForeignmessage(subBuilder.BuildPartial());
+ break;
+ }
+ }
+ }
+ }
+
+
+ public pbc::IPopsicleList<int> NestedmessageRepeatedInt32List {
+ get { return result.nestedmessageRepeatedInt32_; }
+ }
+ public int NestedmessageRepeatedInt32Count {
+ get { return result.NestedmessageRepeatedInt32Count; }
+ }
+ public int GetNestedmessageRepeatedInt32(int index) {
+ return result.GetNestedmessageRepeatedInt32(index);
+ }
+ public Builder SetNestedmessageRepeatedInt32(int index, int value) {
+ result.nestedmessageRepeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedInt32(int value) {
+ result.nestedmessageRepeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeNestedmessageRepeatedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.nestedmessageRepeatedInt32_);
+ return this;
+ }
+ public Builder ClearNestedmessageRepeatedInt32() {
+ result.nestedmessageRepeatedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> NestedmessageRepeatedForeignmessageList {
+ get { return result.nestedmessageRepeatedForeignmessage_; }
+ }
+ public int NestedmessageRepeatedForeignmessageCount {
+ get { return result.NestedmessageRepeatedForeignmessageCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetNestedmessageRepeatedForeignmessage(int index) {
+ return result.GetNestedmessageRepeatedForeignmessage(index);
+ }
+ public Builder SetNestedmessageRepeatedForeignmessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.nestedmessageRepeatedForeignmessage_[index] = value;
+ return this;
+ }
+ public Builder SetNestedmessageRepeatedForeignmessage(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.nestedmessageRepeatedForeignmessage_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedForeignmessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.nestedmessageRepeatedForeignmessage_.Add(value);
+ return this;
+ }
+ public Builder AddNestedmessageRepeatedForeignmessage(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.nestedmessageRepeatedForeignmessage_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeNestedmessageRepeatedForeignmessage(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ base.AddRange(values, result.nestedmessageRepeatedForeignmessage_);
+ return this;
+ }
+ public Builder ClearNestedmessageRepeatedForeignmessage() {
+ result.nestedmessageRepeatedForeignmessage_.Clear();
+ return this;
+ }
+ }
+ static NestedMessage() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int OptionalNestedMessageFieldNumber = 1;
+ private bool hasOptionalNestedMessage;
+ private global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance;
+ public bool HasOptionalNestedMessage {
+ get { return hasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
+ get { return optionalNestedMessage_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasOptionalNestedMessage) {
+ output.WriteMessage(1, OptionalNestedMessage);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasOptionalNestedMessage) {
+ size += pb::CodedOutputStream.ComputeMessageSize(1, OptionalNestedMessage);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestNestedMessageHasBits ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestNestedMessageHasBits ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestNestedMessageHasBits prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestNestedMessageHasBits, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestNestedMessageHasBits result = new TestNestedMessageHasBits();
+
+ protected override TestNestedMessageHasBits MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestNestedMessageHasBits();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Descriptor; }
+ }
+
+ public override TestNestedMessageHasBits DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.DefaultInstance; }
+ }
+
+ public override TestNestedMessageHasBits BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestNestedMessageHasBits returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestNestedMessageHasBits) {
+ return MergeFrom((TestNestedMessageHasBits) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestNestedMessageHasBits other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.DefaultInstance) return this;
+ if (other.HasOptionalNestedMessage) {
+ MergeOptionalNestedMessage(other.OptionalNestedMessage);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder();
+ if (HasOptionalNestedMessage) {
+ subBuilder.MergeFrom(OptionalNestedMessage);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ OptionalNestedMessage = subBuilder.BuildPartial();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasOptionalNestedMessage {
+ get { return result.HasOptionalNestedMessage; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage OptionalNestedMessage {
+ get { return result.OptionalNestedMessage; }
+ set { SetOptionalNestedMessage(value); }
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = value;
+ return this;
+ }
+ public Builder SetOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasOptionalNestedMessage = true;
+ result.optionalNestedMessage_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeOptionalNestedMessage(global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasOptionalNestedMessage &&
+ result.optionalNestedMessage_ != global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance) {
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.CreateBuilder(result.optionalNestedMessage_).MergeFrom(value).BuildPartial();
+ } else {
+ result.optionalNestedMessage_ = value;
+ }
+ result.hasOptionalNestedMessage = true;
+ return this;
+ }
+ public Builder ClearOptionalNestedMessage() {
+ result.hasOptionalNestedMessage = false;
+ result.optionalNestedMessage_ = global::Google.ProtocolBuffers.TestProtos.TestNestedMessageHasBits.Types.NestedMessage.DefaultInstance;
+ return this;
+ }
+ }
+ static TestNestedMessageHasBits() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestCamelCaseFieldNames : pb::GeneratedMessage<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> {
+ private static readonly TestCamelCaseFieldNames defaultInstance = new Builder().BuildPartial();
+ public static TestCamelCaseFieldNames DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestCamelCaseFieldNames DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestCamelCaseFieldNames ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestCamelCaseFieldNames__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestCamelCaseFieldNames, TestCamelCaseFieldNames.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestCamelCaseFieldNames__FieldAccessorTable; }
+ }
+
+ public const int PrimitiveFieldFieldNumber = 1;
+ private bool hasPrimitiveField;
+ private int primitiveField_ = 0;
+ public bool HasPrimitiveField {
+ get { return hasPrimitiveField; }
+ }
+ public int PrimitiveField {
+ get { return primitiveField_; }
+ }
+
+ public const int StringFieldFieldNumber = 2;
+ private bool hasStringField;
+ private string stringField_ = "";
+ public bool HasStringField {
+ get { return hasStringField; }
+ }
+ public string StringField {
+ get { return stringField_; }
+ }
+
+ public const int EnumFieldFieldNumber = 3;
+ private bool hasEnumField;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumField_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumField {
+ get { return hasEnumField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {
+ get { return enumField_; }
+ }
+
+ public const int MessageFieldFieldNumber = 4;
+ private bool hasMessageField;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ public bool HasMessageField {
+ get { return hasMessageField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
+ get { return messageField_; }
+ }
+
+ public const int StringPieceFieldFieldNumber = 5;
+ private bool hasStringPieceField;
+ private string stringPieceField_ = "";
+ public bool HasStringPieceField {
+ get { return hasStringPieceField; }
+ }
+ public string StringPieceField {
+ get { return stringPieceField_; }
+ }
+
+ public const int CordFieldFieldNumber = 6;
+ private bool hasCordField;
+ private string cordField_ = "";
+ public bool HasCordField {
+ get { return hasCordField; }
+ }
+ public string CordField {
+ get { return cordField_; }
+ }
+
+ public const int RepeatedPrimitiveFieldFieldNumber = 7;
+ private pbc::PopsicleList<int> repeatedPrimitiveField_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedPrimitiveFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedPrimitiveField_); }
+ }
+ public int RepeatedPrimitiveFieldCount {
+ get { return repeatedPrimitiveField_.Count; }
+ }
+ public int GetRepeatedPrimitiveField(int index) {
+ return repeatedPrimitiveField_[index];
+ }
+
+ public const int RepeatedStringFieldFieldNumber = 8;
+ private pbc::PopsicleList<string> repeatedStringField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringField_); }
+ }
+ public int RepeatedStringFieldCount {
+ get { return repeatedStringField_.Count; }
+ }
+ public string GetRepeatedStringField(int index) {
+ return repeatedStringField_[index];
+ }
+
+ public const int RepeatedEnumFieldFieldNumber = 9;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> repeatedEnumField_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedEnumFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedEnumField_); }
+ }
+ public int RepeatedEnumFieldCount {
+ get { return repeatedEnumField_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedEnumField(int index) {
+ return repeatedEnumField_[index];
+ }
+
+ public const int RepeatedMessageFieldFieldNumber = 10;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> repeatedMessageField_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedMessageFieldList {
+ get { return repeatedMessageField_; }
+ }
+ public int RepeatedMessageFieldCount {
+ get { return repeatedMessageField_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedMessageField(int index) {
+ return repeatedMessageField_[index];
+ }
+
+ public const int RepeatedStringPieceFieldFieldNumber = 11;
+ private pbc::PopsicleList<string> repeatedStringPieceField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedStringPieceFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedStringPieceField_); }
+ }
+ public int RepeatedStringPieceFieldCount {
+ get { return repeatedStringPieceField_.Count; }
+ }
+ public string GetRepeatedStringPieceField(int index) {
+ return repeatedStringPieceField_[index];
+ }
+
+ public const int RepeatedCordFieldFieldNumber = 12;
+ private pbc::PopsicleList<string> repeatedCordField_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedCordFieldList {
+ get { return pbc::Lists.AsReadOnly(repeatedCordField_); }
+ }
+ public int RepeatedCordFieldCount {
+ get { return repeatedCordField_.Count; }
+ }
+ public string GetRepeatedCordField(int index) {
+ return repeatedCordField_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasPrimitiveField) {
+ output.WriteInt32(1, PrimitiveField);
+ }
+ if (HasStringField) {
+ output.WriteString(2, StringField);
+ }
+ if (HasEnumField) {
+ output.WriteEnum(3, (int) EnumField);
+ }
+ if (HasMessageField) {
+ output.WriteMessage(4, MessageField);
+ }
+ if (HasStringPieceField) {
+ output.WriteString(5, StringPieceField);
+ }
+ if (HasCordField) {
+ output.WriteString(6, CordField);
+ }
+ if (repeatedPrimitiveField_.Count > 0) {
+ foreach (int element in repeatedPrimitiveField_) {
+ output.WriteInt32(7, element);
+ }
+ }
+ if (repeatedStringField_.Count > 0) {
+ foreach (string element in repeatedStringField_) {
+ output.WriteString(8, element);
+ }
+ }
+ if (repeatedEnumField_.Count > 0) {
+ foreach (int element in repeatedEnumField_) {
+ output.WriteEnum(9, element);
+ }
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedMessageFieldList) {
+ output.WriteMessage(10, element);
+ }
+ if (repeatedStringPieceField_.Count > 0) {
+ foreach (string element in repeatedStringPieceField_) {
+ output.WriteString(11, element);
+ }
+ }
+ if (repeatedCordField_.Count > 0) {
+ foreach (string element in repeatedCordField_) {
+ output.WriteString(12, element);
+ }
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasPrimitiveField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(1, PrimitiveField);
+ }
+ if (HasStringField) {
+ size += pb::CodedOutputStream.ComputeStringSize(2, StringField);
+ }
+ if (HasEnumField) {
+ size += pb::CodedOutputStream.ComputeEnumSize(3, (int) EnumField);
+ }
+ if (HasMessageField) {
+ size += pb::CodedOutputStream.ComputeMessageSize(4, MessageField);
+ }
+ if (HasStringPieceField) {
+ size += pb::CodedOutputStream.ComputeStringSize(5, StringPieceField);
+ }
+ if (HasCordField) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, CordField);
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedPrimitiveFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedPrimitiveField_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedStringField_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (repeatedEnumField_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in repeatedEnumField_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 1 * repeatedEnumField_.Count;
+ }
+ }
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignMessage element in RepeatedMessageFieldList) {
+ size += pb::CodedOutputStream.ComputeMessageSize(10, element);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedStringPieceFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedStringPieceField_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedCordFieldList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedCordField_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestCamelCaseFieldNames ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestCamelCaseFieldNames ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestCamelCaseFieldNames prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestCamelCaseFieldNames, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestCamelCaseFieldNames result = new TestCamelCaseFieldNames();
+
+ protected override TestCamelCaseFieldNames MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestCamelCaseFieldNames();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.Descriptor; }
+ }
+
+ public override TestCamelCaseFieldNames DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.DefaultInstance; }
+ }
+
+ public override TestCamelCaseFieldNames BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.repeatedPrimitiveField_.MakeReadOnly();
+ result.repeatedStringField_.MakeReadOnly();
+ result.repeatedEnumField_.MakeReadOnly();
+ result.repeatedMessageField_.MakeReadOnly();
+ result.repeatedStringPieceField_.MakeReadOnly();
+ result.repeatedCordField_.MakeReadOnly();
+ TestCamelCaseFieldNames returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestCamelCaseFieldNames) {
+ return MergeFrom((TestCamelCaseFieldNames) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestCamelCaseFieldNames other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestCamelCaseFieldNames.DefaultInstance) return this;
+ if (other.HasPrimitiveField) {
+ PrimitiveField = other.PrimitiveField;
+ }
+ if (other.HasStringField) {
+ StringField = other.StringField;
+ }
+ if (other.HasEnumField) {
+ EnumField = other.EnumField;
+ }
+ if (other.HasMessageField) {
+ MergeMessageField(other.MessageField);
+ }
+ if (other.HasStringPieceField) {
+ StringPieceField = other.StringPieceField;
+ }
+ if (other.HasCordField) {
+ CordField = other.CordField;
+ }
+ if (other.repeatedPrimitiveField_.Count != 0) {
+ base.AddRange(other.repeatedPrimitiveField_, result.repeatedPrimitiveField_);
+ }
+ if (other.repeatedStringField_.Count != 0) {
+ base.AddRange(other.repeatedStringField_, result.repeatedStringField_);
+ }
+ if (other.repeatedEnumField_.Count != 0) {
+ base.AddRange(other.repeatedEnumField_, result.repeatedEnumField_);
+ }
+ if (other.repeatedMessageField_.Count != 0) {
+ base.AddRange(other.repeatedMessageField_, result.repeatedMessageField_);
+ }
+ if (other.repeatedStringPieceField_.Count != 0) {
+ base.AddRange(other.repeatedStringPieceField_, result.repeatedStringPieceField_);
+ }
+ if (other.repeatedCordField_.Count != 0) {
+ base.AddRange(other.repeatedCordField_, result.repeatedCordField_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ PrimitiveField = input.ReadInt32();
+ break;
+ }
+ case 18: {
+ StringField = input.ReadString();
+ break;
+ }
+ case 24: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(3, (ulong) rawValue);
+ } else {
+ EnumField = (global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue;
+ }
+ break;
+ }
+ case 34: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (HasMessageField) {
+ subBuilder.MergeFrom(MessageField);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageField = subBuilder.BuildPartial();
+ break;
+ }
+ case 42: {
+ StringPieceField = input.ReadString();
+ break;
+ }
+ case 50: {
+ CordField = input.ReadString();
+ break;
+ }
+ case 56: {
+ AddRepeatedPrimitiveField(input.ReadInt32());
+ break;
+ }
+ case 66: {
+ AddRepeatedStringField(input.ReadString());
+ break;
+ }
+ case 72: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(9, (ulong) rawValue);
+ } else {
+ AddRepeatedEnumField((global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue);
+ }
+ break;
+ }
+ case 82: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ input.ReadMessage(subBuilder, extensionRegistry);
+ AddRepeatedMessageField(subBuilder.BuildPartial());
+ break;
+ }
+ case 90: {
+ AddRepeatedStringPieceField(input.ReadString());
+ break;
+ }
+ case 98: {
+ AddRepeatedCordField(input.ReadString());
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasPrimitiveField {
+ get { return result.HasPrimitiveField; }
+ }
+ public int PrimitiveField {
+ get { return result.PrimitiveField; }
+ set { SetPrimitiveField(value); }
+ }
+ public Builder SetPrimitiveField(int value) {
+ result.hasPrimitiveField = true;
+ result.primitiveField_ = value;
+ return this;
+ }
+ public Builder ClearPrimitiveField() {
+ result.hasPrimitiveField = false;
+ result.primitiveField_ = 0;
+ return this;
+ }
+
+ public bool HasStringField {
+ get { return result.HasStringField; }
+ }
+ public string StringField {
+ get { return result.StringField; }
+ set { SetStringField(value); }
+ }
+ public Builder SetStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasStringField = true;
+ result.stringField_ = value;
+ return this;
+ }
+ public Builder ClearStringField() {
+ result.hasStringField = false;
+ result.stringField_ = "";
+ return this;
+ }
+
+ public bool HasEnumField {
+ get { return result.HasEnumField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumField {
+ get { return result.EnumField; }
+ set { SetEnumField(value); }
+ }
+ public Builder SetEnumField(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.hasEnumField = true;
+ result.enumField_ = value;
+ return this;
+ }
+ public Builder ClearEnumField() {
+ result.hasEnumField = false;
+ result.enumField_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasMessageField {
+ get { return result.HasMessageField; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageField {
+ get { return result.MessageField; }
+ set { SetMessageField(value); }
+ }
+ public Builder SetMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasMessageField = true;
+ result.messageField_ = value;
+ return this;
+ }
+ public Builder SetMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasMessageField = true;
+ result.messageField_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasMessageField &&
+ result.messageField_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageField_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageField_ = value;
+ }
+ result.hasMessageField = true;
+ return this;
+ }
+ public Builder ClearMessageField() {
+ result.hasMessageField = false;
+ result.messageField_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ return this;
+ }
+
+ public bool HasStringPieceField {
+ get { return result.HasStringPieceField; }
+ }
+ public string StringPieceField {
+ get { return result.StringPieceField; }
+ set { SetStringPieceField(value); }
+ }
+ public Builder SetStringPieceField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasStringPieceField = true;
+ result.stringPieceField_ = value;
+ return this;
+ }
+ public Builder ClearStringPieceField() {
+ result.hasStringPieceField = false;
+ result.stringPieceField_ = "";
+ return this;
+ }
+
+ public bool HasCordField {
+ get { return result.HasCordField; }
+ }
+ public string CordField {
+ get { return result.CordField; }
+ set { SetCordField(value); }
+ }
+ public Builder SetCordField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasCordField = true;
+ result.cordField_ = value;
+ return this;
+ }
+ public Builder ClearCordField() {
+ result.hasCordField = false;
+ result.cordField_ = "";
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedPrimitiveFieldList {
+ get { return result.repeatedPrimitiveField_; }
+ }
+ public int RepeatedPrimitiveFieldCount {
+ get { return result.RepeatedPrimitiveFieldCount; }
+ }
+ public int GetRepeatedPrimitiveField(int index) {
+ return result.GetRepeatedPrimitiveField(index);
+ }
+ public Builder SetRepeatedPrimitiveField(int index, int value) {
+ result.repeatedPrimitiveField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedPrimitiveField(int value) {
+ result.repeatedPrimitiveField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedPrimitiveField(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedPrimitiveField_);
+ return this;
+ }
+ public Builder ClearRepeatedPrimitiveField() {
+ result.repeatedPrimitiveField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringFieldList {
+ get { return result.repeatedStringField_; }
+ }
+ public int RepeatedStringFieldCount {
+ get { return result.RepeatedStringFieldCount; }
+ }
+ public string GetRepeatedStringField(int index) {
+ return result.GetRepeatedStringField(index);
+ }
+ public Builder SetRepeatedStringField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedStringField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedStringField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringField(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedStringField_);
+ return this;
+ }
+ public Builder ClearRepeatedStringField() {
+ result.repeatedStringField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> RepeatedEnumFieldList {
+ get { return result.repeatedEnumField_; }
+ }
+ public int RepeatedEnumFieldCount {
+ get { return result.RepeatedEnumFieldCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetRepeatedEnumField(int index) {
+ return result.GetRepeatedEnumField(index);
+ }
+ public Builder SetRepeatedEnumField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.repeatedEnumField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedEnumField(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.repeatedEnumField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedEnumField(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ base.AddRange(values, result.repeatedEnumField_);
+ return this;
+ }
+ public Builder ClearRepeatedEnumField() {
+ result.repeatedEnumField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> RepeatedMessageFieldList {
+ get { return result.repeatedMessageField_; }
+ }
+ public int RepeatedMessageFieldCount {
+ get { return result.RepeatedMessageFieldCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage GetRepeatedMessageField(int index) {
+ return result.GetRepeatedMessageField(index);
+ }
+ public Builder SetRepeatedMessageField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedMessageField_[index] = value;
+ return this;
+ }
+ public Builder SetRepeatedMessageField(int index, global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedMessageField_[index] = builderForValue.Build();
+ return this;
+ }
+ public Builder AddRepeatedMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedMessageField_.Add(value);
+ return this;
+ }
+ public Builder AddRepeatedMessageField(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.repeatedMessageField_.Add(builderForValue.Build());
+ return this;
+ }
+ public Builder AddRangeRepeatedMessageField(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignMessage> values) {
+ base.AddRange(values, result.repeatedMessageField_);
+ return this;
+ }
+ public Builder ClearRepeatedMessageField() {
+ result.repeatedMessageField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedStringPieceFieldList {
+ get { return result.repeatedStringPieceField_; }
+ }
+ public int RepeatedStringPieceFieldCount {
+ get { return result.RepeatedStringPieceFieldCount; }
+ }
+ public string GetRepeatedStringPieceField(int index) {
+ return result.GetRepeatedStringPieceField(index);
+ }
+ public Builder SetRepeatedStringPieceField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedStringPieceField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedStringPieceField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedStringPieceField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedStringPieceField(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedStringPieceField_);
+ return this;
+ }
+ public Builder ClearRepeatedStringPieceField() {
+ result.repeatedStringPieceField_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedCordFieldList {
+ get { return result.repeatedCordField_; }
+ }
+ public int RepeatedCordFieldCount {
+ get { return result.RepeatedCordFieldCount; }
+ }
+ public string GetRepeatedCordField(int index) {
+ return result.GetRepeatedCordField(index);
+ }
+ public Builder SetRepeatedCordField(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedCordField_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedCordField(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedCordField_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedCordField(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedCordField_);
+ return this;
+ }
+ public Builder ClearRepeatedCordField() {
+ result.repeatedCordField_.Clear();
+ return this;
+ }
+ }
+ static TestCamelCaseFieldNames() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestFieldOrderings : pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder> {
+ private static readonly TestFieldOrderings defaultInstance = new Builder().BuildPartial();
+ public static TestFieldOrderings DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestFieldOrderings DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestFieldOrderings ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestFieldOrderings__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestFieldOrderings, TestFieldOrderings.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestFieldOrderings__FieldAccessorTable; }
+ }
+
+ public const int MyStringFieldNumber = 11;
+ private bool hasMyString;
+ private string myString_ = "";
+ public bool HasMyString {
+ get { return hasMyString; }
+ }
+ public string MyString {
+ get { return myString_; }
+ }
+
+ public const int MyIntFieldNumber = 1;
+ private bool hasMyInt;
+ private long myInt_ = 0L;
+ public bool HasMyInt {
+ get { return hasMyInt; }
+ }
+ public long MyInt {
+ get { return myInt_; }
+ }
+
+ public const int MyFloatFieldNumber = 101;
+ private bool hasMyFloat;
+ private float myFloat_ = 0F;
+ public bool HasMyFloat {
+ get { return hasMyFloat; }
+ }
+ public float MyFloat {
+ get { return myFloat_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessage<TestFieldOrderings, TestFieldOrderings.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ if (HasMyInt) {
+ output.WriteInt64(1, MyInt);
+ }
+ extensionWriter.WriteUntil(11, output);
+ if (HasMyString) {
+ output.WriteString(11, MyString);
+ }
+ extensionWriter.WriteUntil(101, output);
+ if (HasMyFloat) {
+ output.WriteFloat(101, MyFloat);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasMyString) {
+ size += pb::CodedOutputStream.ComputeStringSize(11, MyString);
+ }
+ if (HasMyInt) {
+ size += pb::CodedOutputStream.ComputeInt64Size(1, MyInt);
+ }
+ if (HasMyFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(101, MyFloat);
+ }
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestFieldOrderings ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestFieldOrderings ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestFieldOrderings ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestFieldOrderings prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilder<TestFieldOrderings, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestFieldOrderings result = new TestFieldOrderings();
+
+ protected override TestFieldOrderings MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestFieldOrderings();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.Descriptor; }
+ }
+
+ public override TestFieldOrderings DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.DefaultInstance; }
+ }
+
+ public override TestFieldOrderings BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestFieldOrderings returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestFieldOrderings) {
+ return MergeFrom((TestFieldOrderings) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestFieldOrderings other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestFieldOrderings.DefaultInstance) return this;
+ if (other.HasMyString) {
+ MyString = other.MyString;
+ }
+ if (other.HasMyInt) {
+ MyInt = other.MyInt;
+ }
+ if (other.HasMyFloat) {
+ MyFloat = other.MyFloat;
+ }
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 8: {
+ MyInt = input.ReadInt64();
+ break;
+ }
+ case 90: {
+ MyString = input.ReadString();
+ break;
+ }
+ case 813: {
+ MyFloat = input.ReadFloat();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasMyString {
+ get { return result.HasMyString; }
+ }
+ public string MyString {
+ get { return result.MyString; }
+ set { SetMyString(value); }
+ }
+ public Builder SetMyString(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasMyString = true;
+ result.myString_ = value;
+ return this;
+ }
+ public Builder ClearMyString() {
+ result.hasMyString = false;
+ result.myString_ = "";
+ return this;
+ }
+
+ public bool HasMyInt {
+ get { return result.HasMyInt; }
+ }
+ public long MyInt {
+ get { return result.MyInt; }
+ set { SetMyInt(value); }
+ }
+ public Builder SetMyInt(long value) {
+ result.hasMyInt = true;
+ result.myInt_ = value;
+ return this;
+ }
+ public Builder ClearMyInt() {
+ result.hasMyInt = false;
+ result.myInt_ = 0L;
+ return this;
+ }
+
+ public bool HasMyFloat {
+ get { return result.HasMyFloat; }
+ }
+ public float MyFloat {
+ get { return result.MyFloat; }
+ set { SetMyFloat(value); }
+ }
+ public Builder SetMyFloat(float value) {
+ result.hasMyFloat = true;
+ result.myFloat_ = value;
+ return this;
+ }
+ public Builder ClearMyFloat() {
+ result.hasMyFloat = false;
+ result.myFloat_ = 0F;
+ return this;
+ }
+ }
+ static TestFieldOrderings() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestExtremeDefaultValues : pb::GeneratedMessage<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> {
+ private static readonly TestExtremeDefaultValues defaultInstance = new Builder().BuildPartial();
+ public static TestExtremeDefaultValues DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestExtremeDefaultValues DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestExtremeDefaultValues ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestExtremeDefaultValues__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestExtremeDefaultValues, TestExtremeDefaultValues.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestExtremeDefaultValues__FieldAccessorTable; }
+ }
+
+ public const int EscapedBytesFieldNumber = 1;
+ private bool hasEscapedBytes;
+ private pb::ByteString escapedBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[0].DefaultValue;
+ public bool HasEscapedBytes {
+ get { return hasEscapedBytes; }
+ }
+ public pb::ByteString EscapedBytes {
+ get { return escapedBytes_; }
+ }
+
+ public const int LargeUint32FieldNumber = 2;
+ private bool hasLargeUint32;
+ private uint largeUint32_ = 4294967295;
+ public bool HasLargeUint32 {
+ get { return hasLargeUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint LargeUint32 {
+ get { return largeUint32_; }
+ }
+
+ public const int LargeUint64FieldNumber = 3;
+ private bool hasLargeUint64;
+ private ulong largeUint64_ = 18446744073709551615UL;
+ public bool HasLargeUint64 {
+ get { return hasLargeUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong LargeUint64 {
+ get { return largeUint64_; }
+ }
+
+ public const int SmallInt32FieldNumber = 4;
+ private bool hasSmallInt32;
+ private int smallInt32_ = -2147483647;
+ public bool HasSmallInt32 {
+ get { return hasSmallInt32; }
+ }
+ public int SmallInt32 {
+ get { return smallInt32_; }
+ }
+
+ public const int SmallInt64FieldNumber = 5;
+ private bool hasSmallInt64;
+ private long smallInt64_ = -9223372036854775807L;
+ public bool HasSmallInt64 {
+ get { return hasSmallInt64; }
+ }
+ public long SmallInt64 {
+ get { return smallInt64_; }
+ }
+
+ public const int Utf8StringFieldNumber = 6;
+ private bool hasUtf8String;
+ private string utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[5].DefaultValue;
+ public bool HasUtf8String {
+ get { return hasUtf8String; }
+ }
+ public string Utf8String {
+ get { return utf8String_; }
+ }
+
+ public const int ZeroFloatFieldNumber = 7;
+ private bool hasZeroFloat;
+ private float zeroFloat_ = 0F;
+ public bool HasZeroFloat {
+ get { return hasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return zeroFloat_; }
+ }
+
+ public const int OneFloatFieldNumber = 8;
+ private bool hasOneFloat;
+ private float oneFloat_ = 1F;
+ public bool HasOneFloat {
+ get { return hasOneFloat; }
+ }
+ public float OneFloat {
+ get { return oneFloat_; }
+ }
+
+ public const int SmallFloatFieldNumber = 9;
+ private bool hasSmallFloat;
+ private float smallFloat_ = 1.5F;
+ public bool HasSmallFloat {
+ get { return hasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return smallFloat_; }
+ }
+
+ public const int NegativeOneFloatFieldNumber = 10;
+ private bool hasNegativeOneFloat;
+ private float negativeOneFloat_ = -1F;
+ public bool HasNegativeOneFloat {
+ get { return hasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return negativeOneFloat_; }
+ }
+
+ public const int NegativeFloatFieldNumber = 11;
+ private bool hasNegativeFloat;
+ private float negativeFloat_ = -1.5F;
+ public bool HasNegativeFloat {
+ get { return hasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return negativeFloat_; }
+ }
+
+ public const int LargeFloatFieldNumber = 12;
+ private bool hasLargeFloat;
+ private float largeFloat_ = 2E+08F;
+ public bool HasLargeFloat {
+ get { return hasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return largeFloat_; }
+ }
+
+ public const int SmallNegativeFloatFieldNumber = 13;
+ private bool hasSmallNegativeFloat;
+ private float smallNegativeFloat_ = -8E-28F;
+ public bool HasSmallNegativeFloat {
+ get { return hasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return smallNegativeFloat_; }
+ }
+
+ public const int InfDoubleFieldNumber = 14;
+ private bool hasInfDouble;
+ private double infDouble_ = double.PositiveInfinity;
+ public bool HasInfDouble {
+ get { return hasInfDouble; }
+ }
+ public double InfDouble {
+ get { return infDouble_; }
+ }
+
+ public const int NegInfDoubleFieldNumber = 15;
+ private bool hasNegInfDouble;
+ private double negInfDouble_ = double.NegativeInfinity;
+ public bool HasNegInfDouble {
+ get { return hasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return negInfDouble_; }
+ }
+
+ public const int NanDoubleFieldNumber = 16;
+ private bool hasNanDouble;
+ private double nanDouble_ = double.NaN;
+ public bool HasNanDouble {
+ get { return hasNanDouble; }
+ }
+ public double NanDouble {
+ get { return nanDouble_; }
+ }
+
+ public const int InfFloatFieldNumber = 17;
+ private bool hasInfFloat;
+ private float infFloat_ = float.PositiveInfinity;
+ public bool HasInfFloat {
+ get { return hasInfFloat; }
+ }
+ public float InfFloat {
+ get { return infFloat_; }
+ }
+
+ public const int NegInfFloatFieldNumber = 18;
+ private bool hasNegInfFloat;
+ private float negInfFloat_ = float.NegativeInfinity;
+ public bool HasNegInfFloat {
+ get { return hasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return negInfFloat_; }
+ }
+
+ public const int NanFloatFieldNumber = 19;
+ private bool hasNanFloat;
+ private float nanFloat_ = float.NaN;
+ public bool HasNanFloat {
+ get { return hasNanFloat; }
+ }
+ public float NanFloat {
+ get { return nanFloat_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasEscapedBytes) {
+ output.WriteBytes(1, EscapedBytes);
+ }
+ if (HasLargeUint32) {
+ output.WriteUInt32(2, LargeUint32);
+ }
+ if (HasLargeUint64) {
+ output.WriteUInt64(3, LargeUint64);
+ }
+ if (HasSmallInt32) {
+ output.WriteInt32(4, SmallInt32);
+ }
+ if (HasSmallInt64) {
+ output.WriteInt64(5, SmallInt64);
+ }
+ if (HasUtf8String) {
+ output.WriteString(6, Utf8String);
+ }
+ if (HasZeroFloat) {
+ output.WriteFloat(7, ZeroFloat);
+ }
+ if (HasOneFloat) {
+ output.WriteFloat(8, OneFloat);
+ }
+ if (HasSmallFloat) {
+ output.WriteFloat(9, SmallFloat);
+ }
+ if (HasNegativeOneFloat) {
+ output.WriteFloat(10, NegativeOneFloat);
+ }
+ if (HasNegativeFloat) {
+ output.WriteFloat(11, NegativeFloat);
+ }
+ if (HasLargeFloat) {
+ output.WriteFloat(12, LargeFloat);
+ }
+ if (HasSmallNegativeFloat) {
+ output.WriteFloat(13, SmallNegativeFloat);
+ }
+ if (HasInfDouble) {
+ output.WriteDouble(14, InfDouble);
+ }
+ if (HasNegInfDouble) {
+ output.WriteDouble(15, NegInfDouble);
+ }
+ if (HasNanDouble) {
+ output.WriteDouble(16, NanDouble);
+ }
+ if (HasInfFloat) {
+ output.WriteFloat(17, InfFloat);
+ }
+ if (HasNegInfFloat) {
+ output.WriteFloat(18, NegInfFloat);
+ }
+ if (HasNanFloat) {
+ output.WriteFloat(19, NanFloat);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasEscapedBytes) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, EscapedBytes);
+ }
+ if (HasLargeUint32) {
+ size += pb::CodedOutputStream.ComputeUInt32Size(2, LargeUint32);
+ }
+ if (HasLargeUint64) {
+ size += pb::CodedOutputStream.ComputeUInt64Size(3, LargeUint64);
+ }
+ if (HasSmallInt32) {
+ size += pb::CodedOutputStream.ComputeInt32Size(4, SmallInt32);
+ }
+ if (HasSmallInt64) {
+ size += pb::CodedOutputStream.ComputeInt64Size(5, SmallInt64);
+ }
+ if (HasUtf8String) {
+ size += pb::CodedOutputStream.ComputeStringSize(6, Utf8String);
+ }
+ if (HasZeroFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(7, ZeroFloat);
+ }
+ if (HasOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(8, OneFloat);
+ }
+ if (HasSmallFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(9, SmallFloat);
+ }
+ if (HasNegativeOneFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(10, NegativeOneFloat);
+ }
+ if (HasNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(11, NegativeFloat);
+ }
+ if (HasLargeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(12, LargeFloat);
+ }
+ if (HasSmallNegativeFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(13, SmallNegativeFloat);
+ }
+ if (HasInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(14, InfDouble);
+ }
+ if (HasNegInfDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(15, NegInfDouble);
+ }
+ if (HasNanDouble) {
+ size += pb::CodedOutputStream.ComputeDoubleSize(16, NanDouble);
+ }
+ if (HasInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(17, InfFloat);
+ }
+ if (HasNegInfFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(18, NegInfFloat);
+ }
+ if (HasNanFloat) {
+ size += pb::CodedOutputStream.ComputeFloatSize(19, NanFloat);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestExtremeDefaultValues ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestExtremeDefaultValues ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestExtremeDefaultValues prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestExtremeDefaultValues, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestExtremeDefaultValues result = new TestExtremeDefaultValues();
+
+ protected override TestExtremeDefaultValues MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestExtremeDefaultValues();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor; }
+ }
+
+ public override TestExtremeDefaultValues DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.DefaultInstance; }
+ }
+
+ public override TestExtremeDefaultValues BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestExtremeDefaultValues returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestExtremeDefaultValues) {
+ return MergeFrom((TestExtremeDefaultValues) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestExtremeDefaultValues other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.DefaultInstance) return this;
+ if (other.HasEscapedBytes) {
+ EscapedBytes = other.EscapedBytes;
+ }
+ if (other.HasLargeUint32) {
+ LargeUint32 = other.LargeUint32;
+ }
+ if (other.HasLargeUint64) {
+ LargeUint64 = other.LargeUint64;
+ }
+ if (other.HasSmallInt32) {
+ SmallInt32 = other.SmallInt32;
+ }
+ if (other.HasSmallInt64) {
+ SmallInt64 = other.SmallInt64;
+ }
+ if (other.HasUtf8String) {
+ Utf8String = other.Utf8String;
+ }
+ if (other.HasZeroFloat) {
+ ZeroFloat = other.ZeroFloat;
+ }
+ if (other.HasOneFloat) {
+ OneFloat = other.OneFloat;
+ }
+ if (other.HasSmallFloat) {
+ SmallFloat = other.SmallFloat;
+ }
+ if (other.HasNegativeOneFloat) {
+ NegativeOneFloat = other.NegativeOneFloat;
+ }
+ if (other.HasNegativeFloat) {
+ NegativeFloat = other.NegativeFloat;
+ }
+ if (other.HasLargeFloat) {
+ LargeFloat = other.LargeFloat;
+ }
+ if (other.HasSmallNegativeFloat) {
+ SmallNegativeFloat = other.SmallNegativeFloat;
+ }
+ if (other.HasInfDouble) {
+ InfDouble = other.InfDouble;
+ }
+ if (other.HasNegInfDouble) {
+ NegInfDouble = other.NegInfDouble;
+ }
+ if (other.HasNanDouble) {
+ NanDouble = other.NanDouble;
+ }
+ if (other.HasInfFloat) {
+ InfFloat = other.InfFloat;
+ }
+ if (other.HasNegInfFloat) {
+ NegInfFloat = other.NegInfFloat;
+ }
+ if (other.HasNanFloat) {
+ NanFloat = other.NanFloat;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ EscapedBytes = input.ReadBytes();
+ break;
+ }
+ case 16: {
+ LargeUint32 = input.ReadUInt32();
+ break;
+ }
+ case 24: {
+ LargeUint64 = input.ReadUInt64();
+ break;
+ }
+ case 32: {
+ SmallInt32 = input.ReadInt32();
+ break;
+ }
+ case 40: {
+ SmallInt64 = input.ReadInt64();
+ break;
+ }
+ case 50: {
+ Utf8String = input.ReadString();
+ break;
+ }
+ case 61: {
+ ZeroFloat = input.ReadFloat();
+ break;
+ }
+ case 69: {
+ OneFloat = input.ReadFloat();
+ break;
+ }
+ case 77: {
+ SmallFloat = input.ReadFloat();
+ break;
+ }
+ case 85: {
+ NegativeOneFloat = input.ReadFloat();
+ break;
+ }
+ case 93: {
+ NegativeFloat = input.ReadFloat();
+ break;
+ }
+ case 101: {
+ LargeFloat = input.ReadFloat();
+ break;
+ }
+ case 109: {
+ SmallNegativeFloat = input.ReadFloat();
+ break;
+ }
+ case 113: {
+ InfDouble = input.ReadDouble();
+ break;
+ }
+ case 121: {
+ NegInfDouble = input.ReadDouble();
+ break;
+ }
+ case 129: {
+ NanDouble = input.ReadDouble();
+ break;
+ }
+ case 141: {
+ InfFloat = input.ReadFloat();
+ break;
+ }
+ case 149: {
+ NegInfFloat = input.ReadFloat();
+ break;
+ }
+ case 157: {
+ NanFloat = input.ReadFloat();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasEscapedBytes {
+ get { return result.HasEscapedBytes; }
+ }
+ public pb::ByteString EscapedBytes {
+ get { return result.EscapedBytes; }
+ set { SetEscapedBytes(value); }
+ }
+ public Builder SetEscapedBytes(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasEscapedBytes = true;
+ result.escapedBytes_ = value;
+ return this;
+ }
+ public Builder ClearEscapedBytes() {
+ result.hasEscapedBytes = false;
+ result.escapedBytes_ = (pb::ByteString) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[0].DefaultValue;
+ return this;
+ }
+
+ public bool HasLargeUint32 {
+ get { return result.HasLargeUint32; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint LargeUint32 {
+ get { return result.LargeUint32; }
+ set { SetLargeUint32(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetLargeUint32(uint value) {
+ result.hasLargeUint32 = true;
+ result.largeUint32_ = value;
+ return this;
+ }
+ public Builder ClearLargeUint32() {
+ result.hasLargeUint32 = false;
+ result.largeUint32_ = 4294967295;
+ return this;
+ }
+
+ public bool HasLargeUint64 {
+ get { return result.HasLargeUint64; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong LargeUint64 {
+ get { return result.LargeUint64; }
+ set { SetLargeUint64(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetLargeUint64(ulong value) {
+ result.hasLargeUint64 = true;
+ result.largeUint64_ = value;
+ return this;
+ }
+ public Builder ClearLargeUint64() {
+ result.hasLargeUint64 = false;
+ result.largeUint64_ = 18446744073709551615UL;
+ return this;
+ }
+
+ public bool HasSmallInt32 {
+ get { return result.HasSmallInt32; }
+ }
+ public int SmallInt32 {
+ get { return result.SmallInt32; }
+ set { SetSmallInt32(value); }
+ }
+ public Builder SetSmallInt32(int value) {
+ result.hasSmallInt32 = true;
+ result.smallInt32_ = value;
+ return this;
+ }
+ public Builder ClearSmallInt32() {
+ result.hasSmallInt32 = false;
+ result.smallInt32_ = -2147483647;
+ return this;
+ }
+
+ public bool HasSmallInt64 {
+ get { return result.HasSmallInt64; }
+ }
+ public long SmallInt64 {
+ get { return result.SmallInt64; }
+ set { SetSmallInt64(value); }
+ }
+ public Builder SetSmallInt64(long value) {
+ result.hasSmallInt64 = true;
+ result.smallInt64_ = value;
+ return this;
+ }
+ public Builder ClearSmallInt64() {
+ result.hasSmallInt64 = false;
+ result.smallInt64_ = -9223372036854775807L;
+ return this;
+ }
+
+ public bool HasUtf8String {
+ get { return result.HasUtf8String; }
+ }
+ public string Utf8String {
+ get { return result.Utf8String; }
+ set { SetUtf8String(value); }
+ }
+ public Builder SetUtf8String(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasUtf8String = true;
+ result.utf8String_ = value;
+ return this;
+ }
+ public Builder ClearUtf8String() {
+ result.hasUtf8String = false;
+ result.utf8String_ = (string) global::Google.ProtocolBuffers.TestProtos.TestExtremeDefaultValues.Descriptor.Fields[5].DefaultValue;
+ return this;
+ }
+
+ public bool HasZeroFloat {
+ get { return result.HasZeroFloat; }
+ }
+ public float ZeroFloat {
+ get { return result.ZeroFloat; }
+ set { SetZeroFloat(value); }
+ }
+ public Builder SetZeroFloat(float value) {
+ result.hasZeroFloat = true;
+ result.zeroFloat_ = value;
+ return this;
+ }
+ public Builder ClearZeroFloat() {
+ result.hasZeroFloat = false;
+ result.zeroFloat_ = 0F;
+ return this;
+ }
+
+ public bool HasOneFloat {
+ get { return result.HasOneFloat; }
+ }
+ public float OneFloat {
+ get { return result.OneFloat; }
+ set { SetOneFloat(value); }
+ }
+ public Builder SetOneFloat(float value) {
+ result.hasOneFloat = true;
+ result.oneFloat_ = value;
+ return this;
+ }
+ public Builder ClearOneFloat() {
+ result.hasOneFloat = false;
+ result.oneFloat_ = 1F;
+ return this;
+ }
+
+ public bool HasSmallFloat {
+ get { return result.HasSmallFloat; }
+ }
+ public float SmallFloat {
+ get { return result.SmallFloat; }
+ set { SetSmallFloat(value); }
+ }
+ public Builder SetSmallFloat(float value) {
+ result.hasSmallFloat = true;
+ result.smallFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallFloat() {
+ result.hasSmallFloat = false;
+ result.smallFloat_ = 1.5F;
+ return this;
+ }
+
+ public bool HasNegativeOneFloat {
+ get { return result.HasNegativeOneFloat; }
+ }
+ public float NegativeOneFloat {
+ get { return result.NegativeOneFloat; }
+ set { SetNegativeOneFloat(value); }
+ }
+ public Builder SetNegativeOneFloat(float value) {
+ result.hasNegativeOneFloat = true;
+ result.negativeOneFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeOneFloat() {
+ result.hasNegativeOneFloat = false;
+ result.negativeOneFloat_ = -1F;
+ return this;
+ }
+
+ public bool HasNegativeFloat {
+ get { return result.HasNegativeFloat; }
+ }
+ public float NegativeFloat {
+ get { return result.NegativeFloat; }
+ set { SetNegativeFloat(value); }
+ }
+ public Builder SetNegativeFloat(float value) {
+ result.hasNegativeFloat = true;
+ result.negativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegativeFloat() {
+ result.hasNegativeFloat = false;
+ result.negativeFloat_ = -1.5F;
+ return this;
+ }
+
+ public bool HasLargeFloat {
+ get { return result.HasLargeFloat; }
+ }
+ public float LargeFloat {
+ get { return result.LargeFloat; }
+ set { SetLargeFloat(value); }
+ }
+ public Builder SetLargeFloat(float value) {
+ result.hasLargeFloat = true;
+ result.largeFloat_ = value;
+ return this;
+ }
+ public Builder ClearLargeFloat() {
+ result.hasLargeFloat = false;
+ result.largeFloat_ = 2E+08F;
+ return this;
+ }
+
+ public bool HasSmallNegativeFloat {
+ get { return result.HasSmallNegativeFloat; }
+ }
+ public float SmallNegativeFloat {
+ get { return result.SmallNegativeFloat; }
+ set { SetSmallNegativeFloat(value); }
+ }
+ public Builder SetSmallNegativeFloat(float value) {
+ result.hasSmallNegativeFloat = true;
+ result.smallNegativeFloat_ = value;
+ return this;
+ }
+ public Builder ClearSmallNegativeFloat() {
+ result.hasSmallNegativeFloat = false;
+ result.smallNegativeFloat_ = -8E-28F;
+ return this;
+ }
+
+ public bool HasInfDouble {
+ get { return result.HasInfDouble; }
+ }
+ public double InfDouble {
+ get { return result.InfDouble; }
+ set { SetInfDouble(value); }
+ }
+ public Builder SetInfDouble(double value) {
+ result.hasInfDouble = true;
+ result.infDouble_ = value;
+ return this;
+ }
+ public Builder ClearInfDouble() {
+ result.hasInfDouble = false;
+ result.infDouble_ = double.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfDouble {
+ get { return result.HasNegInfDouble; }
+ }
+ public double NegInfDouble {
+ get { return result.NegInfDouble; }
+ set { SetNegInfDouble(value); }
+ }
+ public Builder SetNegInfDouble(double value) {
+ result.hasNegInfDouble = true;
+ result.negInfDouble_ = value;
+ return this;
+ }
+ public Builder ClearNegInfDouble() {
+ result.hasNegInfDouble = false;
+ result.negInfDouble_ = double.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanDouble {
+ get { return result.HasNanDouble; }
+ }
+ public double NanDouble {
+ get { return result.NanDouble; }
+ set { SetNanDouble(value); }
+ }
+ public Builder SetNanDouble(double value) {
+ result.hasNanDouble = true;
+ result.nanDouble_ = value;
+ return this;
+ }
+ public Builder ClearNanDouble() {
+ result.hasNanDouble = false;
+ result.nanDouble_ = double.NaN;
+ return this;
+ }
+
+ public bool HasInfFloat {
+ get { return result.HasInfFloat; }
+ }
+ public float InfFloat {
+ get { return result.InfFloat; }
+ set { SetInfFloat(value); }
+ }
+ public Builder SetInfFloat(float value) {
+ result.hasInfFloat = true;
+ result.infFloat_ = value;
+ return this;
+ }
+ public Builder ClearInfFloat() {
+ result.hasInfFloat = false;
+ result.infFloat_ = float.PositiveInfinity;
+ return this;
+ }
+
+ public bool HasNegInfFloat {
+ get { return result.HasNegInfFloat; }
+ }
+ public float NegInfFloat {
+ get { return result.NegInfFloat; }
+ set { SetNegInfFloat(value); }
+ }
+ public Builder SetNegInfFloat(float value) {
+ result.hasNegInfFloat = true;
+ result.negInfFloat_ = value;
+ return this;
+ }
+ public Builder ClearNegInfFloat() {
+ result.hasNegInfFloat = false;
+ result.negInfFloat_ = float.NegativeInfinity;
+ return this;
+ }
+
+ public bool HasNanFloat {
+ get { return result.HasNanFloat; }
+ }
+ public float NanFloat {
+ get { return result.NanFloat; }
+ set { SetNanFloat(value); }
+ }
+ public Builder SetNanFloat(float value) {
+ result.hasNanFloat = true;
+ result.nanFloat_ = value;
+ return this;
+ }
+ public Builder ClearNanFloat() {
+ result.hasNanFloat = false;
+ result.nanFloat_ = float.NaN;
+ return this;
+ }
+ }
+ static TestExtremeDefaultValues() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class OneString : pb::GeneratedMessage<OneString, OneString.Builder> {
+ private static readonly OneString defaultInstance = new Builder().BuildPartial();
+ public static OneString DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OneString ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OneString__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneString, OneString.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OneString__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private string data_ = "";
+ public bool HasData {
+ get { return hasData; }
+ }
+ public string Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasData) {
+ output.WriteString(1, Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasData) {
+ size += pb::CodedOutputStream.ComputeStringSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static OneString ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneString ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneString ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneString ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneString prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<OneString, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OneString result = new OneString();
+
+ protected override OneString MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OneString();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.Descriptor; }
+ }
+
+ public override OneString DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance; }
+ }
+
+ public override OneString BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OneString returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneString) {
+ return MergeFrom((OneString) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneString other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneString.DefaultInstance) return this;
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ Data = input.ReadString();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasData {
+ get { return result.HasData; }
+ }
+ public string Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ result.hasData = false;
+ result.data_ = "";
+ return this;
+ }
+ }
+ static OneString() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class OneBytes : pb::GeneratedMessage<OneBytes, OneBytes.Builder> {
+ private static readonly OneBytes defaultInstance = new Builder().BuildPartial();
+ public static OneBytes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override OneBytes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OneBytes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<OneBytes, OneBytes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_OneBytes__FieldAccessorTable; }
+ }
+
+ public const int DataFieldNumber = 1;
+ private bool hasData;
+ private pb::ByteString data_ = pb::ByteString.Empty;
+ public bool HasData {
+ get { return hasData; }
+ }
+ public pb::ByteString Data {
+ get { return data_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasData) {
+ output.WriteBytes(1, Data);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasData) {
+ size += pb::CodedOutputStream.ComputeBytesSize(1, Data);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static OneBytes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static OneBytes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static OneBytes ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(OneBytes prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<OneBytes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ OneBytes result = new OneBytes();
+
+ protected override OneBytes MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new OneBytes();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.Descriptor; }
+ }
+
+ public override OneBytes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance; }
+ }
+
+ public override OneBytes BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ OneBytes returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is OneBytes) {
+ return MergeFrom((OneBytes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(OneBytes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.OneBytes.DefaultInstance) return this;
+ if (other.HasData) {
+ Data = other.Data;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 10: {
+ Data = input.ReadBytes();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasData {
+ get { return result.HasData; }
+ }
+ public pb::ByteString Data {
+ get { return result.Data; }
+ set { SetData(value); }
+ }
+ public Builder SetData(pb::ByteString value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasData = true;
+ result.data_ = value;
+ return this;
+ }
+ public Builder ClearData() {
+ result.hasData = false;
+ result.data_ = pb::ByteString.Empty;
+ return this;
+ }
+ }
+ static OneBytes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestPackedTypes : pb::GeneratedMessage<TestPackedTypes, TestPackedTypes.Builder> {
+ private static readonly TestPackedTypes defaultInstance = new Builder().BuildPartial();
+ public static TestPackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedTypes DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestPackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestPackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestPackedTypes, TestPackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestPackedTypes__FieldAccessorTable; }
+ }
+
+ public const int PackedInt32FieldNumber = 90;
+ private int packedInt32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedInt32List {
+ get { return pbc::Lists.AsReadOnly(packedInt32_); }
+ }
+ public int PackedInt32Count {
+ get { return packedInt32_.Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return packedInt32_[index];
+ }
+
+ public const int PackedInt64FieldNumber = 91;
+ private int packedInt64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedInt64List {
+ get { return pbc::Lists.AsReadOnly(packedInt64_); }
+ }
+ public int PackedInt64Count {
+ get { return packedInt64_.Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return packedInt64_[index];
+ }
+
+ public const int PackedUint32FieldNumber = 92;
+ private int packedUint32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> PackedUint32List {
+ get { return pbc::Lists.AsReadOnly(packedUint32_); }
+ }
+ public int PackedUint32Count {
+ get { return packedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedUint32(int index) {
+ return packedUint32_[index];
+ }
+
+ public const int PackedUint64FieldNumber = 93;
+ private int packedUint64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> PackedUint64List {
+ get { return pbc::Lists.AsReadOnly(packedUint64_); }
+ }
+ public int PackedUint64Count {
+ get { return packedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedUint64(int index) {
+ return packedUint64_[index];
+ }
+
+ public const int PackedSint32FieldNumber = 94;
+ private int packedSint32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSint32List {
+ get { return pbc::Lists.AsReadOnly(packedSint32_); }
+ }
+ public int PackedSint32Count {
+ get { return packedSint32_.Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return packedSint32_[index];
+ }
+
+ public const int PackedSint64FieldNumber = 95;
+ private int packedSint64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSint64List {
+ get { return pbc::Lists.AsReadOnly(packedSint64_); }
+ }
+ public int PackedSint64Count {
+ get { return packedSint64_.Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return packedSint64_[index];
+ }
+
+ public const int PackedFixed32FieldNumber = 96;
+ private int packedFixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<uint> packedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> PackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(packedFixed32_); }
+ }
+ public int PackedFixed32Count {
+ get { return packedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedFixed32(int index) {
+ return packedFixed32_[index];
+ }
+
+ public const int PackedFixed64FieldNumber = 97;
+ private int packedFixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<ulong> packedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> PackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(packedFixed64_); }
+ }
+ public int PackedFixed64Count {
+ get { return packedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedFixed64(int index) {
+ return packedFixed64_[index];
+ }
+
+ public const int PackedSfixed32FieldNumber = 98;
+ private int packedSfixed32MemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed32_); }
+ }
+ public int PackedSfixed32Count {
+ get { return packedSfixed32_.Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return packedSfixed32_[index];
+ }
+
+ public const int PackedSfixed64FieldNumber = 99;
+ private int packedSfixed64MemoizedSerializedSize;
+ private pbc::PopsicleList<long> packedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> PackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(packedSfixed64_); }
+ }
+ public int PackedSfixed64Count {
+ get { return packedSfixed64_.Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return packedSfixed64_[index];
+ }
+
+ public const int PackedFloatFieldNumber = 100;
+ private int packedFloatMemoizedSerializedSize;
+ private pbc::PopsicleList<float> packedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> PackedFloatList {
+ get { return pbc::Lists.AsReadOnly(packedFloat_); }
+ }
+ public int PackedFloatCount {
+ get { return packedFloat_.Count; }
+ }
+ public float GetPackedFloat(int index) {
+ return packedFloat_[index];
+ }
+
+ public const int PackedDoubleFieldNumber = 101;
+ private int packedDoubleMemoizedSerializedSize;
+ private pbc::PopsicleList<double> packedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> PackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(packedDouble_); }
+ }
+ public int PackedDoubleCount {
+ get { return packedDouble_.Count; }
+ }
+ public double GetPackedDouble(int index) {
+ return packedDouble_[index];
+ }
+
+ public const int PackedBoolFieldNumber = 102;
+ private int packedBoolMemoizedSerializedSize;
+ private pbc::PopsicleList<bool> packedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> PackedBoolList {
+ get { return pbc::Lists.AsReadOnly(packedBool_); }
+ }
+ public int PackedBoolCount {
+ get { return packedBool_.Count; }
+ }
+ public bool GetPackedBool(int index) {
+ return packedBool_[index];
+ }
+
+ public const int PackedEnumFieldNumber = 103;
+ private int packedEnumMemoizedSerializedSize;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> packedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> PackedEnumList {
+ get { return pbc::Lists.AsReadOnly(packedEnum_); }
+ }
+ public int PackedEnumCount {
+ get { return packedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetPackedEnum(int index) {
+ return packedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (packedInt32_.Count > 0) {
+ output.WriteRawVarint32(722);
+ output.WriteRawVarint32((uint) packedInt32MemoizedSerializedSize);
+ foreach (int element in packedInt32_) {
+ output.WriteInt32NoTag(element);
+ }
+ }
+ if (packedInt64_.Count > 0) {
+ output.WriteRawVarint32(730);
+ output.WriteRawVarint32((uint) packedInt64MemoizedSerializedSize);
+ foreach (long element in packedInt64_) {
+ output.WriteInt64NoTag(element);
+ }
+ }
+ if (packedUint32_.Count > 0) {
+ output.WriteRawVarint32(738);
+ output.WriteRawVarint32((uint) packedUint32MemoizedSerializedSize);
+ foreach (uint element in packedUint32_) {
+ output.WriteUInt32NoTag(element);
+ }
+ }
+ if (packedUint64_.Count > 0) {
+ output.WriteRawVarint32(746);
+ output.WriteRawVarint32((uint) packedUint64MemoizedSerializedSize);
+ foreach (ulong element in packedUint64_) {
+ output.WriteUInt64NoTag(element);
+ }
+ }
+ if (packedSint32_.Count > 0) {
+ output.WriteRawVarint32(754);
+ output.WriteRawVarint32((uint) packedSint32MemoizedSerializedSize);
+ foreach (int element in packedSint32_) {
+ output.WriteSInt32NoTag(element);
+ }
+ }
+ if (packedSint64_.Count > 0) {
+ output.WriteRawVarint32(762);
+ output.WriteRawVarint32((uint) packedSint64MemoizedSerializedSize);
+ foreach (long element in packedSint64_) {
+ output.WriteSInt64NoTag(element);
+ }
+ }
+ if (packedFixed32_.Count > 0) {
+ output.WriteRawVarint32(770);
+ output.WriteRawVarint32((uint) packedFixed32MemoizedSerializedSize);
+ foreach (uint element in packedFixed32_) {
+ output.WriteFixed32NoTag(element);
+ }
+ }
+ if (packedFixed64_.Count > 0) {
+ output.WriteRawVarint32(778);
+ output.WriteRawVarint32((uint) packedFixed64MemoizedSerializedSize);
+ foreach (ulong element in packedFixed64_) {
+ output.WriteFixed64NoTag(element);
+ }
+ }
+ if (packedSfixed32_.Count > 0) {
+ output.WriteRawVarint32(786);
+ output.WriteRawVarint32((uint) packedSfixed32MemoizedSerializedSize);
+ foreach (int element in packedSfixed32_) {
+ output.WriteSFixed32NoTag(element);
+ }
+ }
+ if (packedSfixed64_.Count > 0) {
+ output.WriteRawVarint32(794);
+ output.WriteRawVarint32((uint) packedSfixed64MemoizedSerializedSize);
+ foreach (long element in packedSfixed64_) {
+ output.WriteSFixed64NoTag(element);
+ }
+ }
+ if (packedFloat_.Count > 0) {
+ output.WriteRawVarint32(802);
+ output.WriteRawVarint32((uint) packedFloatMemoizedSerializedSize);
+ foreach (float element in packedFloat_) {
+ output.WriteFloatNoTag(element);
+ }
+ }
+ if (packedDouble_.Count > 0) {
+ output.WriteRawVarint32(810);
+ output.WriteRawVarint32((uint) packedDoubleMemoizedSerializedSize);
+ foreach (double element in packedDouble_) {
+ output.WriteDoubleNoTag(element);
+ }
+ }
+ if (packedBool_.Count > 0) {
+ output.WriteRawVarint32(818);
+ output.WriteRawVarint32((uint) packedBoolMemoizedSerializedSize);
+ foreach (bool element in packedBool_) {
+ output.WriteBoolNoTag(element);
+ }
+ }
+ if (packedEnum_.Count > 0) {
+ output.WriteRawVarint32(826);
+ output.WriteRawVarint32((uint) packedEnumMemoizedSerializedSize);
+ foreach (int element in packedEnum_) {
+ output.WriteEnumNoTag(element);
+ }
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in PackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedInt64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedInt64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in PackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in PackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedUint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedUint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in PackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedSint64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSint64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFixed32_.Count;
+ size += dataSize;
+ if (packedFixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedFixed64_.Count;
+ size += dataSize;
+ if (packedFixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedSfixed32_.Count;
+ size += dataSize;
+ if (packedSfixed32_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed32MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedSfixed64_.Count;
+ size += dataSize;
+ if (packedSfixed64_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedSfixed64MemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * packedFloat_.Count;
+ size += dataSize;
+ if (packedFloat_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedFloatMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * packedDouble_.Count;
+ size += dataSize;
+ if (packedDouble_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedDoubleMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * packedBool_.Count;
+ size += dataSize;
+ if (packedBool_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedBoolMemoizedSerializedSize = dataSize;
+ }
+ {
+ int dataSize = 0;
+ if (packedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in packedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2;
+ size += pb::CodedOutputStream.ComputeRawVarint32Size((uint) dataSize);
+ }
+ packedEnumMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestPackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedTypes ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedTypes prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestPackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestPackedTypes result = new TestPackedTypes();
+
+ protected override TestPackedTypes MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestPackedTypes();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.Descriptor; }
+ }
+
+ public override TestPackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.DefaultInstance; }
+ }
+
+ public override TestPackedTypes BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.packedInt32_.MakeReadOnly();
+ result.packedInt64_.MakeReadOnly();
+ result.packedUint32_.MakeReadOnly();
+ result.packedUint64_.MakeReadOnly();
+ result.packedSint32_.MakeReadOnly();
+ result.packedSint64_.MakeReadOnly();
+ result.packedFixed32_.MakeReadOnly();
+ result.packedFixed64_.MakeReadOnly();
+ result.packedSfixed32_.MakeReadOnly();
+ result.packedSfixed64_.MakeReadOnly();
+ result.packedFloat_.MakeReadOnly();
+ result.packedDouble_.MakeReadOnly();
+ result.packedBool_.MakeReadOnly();
+ result.packedEnum_.MakeReadOnly();
+ TestPackedTypes returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestPackedTypes) {
+ return MergeFrom((TestPackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedTypes.DefaultInstance) return this;
+ if (other.packedInt32_.Count != 0) {
+ base.AddRange(other.packedInt32_, result.packedInt32_);
+ }
+ if (other.packedInt64_.Count != 0) {
+ base.AddRange(other.packedInt64_, result.packedInt64_);
+ }
+ if (other.packedUint32_.Count != 0) {
+ base.AddRange(other.packedUint32_, result.packedUint32_);
+ }
+ if (other.packedUint64_.Count != 0) {
+ base.AddRange(other.packedUint64_, result.packedUint64_);
+ }
+ if (other.packedSint32_.Count != 0) {
+ base.AddRange(other.packedSint32_, result.packedSint32_);
+ }
+ if (other.packedSint64_.Count != 0) {
+ base.AddRange(other.packedSint64_, result.packedSint64_);
+ }
+ if (other.packedFixed32_.Count != 0) {
+ base.AddRange(other.packedFixed32_, result.packedFixed32_);
+ }
+ if (other.packedFixed64_.Count != 0) {
+ base.AddRange(other.packedFixed64_, result.packedFixed64_);
+ }
+ if (other.packedSfixed32_.Count != 0) {
+ base.AddRange(other.packedSfixed32_, result.packedSfixed32_);
+ }
+ if (other.packedSfixed64_.Count != 0) {
+ base.AddRange(other.packedSfixed64_, result.packedSfixed64_);
+ }
+ if (other.packedFloat_.Count != 0) {
+ base.AddRange(other.packedFloat_, result.packedFloat_);
+ }
+ if (other.packedDouble_.Count != 0) {
+ base.AddRange(other.packedDouble_, result.packedDouble_);
+ }
+ if (other.packedBool_.Count != 0) {
+ base.AddRange(other.packedBool_, result.packedBool_);
+ }
+ if (other.packedEnum_.Count != 0) {
+ base.AddRange(other.packedEnum_, result.packedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 722: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedInt32(input.ReadInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 730: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedInt64(input.ReadInt64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 738: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedUint32(input.ReadUInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 746: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedUint64(input.ReadUInt64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 754: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedSint32(input.ReadSInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 762: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedSint64(input.ReadSInt64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 770: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedFixed32(input.ReadFixed32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 778: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedFixed64(input.ReadFixed64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 786: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedSfixed32(input.ReadSFixed32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 794: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedSfixed64(input.ReadSFixed64());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 802: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedFloat(input.ReadFloat());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 810: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedDouble(input.ReadDouble());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 818: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedBool(input.ReadBool());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ case 826: {
+ int length = input.ReadInt32();
+ int oldLimit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(103, (ulong) rawValue);
+ } else {
+ AddPackedEnum((global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue);
+ }
+ }
+ input.PopLimit(oldLimit);
+ break;
+ }
+ }
+ }
+ }
+
+
+ public pbc::IPopsicleList<int> PackedInt32List {
+ get { return result.packedInt32_; }
+ }
+ public int PackedInt32Count {
+ get { return result.PackedInt32Count; }
+ }
+ public int GetPackedInt32(int index) {
+ return result.GetPackedInt32(index);
+ }
+ public Builder SetPackedInt32(int index, int value) {
+ result.packedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt32(int value) {
+ result.packedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.packedInt32_);
+ return this;
+ }
+ public Builder ClearPackedInt32() {
+ result.packedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedInt64List {
+ get { return result.packedInt64_; }
+ }
+ public int PackedInt64Count {
+ get { return result.PackedInt64Count; }
+ }
+ public long GetPackedInt64(int index) {
+ return result.GetPackedInt64(index);
+ }
+ public Builder SetPackedInt64(int index, long value) {
+ result.packedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedInt64(long value) {
+ result.packedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedInt64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.packedInt64_);
+ return this;
+ }
+ public Builder ClearPackedInt64() {
+ result.packedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> PackedUint32List {
+ get { return result.packedUint32_; }
+ }
+ public int PackedUint32Count {
+ get { return result.PackedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedUint32(int index) {
+ return result.GetPackedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedUint32(int index, uint value) {
+ result.packedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedUint32(uint value) {
+ result.packedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedUint32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.packedUint32_);
+ return this;
+ }
+ public Builder ClearPackedUint32() {
+ result.packedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> PackedUint64List {
+ get { return result.packedUint64_; }
+ }
+ public int PackedUint64Count {
+ get { return result.PackedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedUint64(int index) {
+ return result.GetPackedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedUint64(int index, ulong value) {
+ result.packedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedUint64(ulong value) {
+ result.packedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedUint64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.packedUint64_);
+ return this;
+ }
+ public Builder ClearPackedUint64() {
+ result.packedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSint32List {
+ get { return result.packedSint32_; }
+ }
+ public int PackedSint32Count {
+ get { return result.PackedSint32Count; }
+ }
+ public int GetPackedSint32(int index) {
+ return result.GetPackedSint32(index);
+ }
+ public Builder SetPackedSint32(int index, int value) {
+ result.packedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint32(int value) {
+ result.packedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.packedSint32_);
+ return this;
+ }
+ public Builder ClearPackedSint32() {
+ result.packedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSint64List {
+ get { return result.packedSint64_; }
+ }
+ public int PackedSint64Count {
+ get { return result.PackedSint64Count; }
+ }
+ public long GetPackedSint64(int index) {
+ return result.GetPackedSint64(index);
+ }
+ public Builder SetPackedSint64(int index, long value) {
+ result.packedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSint64(long value) {
+ result.packedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSint64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.packedSint64_);
+ return this;
+ }
+ public Builder ClearPackedSint64() {
+ result.packedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> PackedFixed32List {
+ get { return result.packedFixed32_; }
+ }
+ public int PackedFixed32Count {
+ get { return result.PackedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetPackedFixed32(int index) {
+ return result.GetPackedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedFixed32(int index, uint value) {
+ result.packedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedFixed32(uint value) {
+ result.packedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedFixed32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.packedFixed32_);
+ return this;
+ }
+ public Builder ClearPackedFixed32() {
+ result.packedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> PackedFixed64List {
+ get { return result.packedFixed64_; }
+ }
+ public int PackedFixed64Count {
+ get { return result.PackedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetPackedFixed64(int index) {
+ return result.GetPackedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetPackedFixed64(int index, ulong value) {
+ result.packedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddPackedFixed64(ulong value) {
+ result.packedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangePackedFixed64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.packedFixed64_);
+ return this;
+ }
+ public Builder ClearPackedFixed64() {
+ result.packedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedSfixed32List {
+ get { return result.packedSfixed32_; }
+ }
+ public int PackedSfixed32Count {
+ get { return result.PackedSfixed32Count; }
+ }
+ public int GetPackedSfixed32(int index) {
+ return result.GetPackedSfixed32(index);
+ }
+ public Builder SetPackedSfixed32(int index, int value) {
+ result.packedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed32(int value) {
+ result.packedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.packedSfixed32_);
+ return this;
+ }
+ public Builder ClearPackedSfixed32() {
+ result.packedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> PackedSfixed64List {
+ get { return result.packedSfixed64_; }
+ }
+ public int PackedSfixed64Count {
+ get { return result.PackedSfixed64Count; }
+ }
+ public long GetPackedSfixed64(int index) {
+ return result.GetPackedSfixed64(index);
+ }
+ public Builder SetPackedSfixed64(int index, long value) {
+ result.packedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddPackedSfixed64(long value) {
+ result.packedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedSfixed64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.packedSfixed64_);
+ return this;
+ }
+ public Builder ClearPackedSfixed64() {
+ result.packedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> PackedFloatList {
+ get { return result.packedFloat_; }
+ }
+ public int PackedFloatCount {
+ get { return result.PackedFloatCount; }
+ }
+ public float GetPackedFloat(int index) {
+ return result.GetPackedFloat(index);
+ }
+ public Builder SetPackedFloat(int index, float value) {
+ result.packedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddPackedFloat(float value) {
+ result.packedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedFloat(scg::IEnumerable<float> values) {
+ base.AddRange(values, result.packedFloat_);
+ return this;
+ }
+ public Builder ClearPackedFloat() {
+ result.packedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> PackedDoubleList {
+ get { return result.packedDouble_; }
+ }
+ public int PackedDoubleCount {
+ get { return result.PackedDoubleCount; }
+ }
+ public double GetPackedDouble(int index) {
+ return result.GetPackedDouble(index);
+ }
+ public Builder SetPackedDouble(int index, double value) {
+ result.packedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddPackedDouble(double value) {
+ result.packedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedDouble(scg::IEnumerable<double> values) {
+ base.AddRange(values, result.packedDouble_);
+ return this;
+ }
+ public Builder ClearPackedDouble() {
+ result.packedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> PackedBoolList {
+ get { return result.packedBool_; }
+ }
+ public int PackedBoolCount {
+ get { return result.PackedBoolCount; }
+ }
+ public bool GetPackedBool(int index) {
+ return result.GetPackedBool(index);
+ }
+ public Builder SetPackedBool(int index, bool value) {
+ result.packedBool_[index] = value;
+ return this;
+ }
+ public Builder AddPackedBool(bool value) {
+ result.packedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedBool(scg::IEnumerable<bool> values) {
+ base.AddRange(values, result.packedBool_);
+ return this;
+ }
+ public Builder ClearPackedBool() {
+ result.packedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> PackedEnumList {
+ get { return result.packedEnum_; }
+ }
+ public int PackedEnumCount {
+ get { return result.PackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetPackedEnum(int index) {
+ return result.GetPackedEnum(index);
+ }
+ public Builder SetPackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.packedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddPackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.packedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ base.AddRange(values, result.packedEnum_);
+ return this;
+ }
+ public Builder ClearPackedEnum() {
+ result.packedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestPackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestUnpackedTypes : pb::GeneratedMessage<TestUnpackedTypes, TestUnpackedTypes.Builder> {
+ private static readonly TestUnpackedTypes defaultInstance = new Builder().BuildPartial();
+ public static TestUnpackedTypes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestUnpackedTypes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestUnpackedTypes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestUnpackedTypes, TestUnpackedTypes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestUnpackedTypes__FieldAccessorTable; }
+ }
+
+ public const int UnpackedInt32FieldNumber = 90;
+ private pbc::PopsicleList<int> unpackedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedInt32List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt32_); }
+ }
+ public int UnpackedInt32Count {
+ get { return unpackedInt32_.Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return unpackedInt32_[index];
+ }
+
+ public const int UnpackedInt64FieldNumber = 91;
+ private pbc::PopsicleList<long> unpackedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedInt64List {
+ get { return pbc::Lists.AsReadOnly(unpackedInt64_); }
+ }
+ public int UnpackedInt64Count {
+ get { return unpackedInt64_.Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return unpackedInt64_[index];
+ }
+
+ public const int UnpackedUint32FieldNumber = 92;
+ private pbc::PopsicleList<uint> unpackedUint32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> UnpackedUint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint32_); }
+ }
+ public int UnpackedUint32Count {
+ get { return unpackedUint32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedUint32(int index) {
+ return unpackedUint32_[index];
+ }
+
+ public const int UnpackedUint64FieldNumber = 93;
+ private pbc::PopsicleList<ulong> unpackedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> UnpackedUint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedUint64_); }
+ }
+ public int UnpackedUint64Count {
+ get { return unpackedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedUint64(int index) {
+ return unpackedUint64_[index];
+ }
+
+ public const int UnpackedSint32FieldNumber = 94;
+ private pbc::PopsicleList<int> unpackedSint32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSint32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint32_); }
+ }
+ public int UnpackedSint32Count {
+ get { return unpackedSint32_.Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return unpackedSint32_[index];
+ }
+
+ public const int UnpackedSint64FieldNumber = 95;
+ private pbc::PopsicleList<long> unpackedSint64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSint64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSint64_); }
+ }
+ public int UnpackedSint64Count {
+ get { return unpackedSint64_.Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return unpackedSint64_[index];
+ }
+
+ public const int UnpackedFixed32FieldNumber = 96;
+ private pbc::PopsicleList<uint> unpackedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> UnpackedFixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed32_); }
+ }
+ public int UnpackedFixed32Count {
+ get { return unpackedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedFixed32(int index) {
+ return unpackedFixed32_[index];
+ }
+
+ public const int UnpackedFixed64FieldNumber = 97;
+ private pbc::PopsicleList<ulong> unpackedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> UnpackedFixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedFixed64_); }
+ }
+ public int UnpackedFixed64Count {
+ get { return unpackedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedFixed64(int index) {
+ return unpackedFixed64_[index];
+ }
+
+ public const int UnpackedSfixed32FieldNumber = 98;
+ private pbc::PopsicleList<int> unpackedSfixed32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> UnpackedSfixed32List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed32_); }
+ }
+ public int UnpackedSfixed32Count {
+ get { return unpackedSfixed32_.Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return unpackedSfixed32_[index];
+ }
+
+ public const int UnpackedSfixed64FieldNumber = 99;
+ private pbc::PopsicleList<long> unpackedSfixed64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> UnpackedSfixed64List {
+ get { return pbc::Lists.AsReadOnly(unpackedSfixed64_); }
+ }
+ public int UnpackedSfixed64Count {
+ get { return unpackedSfixed64_.Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return unpackedSfixed64_[index];
+ }
+
+ public const int UnpackedFloatFieldNumber = 100;
+ private pbc::PopsicleList<float> unpackedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> UnpackedFloatList {
+ get { return pbc::Lists.AsReadOnly(unpackedFloat_); }
+ }
+ public int UnpackedFloatCount {
+ get { return unpackedFloat_.Count; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return unpackedFloat_[index];
+ }
+
+ public const int UnpackedDoubleFieldNumber = 101;
+ private pbc::PopsicleList<double> unpackedDouble_ = new pbc::PopsicleList<double>();
+ public scg::IList<double> UnpackedDoubleList {
+ get { return pbc::Lists.AsReadOnly(unpackedDouble_); }
+ }
+ public int UnpackedDoubleCount {
+ get { return unpackedDouble_.Count; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return unpackedDouble_[index];
+ }
+
+ public const int UnpackedBoolFieldNumber = 102;
+ private pbc::PopsicleList<bool> unpackedBool_ = new pbc::PopsicleList<bool>();
+ public scg::IList<bool> UnpackedBoolList {
+ get { return pbc::Lists.AsReadOnly(unpackedBool_); }
+ }
+ public int UnpackedBoolCount {
+ get { return unpackedBool_.Count; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return unpackedBool_[index];
+ }
+
+ public const int UnpackedEnumFieldNumber = 103;
+ private pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> unpackedEnum_ = new pbc::PopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum>();
+ public scg::IList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return pbc::Lists.AsReadOnly(unpackedEnum_); }
+ }
+ public int UnpackedEnumCount {
+ get { return unpackedEnum_.Count; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return unpackedEnum_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (unpackedInt32_.Count > 0) {
+ foreach (int element in unpackedInt32_) {
+ output.WriteInt32(90, element);
+ }
+ }
+ if (unpackedInt64_.Count > 0) {
+ foreach (long element in unpackedInt64_) {
+ output.WriteInt64(91, element);
+ }
+ }
+ if (unpackedUint32_.Count > 0) {
+ foreach (uint element in unpackedUint32_) {
+ output.WriteUInt32(92, element);
+ }
+ }
+ if (unpackedUint64_.Count > 0) {
+ foreach (ulong element in unpackedUint64_) {
+ output.WriteUInt64(93, element);
+ }
+ }
+ if (unpackedSint32_.Count > 0) {
+ foreach (int element in unpackedSint32_) {
+ output.WriteSInt32(94, element);
+ }
+ }
+ if (unpackedSint64_.Count > 0) {
+ foreach (long element in unpackedSint64_) {
+ output.WriteSInt64(95, element);
+ }
+ }
+ if (unpackedFixed32_.Count > 0) {
+ foreach (uint element in unpackedFixed32_) {
+ output.WriteFixed32(96, element);
+ }
+ }
+ if (unpackedFixed64_.Count > 0) {
+ foreach (ulong element in unpackedFixed64_) {
+ output.WriteFixed64(97, element);
+ }
+ }
+ if (unpackedSfixed32_.Count > 0) {
+ foreach (int element in unpackedSfixed32_) {
+ output.WriteSFixed32(98, element);
+ }
+ }
+ if (unpackedSfixed64_.Count > 0) {
+ foreach (long element in unpackedSfixed64_) {
+ output.WriteSFixed64(99, element);
+ }
+ }
+ if (unpackedFloat_.Count > 0) {
+ foreach (float element in unpackedFloat_) {
+ output.WriteFloat(100, element);
+ }
+ }
+ if (unpackedDouble_.Count > 0) {
+ foreach (double element in unpackedDouble_) {
+ output.WriteDouble(101, element);
+ }
+ }
+ if (unpackedBool_.Count > 0) {
+ foreach (bool element in unpackedBool_) {
+ output.WriteBool(102, element);
+ }
+ }
+ if (unpackedEnum_.Count > 0) {
+ foreach (int element in unpackedEnum_) {
+ output.WriteEnum(103, element);
+ }
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (uint element in UnpackedUint32List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in UnpackedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedUint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in UnpackedSint32List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in UnpackedSint64List) {
+ dataSize += pb::CodedOutputStream.ComputeSInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * unpackedSint64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedFixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedSfixed32_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedSfixed64_.Count;
+ size += dataSize;
+ size += 2 * unpackedSfixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * unpackedFloat_.Count;
+ size += dataSize;
+ size += 2 * unpackedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * unpackedDouble_.Count;
+ size += dataSize;
+ size += 2 * unpackedDouble_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 1 * unpackedBool_.Count;
+ size += dataSize;
+ size += 2 * unpackedBool_.Count;
+ }
+ {
+ int dataSize = 0;
+ if (unpackedEnum_.Count > 0) {
+ foreach (global::Google.ProtocolBuffers.TestProtos.ForeignEnum element in unpackedEnum_) {
+ dataSize += pb::CodedOutputStream.ComputeEnumSizeNoTag((int) element);
+ }
+ size += dataSize;
+ size += 2 * unpackedEnum_.Count;
+ }
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestUnpackedTypes ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestUnpackedTypes prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestUnpackedTypes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestUnpackedTypes result = new TestUnpackedTypes();
+
+ protected override TestUnpackedTypes MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestUnpackedTypes();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.Descriptor; }
+ }
+
+ public override TestUnpackedTypes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance; }
+ }
+
+ public override TestUnpackedTypes BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.unpackedInt32_.MakeReadOnly();
+ result.unpackedInt64_.MakeReadOnly();
+ result.unpackedUint32_.MakeReadOnly();
+ result.unpackedUint64_.MakeReadOnly();
+ result.unpackedSint32_.MakeReadOnly();
+ result.unpackedSint64_.MakeReadOnly();
+ result.unpackedFixed32_.MakeReadOnly();
+ result.unpackedFixed64_.MakeReadOnly();
+ result.unpackedSfixed32_.MakeReadOnly();
+ result.unpackedSfixed64_.MakeReadOnly();
+ result.unpackedFloat_.MakeReadOnly();
+ result.unpackedDouble_.MakeReadOnly();
+ result.unpackedBool_.MakeReadOnly();
+ result.unpackedEnum_.MakeReadOnly();
+ TestUnpackedTypes returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestUnpackedTypes) {
+ return MergeFrom((TestUnpackedTypes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestUnpackedTypes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestUnpackedTypes.DefaultInstance) return this;
+ if (other.unpackedInt32_.Count != 0) {
+ base.AddRange(other.unpackedInt32_, result.unpackedInt32_);
+ }
+ if (other.unpackedInt64_.Count != 0) {
+ base.AddRange(other.unpackedInt64_, result.unpackedInt64_);
+ }
+ if (other.unpackedUint32_.Count != 0) {
+ base.AddRange(other.unpackedUint32_, result.unpackedUint32_);
+ }
+ if (other.unpackedUint64_.Count != 0) {
+ base.AddRange(other.unpackedUint64_, result.unpackedUint64_);
+ }
+ if (other.unpackedSint32_.Count != 0) {
+ base.AddRange(other.unpackedSint32_, result.unpackedSint32_);
+ }
+ if (other.unpackedSint64_.Count != 0) {
+ base.AddRange(other.unpackedSint64_, result.unpackedSint64_);
+ }
+ if (other.unpackedFixed32_.Count != 0) {
+ base.AddRange(other.unpackedFixed32_, result.unpackedFixed32_);
+ }
+ if (other.unpackedFixed64_.Count != 0) {
+ base.AddRange(other.unpackedFixed64_, result.unpackedFixed64_);
+ }
+ if (other.unpackedSfixed32_.Count != 0) {
+ base.AddRange(other.unpackedSfixed32_, result.unpackedSfixed32_);
+ }
+ if (other.unpackedSfixed64_.Count != 0) {
+ base.AddRange(other.unpackedSfixed64_, result.unpackedSfixed64_);
+ }
+ if (other.unpackedFloat_.Count != 0) {
+ base.AddRange(other.unpackedFloat_, result.unpackedFloat_);
+ }
+ if (other.unpackedDouble_.Count != 0) {
+ base.AddRange(other.unpackedDouble_, result.unpackedDouble_);
+ }
+ if (other.unpackedBool_.Count != 0) {
+ base.AddRange(other.unpackedBool_, result.unpackedBool_);
+ }
+ if (other.unpackedEnum_.Count != 0) {
+ base.AddRange(other.unpackedEnum_, result.unpackedEnum_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 720: {
+ AddUnpackedInt32(input.ReadInt32());
+ break;
+ }
+ case 728: {
+ AddUnpackedInt64(input.ReadInt64());
+ break;
+ }
+ case 736: {
+ AddUnpackedUint32(input.ReadUInt32());
+ break;
+ }
+ case 744: {
+ AddUnpackedUint64(input.ReadUInt64());
+ break;
+ }
+ case 752: {
+ AddUnpackedSint32(input.ReadSInt32());
+ break;
+ }
+ case 760: {
+ AddUnpackedSint64(input.ReadSInt64());
+ break;
+ }
+ case 773: {
+ AddUnpackedFixed32(input.ReadFixed32());
+ break;
+ }
+ case 777: {
+ AddUnpackedFixed64(input.ReadFixed64());
+ break;
+ }
+ case 789: {
+ AddUnpackedSfixed32(input.ReadSFixed32());
+ break;
+ }
+ case 793: {
+ AddUnpackedSfixed64(input.ReadSFixed64());
+ break;
+ }
+ case 805: {
+ AddUnpackedFloat(input.ReadFloat());
+ break;
+ }
+ case 809: {
+ AddUnpackedDouble(input.ReadDouble());
+ break;
+ }
+ case 816: {
+ AddUnpackedBool(input.ReadBool());
+ break;
+ }
+ case 824: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(103, (ulong) rawValue);
+ } else {
+ AddUnpackedEnum((global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue);
+ }
+ break;
+ }
+ }
+ }
+ }
+
+
+ public pbc::IPopsicleList<int> UnpackedInt32List {
+ get { return result.unpackedInt32_; }
+ }
+ public int UnpackedInt32Count {
+ get { return result.UnpackedInt32Count; }
+ }
+ public int GetUnpackedInt32(int index) {
+ return result.GetUnpackedInt32(index);
+ }
+ public Builder SetUnpackedInt32(int index, int value) {
+ result.unpackedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt32(int value) {
+ result.unpackedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.unpackedInt32_);
+ return this;
+ }
+ public Builder ClearUnpackedInt32() {
+ result.unpackedInt32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedInt64List {
+ get { return result.unpackedInt64_; }
+ }
+ public int UnpackedInt64Count {
+ get { return result.UnpackedInt64Count; }
+ }
+ public long GetUnpackedInt64(int index) {
+ return result.GetUnpackedInt64(index);
+ }
+ public Builder SetUnpackedInt64(int index, long value) {
+ result.unpackedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedInt64(long value) {
+ result.unpackedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedInt64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.unpackedInt64_);
+ return this;
+ }
+ public Builder ClearUnpackedInt64() {
+ result.unpackedInt64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> UnpackedUint32List {
+ get { return result.unpackedUint32_; }
+ }
+ public int UnpackedUint32Count {
+ get { return result.UnpackedUint32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedUint32(int index) {
+ return result.GetUnpackedUint32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedUint32(int index, uint value) {
+ result.unpackedUint32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedUint32(uint value) {
+ result.unpackedUint32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedUint32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.unpackedUint32_);
+ return this;
+ }
+ public Builder ClearUnpackedUint32() {
+ result.unpackedUint32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> UnpackedUint64List {
+ get { return result.unpackedUint64_; }
+ }
+ public int UnpackedUint64Count {
+ get { return result.UnpackedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedUint64(int index) {
+ return result.GetUnpackedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedUint64(int index, ulong value) {
+ result.unpackedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedUint64(ulong value) {
+ result.unpackedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedUint64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.unpackedUint64_);
+ return this;
+ }
+ public Builder ClearUnpackedUint64() {
+ result.unpackedUint64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSint32List {
+ get { return result.unpackedSint32_; }
+ }
+ public int UnpackedSint32Count {
+ get { return result.UnpackedSint32Count; }
+ }
+ public int GetUnpackedSint32(int index) {
+ return result.GetUnpackedSint32(index);
+ }
+ public Builder SetUnpackedSint32(int index, int value) {
+ result.unpackedSint32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint32(int value) {
+ result.unpackedSint32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.unpackedSint32_);
+ return this;
+ }
+ public Builder ClearUnpackedSint32() {
+ result.unpackedSint32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSint64List {
+ get { return result.unpackedSint64_; }
+ }
+ public int UnpackedSint64Count {
+ get { return result.UnpackedSint64Count; }
+ }
+ public long GetUnpackedSint64(int index) {
+ return result.GetUnpackedSint64(index);
+ }
+ public Builder SetUnpackedSint64(int index, long value) {
+ result.unpackedSint64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSint64(long value) {
+ result.unpackedSint64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSint64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.unpackedSint64_);
+ return this;
+ }
+ public Builder ClearUnpackedSint64() {
+ result.unpackedSint64_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> UnpackedFixed32List {
+ get { return result.unpackedFixed32_; }
+ }
+ public int UnpackedFixed32Count {
+ get { return result.UnpackedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetUnpackedFixed32(int index) {
+ return result.GetUnpackedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedFixed32(int index, uint value) {
+ result.unpackedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedFixed32(uint value) {
+ result.unpackedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedFixed32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.unpackedFixed32_);
+ return this;
+ }
+ public Builder ClearUnpackedFixed32() {
+ result.unpackedFixed32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> UnpackedFixed64List {
+ get { return result.unpackedFixed64_; }
+ }
+ public int UnpackedFixed64Count {
+ get { return result.UnpackedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetUnpackedFixed64(int index) {
+ return result.GetUnpackedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetUnpackedFixed64(int index, ulong value) {
+ result.unpackedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddUnpackedFixed64(ulong value) {
+ result.unpackedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeUnpackedFixed64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.unpackedFixed64_);
+ return this;
+ }
+ public Builder ClearUnpackedFixed64() {
+ result.unpackedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> UnpackedSfixed32List {
+ get { return result.unpackedSfixed32_; }
+ }
+ public int UnpackedSfixed32Count {
+ get { return result.UnpackedSfixed32Count; }
+ }
+ public int GetUnpackedSfixed32(int index) {
+ return result.GetUnpackedSfixed32(index);
+ }
+ public Builder SetUnpackedSfixed32(int index, int value) {
+ result.unpackedSfixed32_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed32(int value) {
+ result.unpackedSfixed32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.unpackedSfixed32_);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed32() {
+ result.unpackedSfixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> UnpackedSfixed64List {
+ get { return result.unpackedSfixed64_; }
+ }
+ public int UnpackedSfixed64Count {
+ get { return result.UnpackedSfixed64Count; }
+ }
+ public long GetUnpackedSfixed64(int index) {
+ return result.GetUnpackedSfixed64(index);
+ }
+ public Builder SetUnpackedSfixed64(int index, long value) {
+ result.unpackedSfixed64_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedSfixed64(long value) {
+ result.unpackedSfixed64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedSfixed64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.unpackedSfixed64_);
+ return this;
+ }
+ public Builder ClearUnpackedSfixed64() {
+ result.unpackedSfixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> UnpackedFloatList {
+ get { return result.unpackedFloat_; }
+ }
+ public int UnpackedFloatCount {
+ get { return result.UnpackedFloatCount; }
+ }
+ public float GetUnpackedFloat(int index) {
+ return result.GetUnpackedFloat(index);
+ }
+ public Builder SetUnpackedFloat(int index, float value) {
+ result.unpackedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedFloat(float value) {
+ result.unpackedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedFloat(scg::IEnumerable<float> values) {
+ base.AddRange(values, result.unpackedFloat_);
+ return this;
+ }
+ public Builder ClearUnpackedFloat() {
+ result.unpackedFloat_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<double> UnpackedDoubleList {
+ get { return result.unpackedDouble_; }
+ }
+ public int UnpackedDoubleCount {
+ get { return result.UnpackedDoubleCount; }
+ }
+ public double GetUnpackedDouble(int index) {
+ return result.GetUnpackedDouble(index);
+ }
+ public Builder SetUnpackedDouble(int index, double value) {
+ result.unpackedDouble_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedDouble(double value) {
+ result.unpackedDouble_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedDouble(scg::IEnumerable<double> values) {
+ base.AddRange(values, result.unpackedDouble_);
+ return this;
+ }
+ public Builder ClearUnpackedDouble() {
+ result.unpackedDouble_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<bool> UnpackedBoolList {
+ get { return result.unpackedBool_; }
+ }
+ public int UnpackedBoolCount {
+ get { return result.UnpackedBoolCount; }
+ }
+ public bool GetUnpackedBool(int index) {
+ return result.GetUnpackedBool(index);
+ }
+ public Builder SetUnpackedBool(int index, bool value) {
+ result.unpackedBool_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedBool(bool value) {
+ result.unpackedBool_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedBool(scg::IEnumerable<bool> values) {
+ base.AddRange(values, result.unpackedBool_);
+ return this;
+ }
+ public Builder ClearUnpackedBool() {
+ result.unpackedBool_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> UnpackedEnumList {
+ get { return result.unpackedEnum_; }
+ }
+ public int UnpackedEnumCount {
+ get { return result.UnpackedEnumCount; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum GetUnpackedEnum(int index) {
+ return result.GetUnpackedEnum(index);
+ }
+ public Builder SetUnpackedEnum(int index, global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.unpackedEnum_[index] = value;
+ return this;
+ }
+ public Builder AddUnpackedEnum(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.unpackedEnum_.Add(value);
+ return this;
+ }
+ public Builder AddRangeUnpackedEnum(scg::IEnumerable<global::Google.ProtocolBuffers.TestProtos.ForeignEnum> values) {
+ base.AddRange(values, result.unpackedEnum_);
+ return this;
+ }
+ public Builder ClearUnpackedEnum() {
+ result.unpackedEnum_.Clear();
+ return this;
+ }
+ }
+ static TestUnpackedTypes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestPackedExtensions : pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder> {
+ private static readonly TestPackedExtensions defaultInstance = new Builder().BuildPartial();
+ public static TestPackedExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestPackedExtensions DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestPackedExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestPackedExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestPackedExtensions, TestPackedExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestPackedExtensions__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ if (!ExtensionsAreInitialized) return false;
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ pb::ExtendableMessage<TestPackedExtensions, TestPackedExtensions.Builder>.ExtensionWriter extensionWriter = CreateExtensionWriter(this);
+ extensionWriter.WriteUntil(536870912, output);
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += ExtensionsSerializedSize;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestPackedExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestPackedExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestPackedExtensions ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestPackedExtensions prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::ExtendableBuilder<TestPackedExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestPackedExtensions result = new TestPackedExtensions();
+
+ protected override TestPackedExtensions MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestPackedExtensions();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.Descriptor; }
+ }
+
+ public override TestPackedExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.DefaultInstance; }
+ }
+
+ public override TestPackedExtensions BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ TestPackedExtensions returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestPackedExtensions) {
+ return MergeFrom((TestPackedExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestPackedExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestPackedExtensions.DefaultInstance) return this;
+ this.MergeExtensionFields(other);
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static TestPackedExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestDynamicExtensions : pb::GeneratedMessage<TestDynamicExtensions, TestDynamicExtensions.Builder> {
+ private static readonly TestDynamicExtensions defaultInstance = new Builder().BuildPartial();
+ public static TestDynamicExtensions DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestDynamicExtensions ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDynamicExtensions__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestDynamicExtensions, TestDynamicExtensions.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDynamicExtensions__FieldAccessorTable; }
+ }
+
+ #region Nested types
+ public static class Types {
+ public enum DynamicEnumType {
+ DYNAMIC_FOO = 2200,
+ DYNAMIC_BAR = 2201,
+ DYNAMIC_BAZ = 2202,
+ }
+
+ public sealed partial class DynamicMessageType : pb::GeneratedMessage<DynamicMessageType, DynamicMessageType.Builder> {
+ private static readonly DynamicMessageType defaultInstance = new Builder().BuildPartial();
+ public static DynamicMessageType DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override DynamicMessageType ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<DynamicMessageType, DynamicMessageType.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestDynamicExtensions_DynamicMessageType__FieldAccessorTable; }
+ }
+
+ public const int DynamicFieldFieldNumber = 2100;
+ private bool hasDynamicField;
+ private int dynamicField_ = 0;
+ public bool HasDynamicField {
+ get { return hasDynamicField; }
+ }
+ public int DynamicField {
+ get { return dynamicField_; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasDynamicField) {
+ output.WriteInt32(2100, DynamicField);
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasDynamicField) {
+ size += pb::CodedOutputStream.ComputeInt32Size(2100, DynamicField);
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static DynamicMessageType ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static DynamicMessageType ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static DynamicMessageType ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(DynamicMessageType prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<DynamicMessageType, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ DynamicMessageType result = new DynamicMessageType();
+
+ protected override DynamicMessageType MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new DynamicMessageType();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Descriptor; }
+ }
+
+ public override DynamicMessageType DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance; }
+ }
+
+ public override DynamicMessageType BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ DynamicMessageType returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is DynamicMessageType) {
+ return MergeFrom((DynamicMessageType) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(DynamicMessageType other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) return this;
+ if (other.HasDynamicField) {
+ DynamicField = other.DynamicField;
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 16800: {
+ DynamicField = input.ReadInt32();
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasDynamicField {
+ get { return result.HasDynamicField; }
+ }
+ public int DynamicField {
+ get { return result.DynamicField; }
+ set { SetDynamicField(value); }
+ }
+ public Builder SetDynamicField(int value) {
+ result.hasDynamicField = true;
+ result.dynamicField_ = value;
+ return this;
+ }
+ public Builder ClearDynamicField() {
+ result.hasDynamicField = false;
+ result.dynamicField_ = 0;
+ return this;
+ }
+ }
+ static DynamicMessageType() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ }
+ #endregion
+
+ public const int ScalarExtensionFieldNumber = 2000;
+ private bool hasScalarExtension;
+ private uint scalarExtension_ = 0;
+ public bool HasScalarExtension {
+ get { return hasScalarExtension; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint ScalarExtension {
+ get { return scalarExtension_; }
+ }
+
+ public const int EnumExtensionFieldNumber = 2001;
+ private bool hasEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignEnum enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ public bool HasEnumExtension {
+ get { return hasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return enumExtension_; }
+ }
+
+ public const int DynamicEnumExtensionFieldNumber = 2002;
+ private bool hasDynamicEnumExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ public bool HasDynamicEnumExtension {
+ get { return hasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return dynamicEnumExtension_; }
+ }
+
+ public const int MessageExtensionFieldNumber = 2003;
+ private bool hasMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.ForeignMessage messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ public bool HasMessageExtension {
+ get { return hasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return messageExtension_; }
+ }
+
+ public const int DynamicMessageExtensionFieldNumber = 2004;
+ private bool hasDynamicMessageExtension;
+ private global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance;
+ public bool HasDynamicMessageExtension {
+ get { return hasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return dynamicMessageExtension_; }
+ }
+
+ public const int RepeatedExtensionFieldNumber = 2005;
+ private pbc::PopsicleList<string> repeatedExtension_ = new pbc::PopsicleList<string>();
+ public scg::IList<string> RepeatedExtensionList {
+ get { return pbc::Lists.AsReadOnly(repeatedExtension_); }
+ }
+ public int RepeatedExtensionCount {
+ get { return repeatedExtension_.Count; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return repeatedExtension_[index];
+ }
+
+ public const int PackedExtensionFieldNumber = 2006;
+ private int packedExtensionMemoizedSerializedSize;
+ private pbc::PopsicleList<int> packedExtension_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> PackedExtensionList {
+ get { return pbc::Lists.AsReadOnly(packedExtension_); }
+ }
+ public int PackedExtensionCount {
+ get { return packedExtension_.Count; }
+ }
+ public int GetPackedExtension(int index) {
+ return packedExtension_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (HasScalarExtension) {
+ output.WriteFixed32(2000, ScalarExtension);
+ }
+ if (HasEnumExtension) {
+ output.WriteEnum(2001, (int) EnumExtension);
+ }
+ if (HasDynamicEnumExtension) {
+ output.WriteEnum(2002, (int) DynamicEnumExtension);
+ }
+ if (HasMessageExtension) {
+ output.WriteMessage(2003, MessageExtension);
+ }
+ if (HasDynamicMessageExtension) {
+ output.WriteMessage(2004, DynamicMessageExtension);
+ }
+ if (repeatedExtension_.Count > 0) {
+ foreach (string element in repeatedExtension_) {
+ output.WriteString(2005, element);
+ }
+ }
+ if (packedExtension_.Count > 0) {
+ output.WriteRawVarint32(16050);
+ output.WriteRawVarint32((uint) packedExtensionMemoizedSerializedSize);
+ foreach (int element in packedExtension_) {
+ output.WriteSInt32NoTag(element);
+ }
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ if (HasScalarExtension) {
+ size += pb::CodedOutputStream.ComputeFixed32Size(2000, ScalarExtension);
+ }
+ if (HasEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2001, (int) EnumExtension);
+ }
+ if (HasDynamicEnumExtension) {
+ size += pb::CodedOutputStream.ComputeEnumSize(2002, (int) DynamicEnumExtension);
+ }
+ if (HasMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2003, MessageExtension);
+ }
+ if (HasDynamicMessageExtension) {
+ size += pb::CodedOutputStream.ComputeMessageSize(2004, DynamicMessageExtension);
+ }
+ {
+ int dataSize = 0;
+ foreach (string element in RepeatedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeStringSizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedExtension_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in PackedExtensionList) {
+ dataSize += pb::CodedOutputStream.ComputeSInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ if (packedExtension_.Count != 0) {
+ size += 2 + pb::CodedOutputStream.ComputeInt32SizeNoTag(dataSize);
+ }
+ packedExtensionMemoizedSerializedSize = dataSize;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestDynamicExtensions ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestDynamicExtensions prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestDynamicExtensions, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestDynamicExtensions result = new TestDynamicExtensions();
+
+ protected override TestDynamicExtensions MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestDynamicExtensions();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Descriptor; }
+ }
+
+ public override TestDynamicExtensions DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance; }
+ }
+
+ public override TestDynamicExtensions BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.repeatedExtension_.MakeReadOnly();
+ result.packedExtension_.MakeReadOnly();
+ TestDynamicExtensions returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestDynamicExtensions) {
+ return MergeFrom((TestDynamicExtensions) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestDynamicExtensions other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.DefaultInstance) return this;
+ if (other.HasScalarExtension) {
+ ScalarExtension = other.ScalarExtension;
+ }
+ if (other.HasEnumExtension) {
+ EnumExtension = other.EnumExtension;
+ }
+ if (other.HasDynamicEnumExtension) {
+ DynamicEnumExtension = other.DynamicEnumExtension;
+ }
+ if (other.HasMessageExtension) {
+ MergeMessageExtension(other.MessageExtension);
+ }
+ if (other.HasDynamicMessageExtension) {
+ MergeDynamicMessageExtension(other.DynamicMessageExtension);
+ }
+ if (other.repeatedExtension_.Count != 0) {
+ base.AddRange(other.repeatedExtension_, result.repeatedExtension_);
+ }
+ if (other.packedExtension_.Count != 0) {
+ base.AddRange(other.packedExtension_, result.packedExtension_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 16005: {
+ ScalarExtension = input.ReadFixed32();
+ break;
+ }
+ case 16008: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.ForeignEnum), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2001, (ulong) rawValue);
+ } else {
+ EnumExtension = (global::Google.ProtocolBuffers.TestProtos.ForeignEnum) rawValue;
+ }
+ break;
+ }
+ case 16016: {
+ int rawValue = input.ReadEnum();
+ if (!global::System.Enum.IsDefined(typeof(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType), rawValue)) {
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ unknownFields.MergeVarintField(2002, (ulong) rawValue);
+ } else {
+ DynamicEnumExtension = (global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType) rawValue;
+ }
+ break;
+ }
+ case 16026: {
+ global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder();
+ if (HasMessageExtension) {
+ subBuilder.MergeFrom(MessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ MessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16034: {
+ global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder subBuilder = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder();
+ if (HasDynamicMessageExtension) {
+ subBuilder.MergeFrom(DynamicMessageExtension);
+ }
+ input.ReadMessage(subBuilder, extensionRegistry);
+ DynamicMessageExtension = subBuilder.BuildPartial();
+ break;
+ }
+ case 16042: {
+ AddRepeatedExtension(input.ReadString());
+ break;
+ }
+ case 16050: {
+ int length = input.ReadInt32();
+ int limit = input.PushLimit(length);
+ while (!input.ReachedLimit) {
+ AddPackedExtension(input.ReadSInt32());
+ }
+ input.PopLimit(limit);
+ break;
+ }
+ }
+ }
+ }
+
+
+ public bool HasScalarExtension {
+ get { return result.HasScalarExtension; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint ScalarExtension {
+ get { return result.ScalarExtension; }
+ set { SetScalarExtension(value); }
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetScalarExtension(uint value) {
+ result.hasScalarExtension = true;
+ result.scalarExtension_ = value;
+ return this;
+ }
+ public Builder ClearScalarExtension() {
+ result.hasScalarExtension = false;
+ result.scalarExtension_ = 0;
+ return this;
+ }
+
+ public bool HasEnumExtension {
+ get { return result.HasEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignEnum EnumExtension {
+ get { return result.EnumExtension; }
+ set { SetEnumExtension(value); }
+ }
+ public Builder SetEnumExtension(global::Google.ProtocolBuffers.TestProtos.ForeignEnum value) {
+ result.hasEnumExtension = true;
+ result.enumExtension_ = value;
+ return this;
+ }
+ public Builder ClearEnumExtension() {
+ result.hasEnumExtension = false;
+ result.enumExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignEnum.FOREIGN_FOO;
+ return this;
+ }
+
+ public bool HasDynamicEnumExtension {
+ get { return result.HasDynamicEnumExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType DynamicEnumExtension {
+ get { return result.DynamicEnumExtension; }
+ set { SetDynamicEnumExtension(value); }
+ }
+ public Builder SetDynamicEnumExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType value) {
+ result.hasDynamicEnumExtension = true;
+ result.dynamicEnumExtension_ = value;
+ return this;
+ }
+ public Builder ClearDynamicEnumExtension() {
+ result.hasDynamicEnumExtension = false;
+ result.dynamicEnumExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicEnumType.DYNAMIC_FOO;
+ return this;
+ }
+
+ public bool HasMessageExtension {
+ get { return result.HasMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.ForeignMessage MessageExtension {
+ get { return result.MessageExtension; }
+ set { SetMessageExtension(value); }
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasMessageExtension = true;
+ result.messageExtension_ = value;
+ return this;
+ }
+ public Builder SetMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasMessageExtension = true;
+ result.messageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeMessageExtension(global::Google.ProtocolBuffers.TestProtos.ForeignMessage value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasMessageExtension &&
+ result.messageExtension_ != global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance) {
+ result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.CreateBuilder(result.messageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.messageExtension_ = value;
+ }
+ result.hasMessageExtension = true;
+ return this;
+ }
+ public Builder ClearMessageExtension() {
+ result.hasMessageExtension = false;
+ result.messageExtension_ = global::Google.ProtocolBuffers.TestProtos.ForeignMessage.DefaultInstance;
+ return this;
+ }
+
+ public bool HasDynamicMessageExtension {
+ get { return result.HasDynamicMessageExtension; }
+ }
+ public global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType DynamicMessageExtension {
+ get { return result.DynamicMessageExtension; }
+ set { SetDynamicMessageExtension(value); }
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = value;
+ return this;
+ }
+ public Builder SetDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.Builder builderForValue) {
+ pb::ThrowHelper.ThrowIfNull(builderForValue, "builderForValue");
+ result.hasDynamicMessageExtension = true;
+ result.dynamicMessageExtension_ = builderForValue.Build();
+ return this;
+ }
+ public Builder MergeDynamicMessageExtension(global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ if (result.HasDynamicMessageExtension &&
+ result.dynamicMessageExtension_ != global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance) {
+ result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.CreateBuilder(result.dynamicMessageExtension_).MergeFrom(value).BuildPartial();
+ } else {
+ result.dynamicMessageExtension_ = value;
+ }
+ result.hasDynamicMessageExtension = true;
+ return this;
+ }
+ public Builder ClearDynamicMessageExtension() {
+ result.hasDynamicMessageExtension = false;
+ result.dynamicMessageExtension_ = global::Google.ProtocolBuffers.TestProtos.TestDynamicExtensions.Types.DynamicMessageType.DefaultInstance;
+ return this;
+ }
+
+ public pbc::IPopsicleList<string> RepeatedExtensionList {
+ get { return result.repeatedExtension_; }
+ }
+ public int RepeatedExtensionCount {
+ get { return result.RepeatedExtensionCount; }
+ }
+ public string GetRepeatedExtension(int index) {
+ return result.GetRepeatedExtension(index);
+ }
+ public Builder SetRepeatedExtension(int index, string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedExtension(string value) {
+ pb::ThrowHelper.ThrowIfNull(value, "value");
+ result.repeatedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedExtension(scg::IEnumerable<string> values) {
+ base.AddRange(values, result.repeatedExtension_);
+ return this;
+ }
+ public Builder ClearRepeatedExtension() {
+ result.repeatedExtension_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> PackedExtensionList {
+ get { return result.packedExtension_; }
+ }
+ public int PackedExtensionCount {
+ get { return result.PackedExtensionCount; }
+ }
+ public int GetPackedExtension(int index) {
+ return result.GetPackedExtension(index);
+ }
+ public Builder SetPackedExtension(int index, int value) {
+ result.packedExtension_[index] = value;
+ return this;
+ }
+ public Builder AddPackedExtension(int value) {
+ result.packedExtension_.Add(value);
+ return this;
+ }
+ public Builder AddRangePackedExtension(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.packedExtension_);
+ return this;
+ }
+ public Builder ClearPackedExtension() {
+ result.packedExtension_.Clear();
+ return this;
+ }
+ }
+ static TestDynamicExtensions() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class TestRepeatedScalarDifferentTagSizes : pb::GeneratedMessage<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> {
+ private static readonly TestRepeatedScalarDifferentTagSizes defaultInstance = new Builder().BuildPartial();
+ public static TestRepeatedScalarDifferentTagSizes DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override TestRepeatedScalarDifferentTagSizes ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<TestRepeatedScalarDifferentTagSizes, TestRepeatedScalarDifferentTagSizes.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_TestRepeatedScalarDifferentTagSizes__FieldAccessorTable; }
+ }
+
+ public const int RepeatedFixed32FieldNumber = 12;
+ private pbc::PopsicleList<uint> repeatedFixed32_ = new pbc::PopsicleList<uint>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<uint> RepeatedFixed32List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed32_); }
+ }
+ public int RepeatedFixed32Count {
+ get { return repeatedFixed32_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return repeatedFixed32_[index];
+ }
+
+ public const int RepeatedInt32FieldNumber = 13;
+ private pbc::PopsicleList<int> repeatedInt32_ = new pbc::PopsicleList<int>();
+ public scg::IList<int> RepeatedInt32List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt32_); }
+ }
+ public int RepeatedInt32Count {
+ get { return repeatedInt32_.Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return repeatedInt32_[index];
+ }
+
+ public const int RepeatedFixed64FieldNumber = 2046;
+ private pbc::PopsicleList<ulong> repeatedFixed64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedFixed64List {
+ get { return pbc::Lists.AsReadOnly(repeatedFixed64_); }
+ }
+ public int RepeatedFixed64Count {
+ get { return repeatedFixed64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return repeatedFixed64_[index];
+ }
+
+ public const int RepeatedInt64FieldNumber = 2047;
+ private pbc::PopsicleList<long> repeatedInt64_ = new pbc::PopsicleList<long>();
+ public scg::IList<long> RepeatedInt64List {
+ get { return pbc::Lists.AsReadOnly(repeatedInt64_); }
+ }
+ public int RepeatedInt64Count {
+ get { return repeatedInt64_.Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return repeatedInt64_[index];
+ }
+
+ public const int RepeatedFloatFieldNumber = 262142;
+ private pbc::PopsicleList<float> repeatedFloat_ = new pbc::PopsicleList<float>();
+ public scg::IList<float> RepeatedFloatList {
+ get { return pbc::Lists.AsReadOnly(repeatedFloat_); }
+ }
+ public int RepeatedFloatCount {
+ get { return repeatedFloat_.Count; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return repeatedFloat_[index];
+ }
+
+ public const int RepeatedUint64FieldNumber = 262143;
+ private pbc::PopsicleList<ulong> repeatedUint64_ = new pbc::PopsicleList<ulong>();
+ [global::System.CLSCompliant(false)]
+ public scg::IList<ulong> RepeatedUint64List {
+ get { return pbc::Lists.AsReadOnly(repeatedUint64_); }
+ }
+ public int RepeatedUint64Count {
+ get { return repeatedUint64_.Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return repeatedUint64_[index];
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ if (repeatedFixed32_.Count > 0) {
+ foreach (uint element in repeatedFixed32_) {
+ output.WriteFixed32(12, element);
+ }
+ }
+ if (repeatedInt32_.Count > 0) {
+ foreach (int element in repeatedInt32_) {
+ output.WriteInt32(13, element);
+ }
+ }
+ if (repeatedFixed64_.Count > 0) {
+ foreach (ulong element in repeatedFixed64_) {
+ output.WriteFixed64(2046, element);
+ }
+ }
+ if (repeatedInt64_.Count > 0) {
+ foreach (long element in repeatedInt64_) {
+ output.WriteInt64(2047, element);
+ }
+ }
+ if (repeatedFloat_.Count > 0) {
+ foreach (float element in repeatedFloat_) {
+ output.WriteFloat(262142, element);
+ }
+ }
+ if (repeatedUint64_.Count > 0) {
+ foreach (ulong element in repeatedUint64_) {
+ output.WriteUInt64(262143, element);
+ }
+ }
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFixed32_.Count;
+ size += dataSize;
+ size += 1 * repeatedFixed32_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (int element in RepeatedInt32List) {
+ dataSize += pb::CodedOutputStream.ComputeInt32SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 1 * repeatedInt32_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 8 * repeatedFixed64_.Count;
+ size += dataSize;
+ size += 2 * repeatedFixed64_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (long element in RepeatedInt64List) {
+ dataSize += pb::CodedOutputStream.ComputeInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 2 * repeatedInt64_.Count;
+ }
+ {
+ int dataSize = 0;
+ dataSize = 4 * repeatedFloat_.Count;
+ size += dataSize;
+ size += 3 * repeatedFloat_.Count;
+ }
+ {
+ int dataSize = 0;
+ foreach (ulong element in RepeatedUint64List) {
+ dataSize += pb::CodedOutputStream.ComputeUInt64SizeNoTag(element);
+ }
+ size += dataSize;
+ size += 3 * repeatedUint64_.Count;
+ }
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static TestRepeatedScalarDifferentTagSizes ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(TestRepeatedScalarDifferentTagSizes prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<TestRepeatedScalarDifferentTagSizes, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ TestRepeatedScalarDifferentTagSizes result = new TestRepeatedScalarDifferentTagSizes();
+
+ protected override TestRepeatedScalarDifferentTagSizes MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new TestRepeatedScalarDifferentTagSizes();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.Descriptor; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance; }
+ }
+
+ public override TestRepeatedScalarDifferentTagSizes BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ result.repeatedFixed32_.MakeReadOnly();
+ result.repeatedInt32_.MakeReadOnly();
+ result.repeatedFixed64_.MakeReadOnly();
+ result.repeatedInt64_.MakeReadOnly();
+ result.repeatedFloat_.MakeReadOnly();
+ result.repeatedUint64_.MakeReadOnly();
+ TestRepeatedScalarDifferentTagSizes returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is TestRepeatedScalarDifferentTagSizes) {
+ return MergeFrom((TestRepeatedScalarDifferentTagSizes) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(TestRepeatedScalarDifferentTagSizes other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.TestRepeatedScalarDifferentTagSizes.DefaultInstance) return this;
+ if (other.repeatedFixed32_.Count != 0) {
+ base.AddRange(other.repeatedFixed32_, result.repeatedFixed32_);
+ }
+ if (other.repeatedInt32_.Count != 0) {
+ base.AddRange(other.repeatedInt32_, result.repeatedInt32_);
+ }
+ if (other.repeatedFixed64_.Count != 0) {
+ base.AddRange(other.repeatedFixed64_, result.repeatedFixed64_);
+ }
+ if (other.repeatedInt64_.Count != 0) {
+ base.AddRange(other.repeatedInt64_, result.repeatedInt64_);
+ }
+ if (other.repeatedFloat_.Count != 0) {
+ base.AddRange(other.repeatedFloat_, result.repeatedFloat_);
+ }
+ if (other.repeatedUint64_.Count != 0) {
+ base.AddRange(other.repeatedUint64_, result.repeatedUint64_);
+ }
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ case 101: {
+ AddRepeatedFixed32(input.ReadFixed32());
+ break;
+ }
+ case 104: {
+ AddRepeatedInt32(input.ReadInt32());
+ break;
+ }
+ case 16369: {
+ AddRepeatedFixed64(input.ReadFixed64());
+ break;
+ }
+ case 16376: {
+ AddRepeatedInt64(input.ReadInt64());
+ break;
+ }
+ case 2097141: {
+ AddRepeatedFloat(input.ReadFloat());
+ break;
+ }
+ case 2097144: {
+ AddRepeatedUint64(input.ReadUInt64());
+ break;
+ }
+ }
+ }
+ }
+
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<uint> RepeatedFixed32List {
+ get { return result.repeatedFixed32_; }
+ }
+ public int RepeatedFixed32Count {
+ get { return result.RepeatedFixed32Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public uint GetRepeatedFixed32(int index) {
+ return result.GetRepeatedFixed32(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed32(int index, uint value) {
+ result.repeatedFixed32_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed32(uint value) {
+ result.repeatedFixed32_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed32(scg::IEnumerable<uint> values) {
+ base.AddRange(values, result.repeatedFixed32_);
+ return this;
+ }
+ public Builder ClearRepeatedFixed32() {
+ result.repeatedFixed32_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<int> RepeatedInt32List {
+ get { return result.repeatedInt32_; }
+ }
+ public int RepeatedInt32Count {
+ get { return result.RepeatedInt32Count; }
+ }
+ public int GetRepeatedInt32(int index) {
+ return result.GetRepeatedInt32(index);
+ }
+ public Builder SetRepeatedInt32(int index, int value) {
+ result.repeatedInt32_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt32(int value) {
+ result.repeatedInt32_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt32(scg::IEnumerable<int> values) {
+ base.AddRange(values, result.repeatedInt32_);
+ return this;
+ }
+ public Builder ClearRepeatedInt32() {
+ result.repeatedInt32_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedFixed64List {
+ get { return result.repeatedFixed64_; }
+ }
+ public int RepeatedFixed64Count {
+ get { return result.RepeatedFixed64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedFixed64(int index) {
+ return result.GetRepeatedFixed64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedFixed64(int index, ulong value) {
+ result.repeatedFixed64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedFixed64(ulong value) {
+ result.repeatedFixed64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedFixed64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.repeatedFixed64_);
+ return this;
+ }
+ public Builder ClearRepeatedFixed64() {
+ result.repeatedFixed64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<long> RepeatedInt64List {
+ get { return result.repeatedInt64_; }
+ }
+ public int RepeatedInt64Count {
+ get { return result.RepeatedInt64Count; }
+ }
+ public long GetRepeatedInt64(int index) {
+ return result.GetRepeatedInt64(index);
+ }
+ public Builder SetRepeatedInt64(int index, long value) {
+ result.repeatedInt64_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedInt64(long value) {
+ result.repeatedInt64_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedInt64(scg::IEnumerable<long> values) {
+ base.AddRange(values, result.repeatedInt64_);
+ return this;
+ }
+ public Builder ClearRepeatedInt64() {
+ result.repeatedInt64_.Clear();
+ return this;
+ }
+
+ public pbc::IPopsicleList<float> RepeatedFloatList {
+ get { return result.repeatedFloat_; }
+ }
+ public int RepeatedFloatCount {
+ get { return result.RepeatedFloatCount; }
+ }
+ public float GetRepeatedFloat(int index) {
+ return result.GetRepeatedFloat(index);
+ }
+ public Builder SetRepeatedFloat(int index, float value) {
+ result.repeatedFloat_[index] = value;
+ return this;
+ }
+ public Builder AddRepeatedFloat(float value) {
+ result.repeatedFloat_.Add(value);
+ return this;
+ }
+ public Builder AddRangeRepeatedFloat(scg::IEnumerable<float> values) {
+ base.AddRange(values, result.repeatedFloat_);
+ return this;
+ }
+ public Builder ClearRepeatedFloat() {
+ result.repeatedFloat_.Clear();
+ return this;
+ }
+
+ [global::System.CLSCompliant(false)]
+ public pbc::IPopsicleList<ulong> RepeatedUint64List {
+ get { return result.repeatedUint64_; }
+ }
+ public int RepeatedUint64Count {
+ get { return result.RepeatedUint64Count; }
+ }
+ [global::System.CLSCompliant(false)]
+ public ulong GetRepeatedUint64(int index) {
+ return result.GetRepeatedUint64(index);
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder SetRepeatedUint64(int index, ulong value) {
+ result.repeatedUint64_[index] = value;
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRepeatedUint64(ulong value) {
+ result.repeatedUint64_.Add(value);
+ return this;
+ }
+ [global::System.CLSCompliant(false)]
+ public Builder AddRangeRepeatedUint64(scg::IEnumerable<ulong> values) {
+ base.AddRange(values, result.repeatedUint64_);
+ return this;
+ }
+ public Builder ClearRepeatedUint64() {
+ result.repeatedUint64_.Clear();
+ return this;
+ }
+ }
+ static TestRepeatedScalarDifferentTagSizes() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class FooRequest : pb::GeneratedMessage<FooRequest, FooRequest.Builder> {
+ private static readonly FooRequest defaultInstance = new Builder().BuildPartial();
+ public static FooRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooRequest DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override FooRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_FooRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooRequest, FooRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_FooRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static FooRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooRequest ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooRequest prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<FooRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ FooRequest result = new FooRequest();
+
+ protected override FooRequest MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new FooRequest();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooRequest.Descriptor; }
+ }
+
+ public override FooRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance; }
+ }
+
+ public override FooRequest BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ FooRequest returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooRequest) {
+ return MergeFrom((FooRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance) return this;
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static FooRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class FooResponse : pb::GeneratedMessage<FooResponse, FooResponse.Builder> {
+ private static readonly FooResponse defaultInstance = new Builder().BuildPartial();
+ public static FooResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override FooResponse DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override FooResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_FooResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<FooResponse, FooResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_FooResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static FooResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static FooResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static FooResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static FooResponse ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(FooResponse prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<FooResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ FooResponse result = new FooResponse();
+
+ protected override FooResponse MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new FooResponse();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooResponse.Descriptor; }
+ }
+
+ public override FooResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance; }
+ }
+
+ public override FooResponse BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ FooResponse returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is FooResponse) {
+ return MergeFrom((FooResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(FooResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance) return this;
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static FooResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class BarRequest : pb::GeneratedMessage<BarRequest, BarRequest.Builder> {
+ private static readonly BarRequest defaultInstance = new Builder().BuildPartial();
+ public static BarRequest DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BarRequest DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override BarRequest ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_BarRequest__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BarRequest, BarRequest.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_BarRequest__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static BarRequest ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BarRequest ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BarRequest ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarRequest ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BarRequest prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<BarRequest, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ BarRequest result = new BarRequest();
+
+ protected override BarRequest MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new BarRequest();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarRequest.Descriptor; }
+ }
+
+ public override BarRequest DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance; }
+ }
+
+ public override BarRequest BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ BarRequest returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BarRequest) {
+ return MergeFrom((BarRequest) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BarRequest other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance) return this;
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static BarRequest() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ public sealed partial class BarResponse : pb::GeneratedMessage<BarResponse, BarResponse.Builder> {
+ private static readonly BarResponse defaultInstance = new Builder().BuildPartial();
+ public static BarResponse DefaultInstance {
+ get { return defaultInstance; }
+ }
+
+ public override BarResponse DefaultInstanceForType {
+ get { return defaultInstance; }
+ }
+
+ protected override BarResponse ThisMessage {
+ get { return this; }
+ }
+
+ public static pbd::MessageDescriptor Descriptor {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_BarResponse__Descriptor; }
+ }
+
+ protected override pb::FieldAccess.FieldAccessorTable<BarResponse, BarResponse.Builder> InternalFieldAccessors {
+ get { return global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.internal__static_protobuf_unittest_BarResponse__FieldAccessorTable; }
+ }
+
+ public override bool IsInitialized {
+ get {
+ return true;
+ }
+ }
+
+ public override void WriteTo(pb::CodedOutputStream output) {
+ int size = SerializedSize;
+ UnknownFields.WriteTo(output);
+ }
+
+ private int memoizedSerializedSize = -1;
+ public override int SerializedSize {
+ get {
+ int size = memoizedSerializedSize;
+ if (size != -1) return size;
+
+ size = 0;
+ size += UnknownFields.SerializedSize;
+ memoizedSerializedSize = size;
+ return size;
+ }
+ }
+
+ public static BarResponse ParseFrom(pb::ByteString data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::ByteString data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(byte[] data) {
+ return ((Builder) CreateBuilder().MergeFrom(data)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(byte[] data, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(data, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(global::System.IO.Stream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static BarResponse ParseDelimitedFrom(global::System.IO.Stream input) {
+ return CreateBuilder().MergeDelimitedFrom(input).BuildParsed();
+ }
+ public static BarResponse ParseDelimitedFrom(global::System.IO.Stream input, pb::ExtensionRegistry extensionRegistry) {
+ return CreateBuilder().MergeDelimitedFrom(input, extensionRegistry).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::CodedInputStream input) {
+ return ((Builder) CreateBuilder().MergeFrom(input)).BuildParsed();
+ }
+ public static BarResponse ParseFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ return ((Builder) CreateBuilder().MergeFrom(input, extensionRegistry)).BuildParsed();
+ }
+ public static Builder CreateBuilder() { return new Builder(); }
+ public override Builder ToBuilder() { return CreateBuilder(this); }
+ public override Builder CreateBuilderForType() { return new Builder(); }
+ public static Builder CreateBuilder(BarResponse prototype) {
+ return (Builder) new Builder().MergeFrom(prototype);
+ }
+
+ public sealed partial class Builder : pb::GeneratedBuilder<BarResponse, Builder> {
+ protected override Builder ThisBuilder {
+ get { return this; }
+ }
+ public Builder() {}
+
+ BarResponse result = new BarResponse();
+
+ protected override BarResponse MessageBeingBuilt {
+ get { return result; }
+ }
+
+ public override Builder Clear() {
+ result = new BarResponse();
+ return this;
+ }
+
+ public override Builder Clone() {
+ return new Builder().MergeFrom(result);
+ }
+
+ public override pbd::MessageDescriptor DescriptorForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarResponse.Descriptor; }
+ }
+
+ public override BarResponse DefaultInstanceForType {
+ get { return global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance; }
+ }
+
+ public override BarResponse BuildPartial() {
+ if (result == null) {
+ throw new global::System.InvalidOperationException("build() has already been called on this Builder");
+ }
+ BarResponse returnMe = result;
+ result = null;
+ return returnMe;
+ }
+
+ public override Builder MergeFrom(pb::IMessage other) {
+ if (other is BarResponse) {
+ return MergeFrom((BarResponse) other);
+ } else {
+ base.MergeFrom(other);
+ return this;
+ }
+ }
+
+ public override Builder MergeFrom(BarResponse other) {
+ if (other == global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance) return this;
+ this.MergeUnknownFields(other.UnknownFields);
+ return this;
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input) {
+ return MergeFrom(input, pb::ExtensionRegistry.Empty);
+ }
+
+ public override Builder MergeFrom(pb::CodedInputStream input, pb::ExtensionRegistry extensionRegistry) {
+ pb::UnknownFieldSet.Builder unknownFields = null;
+ while (true) {
+ uint tag = input.ReadTag();
+ switch (tag) {
+ case 0: {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ default: {
+ if (pb::WireFormat.IsEndGroupTag(tag)) {
+ if (unknownFields != null) {
+ this.UnknownFields = unknownFields.Build();
+ }
+ return this;
+ }
+ if (unknownFields == null) {
+ unknownFields = pb::UnknownFieldSet.CreateBuilder(this.UnknownFields);
+ }
+ ParseUnknownField(input, unknownFields, extensionRegistry, tag);
+ break;
+ }
+ }
+ }
+ }
+
+ }
+ static BarResponse() {
+ object.ReferenceEquals(global::Google.ProtocolBuffers.TestProtos.UnitTestProtoFile.Descriptor, null);
+ }
+ }
+
+ #endregion
+
+ #region Services
+ public abstract class TestService : pb::IService {
+ public abstract void Foo(
+ pb::IRpcController controller,
+ global::Google.ProtocolBuffers.TestProtos.FooRequest request,
+ global::System.Action<global::Google.ProtocolBuffers.TestProtos.FooResponse> done);
+ public abstract void Bar(
+ pb::IRpcController controller,
+ global::Google.ProtocolBuffers.TestProtos.BarRequest request,
+ global::System.Action<global::Google.ProtocolBuffers.TestProtos.BarResponse> done);
+
+ public static pbd::ServiceDescriptor Descriptor {
+ get { return UnitTestProtoFile.Descriptor.Services[0]; }
+ }
+ public pbd::ServiceDescriptor DescriptorForType {
+ get { return Descriptor; }
+ }
+
+ public void CallMethod(
+ pbd::MethodDescriptor method,
+ pb::IRpcController controller,
+ pb::IMessage request,
+ global::System.Action<pb::IMessage> done) {
+ if (method.Service != Descriptor) {
+ throw new global::System.ArgumentException(
+ "Service.CallMethod() given method descriptor for wrong service type.");
+ }
+ switch(method.Index) {
+ case 0:
+ this.Foo(controller, (global::Google.ProtocolBuffers.TestProtos.FooRequest) request,
+ pb::RpcUtil.SpecializeCallback<global::Google.ProtocolBuffers.TestProtos.FooResponse>(
+ done));
+ return;
+ case 1:
+ this.Bar(controller, (global::Google.ProtocolBuffers.TestProtos.BarRequest) request,
+ pb::RpcUtil.SpecializeCallback<global::Google.ProtocolBuffers.TestProtos.BarResponse>(
+ done));
+ return;
+ default:
+ throw new global::System.InvalidOperationException("Can't get here.");
+ }
+ }
+
+ public pb::IMessage GetRequestPrototype(pbd::MethodDescriptor method) {
+ if (method.Service != Descriptor) {
+ throw new global::System.ArgumentException(
+ "Service.GetRequestPrototype() given method descriptor for wrong service type.");
+ }
+ switch(method.Index) {
+ case 0:
+ return global::Google.ProtocolBuffers.TestProtos.FooRequest.DefaultInstance;
+ case 1:
+ return global::Google.ProtocolBuffers.TestProtos.BarRequest.DefaultInstance;
+ default:
+ throw new global::System.InvalidOperationException("Can't get here.");
+ }
+ }
+
+ public pb::IMessage GetResponsePrototype(pbd::MethodDescriptor method) {
+ if (method.Service != Descriptor) {
+ throw new global::System.ArgumentException(
+ "Service.GetResponsePrototype() given method descriptor for wrong service type.");
+ }
+ switch(method.Index) {
+ case 0:
+ return global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance;
+ case 1:
+ return global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance;
+ default:
+ throw new global::System.InvalidOperationException("Can't get here.");
+ }
+ }
+
+ public static Stub CreateStub(pb::IRpcChannel channel) {
+ return new Stub(channel);
+ }
+
+ public class Stub : global::Google.ProtocolBuffers.TestProtos.TestService {
+ internal Stub(pb::IRpcChannel channel) {
+ this.channel = channel;
+ }
+
+ private readonly pb::IRpcChannel channel;
+
+ public pb::IRpcChannel Channel {
+ get { return channel; }
+ }
+
+ public override void Foo(
+ pb::IRpcController controller,
+ global::Google.ProtocolBuffers.TestProtos.FooRequest request,
+ global::System.Action<global::Google.ProtocolBuffers.TestProtos.FooResponse> done) {
+ channel.CallMethod(Descriptor.Methods[0],
+ controller, request, global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance,
+ pb::RpcUtil.GeneralizeCallback<global::Google.ProtocolBuffers.TestProtos.FooResponse, global::Google.ProtocolBuffers.TestProtos.FooResponse.Builder>(done, global::Google.ProtocolBuffers.TestProtos.FooResponse.DefaultInstance));
+ }
+
+ public override void Bar(
+ pb::IRpcController controller,
+ global::Google.ProtocolBuffers.TestProtos.BarRequest request,
+ global::System.Action<global::Google.ProtocolBuffers.TestProtos.BarResponse> done) {
+ channel.CallMethod(Descriptor.Methods[1],
+ controller, request, global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance,
+ pb::RpcUtil.GeneralizeCallback<global::Google.ProtocolBuffers.TestProtos.BarResponse, global::Google.ProtocolBuffers.TestProtos.BarResponse.Builder>(done, global::Google.ProtocolBuffers.TestProtos.BarResponse.DefaultInstance));
+ }
+ }
+ }
+ #endregion
+
+}