• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Generated by the protocol buffer compiler.  DO NOT EDIT!
2 // source: google/protobuf/descriptor.proto
3 #pragma warning disable 1591, 0612, 3021
4 #region Designer generated code
5 
6 using pb = global::Google.Protobuf;
7 using pbc = global::Google.Protobuf.Collections;
8 using pbr = global::Google.Protobuf.Reflection;
9 using scg = global::System.Collections.Generic;
10 namespace Google.Protobuf.Reflection {
11 
12   /// <summary>Holder for reflection information generated from google/protobuf/descriptor.proto</summary>
13   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
14   internal static partial class DescriptorReflection {
15 
16     #region Descriptor
17     /// <summary>File descriptor for google/protobuf/descriptor.proto</summary>
18     public static pbr::FileDescriptor Descriptor {
19       get { return descriptor; }
20     }
21     private static pbr::FileDescriptor descriptor;
22 
DescriptorReflection()23     static DescriptorReflection() {
24       byte[] descriptorData = global::System.Convert.FromBase64String(
25           string.Concat(
26             "CiBnb29nbGUvcHJvdG9idWYvZGVzY3JpcHRvci5wcm90bxIPZ29vZ2xlLnBy",
27             "b3RvYnVmIkcKEUZpbGVEZXNjcmlwdG9yU2V0EjIKBGZpbGUYASADKAsyJC5n",
28             "b29nbGUucHJvdG9idWYuRmlsZURlc2NyaXB0b3JQcm90byLbAwoTRmlsZURl",
29             "c2NyaXB0b3JQcm90bxIMCgRuYW1lGAEgASgJEg8KB3BhY2thZ2UYAiABKAkS",
30             "EgoKZGVwZW5kZW5jeRgDIAMoCRIZChFwdWJsaWNfZGVwZW5kZW5jeRgKIAMo",
31             "BRIXCg93ZWFrX2RlcGVuZGVuY3kYCyADKAUSNgoMbWVzc2FnZV90eXBlGAQg",
32             "AygLMiAuZ29vZ2xlLnByb3RvYnVmLkRlc2NyaXB0b3JQcm90bxI3CgllbnVt",
33             "X3R5cGUYBSADKAsyJC5nb29nbGUucHJvdG9idWYuRW51bURlc2NyaXB0b3JQ",
34             "cm90bxI4CgdzZXJ2aWNlGAYgAygLMicuZ29vZ2xlLnByb3RvYnVmLlNlcnZp",
35             "Y2VEZXNjcmlwdG9yUHJvdG8SOAoJZXh0ZW5zaW9uGAcgAygLMiUuZ29vZ2xl",
36             "LnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvEi0KB29wdGlvbnMYCCAB",
37             "KAsyHC5nb29nbGUucHJvdG9idWYuRmlsZU9wdGlvbnMSOQoQc291cmNlX2Nv",
38             "ZGVfaW5mbxgJIAEoCzIfLmdvb2dsZS5wcm90b2J1Zi5Tb3VyY2VDb2RlSW5m",
39             "bxIOCgZzeW50YXgYDCABKAki8AQKD0Rlc2NyaXB0b3JQcm90bxIMCgRuYW1l",
40             "GAEgASgJEjQKBWZpZWxkGAIgAygLMiUuZ29vZ2xlLnByb3RvYnVmLkZpZWxk",
41             "RGVzY3JpcHRvclByb3RvEjgKCWV4dGVuc2lvbhgGIAMoCzIlLmdvb2dsZS5w",
42             "cm90b2J1Zi5GaWVsZERlc2NyaXB0b3JQcm90bxI1CgtuZXN0ZWRfdHlwZRgD",
43             "IAMoCzIgLmdvb2dsZS5wcm90b2J1Zi5EZXNjcmlwdG9yUHJvdG8SNwoJZW51",
44             "bV90eXBlGAQgAygLMiQuZ29vZ2xlLnByb3RvYnVmLkVudW1EZXNjcmlwdG9y",
45             "UHJvdG8SSAoPZXh0ZW5zaW9uX3JhbmdlGAUgAygLMi8uZ29vZ2xlLnByb3Rv",
46             "YnVmLkRlc2NyaXB0b3JQcm90by5FeHRlbnNpb25SYW5nZRI5CgpvbmVvZl9k",
47             "ZWNsGAggAygLMiUuZ29vZ2xlLnByb3RvYnVmLk9uZW9mRGVzY3JpcHRvclBy",
48             "b3RvEjAKB29wdGlvbnMYByABKAsyHy5nb29nbGUucHJvdG9idWYuTWVzc2Fn",
49             "ZU9wdGlvbnMSRgoOcmVzZXJ2ZWRfcmFuZ2UYCSADKAsyLi5nb29nbGUucHJv",
50             "dG9idWYuRGVzY3JpcHRvclByb3RvLlJlc2VydmVkUmFuZ2USFQoNcmVzZXJ2",
51             "ZWRfbmFtZRgKIAMoCRosCg5FeHRlbnNpb25SYW5nZRINCgVzdGFydBgBIAEo",
52             "BRILCgNlbmQYAiABKAUaKwoNUmVzZXJ2ZWRSYW5nZRINCgVzdGFydBgBIAEo",
53             "BRILCgNlbmQYAiABKAUivAUKFEZpZWxkRGVzY3JpcHRvclByb3RvEgwKBG5h",
54             "bWUYASABKAkSDgoGbnVtYmVyGAMgASgFEjoKBWxhYmVsGAQgASgOMisuZ29v",
55             "Z2xlLnByb3RvYnVmLkZpZWxkRGVzY3JpcHRvclByb3RvLkxhYmVsEjgKBHR5",
56             "cGUYBSABKA4yKi5nb29nbGUucHJvdG9idWYuRmllbGREZXNjcmlwdG9yUHJv",
57             "dG8uVHlwZRIRCgl0eXBlX25hbWUYBiABKAkSEAoIZXh0ZW5kZWUYAiABKAkS",
58             "FQoNZGVmYXVsdF92YWx1ZRgHIAEoCRITCgtvbmVvZl9pbmRleBgJIAEoBRIR",
59             "Cglqc29uX25hbWUYCiABKAkSLgoHb3B0aW9ucxgIIAEoCzIdLmdvb2dsZS5w",
60             "cm90b2J1Zi5GaWVsZE9wdGlvbnMitgIKBFR5cGUSDwoLVFlQRV9ET1VCTEUQ",
61             "ARIOCgpUWVBFX0ZMT0FUEAISDgoKVFlQRV9JTlQ2NBADEg8KC1RZUEVfVUlO",
62             "VDY0EAQSDgoKVFlQRV9JTlQzMhAFEhAKDFRZUEVfRklYRUQ2NBAGEhAKDFRZ",
63             "UEVfRklYRUQzMhAHEg0KCVRZUEVfQk9PTBAIEg8KC1RZUEVfU1RSSU5HEAkS",
64             "DgoKVFlQRV9HUk9VUBAKEhAKDFRZUEVfTUVTU0FHRRALEg4KClRZUEVfQllU",
65             "RVMQDBIPCgtUWVBFX1VJTlQzMhANEg0KCVRZUEVfRU5VTRAOEhEKDVRZUEVf",
66             "U0ZJWEVEMzIQDxIRCg1UWVBFX1NGSVhFRDY0EBASDwoLVFlQRV9TSU5UMzIQ",
67             "ERIPCgtUWVBFX1NJTlQ2NBASIkMKBUxhYmVsEhIKDkxBQkVMX09QVElPTkFM",
68             "EAESEgoOTEFCRUxfUkVRVUlSRUQQAhISCg5MQUJFTF9SRVBFQVRFRBADIiQK",
69             "FE9uZW9mRGVzY3JpcHRvclByb3RvEgwKBG5hbWUYASABKAkijAEKE0VudW1E",
70             "ZXNjcmlwdG9yUHJvdG8SDAoEbmFtZRgBIAEoCRI4CgV2YWx1ZRgCIAMoCzIp",
71             "Lmdvb2dsZS5wcm90b2J1Zi5FbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG8SLQoH",
72             "b3B0aW9ucxgDIAEoCzIcLmdvb2dsZS5wcm90b2J1Zi5FbnVtT3B0aW9ucyJs",
73             "ChhFbnVtVmFsdWVEZXNjcmlwdG9yUHJvdG8SDAoEbmFtZRgBIAEoCRIOCgZu",
74             "dW1iZXIYAiABKAUSMgoHb3B0aW9ucxgDIAEoCzIhLmdvb2dsZS5wcm90b2J1",
75             "Zi5FbnVtVmFsdWVPcHRpb25zIpABChZTZXJ2aWNlRGVzY3JpcHRvclByb3Rv",
76             "EgwKBG5hbWUYASABKAkSNgoGbWV0aG9kGAIgAygLMiYuZ29vZ2xlLnByb3Rv",
77             "YnVmLk1ldGhvZERlc2NyaXB0b3JQcm90bxIwCgdvcHRpb25zGAMgASgLMh8u",
78             "Z29vZ2xlLnByb3RvYnVmLlNlcnZpY2VPcHRpb25zIsEBChVNZXRob2REZXNj",
79             "cmlwdG9yUHJvdG8SDAoEbmFtZRgBIAEoCRISCgppbnB1dF90eXBlGAIgASgJ",
80             "EhMKC291dHB1dF90eXBlGAMgASgJEi8KB29wdGlvbnMYBCABKAsyHi5nb29n",
81             "bGUucHJvdG9idWYuTWV0aG9kT3B0aW9ucxIfChBjbGllbnRfc3RyZWFtaW5n",
82             "GAUgASgIOgVmYWxzZRIfChBzZXJ2ZXJfc3RyZWFtaW5nGAYgASgIOgVmYWxz",
83             "ZSKHBQoLRmlsZU9wdGlvbnMSFAoMamF2YV9wYWNrYWdlGAEgASgJEhwKFGph",
84             "dmFfb3V0ZXJfY2xhc3NuYW1lGAggASgJEiIKE2phdmFfbXVsdGlwbGVfZmls",
85             "ZXMYCiABKAg6BWZhbHNlEiwKHWphdmFfZ2VuZXJhdGVfZXF1YWxzX2FuZF9o",
86             "YXNoGBQgASgIOgVmYWxzZRIlChZqYXZhX3N0cmluZ19jaGVja191dGY4GBsg",
87             "ASgIOgVmYWxzZRJGCgxvcHRpbWl6ZV9mb3IYCSABKA4yKS5nb29nbGUucHJv",
88             "dG9idWYuRmlsZU9wdGlvbnMuT3B0aW1pemVNb2RlOgVTUEVFRBISCgpnb19w",
89             "YWNrYWdlGAsgASgJEiIKE2NjX2dlbmVyaWNfc2VydmljZXMYECABKAg6BWZh",
90             "bHNlEiQKFWphdmFfZ2VuZXJpY19zZXJ2aWNlcxgRIAEoCDoFZmFsc2USIgoT",
91             "cHlfZ2VuZXJpY19zZXJ2aWNlcxgSIAEoCDoFZmFsc2USGQoKZGVwcmVjYXRl",
92             "ZBgXIAEoCDoFZmFsc2USHwoQY2NfZW5hYmxlX2FyZW5hcxgfIAEoCDoFZmFs",
93             "c2USGQoRb2JqY19jbGFzc19wcmVmaXgYJCABKAkSGAoQY3NoYXJwX25hbWVz",
94             "cGFjZRglIAEoCRJDChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5n",
95             "b29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbiI6CgxPcHRpbWl6",
96             "ZU1vZGUSCQoFU1BFRUQQARINCglDT0RFX1NJWkUQAhIQCgxMSVRFX1JVTlRJ",
97             "TUUQAyoJCOgHEICAgIACSgQIJhAnIuYBCg5NZXNzYWdlT3B0aW9ucxImChdt",
98             "ZXNzYWdlX3NldF93aXJlX2Zvcm1hdBgBIAEoCDoFZmFsc2USLgofbm9fc3Rh",
99             "bmRhcmRfZGVzY3JpcHRvcl9hY2Nlc3NvchgCIAEoCDoFZmFsc2USGQoKZGVw",
100             "cmVjYXRlZBgDIAEoCDoFZmFsc2USEQoJbWFwX2VudHJ5GAcgASgIEkMKFHVu",
101             "aW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5V",
102             "bmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIimAMKDEZpZWxkT3B0aW9u",
103             "cxI6CgVjdHlwZRgBIAEoDjIjLmdvb2dsZS5wcm90b2J1Zi5GaWVsZE9wdGlv",
104             "bnMuQ1R5cGU6BlNUUklORxIOCgZwYWNrZWQYAiABKAgSPwoGanN0eXBlGAYg",
105             "ASgOMiQuZ29vZ2xlLnByb3RvYnVmLkZpZWxkT3B0aW9ucy5KU1R5cGU6CUpT",
106             "X05PUk1BTBITCgRsYXp5GAUgASgIOgVmYWxzZRIZCgpkZXByZWNhdGVkGAMg",
107             "ASgIOgVmYWxzZRITCgR3ZWFrGAogASgIOgVmYWxzZRJDChR1bmludGVycHJl",
108             "dGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnBy",
109             "ZXRlZE9wdGlvbiIvCgVDVHlwZRIKCgZTVFJJTkcQABIICgRDT1JEEAESEAoM",
110             "U1RSSU5HX1BJRUNFEAIiNQoGSlNUeXBlEg0KCUpTX05PUk1BTBAAEg0KCUpT",
111             "X1NUUklORxABEg0KCUpTX05VTUJFUhACKgkI6AcQgICAgAIijQEKC0VudW1P",
112             "cHRpb25zEhMKC2FsbG93X2FsaWFzGAIgASgIEhkKCmRlcHJlY2F0ZWQYAyAB",
113             "KAg6BWZhbHNlEkMKFHVuaW50ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdv",
114             "b2dsZS5wcm90b2J1Zi5VbmludGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIi",
115             "fQoQRW51bVZhbHVlT3B0aW9ucxIZCgpkZXByZWNhdGVkGAEgASgIOgVmYWxz",
116             "ZRJDChR1bmludGVycHJldGVkX29wdGlvbhjnByADKAsyJC5nb29nbGUucHJv",
117             "dG9idWYuVW5pbnRlcnByZXRlZE9wdGlvbioJCOgHEICAgIACInsKDlNlcnZp",
118             "Y2VPcHRpb25zEhkKCmRlcHJlY2F0ZWQYISABKAg6BWZhbHNlEkMKFHVuaW50",
119             "ZXJwcmV0ZWRfb3B0aW9uGOcHIAMoCzIkLmdvb2dsZS5wcm90b2J1Zi5Vbmlu",
120             "dGVycHJldGVkT3B0aW9uKgkI6AcQgICAgAIiegoNTWV0aG9kT3B0aW9ucxIZ",
121             "CgpkZXByZWNhdGVkGCEgASgIOgVmYWxzZRJDChR1bmludGVycHJldGVkX29w",
122             "dGlvbhjnByADKAsyJC5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9w",
123             "dGlvbioJCOgHEICAgIACIp4CChNVbmludGVycHJldGVkT3B0aW9uEjsKBG5h",
124             "bWUYAiADKAsyLS5nb29nbGUucHJvdG9idWYuVW5pbnRlcnByZXRlZE9wdGlv",
125             "bi5OYW1lUGFydBIYChBpZGVudGlmaWVyX3ZhbHVlGAMgASgJEhoKEnBvc2l0",
126             "aXZlX2ludF92YWx1ZRgEIAEoBBIaChJuZWdhdGl2ZV9pbnRfdmFsdWUYBSAB",
127             "KAMSFAoMZG91YmxlX3ZhbHVlGAYgASgBEhQKDHN0cmluZ192YWx1ZRgHIAEo",
128             "DBIXCg9hZ2dyZWdhdGVfdmFsdWUYCCABKAkaMwoITmFtZVBhcnQSEQoJbmFt",
129             "ZV9wYXJ0GAEgAigJEhQKDGlzX2V4dGVuc2lvbhgCIAIoCCLVAQoOU291cmNl",
130             "Q29kZUluZm8SOgoIbG9jYXRpb24YASADKAsyKC5nb29nbGUucHJvdG9idWYu",
131             "U291cmNlQ29kZUluZm8uTG9jYXRpb24ahgEKCExvY2F0aW9uEhAKBHBhdGgY",
132             "ASADKAVCAhABEhAKBHNwYW4YAiADKAVCAhABEhgKEGxlYWRpbmdfY29tbWVu",
133             "dHMYAyABKAkSGQoRdHJhaWxpbmdfY29tbWVudHMYBCABKAkSIQoZbGVhZGlu",
134             "Z19kZXRhY2hlZF9jb21tZW50cxgGIAMoCSKnAQoRR2VuZXJhdGVkQ29kZUlu",
135             "Zm8SQQoKYW5ub3RhdGlvbhgBIAMoCzItLmdvb2dsZS5wcm90b2J1Zi5HZW5l",
136             "cmF0ZWRDb2RlSW5mby5Bbm5vdGF0aW9uGk8KCkFubm90YXRpb24SEAoEcGF0",
137             "aBgBIAMoBUICEAESEwoLc291cmNlX2ZpbGUYAiABKAkSDQoFYmVnaW4YAyAB",
138             "KAUSCwoDZW5kGAQgASgFQlgKE2NvbS5nb29nbGUucHJvdG9idWZCEERlc2Ny",
139             "aXB0b3JQcm90b3NIAVoKZGVzY3JpcHRvcqICA0dQQqoCGkdvb2dsZS5Qcm90",
140             "b2J1Zi5SZWZsZWN0aW9u"));
141       descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
142           new pbr::FileDescriptor[] { },
143           new pbr::GeneratedClrTypeInfo(null, new pbr::GeneratedClrTypeInfo[] {
144             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileDescriptorSet), global::Google.Protobuf.Reflection.FileDescriptorSet.Parser, new[]{ "File" }, null, null, null),
145             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileDescriptorProto), global::Google.Protobuf.Reflection.FileDescriptorProto.Parser, new[]{ "Name", "Package", "Dependency", "PublicDependency", "WeakDependency", "MessageType", "EnumType", "Service", "Extension", "Options", "SourceCodeInfo", "Syntax" }, null, null, null),
146             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto), global::Google.Protobuf.Reflection.DescriptorProto.Parser, new[]{ "Name", "Field", "Extension", "NestedType", "EnumType", "ExtensionRange", "OneofDecl", "Options", "ReservedRange", "ReservedName" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange), global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.Parser, new[]{ "Start", "End" }, null, null, null),
147             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange), global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.Parser, new[]{ "Start", "End" }, null, null, null)}),
148             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto), global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser, new[]{ "Name", "Number", "Label", "Type", "TypeName", "Extendee", "DefaultValue", "OneofIndex", "JsonName", "Options" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type), typeof(global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label) }, null),
149             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.OneofDescriptorProto), global::Google.Protobuf.Reflection.OneofDescriptorProto.Parser, new[]{ "Name" }, null, null, null),
150             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumDescriptorProto), global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser, new[]{ "Name", "Value", "Options" }, null, null, null),
151             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueDescriptorProto), global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser, new[]{ "Name", "Number", "Options" }, null, null, null),
152             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceDescriptorProto), global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser, new[]{ "Name", "Method", "Options" }, null, null, null),
153             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodDescriptorProto), global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser, new[]{ "Name", "InputType", "OutputType", "Options", "ClientStreaming", "ServerStreaming" }, null, null, null),
154             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FileOptions), global::Google.Protobuf.Reflection.FileOptions.Parser, new[]{ "JavaPackage", "JavaOuterClassname", "JavaMultipleFiles", "JavaGenerateEqualsAndHash", "JavaStringCheckUtf8", "OptimizeFor", "GoPackage", "CcGenericServices", "JavaGenericServices", "PyGenericServices", "Deprecated", "CcEnableArenas", "ObjcClassPrefix", "CsharpNamespace", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) }, null),
155             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MessageOptions), global::Google.Protobuf.Reflection.MessageOptions.Parser, new[]{ "MessageSetWireFormat", "NoStandardDescriptorAccessor", "Deprecated", "MapEntry", "UninterpretedOption" }, null, null, null),
156             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.FieldOptions), global::Google.Protobuf.Reflection.FieldOptions.Parser, new[]{ "Ctype", "Packed", "Jstype", "Lazy", "Deprecated", "Weak", "UninterpretedOption" }, null, new[]{ typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.CType), typeof(global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) }, null),
157             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumOptions), global::Google.Protobuf.Reflection.EnumOptions.Parser, new[]{ "AllowAlias", "Deprecated", "UninterpretedOption" }, null, null, null),
158             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.EnumValueOptions), global::Google.Protobuf.Reflection.EnumValueOptions.Parser, new[]{ "Deprecated", "UninterpretedOption" }, null, null, null),
159             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.ServiceOptions), global::Google.Protobuf.Reflection.ServiceOptions.Parser, new[]{ "Deprecated", "UninterpretedOption" }, null, null, null),
160             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.MethodOptions), global::Google.Protobuf.Reflection.MethodOptions.Parser, new[]{ "Deprecated", "UninterpretedOption" }, null, null, null),
161             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.UninterpretedOption), global::Google.Protobuf.Reflection.UninterpretedOption.Parser, new[]{ "Name", "IdentifierValue", "PositiveIntValue", "NegativeIntValue", "DoubleValue", "StringValue", "AggregateValue" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart), global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.Parser, new[]{ "NamePart_", "IsExtension" }, null, null, null)}),
162             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.SourceCodeInfo), global::Google.Protobuf.Reflection.SourceCodeInfo.Parser, new[]{ "Location" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location), global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Parser, new[]{ "Path", "Span", "LeadingComments", "TrailingComments", "LeadingDetachedComments" }, null, null, null)}),
163             new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.GeneratedCodeInfo), global::Google.Protobuf.Reflection.GeneratedCodeInfo.Parser, new[]{ "Annotation" }, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation), global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Parser, new[]{ "Path", "SourceFile", "Begin", "End" }, null, null, null)})
164           }));
165     }
166     #endregion
167 
168   }
169   #region Messages
170   /// <summary>
171   ///  The protocol compiler can output a FileDescriptorSet containing the .proto
172   ///  files it parses.
173   /// </summary>
174   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
175   internal sealed partial class FileDescriptorSet : pb::IMessage<FileDescriptorSet> {
176     private static readonly pb::MessageParser<FileDescriptorSet> _parser = new pb::MessageParser<FileDescriptorSet>(() => new FileDescriptorSet());
177     public static pb::MessageParser<FileDescriptorSet> Parser { get { return _parser; } }
178 
179     public static pbr::MessageDescriptor Descriptor {
180       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[0]; }
181     }
182 
183     pbr::MessageDescriptor pb::IMessage.Descriptor {
184       get { return Descriptor; }
185     }
186 
FileDescriptorSet()187     public FileDescriptorSet() {
188       OnConstruction();
189     }
190 
OnConstruction()191     partial void OnConstruction();
192 
FileDescriptorSet(FileDescriptorSet other)193     public FileDescriptorSet(FileDescriptorSet other) : this() {
194       file_ = other.file_.Clone();
195     }
196 
Clone()197     public FileDescriptorSet Clone() {
198       return new FileDescriptorSet(this);
199     }
200 
201     /// <summary>Field number for the "file" field.</summary>
202     public const int FileFieldNumber = 1;
203     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FileDescriptorProto> _repeated_file_codec
204         = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.FileDescriptorProto.Parser);
205     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto> file_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto>();
206     public pbc::RepeatedField<global::Google.Protobuf.Reflection.FileDescriptorProto> File {
207       get { return file_; }
208     }
209 
Equals(object other)210     public override bool Equals(object other) {
211       return Equals(other as FileDescriptorSet);
212     }
213 
Equals(FileDescriptorSet other)214     public bool Equals(FileDescriptorSet other) {
215       if (ReferenceEquals(other, null)) {
216         return false;
217       }
218       if (ReferenceEquals(other, this)) {
219         return true;
220       }
221       if(!file_.Equals(other.file_)) return false;
222       return true;
223     }
224 
GetHashCode()225     public override int GetHashCode() {
226       int hash = 1;
227       hash ^= file_.GetHashCode();
228       return hash;
229     }
230 
ToString()231     public override string ToString() {
232       return pb::JsonFormatter.ToDiagnosticString(this);
233     }
234 
WriteTo(pb::CodedOutputStream output)235     public void WriteTo(pb::CodedOutputStream output) {
236       file_.WriteTo(output, _repeated_file_codec);
237     }
238 
CalculateSize()239     public int CalculateSize() {
240       int size = 0;
241       size += file_.CalculateSize(_repeated_file_codec);
242       return size;
243     }
244 
MergeFrom(FileDescriptorSet other)245     public void MergeFrom(FileDescriptorSet other) {
246       if (other == null) {
247         return;
248       }
249       file_.Add(other.file_);
250     }
251 
MergeFrom(pb::CodedInputStream input)252     public void MergeFrom(pb::CodedInputStream input) {
253       uint tag;
254       while ((tag = input.ReadTag()) != 0) {
255         switch(tag) {
256           default:
257             input.SkipLastField();
258             break;
259           case 10: {
260             file_.AddEntriesFrom(input, _repeated_file_codec);
261             break;
262           }
263         }
264       }
265     }
266 
267   }
268 
269   /// <summary>
270   ///  Describes a complete .proto file.
271   /// </summary>
272   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
273   internal sealed partial class FileDescriptorProto : pb::IMessage<FileDescriptorProto> {
274     private static readonly pb::MessageParser<FileDescriptorProto> _parser = new pb::MessageParser<FileDescriptorProto>(() => new FileDescriptorProto());
275     public static pb::MessageParser<FileDescriptorProto> Parser { get { return _parser; } }
276 
277     public static pbr::MessageDescriptor Descriptor {
278       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[1]; }
279     }
280 
281     pbr::MessageDescriptor pb::IMessage.Descriptor {
282       get { return Descriptor; }
283     }
284 
FileDescriptorProto()285     public FileDescriptorProto() {
286       OnConstruction();
287     }
288 
OnConstruction()289     partial void OnConstruction();
290 
FileDescriptorProto(FileDescriptorProto other)291     public FileDescriptorProto(FileDescriptorProto other) : this() {
292       name_ = other.name_;
293       package_ = other.package_;
294       dependency_ = other.dependency_.Clone();
295       publicDependency_ = other.publicDependency_.Clone();
296       weakDependency_ = other.weakDependency_.Clone();
297       messageType_ = other.messageType_.Clone();
298       enumType_ = other.enumType_.Clone();
299       service_ = other.service_.Clone();
300       extension_ = other.extension_.Clone();
301       Options = other.options_ != null ? other.Options.Clone() : null;
302       SourceCodeInfo = other.sourceCodeInfo_ != null ? other.SourceCodeInfo.Clone() : null;
303       syntax_ = other.syntax_;
304     }
305 
Clone()306     public FileDescriptorProto Clone() {
307       return new FileDescriptorProto(this);
308     }
309 
310     /// <summary>Field number for the "name" field.</summary>
311     public const int NameFieldNumber = 1;
312     private string name_ = "";
313     /// <summary>
314     ///  file name, relative to root of source tree
315     /// </summary>
316     public string Name {
317       get { return name_; }
318       set {
319         name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
320       }
321     }
322 
323     /// <summary>Field number for the "package" field.</summary>
324     public const int PackageFieldNumber = 2;
325     private string package_ = "";
326     /// <summary>
327     ///  e.g. "foo", "foo.bar", etc.
328     /// </summary>
329     public string Package {
330       get { return package_; }
331       set {
332         package_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
333       }
334     }
335 
336     /// <summary>Field number for the "dependency" field.</summary>
337     public const int DependencyFieldNumber = 3;
338     private static readonly pb::FieldCodec<string> _repeated_dependency_codec
339         = pb::FieldCodec.ForString(26);
340     private readonly pbc::RepeatedField<string> dependency_ = new pbc::RepeatedField<string>();
341     /// <summary>
342     ///  Names of files imported by this file.
343     /// </summary>
344     public pbc::RepeatedField<string> Dependency {
345       get { return dependency_; }
346     }
347 
348     /// <summary>Field number for the "public_dependency" field.</summary>
349     public const int PublicDependencyFieldNumber = 10;
350     private static readonly pb::FieldCodec<int> _repeated_publicDependency_codec
351         = pb::FieldCodec.ForInt32(80);
352     private readonly pbc::RepeatedField<int> publicDependency_ = new pbc::RepeatedField<int>();
353     /// <summary>
354     ///  Indexes of the public imported files in the dependency list above.
355     /// </summary>
356     public pbc::RepeatedField<int> PublicDependency {
357       get { return publicDependency_; }
358     }
359 
360     /// <summary>Field number for the "weak_dependency" field.</summary>
361     public const int WeakDependencyFieldNumber = 11;
362     private static readonly pb::FieldCodec<int> _repeated_weakDependency_codec
363         = pb::FieldCodec.ForInt32(88);
364     private readonly pbc::RepeatedField<int> weakDependency_ = new pbc::RepeatedField<int>();
365     /// <summary>
366     ///  Indexes of the weak imported files in the dependency list.
367     ///  For Google-internal migration only. Do not use.
368     /// </summary>
369     public pbc::RepeatedField<int> WeakDependency {
370       get { return weakDependency_; }
371     }
372 
373     /// <summary>Field number for the "message_type" field.</summary>
374     public const int MessageTypeFieldNumber = 4;
375     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto> _repeated_messageType_codec
376         = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.Reflection.DescriptorProto.Parser);
377     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> messageType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto>();
378     /// <summary>
379     ///  All top-level definitions in this file.
380     /// </summary>
381     public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> MessageType {
382       get { return messageType_; }
383     }
384 
385     /// <summary>Field number for the "enum_type" field.</summary>
386     public const int EnumTypeFieldNumber = 5;
387     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumDescriptorProto> _repeated_enumType_codec
388         = pb::FieldCodec.ForMessage(42, global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser);
389     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> enumType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto>();
390     public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> EnumType {
391       get { return enumType_; }
392     }
393 
394     /// <summary>Field number for the "service" field.</summary>
395     public const int ServiceFieldNumber = 6;
396     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.ServiceDescriptorProto> _repeated_service_codec
397         = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.Reflection.ServiceDescriptorProto.Parser);
398     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto> service_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto>();
399     public pbc::RepeatedField<global::Google.Protobuf.Reflection.ServiceDescriptorProto> Service {
400       get { return service_; }
401     }
402 
403     /// <summary>Field number for the "extension" field.</summary>
404     public const int ExtensionFieldNumber = 7;
405     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_extension_codec
406         = pb::FieldCodec.ForMessage(58, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);
407     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> extension_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();
408     public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Extension {
409       get { return extension_; }
410     }
411 
412     /// <summary>Field number for the "options" field.</summary>
413     public const int OptionsFieldNumber = 8;
414     private global::Google.Protobuf.Reflection.FileOptions options_;
415     public global::Google.Protobuf.Reflection.FileOptions Options {
416       get { return options_; }
417       set {
418         options_ = value;
419       }
420     }
421 
422     /// <summary>Field number for the "source_code_info" field.</summary>
423     public const int SourceCodeInfoFieldNumber = 9;
424     private global::Google.Protobuf.Reflection.SourceCodeInfo sourceCodeInfo_;
425     /// <summary>
426     ///  This field contains optional information about the original source code.
427     ///  You may safely remove this entire field without harming runtime
428     ///  functionality of the descriptors -- the information is needed only by
429     ///  development tools.
430     /// </summary>
431     public global::Google.Protobuf.Reflection.SourceCodeInfo SourceCodeInfo {
432       get { return sourceCodeInfo_; }
433       set {
434         sourceCodeInfo_ = value;
435       }
436     }
437 
438     /// <summary>Field number for the "syntax" field.</summary>
439     public const int SyntaxFieldNumber = 12;
440     private string syntax_ = "";
441     /// <summary>
442     ///  The syntax of the proto file.
443     ///  The supported values are "proto2" and "proto3".
444     /// </summary>
445     public string Syntax {
446       get { return syntax_; }
447       set {
448         syntax_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
449       }
450     }
451 
Equals(object other)452     public override bool Equals(object other) {
453       return Equals(other as FileDescriptorProto);
454     }
455 
Equals(FileDescriptorProto other)456     public bool Equals(FileDescriptorProto other) {
457       if (ReferenceEquals(other, null)) {
458         return false;
459       }
460       if (ReferenceEquals(other, this)) {
461         return true;
462       }
463       if (Name != other.Name) return false;
464       if (Package != other.Package) return false;
465       if(!dependency_.Equals(other.dependency_)) return false;
466       if(!publicDependency_.Equals(other.publicDependency_)) return false;
467       if(!weakDependency_.Equals(other.weakDependency_)) return false;
468       if(!messageType_.Equals(other.messageType_)) return false;
469       if(!enumType_.Equals(other.enumType_)) return false;
470       if(!service_.Equals(other.service_)) return false;
471       if(!extension_.Equals(other.extension_)) return false;
472       if (!object.Equals(Options, other.Options)) return false;
473       if (!object.Equals(SourceCodeInfo, other.SourceCodeInfo)) return false;
474       if (Syntax != other.Syntax) return false;
475       return true;
476     }
477 
GetHashCode()478     public override int GetHashCode() {
479       int hash = 1;
480       if (Name.Length != 0) hash ^= Name.GetHashCode();
481       if (Package.Length != 0) hash ^= Package.GetHashCode();
482       hash ^= dependency_.GetHashCode();
483       hash ^= publicDependency_.GetHashCode();
484       hash ^= weakDependency_.GetHashCode();
485       hash ^= messageType_.GetHashCode();
486       hash ^= enumType_.GetHashCode();
487       hash ^= service_.GetHashCode();
488       hash ^= extension_.GetHashCode();
489       if (options_ != null) hash ^= Options.GetHashCode();
490       if (sourceCodeInfo_ != null) hash ^= SourceCodeInfo.GetHashCode();
491       if (Syntax.Length != 0) hash ^= Syntax.GetHashCode();
492       return hash;
493     }
494 
ToString()495     public override string ToString() {
496       return pb::JsonFormatter.ToDiagnosticString(this);
497     }
498 
WriteTo(pb::CodedOutputStream output)499     public void WriteTo(pb::CodedOutputStream output) {
500       if (Name.Length != 0) {
501         output.WriteRawTag(10);
502         output.WriteString(Name);
503       }
504       if (Package.Length != 0) {
505         output.WriteRawTag(18);
506         output.WriteString(Package);
507       }
508       dependency_.WriteTo(output, _repeated_dependency_codec);
509       messageType_.WriteTo(output, _repeated_messageType_codec);
510       enumType_.WriteTo(output, _repeated_enumType_codec);
511       service_.WriteTo(output, _repeated_service_codec);
512       extension_.WriteTo(output, _repeated_extension_codec);
513       if (options_ != null) {
514         output.WriteRawTag(66);
515         output.WriteMessage(Options);
516       }
517       if (sourceCodeInfo_ != null) {
518         output.WriteRawTag(74);
519         output.WriteMessage(SourceCodeInfo);
520       }
521       publicDependency_.WriteTo(output, _repeated_publicDependency_codec);
522       weakDependency_.WriteTo(output, _repeated_weakDependency_codec);
523       if (Syntax.Length != 0) {
524         output.WriteRawTag(98);
525         output.WriteString(Syntax);
526       }
527     }
528 
CalculateSize()529     public int CalculateSize() {
530       int size = 0;
531       if (Name.Length != 0) {
532         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
533       }
534       if (Package.Length != 0) {
535         size += 1 + pb::CodedOutputStream.ComputeStringSize(Package);
536       }
537       size += dependency_.CalculateSize(_repeated_dependency_codec);
538       size += publicDependency_.CalculateSize(_repeated_publicDependency_codec);
539       size += weakDependency_.CalculateSize(_repeated_weakDependency_codec);
540       size += messageType_.CalculateSize(_repeated_messageType_codec);
541       size += enumType_.CalculateSize(_repeated_enumType_codec);
542       size += service_.CalculateSize(_repeated_service_codec);
543       size += extension_.CalculateSize(_repeated_extension_codec);
544       if (options_ != null) {
545         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
546       }
547       if (sourceCodeInfo_ != null) {
548         size += 1 + pb::CodedOutputStream.ComputeMessageSize(SourceCodeInfo);
549       }
550       if (Syntax.Length != 0) {
551         size += 1 + pb::CodedOutputStream.ComputeStringSize(Syntax);
552       }
553       return size;
554     }
555 
MergeFrom(FileDescriptorProto other)556     public void MergeFrom(FileDescriptorProto other) {
557       if (other == null) {
558         return;
559       }
560       if (other.Name.Length != 0) {
561         Name = other.Name;
562       }
563       if (other.Package.Length != 0) {
564         Package = other.Package;
565       }
566       dependency_.Add(other.dependency_);
567       publicDependency_.Add(other.publicDependency_);
568       weakDependency_.Add(other.weakDependency_);
569       messageType_.Add(other.messageType_);
570       enumType_.Add(other.enumType_);
571       service_.Add(other.service_);
572       extension_.Add(other.extension_);
573       if (other.options_ != null) {
574         if (options_ == null) {
575           options_ = new global::Google.Protobuf.Reflection.FileOptions();
576         }
577         Options.MergeFrom(other.Options);
578       }
579       if (other.sourceCodeInfo_ != null) {
580         if (sourceCodeInfo_ == null) {
581           sourceCodeInfo_ = new global::Google.Protobuf.Reflection.SourceCodeInfo();
582         }
583         SourceCodeInfo.MergeFrom(other.SourceCodeInfo);
584       }
585       if (other.Syntax.Length != 0) {
586         Syntax = other.Syntax;
587       }
588     }
589 
MergeFrom(pb::CodedInputStream input)590     public void MergeFrom(pb::CodedInputStream input) {
591       uint tag;
592       while ((tag = input.ReadTag()) != 0) {
593         switch(tag) {
594           default:
595             input.SkipLastField();
596             break;
597           case 10: {
598             Name = input.ReadString();
599             break;
600           }
601           case 18: {
602             Package = input.ReadString();
603             break;
604           }
605           case 26: {
606             dependency_.AddEntriesFrom(input, _repeated_dependency_codec);
607             break;
608           }
609           case 34: {
610             messageType_.AddEntriesFrom(input, _repeated_messageType_codec);
611             break;
612           }
613           case 42: {
614             enumType_.AddEntriesFrom(input, _repeated_enumType_codec);
615             break;
616           }
617           case 50: {
618             service_.AddEntriesFrom(input, _repeated_service_codec);
619             break;
620           }
621           case 58: {
622             extension_.AddEntriesFrom(input, _repeated_extension_codec);
623             break;
624           }
625           case 66: {
626             if (options_ == null) {
627               options_ = new global::Google.Protobuf.Reflection.FileOptions();
628             }
629             input.ReadMessage(options_);
630             break;
631           }
632           case 74: {
633             if (sourceCodeInfo_ == null) {
634               sourceCodeInfo_ = new global::Google.Protobuf.Reflection.SourceCodeInfo();
635             }
636             input.ReadMessage(sourceCodeInfo_);
637             break;
638           }
639           case 82:
640           case 80: {
641             publicDependency_.AddEntriesFrom(input, _repeated_publicDependency_codec);
642             break;
643           }
644           case 90:
645           case 88: {
646             weakDependency_.AddEntriesFrom(input, _repeated_weakDependency_codec);
647             break;
648           }
649           case 98: {
650             Syntax = input.ReadString();
651             break;
652           }
653         }
654       }
655     }
656 
657   }
658 
659   /// <summary>
660   ///  Describes a message type.
661   /// </summary>
662   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
663   internal sealed partial class DescriptorProto : pb::IMessage<DescriptorProto> {
664     private static readonly pb::MessageParser<DescriptorProto> _parser = new pb::MessageParser<DescriptorProto>(() => new DescriptorProto());
665     public static pb::MessageParser<DescriptorProto> Parser { get { return _parser; } }
666 
667     public static pbr::MessageDescriptor Descriptor {
668       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[2]; }
669     }
670 
671     pbr::MessageDescriptor pb::IMessage.Descriptor {
672       get { return Descriptor; }
673     }
674 
DescriptorProto()675     public DescriptorProto() {
676       OnConstruction();
677     }
678 
OnConstruction()679     partial void OnConstruction();
680 
DescriptorProto(DescriptorProto other)681     public DescriptorProto(DescriptorProto other) : this() {
682       name_ = other.name_;
683       field_ = other.field_.Clone();
684       extension_ = other.extension_.Clone();
685       nestedType_ = other.nestedType_.Clone();
686       enumType_ = other.enumType_.Clone();
687       extensionRange_ = other.extensionRange_.Clone();
688       oneofDecl_ = other.oneofDecl_.Clone();
689       Options = other.options_ != null ? other.Options.Clone() : null;
690       reservedRange_ = other.reservedRange_.Clone();
691       reservedName_ = other.reservedName_.Clone();
692     }
693 
Clone()694     public DescriptorProto Clone() {
695       return new DescriptorProto(this);
696     }
697 
698     /// <summary>Field number for the "name" field.</summary>
699     public const int NameFieldNumber = 1;
700     private string name_ = "";
701     public string Name {
702       get { return name_; }
703       set {
704         name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
705       }
706     }
707 
708     /// <summary>Field number for the "field" field.</summary>
709     public const int FieldFieldNumber = 2;
710     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_field_codec
711         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);
712     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> field_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();
713     public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Field {
714       get { return field_; }
715     }
716 
717     /// <summary>Field number for the "extension" field.</summary>
718     public const int ExtensionFieldNumber = 6;
719     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.FieldDescriptorProto> _repeated_extension_codec
720         = pb::FieldCodec.ForMessage(50, global::Google.Protobuf.Reflection.FieldDescriptorProto.Parser);
721     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> extension_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto>();
722     public pbc::RepeatedField<global::Google.Protobuf.Reflection.FieldDescriptorProto> Extension {
723       get { return extension_; }
724     }
725 
726     /// <summary>Field number for the "nested_type" field.</summary>
727     public const int NestedTypeFieldNumber = 3;
728     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto> _repeated_nestedType_codec
729         = pb::FieldCodec.ForMessage(26, global::Google.Protobuf.Reflection.DescriptorProto.Parser);
730     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> nestedType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto>();
731     public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto> NestedType {
732       get { return nestedType_; }
733     }
734 
735     /// <summary>Field number for the "enum_type" field.</summary>
736     public const int EnumTypeFieldNumber = 4;
737     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumDescriptorProto> _repeated_enumType_codec
738         = pb::FieldCodec.ForMessage(34, global::Google.Protobuf.Reflection.EnumDescriptorProto.Parser);
739     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> enumType_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto>();
740     public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumDescriptorProto> EnumType {
741       get { return enumType_; }
742     }
743 
744     /// <summary>Field number for the "extension_range" field.</summary>
745     public const int ExtensionRangeFieldNumber = 5;
746     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> _repeated_extensionRange_codec
747         = pb::FieldCodec.ForMessage(42, global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange.Parser);
748     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> extensionRange_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange>();
749     public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ExtensionRange> ExtensionRange {
750       get { return extensionRange_; }
751     }
752 
753     /// <summary>Field number for the "oneof_decl" field.</summary>
754     public const int OneofDeclFieldNumber = 8;
755     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.OneofDescriptorProto> _repeated_oneofDecl_codec
756         = pb::FieldCodec.ForMessage(66, global::Google.Protobuf.Reflection.OneofDescriptorProto.Parser);
757     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto> oneofDecl_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto>();
758     public pbc::RepeatedField<global::Google.Protobuf.Reflection.OneofDescriptorProto> OneofDecl {
759       get { return oneofDecl_; }
760     }
761 
762     /// <summary>Field number for the "options" field.</summary>
763     public const int OptionsFieldNumber = 7;
764     private global::Google.Protobuf.Reflection.MessageOptions options_;
765     public global::Google.Protobuf.Reflection.MessageOptions Options {
766       get { return options_; }
767       set {
768         options_ = value;
769       }
770     }
771 
772     /// <summary>Field number for the "reserved_range" field.</summary>
773     public const int ReservedRangeFieldNumber = 9;
774     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> _repeated_reservedRange_codec
775         = pb::FieldCodec.ForMessage(74, global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange.Parser);
776     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> reservedRange_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange>();
777     public pbc::RepeatedField<global::Google.Protobuf.Reflection.DescriptorProto.Types.ReservedRange> ReservedRange {
778       get { return reservedRange_; }
779     }
780 
781     /// <summary>Field number for the "reserved_name" field.</summary>
782     public const int ReservedNameFieldNumber = 10;
783     private static readonly pb::FieldCodec<string> _repeated_reservedName_codec
784         = pb::FieldCodec.ForString(82);
785     private readonly pbc::RepeatedField<string> reservedName_ = new pbc::RepeatedField<string>();
786     /// <summary>
787     ///  Reserved field names, which may not be used by fields in the same message.
788     ///  A given name may only be reserved once.
789     /// </summary>
790     public pbc::RepeatedField<string> ReservedName {
791       get { return reservedName_; }
792     }
793 
Equals(object other)794     public override bool Equals(object other) {
795       return Equals(other as DescriptorProto);
796     }
797 
Equals(DescriptorProto other)798     public bool Equals(DescriptorProto other) {
799       if (ReferenceEquals(other, null)) {
800         return false;
801       }
802       if (ReferenceEquals(other, this)) {
803         return true;
804       }
805       if (Name != other.Name) return false;
806       if(!field_.Equals(other.field_)) return false;
807       if(!extension_.Equals(other.extension_)) return false;
808       if(!nestedType_.Equals(other.nestedType_)) return false;
809       if(!enumType_.Equals(other.enumType_)) return false;
810       if(!extensionRange_.Equals(other.extensionRange_)) return false;
811       if(!oneofDecl_.Equals(other.oneofDecl_)) return false;
812       if (!object.Equals(Options, other.Options)) return false;
813       if(!reservedRange_.Equals(other.reservedRange_)) return false;
814       if(!reservedName_.Equals(other.reservedName_)) return false;
815       return true;
816     }
817 
GetHashCode()818     public override int GetHashCode() {
819       int hash = 1;
820       if (Name.Length != 0) hash ^= Name.GetHashCode();
821       hash ^= field_.GetHashCode();
822       hash ^= extension_.GetHashCode();
823       hash ^= nestedType_.GetHashCode();
824       hash ^= enumType_.GetHashCode();
825       hash ^= extensionRange_.GetHashCode();
826       hash ^= oneofDecl_.GetHashCode();
827       if (options_ != null) hash ^= Options.GetHashCode();
828       hash ^= reservedRange_.GetHashCode();
829       hash ^= reservedName_.GetHashCode();
830       return hash;
831     }
832 
ToString()833     public override string ToString() {
834       return pb::JsonFormatter.ToDiagnosticString(this);
835     }
836 
WriteTo(pb::CodedOutputStream output)837     public void WriteTo(pb::CodedOutputStream output) {
838       if (Name.Length != 0) {
839         output.WriteRawTag(10);
840         output.WriteString(Name);
841       }
842       field_.WriteTo(output, _repeated_field_codec);
843       nestedType_.WriteTo(output, _repeated_nestedType_codec);
844       enumType_.WriteTo(output, _repeated_enumType_codec);
845       extensionRange_.WriteTo(output, _repeated_extensionRange_codec);
846       extension_.WriteTo(output, _repeated_extension_codec);
847       if (options_ != null) {
848         output.WriteRawTag(58);
849         output.WriteMessage(Options);
850       }
851       oneofDecl_.WriteTo(output, _repeated_oneofDecl_codec);
852       reservedRange_.WriteTo(output, _repeated_reservedRange_codec);
853       reservedName_.WriteTo(output, _repeated_reservedName_codec);
854     }
855 
CalculateSize()856     public int CalculateSize() {
857       int size = 0;
858       if (Name.Length != 0) {
859         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
860       }
861       size += field_.CalculateSize(_repeated_field_codec);
862       size += extension_.CalculateSize(_repeated_extension_codec);
863       size += nestedType_.CalculateSize(_repeated_nestedType_codec);
864       size += enumType_.CalculateSize(_repeated_enumType_codec);
865       size += extensionRange_.CalculateSize(_repeated_extensionRange_codec);
866       size += oneofDecl_.CalculateSize(_repeated_oneofDecl_codec);
867       if (options_ != null) {
868         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
869       }
870       size += reservedRange_.CalculateSize(_repeated_reservedRange_codec);
871       size += reservedName_.CalculateSize(_repeated_reservedName_codec);
872       return size;
873     }
874 
MergeFrom(DescriptorProto other)875     public void MergeFrom(DescriptorProto other) {
876       if (other == null) {
877         return;
878       }
879       if (other.Name.Length != 0) {
880         Name = other.Name;
881       }
882       field_.Add(other.field_);
883       extension_.Add(other.extension_);
884       nestedType_.Add(other.nestedType_);
885       enumType_.Add(other.enumType_);
886       extensionRange_.Add(other.extensionRange_);
887       oneofDecl_.Add(other.oneofDecl_);
888       if (other.options_ != null) {
889         if (options_ == null) {
890           options_ = new global::Google.Protobuf.Reflection.MessageOptions();
891         }
892         Options.MergeFrom(other.Options);
893       }
894       reservedRange_.Add(other.reservedRange_);
895       reservedName_.Add(other.reservedName_);
896     }
897 
MergeFrom(pb::CodedInputStream input)898     public void MergeFrom(pb::CodedInputStream input) {
899       uint tag;
900       while ((tag = input.ReadTag()) != 0) {
901         switch(tag) {
902           default:
903             input.SkipLastField();
904             break;
905           case 10: {
906             Name = input.ReadString();
907             break;
908           }
909           case 18: {
910             field_.AddEntriesFrom(input, _repeated_field_codec);
911             break;
912           }
913           case 26: {
914             nestedType_.AddEntriesFrom(input, _repeated_nestedType_codec);
915             break;
916           }
917           case 34: {
918             enumType_.AddEntriesFrom(input, _repeated_enumType_codec);
919             break;
920           }
921           case 42: {
922             extensionRange_.AddEntriesFrom(input, _repeated_extensionRange_codec);
923             break;
924           }
925           case 50: {
926             extension_.AddEntriesFrom(input, _repeated_extension_codec);
927             break;
928           }
929           case 58: {
930             if (options_ == null) {
931               options_ = new global::Google.Protobuf.Reflection.MessageOptions();
932             }
933             input.ReadMessage(options_);
934             break;
935           }
936           case 66: {
937             oneofDecl_.AddEntriesFrom(input, _repeated_oneofDecl_codec);
938             break;
939           }
940           case 74: {
941             reservedRange_.AddEntriesFrom(input, _repeated_reservedRange_codec);
942             break;
943           }
944           case 82: {
945             reservedName_.AddEntriesFrom(input, _repeated_reservedName_codec);
946             break;
947           }
948         }
949       }
950     }
951 
952     #region Nested types
953     /// <summary>Container for nested types declared in the DescriptorProto message type.</summary>
954     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
955     public static partial class Types {
956       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
957       internal sealed partial class ExtensionRange : pb::IMessage<ExtensionRange> {
958         private static readonly pb::MessageParser<ExtensionRange> _parser = new pb::MessageParser<ExtensionRange>(() => new ExtensionRange());
959         public static pb::MessageParser<ExtensionRange> Parser { get { return _parser; } }
960 
961         public static pbr::MessageDescriptor Descriptor {
962           get { return global::Google.Protobuf.Reflection.DescriptorProto.Descriptor.NestedTypes[0]; }
963         }
964 
965         pbr::MessageDescriptor pb::IMessage.Descriptor {
966           get { return Descriptor; }
967         }
968 
ExtensionRange()969         public ExtensionRange() {
970           OnConstruction();
971         }
972 
OnConstruction()973         partial void OnConstruction();
974 
ExtensionRange(ExtensionRange other)975         public ExtensionRange(ExtensionRange other) : this() {
976           start_ = other.start_;
977           end_ = other.end_;
978         }
979 
Clone()980         public ExtensionRange Clone() {
981           return new ExtensionRange(this);
982         }
983 
984         /// <summary>Field number for the "start" field.</summary>
985         public const int StartFieldNumber = 1;
986         private int start_;
987         public int Start {
988           get { return start_; }
989           set {
990             start_ = value;
991           }
992         }
993 
994         /// <summary>Field number for the "end" field.</summary>
995         public const int EndFieldNumber = 2;
996         private int end_;
997         public int End {
998           get { return end_; }
999           set {
1000             end_ = value;
1001           }
1002         }
1003 
Equals(object other)1004         public override bool Equals(object other) {
1005           return Equals(other as ExtensionRange);
1006         }
1007 
Equals(ExtensionRange other)1008         public bool Equals(ExtensionRange other) {
1009           if (ReferenceEquals(other, null)) {
1010             return false;
1011           }
1012           if (ReferenceEquals(other, this)) {
1013             return true;
1014           }
1015           if (Start != other.Start) return false;
1016           if (End != other.End) return false;
1017           return true;
1018         }
1019 
GetHashCode()1020         public override int GetHashCode() {
1021           int hash = 1;
1022           if (Start != 0) hash ^= Start.GetHashCode();
1023           if (End != 0) hash ^= End.GetHashCode();
1024           return hash;
1025         }
1026 
ToString()1027         public override string ToString() {
1028           return pb::JsonFormatter.ToDiagnosticString(this);
1029         }
1030 
WriteTo(pb::CodedOutputStream output)1031         public void WriteTo(pb::CodedOutputStream output) {
1032           if (Start != 0) {
1033             output.WriteRawTag(8);
1034             output.WriteInt32(Start);
1035           }
1036           if (End != 0) {
1037             output.WriteRawTag(16);
1038             output.WriteInt32(End);
1039           }
1040         }
1041 
CalculateSize()1042         public int CalculateSize() {
1043           int size = 0;
1044           if (Start != 0) {
1045             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
1046           }
1047           if (End != 0) {
1048             size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
1049           }
1050           return size;
1051         }
1052 
MergeFrom(ExtensionRange other)1053         public void MergeFrom(ExtensionRange other) {
1054           if (other == null) {
1055             return;
1056           }
1057           if (other.Start != 0) {
1058             Start = other.Start;
1059           }
1060           if (other.End != 0) {
1061             End = other.End;
1062           }
1063         }
1064 
MergeFrom(pb::CodedInputStream input)1065         public void MergeFrom(pb::CodedInputStream input) {
1066           uint tag;
1067           while ((tag = input.ReadTag()) != 0) {
1068             switch(tag) {
1069               default:
1070                 input.SkipLastField();
1071                 break;
1072               case 8: {
1073                 Start = input.ReadInt32();
1074                 break;
1075               }
1076               case 16: {
1077                 End = input.ReadInt32();
1078                 break;
1079               }
1080             }
1081           }
1082         }
1083 
1084       }
1085 
1086       /// <summary>
1087       ///  Range of reserved tag numbers. Reserved tag numbers may not be used by
1088       ///  fields or extension ranges in the same message. Reserved ranges may
1089       ///  not overlap.
1090       /// </summary>
1091       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1092       internal sealed partial class ReservedRange : pb::IMessage<ReservedRange> {
1093         private static readonly pb::MessageParser<ReservedRange> _parser = new pb::MessageParser<ReservedRange>(() => new ReservedRange());
1094         public static pb::MessageParser<ReservedRange> Parser { get { return _parser; } }
1095 
1096         public static pbr::MessageDescriptor Descriptor {
1097           get { return global::Google.Protobuf.Reflection.DescriptorProto.Descriptor.NestedTypes[1]; }
1098         }
1099 
1100         pbr::MessageDescriptor pb::IMessage.Descriptor {
1101           get { return Descriptor; }
1102         }
1103 
ReservedRange()1104         public ReservedRange() {
1105           OnConstruction();
1106         }
1107 
OnConstruction()1108         partial void OnConstruction();
1109 
ReservedRange(ReservedRange other)1110         public ReservedRange(ReservedRange other) : this() {
1111           start_ = other.start_;
1112           end_ = other.end_;
1113         }
1114 
Clone()1115         public ReservedRange Clone() {
1116           return new ReservedRange(this);
1117         }
1118 
1119         /// <summary>Field number for the "start" field.</summary>
1120         public const int StartFieldNumber = 1;
1121         private int start_;
1122         /// <summary>
1123         ///  Inclusive.
1124         /// </summary>
1125         public int Start {
1126           get { return start_; }
1127           set {
1128             start_ = value;
1129           }
1130         }
1131 
1132         /// <summary>Field number for the "end" field.</summary>
1133         public const int EndFieldNumber = 2;
1134         private int end_;
1135         /// <summary>
1136         ///  Exclusive.
1137         /// </summary>
1138         public int End {
1139           get { return end_; }
1140           set {
1141             end_ = value;
1142           }
1143         }
1144 
Equals(object other)1145         public override bool Equals(object other) {
1146           return Equals(other as ReservedRange);
1147         }
1148 
Equals(ReservedRange other)1149         public bool Equals(ReservedRange other) {
1150           if (ReferenceEquals(other, null)) {
1151             return false;
1152           }
1153           if (ReferenceEquals(other, this)) {
1154             return true;
1155           }
1156           if (Start != other.Start) return false;
1157           if (End != other.End) return false;
1158           return true;
1159         }
1160 
GetHashCode()1161         public override int GetHashCode() {
1162           int hash = 1;
1163           if (Start != 0) hash ^= Start.GetHashCode();
1164           if (End != 0) hash ^= End.GetHashCode();
1165           return hash;
1166         }
1167 
ToString()1168         public override string ToString() {
1169           return pb::JsonFormatter.ToDiagnosticString(this);
1170         }
1171 
WriteTo(pb::CodedOutputStream output)1172         public void WriteTo(pb::CodedOutputStream output) {
1173           if (Start != 0) {
1174             output.WriteRawTag(8);
1175             output.WriteInt32(Start);
1176           }
1177           if (End != 0) {
1178             output.WriteRawTag(16);
1179             output.WriteInt32(End);
1180           }
1181         }
1182 
CalculateSize()1183         public int CalculateSize() {
1184           int size = 0;
1185           if (Start != 0) {
1186             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Start);
1187           }
1188           if (End != 0) {
1189             size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
1190           }
1191           return size;
1192         }
1193 
MergeFrom(ReservedRange other)1194         public void MergeFrom(ReservedRange other) {
1195           if (other == null) {
1196             return;
1197           }
1198           if (other.Start != 0) {
1199             Start = other.Start;
1200           }
1201           if (other.End != 0) {
1202             End = other.End;
1203           }
1204         }
1205 
MergeFrom(pb::CodedInputStream input)1206         public void MergeFrom(pb::CodedInputStream input) {
1207           uint tag;
1208           while ((tag = input.ReadTag()) != 0) {
1209             switch(tag) {
1210               default:
1211                 input.SkipLastField();
1212                 break;
1213               case 8: {
1214                 Start = input.ReadInt32();
1215                 break;
1216               }
1217               case 16: {
1218                 End = input.ReadInt32();
1219                 break;
1220               }
1221             }
1222           }
1223         }
1224 
1225       }
1226 
1227     }
1228     #endregion
1229 
1230   }
1231 
1232   /// <summary>
1233   ///  Describes a field within a message.
1234   /// </summary>
1235   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1236   internal sealed partial class FieldDescriptorProto : pb::IMessage<FieldDescriptorProto> {
1237     private static readonly pb::MessageParser<FieldDescriptorProto> _parser = new pb::MessageParser<FieldDescriptorProto>(() => new FieldDescriptorProto());
1238     public static pb::MessageParser<FieldDescriptorProto> Parser { get { return _parser; } }
1239 
1240     public static pbr::MessageDescriptor Descriptor {
1241       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[3]; }
1242     }
1243 
1244     pbr::MessageDescriptor pb::IMessage.Descriptor {
1245       get { return Descriptor; }
1246     }
1247 
FieldDescriptorProto()1248     public FieldDescriptorProto() {
1249       OnConstruction();
1250     }
1251 
OnConstruction()1252     partial void OnConstruction();
1253 
FieldDescriptorProto(FieldDescriptorProto other)1254     public FieldDescriptorProto(FieldDescriptorProto other) : this() {
1255       name_ = other.name_;
1256       number_ = other.number_;
1257       label_ = other.label_;
1258       type_ = other.type_;
1259       typeName_ = other.typeName_;
1260       extendee_ = other.extendee_;
1261       defaultValue_ = other.defaultValue_;
1262       oneofIndex_ = other.oneofIndex_;
1263       jsonName_ = other.jsonName_;
1264       Options = other.options_ != null ? other.Options.Clone() : null;
1265     }
1266 
Clone()1267     public FieldDescriptorProto Clone() {
1268       return new FieldDescriptorProto(this);
1269     }
1270 
1271     /// <summary>Field number for the "name" field.</summary>
1272     public const int NameFieldNumber = 1;
1273     private string name_ = "";
1274     public string Name {
1275       get { return name_; }
1276       set {
1277         name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1278       }
1279     }
1280 
1281     /// <summary>Field number for the "number" field.</summary>
1282     public const int NumberFieldNumber = 3;
1283     private int number_;
1284     public int Number {
1285       get { return number_; }
1286       set {
1287         number_ = value;
1288       }
1289     }
1290 
1291     /// <summary>Field number for the "label" field.</summary>
1292     public const int LabelFieldNumber = 4;
1293     private global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label label_ = 0;
1294     public global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label Label {
1295       get { return label_; }
1296       set {
1297         label_ = value;
1298       }
1299     }
1300 
1301     /// <summary>Field number for the "type" field.</summary>
1302     public const int TypeFieldNumber = 5;
1303     private global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type type_ = 0;
1304     /// <summary>
1305     ///  If type_name is set, this need not be set.  If both this and type_name
1306     ///  are set, this must be one of TYPE_ENUM, TYPE_MESSAGE or TYPE_GROUP.
1307     /// </summary>
1308     public global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type Type {
1309       get { return type_; }
1310       set {
1311         type_ = value;
1312       }
1313     }
1314 
1315     /// <summary>Field number for the "type_name" field.</summary>
1316     public const int TypeNameFieldNumber = 6;
1317     private string typeName_ = "";
1318     /// <summary>
1319     ///  For message and enum types, this is the name of the type.  If the name
1320     ///  starts with a '.', it is fully-qualified.  Otherwise, C++-like scoping
1321     ///  rules are used to find the type (i.e. first the nested types within this
1322     ///  message are searched, then within the parent, on up to the root
1323     ///  namespace).
1324     /// </summary>
1325     public string TypeName {
1326       get { return typeName_; }
1327       set {
1328         typeName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1329       }
1330     }
1331 
1332     /// <summary>Field number for the "extendee" field.</summary>
1333     public const int ExtendeeFieldNumber = 2;
1334     private string extendee_ = "";
1335     /// <summary>
1336     ///  For extensions, this is the name of the type being extended.  It is
1337     ///  resolved in the same manner as type_name.
1338     /// </summary>
1339     public string Extendee {
1340       get { return extendee_; }
1341       set {
1342         extendee_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1343       }
1344     }
1345 
1346     /// <summary>Field number for the "default_value" field.</summary>
1347     public const int DefaultValueFieldNumber = 7;
1348     private string defaultValue_ = "";
1349     /// <summary>
1350     ///  For numeric types, contains the original text representation of the value.
1351     ///  For booleans, "true" or "false".
1352     ///  For strings, contains the default text contents (not escaped in any way).
1353     ///  For bytes, contains the C escaped value.  All bytes >= 128 are escaped.
1354     ///  TODO(kenton):  Base-64 encode?
1355     /// </summary>
1356     public string DefaultValue {
1357       get { return defaultValue_; }
1358       set {
1359         defaultValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1360       }
1361     }
1362 
1363     /// <summary>Field number for the "oneof_index" field.</summary>
1364     public const int OneofIndexFieldNumber = 9;
1365     private int oneofIndex_;
1366     /// <summary>
1367     ///  If set, gives the index of a oneof in the containing type's oneof_decl
1368     ///  list.  This field is a member of that oneof.
1369     /// </summary>
1370     public int OneofIndex {
1371       get { return oneofIndex_; }
1372       set {
1373         oneofIndex_ = value;
1374       }
1375     }
1376 
1377     /// <summary>Field number for the "json_name" field.</summary>
1378     public const int JsonNameFieldNumber = 10;
1379     private string jsonName_ = "";
1380     /// <summary>
1381     ///  JSON name of this field. The value is set by protocol compiler. If the
1382     ///  user has set a "json_name" option on this field, that option's value
1383     ///  will be used. Otherwise, it's deduced from the field's name by converting
1384     ///  it to camelCase.
1385     /// </summary>
1386     public string JsonName {
1387       get { return jsonName_; }
1388       set {
1389         jsonName_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1390       }
1391     }
1392 
1393     /// <summary>Field number for the "options" field.</summary>
1394     public const int OptionsFieldNumber = 8;
1395     private global::Google.Protobuf.Reflection.FieldOptions options_;
1396     public global::Google.Protobuf.Reflection.FieldOptions Options {
1397       get { return options_; }
1398       set {
1399         options_ = value;
1400       }
1401     }
1402 
Equals(object other)1403     public override bool Equals(object other) {
1404       return Equals(other as FieldDescriptorProto);
1405     }
1406 
Equals(FieldDescriptorProto other)1407     public bool Equals(FieldDescriptorProto other) {
1408       if (ReferenceEquals(other, null)) {
1409         return false;
1410       }
1411       if (ReferenceEquals(other, this)) {
1412         return true;
1413       }
1414       if (Name != other.Name) return false;
1415       if (Number != other.Number) return false;
1416       if (Label != other.Label) return false;
1417       if (Type != other.Type) return false;
1418       if (TypeName != other.TypeName) return false;
1419       if (Extendee != other.Extendee) return false;
1420       if (DefaultValue != other.DefaultValue) return false;
1421       if (OneofIndex != other.OneofIndex) return false;
1422       if (JsonName != other.JsonName) return false;
1423       if (!object.Equals(Options, other.Options)) return false;
1424       return true;
1425     }
1426 
GetHashCode()1427     public override int GetHashCode() {
1428       int hash = 1;
1429       if (Name.Length != 0) hash ^= Name.GetHashCode();
1430       if (Number != 0) hash ^= Number.GetHashCode();
1431       if (Label != 0) hash ^= Label.GetHashCode();
1432       if (Type != 0) hash ^= Type.GetHashCode();
1433       if (TypeName.Length != 0) hash ^= TypeName.GetHashCode();
1434       if (Extendee.Length != 0) hash ^= Extendee.GetHashCode();
1435       if (DefaultValue.Length != 0) hash ^= DefaultValue.GetHashCode();
1436       if (OneofIndex != 0) hash ^= OneofIndex.GetHashCode();
1437       if (JsonName.Length != 0) hash ^= JsonName.GetHashCode();
1438       if (options_ != null) hash ^= Options.GetHashCode();
1439       return hash;
1440     }
1441 
ToString()1442     public override string ToString() {
1443       return pb::JsonFormatter.ToDiagnosticString(this);
1444     }
1445 
WriteTo(pb::CodedOutputStream output)1446     public void WriteTo(pb::CodedOutputStream output) {
1447       if (Name.Length != 0) {
1448         output.WriteRawTag(10);
1449         output.WriteString(Name);
1450       }
1451       if (Extendee.Length != 0) {
1452         output.WriteRawTag(18);
1453         output.WriteString(Extendee);
1454       }
1455       if (Number != 0) {
1456         output.WriteRawTag(24);
1457         output.WriteInt32(Number);
1458       }
1459       if (Label != 0) {
1460         output.WriteRawTag(32);
1461         output.WriteEnum((int) Label);
1462       }
1463       if (Type != 0) {
1464         output.WriteRawTag(40);
1465         output.WriteEnum((int) Type);
1466       }
1467       if (TypeName.Length != 0) {
1468         output.WriteRawTag(50);
1469         output.WriteString(TypeName);
1470       }
1471       if (DefaultValue.Length != 0) {
1472         output.WriteRawTag(58);
1473         output.WriteString(DefaultValue);
1474       }
1475       if (options_ != null) {
1476         output.WriteRawTag(66);
1477         output.WriteMessage(Options);
1478       }
1479       if (OneofIndex != 0) {
1480         output.WriteRawTag(72);
1481         output.WriteInt32(OneofIndex);
1482       }
1483       if (JsonName.Length != 0) {
1484         output.WriteRawTag(82);
1485         output.WriteString(JsonName);
1486       }
1487     }
1488 
CalculateSize()1489     public int CalculateSize() {
1490       int size = 0;
1491       if (Name.Length != 0) {
1492         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
1493       }
1494       if (Number != 0) {
1495         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Number);
1496       }
1497       if (Label != 0) {
1498         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Label);
1499       }
1500       if (Type != 0) {
1501         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Type);
1502       }
1503       if (TypeName.Length != 0) {
1504         size += 1 + pb::CodedOutputStream.ComputeStringSize(TypeName);
1505       }
1506       if (Extendee.Length != 0) {
1507         size += 1 + pb::CodedOutputStream.ComputeStringSize(Extendee);
1508       }
1509       if (DefaultValue.Length != 0) {
1510         size += 1 + pb::CodedOutputStream.ComputeStringSize(DefaultValue);
1511       }
1512       if (OneofIndex != 0) {
1513         size += 1 + pb::CodedOutputStream.ComputeInt32Size(OneofIndex);
1514       }
1515       if (JsonName.Length != 0) {
1516         size += 1 + pb::CodedOutputStream.ComputeStringSize(JsonName);
1517       }
1518       if (options_ != null) {
1519         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
1520       }
1521       return size;
1522     }
1523 
MergeFrom(FieldDescriptorProto other)1524     public void MergeFrom(FieldDescriptorProto other) {
1525       if (other == null) {
1526         return;
1527       }
1528       if (other.Name.Length != 0) {
1529         Name = other.Name;
1530       }
1531       if (other.Number != 0) {
1532         Number = other.Number;
1533       }
1534       if (other.Label != 0) {
1535         Label = other.Label;
1536       }
1537       if (other.Type != 0) {
1538         Type = other.Type;
1539       }
1540       if (other.TypeName.Length != 0) {
1541         TypeName = other.TypeName;
1542       }
1543       if (other.Extendee.Length != 0) {
1544         Extendee = other.Extendee;
1545       }
1546       if (other.DefaultValue.Length != 0) {
1547         DefaultValue = other.DefaultValue;
1548       }
1549       if (other.OneofIndex != 0) {
1550         OneofIndex = other.OneofIndex;
1551       }
1552       if (other.JsonName.Length != 0) {
1553         JsonName = other.JsonName;
1554       }
1555       if (other.options_ != null) {
1556         if (options_ == null) {
1557           options_ = new global::Google.Protobuf.Reflection.FieldOptions();
1558         }
1559         Options.MergeFrom(other.Options);
1560       }
1561     }
1562 
MergeFrom(pb::CodedInputStream input)1563     public void MergeFrom(pb::CodedInputStream input) {
1564       uint tag;
1565       while ((tag = input.ReadTag()) != 0) {
1566         switch(tag) {
1567           default:
1568             input.SkipLastField();
1569             break;
1570           case 10: {
1571             Name = input.ReadString();
1572             break;
1573           }
1574           case 18: {
1575             Extendee = input.ReadString();
1576             break;
1577           }
1578           case 24: {
1579             Number = input.ReadInt32();
1580             break;
1581           }
1582           case 32: {
1583             label_ = (global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Label) input.ReadEnum();
1584             break;
1585           }
1586           case 40: {
1587             type_ = (global::Google.Protobuf.Reflection.FieldDescriptorProto.Types.Type) input.ReadEnum();
1588             break;
1589           }
1590           case 50: {
1591             TypeName = input.ReadString();
1592             break;
1593           }
1594           case 58: {
1595             DefaultValue = input.ReadString();
1596             break;
1597           }
1598           case 66: {
1599             if (options_ == null) {
1600               options_ = new global::Google.Protobuf.Reflection.FieldOptions();
1601             }
1602             input.ReadMessage(options_);
1603             break;
1604           }
1605           case 72: {
1606             OneofIndex = input.ReadInt32();
1607             break;
1608           }
1609           case 82: {
1610             JsonName = input.ReadString();
1611             break;
1612           }
1613         }
1614       }
1615     }
1616 
1617     #region Nested types
1618     /// <summary>Container for nested types declared in the FieldDescriptorProto message type.</summary>
1619     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1620     public static partial class Types {
1621       internal enum Type {
1622         /// <summary>
1623         ///  0 is reserved for errors.
1624         ///  Order is weird for historical reasons.
1625         /// </summary>
1626         [pbr::OriginalName("TYPE_DOUBLE")] Double = 1,
1627         [pbr::OriginalName("TYPE_FLOAT")] Float = 2,
1628         /// <summary>
1629         ///  Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT64 if
1630         ///  negative values are likely.
1631         /// </summary>
1632         [pbr::OriginalName("TYPE_INT64")] Int64 = 3,
1633         [pbr::OriginalName("TYPE_UINT64")] Uint64 = 4,
1634         /// <summary>
1635         ///  Not ZigZag encoded.  Negative numbers take 10 bytes.  Use TYPE_SINT32 if
1636         ///  negative values are likely.
1637         /// </summary>
1638         [pbr::OriginalName("TYPE_INT32")] Int32 = 5,
1639         [pbr::OriginalName("TYPE_FIXED64")] Fixed64 = 6,
1640         [pbr::OriginalName("TYPE_FIXED32")] Fixed32 = 7,
1641         [pbr::OriginalName("TYPE_BOOL")] Bool = 8,
1642         [pbr::OriginalName("TYPE_STRING")] String = 9,
1643         /// <summary>
1644         ///  Tag-delimited aggregate.
1645         /// </summary>
1646         [pbr::OriginalName("TYPE_GROUP")] Group = 10,
1647         /// <summary>
1648         ///  Length-delimited aggregate.
1649         /// </summary>
1650         [pbr::OriginalName("TYPE_MESSAGE")] Message = 11,
1651         /// <summary>
1652         ///  New in version 2.
1653         /// </summary>
1654         [pbr::OriginalName("TYPE_BYTES")] Bytes = 12,
1655         [pbr::OriginalName("TYPE_UINT32")] Uint32 = 13,
1656         [pbr::OriginalName("TYPE_ENUM")] Enum = 14,
1657         [pbr::OriginalName("TYPE_SFIXED32")] Sfixed32 = 15,
1658         [pbr::OriginalName("TYPE_SFIXED64")] Sfixed64 = 16,
1659         /// <summary>
1660         ///  Uses ZigZag encoding.
1661         /// </summary>
1662         [pbr::OriginalName("TYPE_SINT32")] Sint32 = 17,
1663         /// <summary>
1664         ///  Uses ZigZag encoding.
1665         /// </summary>
1666         [pbr::OriginalName("TYPE_SINT64")] Sint64 = 18,
1667       }
1668 
1669       internal enum Label {
1670         /// <summary>
1671         ///  0 is reserved for errors
1672         /// </summary>
1673         [pbr::OriginalName("LABEL_OPTIONAL")] Optional = 1,
1674         [pbr::OriginalName("LABEL_REQUIRED")] Required = 2,
1675         /// <summary>
1676         ///  TODO(sanjay): Should we add LABEL_MAP?
1677         /// </summary>
1678         [pbr::OriginalName("LABEL_REPEATED")] Repeated = 3,
1679       }
1680 
1681     }
1682     #endregion
1683 
1684   }
1685 
1686   /// <summary>
1687   ///  Describes a oneof.
1688   /// </summary>
1689   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1690   internal sealed partial class OneofDescriptorProto : pb::IMessage<OneofDescriptorProto> {
1691     private static readonly pb::MessageParser<OneofDescriptorProto> _parser = new pb::MessageParser<OneofDescriptorProto>(() => new OneofDescriptorProto());
1692     public static pb::MessageParser<OneofDescriptorProto> Parser { get { return _parser; } }
1693 
1694     public static pbr::MessageDescriptor Descriptor {
1695       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[4]; }
1696     }
1697 
1698     pbr::MessageDescriptor pb::IMessage.Descriptor {
1699       get { return Descriptor; }
1700     }
1701 
OneofDescriptorProto()1702     public OneofDescriptorProto() {
1703       OnConstruction();
1704     }
1705 
OnConstruction()1706     partial void OnConstruction();
1707 
OneofDescriptorProto(OneofDescriptorProto other)1708     public OneofDescriptorProto(OneofDescriptorProto other) : this() {
1709       name_ = other.name_;
1710     }
1711 
Clone()1712     public OneofDescriptorProto Clone() {
1713       return new OneofDescriptorProto(this);
1714     }
1715 
1716     /// <summary>Field number for the "name" field.</summary>
1717     public const int NameFieldNumber = 1;
1718     private string name_ = "";
1719     public string Name {
1720       get { return name_; }
1721       set {
1722         name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1723       }
1724     }
1725 
Equals(object other)1726     public override bool Equals(object other) {
1727       return Equals(other as OneofDescriptorProto);
1728     }
1729 
Equals(OneofDescriptorProto other)1730     public bool Equals(OneofDescriptorProto other) {
1731       if (ReferenceEquals(other, null)) {
1732         return false;
1733       }
1734       if (ReferenceEquals(other, this)) {
1735         return true;
1736       }
1737       if (Name != other.Name) return false;
1738       return true;
1739     }
1740 
GetHashCode()1741     public override int GetHashCode() {
1742       int hash = 1;
1743       if (Name.Length != 0) hash ^= Name.GetHashCode();
1744       return hash;
1745     }
1746 
ToString()1747     public override string ToString() {
1748       return pb::JsonFormatter.ToDiagnosticString(this);
1749     }
1750 
WriteTo(pb::CodedOutputStream output)1751     public void WriteTo(pb::CodedOutputStream output) {
1752       if (Name.Length != 0) {
1753         output.WriteRawTag(10);
1754         output.WriteString(Name);
1755       }
1756     }
1757 
CalculateSize()1758     public int CalculateSize() {
1759       int size = 0;
1760       if (Name.Length != 0) {
1761         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
1762       }
1763       return size;
1764     }
1765 
MergeFrom(OneofDescriptorProto other)1766     public void MergeFrom(OneofDescriptorProto other) {
1767       if (other == null) {
1768         return;
1769       }
1770       if (other.Name.Length != 0) {
1771         Name = other.Name;
1772       }
1773     }
1774 
MergeFrom(pb::CodedInputStream input)1775     public void MergeFrom(pb::CodedInputStream input) {
1776       uint tag;
1777       while ((tag = input.ReadTag()) != 0) {
1778         switch(tag) {
1779           default:
1780             input.SkipLastField();
1781             break;
1782           case 10: {
1783             Name = input.ReadString();
1784             break;
1785           }
1786         }
1787       }
1788     }
1789 
1790   }
1791 
1792   /// <summary>
1793   ///  Describes an enum type.
1794   /// </summary>
1795   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1796   internal sealed partial class EnumDescriptorProto : pb::IMessage<EnumDescriptorProto> {
1797     private static readonly pb::MessageParser<EnumDescriptorProto> _parser = new pb::MessageParser<EnumDescriptorProto>(() => new EnumDescriptorProto());
1798     public static pb::MessageParser<EnumDescriptorProto> Parser { get { return _parser; } }
1799 
1800     public static pbr::MessageDescriptor Descriptor {
1801       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[5]; }
1802     }
1803 
1804     pbr::MessageDescriptor pb::IMessage.Descriptor {
1805       get { return Descriptor; }
1806     }
1807 
EnumDescriptorProto()1808     public EnumDescriptorProto() {
1809       OnConstruction();
1810     }
1811 
OnConstruction()1812     partial void OnConstruction();
1813 
EnumDescriptorProto(EnumDescriptorProto other)1814     public EnumDescriptorProto(EnumDescriptorProto other) : this() {
1815       name_ = other.name_;
1816       value_ = other.value_.Clone();
1817       Options = other.options_ != null ? other.Options.Clone() : null;
1818     }
1819 
Clone()1820     public EnumDescriptorProto Clone() {
1821       return new EnumDescriptorProto(this);
1822     }
1823 
1824     /// <summary>Field number for the "name" field.</summary>
1825     public const int NameFieldNumber = 1;
1826     private string name_ = "";
1827     public string Name {
1828       get { return name_; }
1829       set {
1830         name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1831       }
1832     }
1833 
1834     /// <summary>Field number for the "value" field.</summary>
1835     public const int ValueFieldNumber = 2;
1836     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> _repeated_value_codec
1837         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.EnumValueDescriptorProto.Parser);
1838     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> value_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto>();
1839     public pbc::RepeatedField<global::Google.Protobuf.Reflection.EnumValueDescriptorProto> Value {
1840       get { return value_; }
1841     }
1842 
1843     /// <summary>Field number for the "options" field.</summary>
1844     public const int OptionsFieldNumber = 3;
1845     private global::Google.Protobuf.Reflection.EnumOptions options_;
1846     public global::Google.Protobuf.Reflection.EnumOptions Options {
1847       get { return options_; }
1848       set {
1849         options_ = value;
1850       }
1851     }
1852 
Equals(object other)1853     public override bool Equals(object other) {
1854       return Equals(other as EnumDescriptorProto);
1855     }
1856 
Equals(EnumDescriptorProto other)1857     public bool Equals(EnumDescriptorProto other) {
1858       if (ReferenceEquals(other, null)) {
1859         return false;
1860       }
1861       if (ReferenceEquals(other, this)) {
1862         return true;
1863       }
1864       if (Name != other.Name) return false;
1865       if(!value_.Equals(other.value_)) return false;
1866       if (!object.Equals(Options, other.Options)) return false;
1867       return true;
1868     }
1869 
GetHashCode()1870     public override int GetHashCode() {
1871       int hash = 1;
1872       if (Name.Length != 0) hash ^= Name.GetHashCode();
1873       hash ^= value_.GetHashCode();
1874       if (options_ != null) hash ^= Options.GetHashCode();
1875       return hash;
1876     }
1877 
ToString()1878     public override string ToString() {
1879       return pb::JsonFormatter.ToDiagnosticString(this);
1880     }
1881 
WriteTo(pb::CodedOutputStream output)1882     public void WriteTo(pb::CodedOutputStream output) {
1883       if (Name.Length != 0) {
1884         output.WriteRawTag(10);
1885         output.WriteString(Name);
1886       }
1887       value_.WriteTo(output, _repeated_value_codec);
1888       if (options_ != null) {
1889         output.WriteRawTag(26);
1890         output.WriteMessage(Options);
1891       }
1892     }
1893 
CalculateSize()1894     public int CalculateSize() {
1895       int size = 0;
1896       if (Name.Length != 0) {
1897         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
1898       }
1899       size += value_.CalculateSize(_repeated_value_codec);
1900       if (options_ != null) {
1901         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
1902       }
1903       return size;
1904     }
1905 
MergeFrom(EnumDescriptorProto other)1906     public void MergeFrom(EnumDescriptorProto other) {
1907       if (other == null) {
1908         return;
1909       }
1910       if (other.Name.Length != 0) {
1911         Name = other.Name;
1912       }
1913       value_.Add(other.value_);
1914       if (other.options_ != null) {
1915         if (options_ == null) {
1916           options_ = new global::Google.Protobuf.Reflection.EnumOptions();
1917         }
1918         Options.MergeFrom(other.Options);
1919       }
1920     }
1921 
MergeFrom(pb::CodedInputStream input)1922     public void MergeFrom(pb::CodedInputStream input) {
1923       uint tag;
1924       while ((tag = input.ReadTag()) != 0) {
1925         switch(tag) {
1926           default:
1927             input.SkipLastField();
1928             break;
1929           case 10: {
1930             Name = input.ReadString();
1931             break;
1932           }
1933           case 18: {
1934             value_.AddEntriesFrom(input, _repeated_value_codec);
1935             break;
1936           }
1937           case 26: {
1938             if (options_ == null) {
1939               options_ = new global::Google.Protobuf.Reflection.EnumOptions();
1940             }
1941             input.ReadMessage(options_);
1942             break;
1943           }
1944         }
1945       }
1946     }
1947 
1948   }
1949 
1950   /// <summary>
1951   ///  Describes a value within an enum.
1952   /// </summary>
1953   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
1954   internal sealed partial class EnumValueDescriptorProto : pb::IMessage<EnumValueDescriptorProto> {
1955     private static readonly pb::MessageParser<EnumValueDescriptorProto> _parser = new pb::MessageParser<EnumValueDescriptorProto>(() => new EnumValueDescriptorProto());
1956     public static pb::MessageParser<EnumValueDescriptorProto> Parser { get { return _parser; } }
1957 
1958     public static pbr::MessageDescriptor Descriptor {
1959       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[6]; }
1960     }
1961 
1962     pbr::MessageDescriptor pb::IMessage.Descriptor {
1963       get { return Descriptor; }
1964     }
1965 
EnumValueDescriptorProto()1966     public EnumValueDescriptorProto() {
1967       OnConstruction();
1968     }
1969 
OnConstruction()1970     partial void OnConstruction();
1971 
EnumValueDescriptorProto(EnumValueDescriptorProto other)1972     public EnumValueDescriptorProto(EnumValueDescriptorProto other) : this() {
1973       name_ = other.name_;
1974       number_ = other.number_;
1975       Options = other.options_ != null ? other.Options.Clone() : null;
1976     }
1977 
Clone()1978     public EnumValueDescriptorProto Clone() {
1979       return new EnumValueDescriptorProto(this);
1980     }
1981 
1982     /// <summary>Field number for the "name" field.</summary>
1983     public const int NameFieldNumber = 1;
1984     private string name_ = "";
1985     public string Name {
1986       get { return name_; }
1987       set {
1988         name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
1989       }
1990     }
1991 
1992     /// <summary>Field number for the "number" field.</summary>
1993     public const int NumberFieldNumber = 2;
1994     private int number_;
1995     public int Number {
1996       get { return number_; }
1997       set {
1998         number_ = value;
1999       }
2000     }
2001 
2002     /// <summary>Field number for the "options" field.</summary>
2003     public const int OptionsFieldNumber = 3;
2004     private global::Google.Protobuf.Reflection.EnumValueOptions options_;
2005     public global::Google.Protobuf.Reflection.EnumValueOptions Options {
2006       get { return options_; }
2007       set {
2008         options_ = value;
2009       }
2010     }
2011 
Equals(object other)2012     public override bool Equals(object other) {
2013       return Equals(other as EnumValueDescriptorProto);
2014     }
2015 
Equals(EnumValueDescriptorProto other)2016     public bool Equals(EnumValueDescriptorProto other) {
2017       if (ReferenceEquals(other, null)) {
2018         return false;
2019       }
2020       if (ReferenceEquals(other, this)) {
2021         return true;
2022       }
2023       if (Name != other.Name) return false;
2024       if (Number != other.Number) return false;
2025       if (!object.Equals(Options, other.Options)) return false;
2026       return true;
2027     }
2028 
GetHashCode()2029     public override int GetHashCode() {
2030       int hash = 1;
2031       if (Name.Length != 0) hash ^= Name.GetHashCode();
2032       if (Number != 0) hash ^= Number.GetHashCode();
2033       if (options_ != null) hash ^= Options.GetHashCode();
2034       return hash;
2035     }
2036 
ToString()2037     public override string ToString() {
2038       return pb::JsonFormatter.ToDiagnosticString(this);
2039     }
2040 
WriteTo(pb::CodedOutputStream output)2041     public void WriteTo(pb::CodedOutputStream output) {
2042       if (Name.Length != 0) {
2043         output.WriteRawTag(10);
2044         output.WriteString(Name);
2045       }
2046       if (Number != 0) {
2047         output.WriteRawTag(16);
2048         output.WriteInt32(Number);
2049       }
2050       if (options_ != null) {
2051         output.WriteRawTag(26);
2052         output.WriteMessage(Options);
2053       }
2054     }
2055 
CalculateSize()2056     public int CalculateSize() {
2057       int size = 0;
2058       if (Name.Length != 0) {
2059         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
2060       }
2061       if (Number != 0) {
2062         size += 1 + pb::CodedOutputStream.ComputeInt32Size(Number);
2063       }
2064       if (options_ != null) {
2065         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
2066       }
2067       return size;
2068     }
2069 
MergeFrom(EnumValueDescriptorProto other)2070     public void MergeFrom(EnumValueDescriptorProto other) {
2071       if (other == null) {
2072         return;
2073       }
2074       if (other.Name.Length != 0) {
2075         Name = other.Name;
2076       }
2077       if (other.Number != 0) {
2078         Number = other.Number;
2079       }
2080       if (other.options_ != null) {
2081         if (options_ == null) {
2082           options_ = new global::Google.Protobuf.Reflection.EnumValueOptions();
2083         }
2084         Options.MergeFrom(other.Options);
2085       }
2086     }
2087 
MergeFrom(pb::CodedInputStream input)2088     public void MergeFrom(pb::CodedInputStream input) {
2089       uint tag;
2090       while ((tag = input.ReadTag()) != 0) {
2091         switch(tag) {
2092           default:
2093             input.SkipLastField();
2094             break;
2095           case 10: {
2096             Name = input.ReadString();
2097             break;
2098           }
2099           case 16: {
2100             Number = input.ReadInt32();
2101             break;
2102           }
2103           case 26: {
2104             if (options_ == null) {
2105               options_ = new global::Google.Protobuf.Reflection.EnumValueOptions();
2106             }
2107             input.ReadMessage(options_);
2108             break;
2109           }
2110         }
2111       }
2112     }
2113 
2114   }
2115 
2116   /// <summary>
2117   ///  Describes a service.
2118   /// </summary>
2119   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2120   internal sealed partial class ServiceDescriptorProto : pb::IMessage<ServiceDescriptorProto> {
2121     private static readonly pb::MessageParser<ServiceDescriptorProto> _parser = new pb::MessageParser<ServiceDescriptorProto>(() => new ServiceDescriptorProto());
2122     public static pb::MessageParser<ServiceDescriptorProto> Parser { get { return _parser; } }
2123 
2124     public static pbr::MessageDescriptor Descriptor {
2125       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[7]; }
2126     }
2127 
2128     pbr::MessageDescriptor pb::IMessage.Descriptor {
2129       get { return Descriptor; }
2130     }
2131 
ServiceDescriptorProto()2132     public ServiceDescriptorProto() {
2133       OnConstruction();
2134     }
2135 
OnConstruction()2136     partial void OnConstruction();
2137 
ServiceDescriptorProto(ServiceDescriptorProto other)2138     public ServiceDescriptorProto(ServiceDescriptorProto other) : this() {
2139       name_ = other.name_;
2140       method_ = other.method_.Clone();
2141       Options = other.options_ != null ? other.Options.Clone() : null;
2142     }
2143 
Clone()2144     public ServiceDescriptorProto Clone() {
2145       return new ServiceDescriptorProto(this);
2146     }
2147 
2148     /// <summary>Field number for the "name" field.</summary>
2149     public const int NameFieldNumber = 1;
2150     private string name_ = "";
2151     public string Name {
2152       get { return name_; }
2153       set {
2154         name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2155       }
2156     }
2157 
2158     /// <summary>Field number for the "method" field.</summary>
2159     public const int MethodFieldNumber = 2;
2160     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.MethodDescriptorProto> _repeated_method_codec
2161         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.MethodDescriptorProto.Parser);
2162     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto> method_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto>();
2163     public pbc::RepeatedField<global::Google.Protobuf.Reflection.MethodDescriptorProto> Method {
2164       get { return method_; }
2165     }
2166 
2167     /// <summary>Field number for the "options" field.</summary>
2168     public const int OptionsFieldNumber = 3;
2169     private global::Google.Protobuf.Reflection.ServiceOptions options_;
2170     public global::Google.Protobuf.Reflection.ServiceOptions Options {
2171       get { return options_; }
2172       set {
2173         options_ = value;
2174       }
2175     }
2176 
Equals(object other)2177     public override bool Equals(object other) {
2178       return Equals(other as ServiceDescriptorProto);
2179     }
2180 
Equals(ServiceDescriptorProto other)2181     public bool Equals(ServiceDescriptorProto other) {
2182       if (ReferenceEquals(other, null)) {
2183         return false;
2184       }
2185       if (ReferenceEquals(other, this)) {
2186         return true;
2187       }
2188       if (Name != other.Name) return false;
2189       if(!method_.Equals(other.method_)) return false;
2190       if (!object.Equals(Options, other.Options)) return false;
2191       return true;
2192     }
2193 
GetHashCode()2194     public override int GetHashCode() {
2195       int hash = 1;
2196       if (Name.Length != 0) hash ^= Name.GetHashCode();
2197       hash ^= method_.GetHashCode();
2198       if (options_ != null) hash ^= Options.GetHashCode();
2199       return hash;
2200     }
2201 
ToString()2202     public override string ToString() {
2203       return pb::JsonFormatter.ToDiagnosticString(this);
2204     }
2205 
WriteTo(pb::CodedOutputStream output)2206     public void WriteTo(pb::CodedOutputStream output) {
2207       if (Name.Length != 0) {
2208         output.WriteRawTag(10);
2209         output.WriteString(Name);
2210       }
2211       method_.WriteTo(output, _repeated_method_codec);
2212       if (options_ != null) {
2213         output.WriteRawTag(26);
2214         output.WriteMessage(Options);
2215       }
2216     }
2217 
CalculateSize()2218     public int CalculateSize() {
2219       int size = 0;
2220       if (Name.Length != 0) {
2221         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
2222       }
2223       size += method_.CalculateSize(_repeated_method_codec);
2224       if (options_ != null) {
2225         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
2226       }
2227       return size;
2228     }
2229 
MergeFrom(ServiceDescriptorProto other)2230     public void MergeFrom(ServiceDescriptorProto other) {
2231       if (other == null) {
2232         return;
2233       }
2234       if (other.Name.Length != 0) {
2235         Name = other.Name;
2236       }
2237       method_.Add(other.method_);
2238       if (other.options_ != null) {
2239         if (options_ == null) {
2240           options_ = new global::Google.Protobuf.Reflection.ServiceOptions();
2241         }
2242         Options.MergeFrom(other.Options);
2243       }
2244     }
2245 
MergeFrom(pb::CodedInputStream input)2246     public void MergeFrom(pb::CodedInputStream input) {
2247       uint tag;
2248       while ((tag = input.ReadTag()) != 0) {
2249         switch(tag) {
2250           default:
2251             input.SkipLastField();
2252             break;
2253           case 10: {
2254             Name = input.ReadString();
2255             break;
2256           }
2257           case 18: {
2258             method_.AddEntriesFrom(input, _repeated_method_codec);
2259             break;
2260           }
2261           case 26: {
2262             if (options_ == null) {
2263               options_ = new global::Google.Protobuf.Reflection.ServiceOptions();
2264             }
2265             input.ReadMessage(options_);
2266             break;
2267           }
2268         }
2269       }
2270     }
2271 
2272   }
2273 
2274   /// <summary>
2275   ///  Describes a method of a service.
2276   /// </summary>
2277   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2278   internal sealed partial class MethodDescriptorProto : pb::IMessage<MethodDescriptorProto> {
2279     private static readonly pb::MessageParser<MethodDescriptorProto> _parser = new pb::MessageParser<MethodDescriptorProto>(() => new MethodDescriptorProto());
2280     public static pb::MessageParser<MethodDescriptorProto> Parser { get { return _parser; } }
2281 
2282     public static pbr::MessageDescriptor Descriptor {
2283       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[8]; }
2284     }
2285 
2286     pbr::MessageDescriptor pb::IMessage.Descriptor {
2287       get { return Descriptor; }
2288     }
2289 
MethodDescriptorProto()2290     public MethodDescriptorProto() {
2291       OnConstruction();
2292     }
2293 
OnConstruction()2294     partial void OnConstruction();
2295 
MethodDescriptorProto(MethodDescriptorProto other)2296     public MethodDescriptorProto(MethodDescriptorProto other) : this() {
2297       name_ = other.name_;
2298       inputType_ = other.inputType_;
2299       outputType_ = other.outputType_;
2300       Options = other.options_ != null ? other.Options.Clone() : null;
2301       clientStreaming_ = other.clientStreaming_;
2302       serverStreaming_ = other.serverStreaming_;
2303     }
2304 
Clone()2305     public MethodDescriptorProto Clone() {
2306       return new MethodDescriptorProto(this);
2307     }
2308 
2309     /// <summary>Field number for the "name" field.</summary>
2310     public const int NameFieldNumber = 1;
2311     private string name_ = "";
2312     public string Name {
2313       get { return name_; }
2314       set {
2315         name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2316       }
2317     }
2318 
2319     /// <summary>Field number for the "input_type" field.</summary>
2320     public const int InputTypeFieldNumber = 2;
2321     private string inputType_ = "";
2322     /// <summary>
2323     ///  Input and output type names.  These are resolved in the same way as
2324     ///  FieldDescriptorProto.type_name, but must refer to a message type.
2325     /// </summary>
2326     public string InputType {
2327       get { return inputType_; }
2328       set {
2329         inputType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2330       }
2331     }
2332 
2333     /// <summary>Field number for the "output_type" field.</summary>
2334     public const int OutputTypeFieldNumber = 3;
2335     private string outputType_ = "";
2336     public string OutputType {
2337       get { return outputType_; }
2338       set {
2339         outputType_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2340       }
2341     }
2342 
2343     /// <summary>Field number for the "options" field.</summary>
2344     public const int OptionsFieldNumber = 4;
2345     private global::Google.Protobuf.Reflection.MethodOptions options_;
2346     public global::Google.Protobuf.Reflection.MethodOptions Options {
2347       get { return options_; }
2348       set {
2349         options_ = value;
2350       }
2351     }
2352 
2353     /// <summary>Field number for the "client_streaming" field.</summary>
2354     public const int ClientStreamingFieldNumber = 5;
2355     private bool clientStreaming_;
2356     /// <summary>
2357     ///  Identifies if client streams multiple client messages
2358     /// </summary>
2359     public bool ClientStreaming {
2360       get { return clientStreaming_; }
2361       set {
2362         clientStreaming_ = value;
2363       }
2364     }
2365 
2366     /// <summary>Field number for the "server_streaming" field.</summary>
2367     public const int ServerStreamingFieldNumber = 6;
2368     private bool serverStreaming_;
2369     /// <summary>
2370     ///  Identifies if server streams multiple server messages
2371     /// </summary>
2372     public bool ServerStreaming {
2373       get { return serverStreaming_; }
2374       set {
2375         serverStreaming_ = value;
2376       }
2377     }
2378 
Equals(object other)2379     public override bool Equals(object other) {
2380       return Equals(other as MethodDescriptorProto);
2381     }
2382 
Equals(MethodDescriptorProto other)2383     public bool Equals(MethodDescriptorProto other) {
2384       if (ReferenceEquals(other, null)) {
2385         return false;
2386       }
2387       if (ReferenceEquals(other, this)) {
2388         return true;
2389       }
2390       if (Name != other.Name) return false;
2391       if (InputType != other.InputType) return false;
2392       if (OutputType != other.OutputType) return false;
2393       if (!object.Equals(Options, other.Options)) return false;
2394       if (ClientStreaming != other.ClientStreaming) return false;
2395       if (ServerStreaming != other.ServerStreaming) return false;
2396       return true;
2397     }
2398 
GetHashCode()2399     public override int GetHashCode() {
2400       int hash = 1;
2401       if (Name.Length != 0) hash ^= Name.GetHashCode();
2402       if (InputType.Length != 0) hash ^= InputType.GetHashCode();
2403       if (OutputType.Length != 0) hash ^= OutputType.GetHashCode();
2404       if (options_ != null) hash ^= Options.GetHashCode();
2405       if (ClientStreaming != false) hash ^= ClientStreaming.GetHashCode();
2406       if (ServerStreaming != false) hash ^= ServerStreaming.GetHashCode();
2407       return hash;
2408     }
2409 
ToString()2410     public override string ToString() {
2411       return pb::JsonFormatter.ToDiagnosticString(this);
2412     }
2413 
WriteTo(pb::CodedOutputStream output)2414     public void WriteTo(pb::CodedOutputStream output) {
2415       if (Name.Length != 0) {
2416         output.WriteRawTag(10);
2417         output.WriteString(Name);
2418       }
2419       if (InputType.Length != 0) {
2420         output.WriteRawTag(18);
2421         output.WriteString(InputType);
2422       }
2423       if (OutputType.Length != 0) {
2424         output.WriteRawTag(26);
2425         output.WriteString(OutputType);
2426       }
2427       if (options_ != null) {
2428         output.WriteRawTag(34);
2429         output.WriteMessage(Options);
2430       }
2431       if (ClientStreaming != false) {
2432         output.WriteRawTag(40);
2433         output.WriteBool(ClientStreaming);
2434       }
2435       if (ServerStreaming != false) {
2436         output.WriteRawTag(48);
2437         output.WriteBool(ServerStreaming);
2438       }
2439     }
2440 
CalculateSize()2441     public int CalculateSize() {
2442       int size = 0;
2443       if (Name.Length != 0) {
2444         size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
2445       }
2446       if (InputType.Length != 0) {
2447         size += 1 + pb::CodedOutputStream.ComputeStringSize(InputType);
2448       }
2449       if (OutputType.Length != 0) {
2450         size += 1 + pb::CodedOutputStream.ComputeStringSize(OutputType);
2451       }
2452       if (options_ != null) {
2453         size += 1 + pb::CodedOutputStream.ComputeMessageSize(Options);
2454       }
2455       if (ClientStreaming != false) {
2456         size += 1 + 1;
2457       }
2458       if (ServerStreaming != false) {
2459         size += 1 + 1;
2460       }
2461       return size;
2462     }
2463 
MergeFrom(MethodDescriptorProto other)2464     public void MergeFrom(MethodDescriptorProto other) {
2465       if (other == null) {
2466         return;
2467       }
2468       if (other.Name.Length != 0) {
2469         Name = other.Name;
2470       }
2471       if (other.InputType.Length != 0) {
2472         InputType = other.InputType;
2473       }
2474       if (other.OutputType.Length != 0) {
2475         OutputType = other.OutputType;
2476       }
2477       if (other.options_ != null) {
2478         if (options_ == null) {
2479           options_ = new global::Google.Protobuf.Reflection.MethodOptions();
2480         }
2481         Options.MergeFrom(other.Options);
2482       }
2483       if (other.ClientStreaming != false) {
2484         ClientStreaming = other.ClientStreaming;
2485       }
2486       if (other.ServerStreaming != false) {
2487         ServerStreaming = other.ServerStreaming;
2488       }
2489     }
2490 
MergeFrom(pb::CodedInputStream input)2491     public void MergeFrom(pb::CodedInputStream input) {
2492       uint tag;
2493       while ((tag = input.ReadTag()) != 0) {
2494         switch(tag) {
2495           default:
2496             input.SkipLastField();
2497             break;
2498           case 10: {
2499             Name = input.ReadString();
2500             break;
2501           }
2502           case 18: {
2503             InputType = input.ReadString();
2504             break;
2505           }
2506           case 26: {
2507             OutputType = input.ReadString();
2508             break;
2509           }
2510           case 34: {
2511             if (options_ == null) {
2512               options_ = new global::Google.Protobuf.Reflection.MethodOptions();
2513             }
2514             input.ReadMessage(options_);
2515             break;
2516           }
2517           case 40: {
2518             ClientStreaming = input.ReadBool();
2519             break;
2520           }
2521           case 48: {
2522             ServerStreaming = input.ReadBool();
2523             break;
2524           }
2525         }
2526       }
2527     }
2528 
2529   }
2530 
2531   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
2532   internal sealed partial class FileOptions : pb::IMessage<FileOptions> {
2533     private static readonly pb::MessageParser<FileOptions> _parser = new pb::MessageParser<FileOptions>(() => new FileOptions());
2534     public static pb::MessageParser<FileOptions> Parser { get { return _parser; } }
2535 
2536     public static pbr::MessageDescriptor Descriptor {
2537       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[9]; }
2538     }
2539 
2540     pbr::MessageDescriptor pb::IMessage.Descriptor {
2541       get { return Descriptor; }
2542     }
2543 
FileOptions()2544     public FileOptions() {
2545       OnConstruction();
2546     }
2547 
OnConstruction()2548     partial void OnConstruction();
2549 
FileOptions(FileOptions other)2550     public FileOptions(FileOptions other) : this() {
2551       javaPackage_ = other.javaPackage_;
2552       javaOuterClassname_ = other.javaOuterClassname_;
2553       javaMultipleFiles_ = other.javaMultipleFiles_;
2554       javaGenerateEqualsAndHash_ = other.javaGenerateEqualsAndHash_;
2555       javaStringCheckUtf8_ = other.javaStringCheckUtf8_;
2556       optimizeFor_ = other.optimizeFor_;
2557       goPackage_ = other.goPackage_;
2558       ccGenericServices_ = other.ccGenericServices_;
2559       javaGenericServices_ = other.javaGenericServices_;
2560       pyGenericServices_ = other.pyGenericServices_;
2561       deprecated_ = other.deprecated_;
2562       ccEnableArenas_ = other.ccEnableArenas_;
2563       objcClassPrefix_ = other.objcClassPrefix_;
2564       csharpNamespace_ = other.csharpNamespace_;
2565       uninterpretedOption_ = other.uninterpretedOption_.Clone();
2566     }
2567 
Clone()2568     public FileOptions Clone() {
2569       return new FileOptions(this);
2570     }
2571 
2572     /// <summary>Field number for the "java_package" field.</summary>
2573     public const int JavaPackageFieldNumber = 1;
2574     private string javaPackage_ = "";
2575     /// <summary>
2576     ///  Sets the Java package where classes generated from this .proto will be
2577     ///  placed.  By default, the proto package is used, but this is often
2578     ///  inappropriate because proto packages do not normally start with backwards
2579     ///  domain names.
2580     /// </summary>
2581     public string JavaPackage {
2582       get { return javaPackage_; }
2583       set {
2584         javaPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2585       }
2586     }
2587 
2588     /// <summary>Field number for the "java_outer_classname" field.</summary>
2589     public const int JavaOuterClassnameFieldNumber = 8;
2590     private string javaOuterClassname_ = "";
2591     /// <summary>
2592     ///  If set, all the classes from the .proto file are wrapped in a single
2593     ///  outer class with the given name.  This applies to both Proto1
2594     ///  (equivalent to the old "--one_java_file" option) and Proto2 (where
2595     ///  a .proto always translates to a single class, but you may want to
2596     ///  explicitly choose the class name).
2597     /// </summary>
2598     public string JavaOuterClassname {
2599       get { return javaOuterClassname_; }
2600       set {
2601         javaOuterClassname_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2602       }
2603     }
2604 
2605     /// <summary>Field number for the "java_multiple_files" field.</summary>
2606     public const int JavaMultipleFilesFieldNumber = 10;
2607     private bool javaMultipleFiles_;
2608     /// <summary>
2609     ///  If set true, then the Java code generator will generate a separate .java
2610     ///  file for each top-level message, enum, and service defined in the .proto
2611     ///  file.  Thus, these types will *not* be nested inside the outer class
2612     ///  named by java_outer_classname.  However, the outer class will still be
2613     ///  generated to contain the file's getDescriptor() method as well as any
2614     ///  top-level extensions defined in the file.
2615     /// </summary>
2616     public bool JavaMultipleFiles {
2617       get { return javaMultipleFiles_; }
2618       set {
2619         javaMultipleFiles_ = value;
2620       }
2621     }
2622 
2623     /// <summary>Field number for the "java_generate_equals_and_hash" field.</summary>
2624     public const int JavaGenerateEqualsAndHashFieldNumber = 20;
2625     private bool javaGenerateEqualsAndHash_;
2626     /// <summary>
2627     ///  If set true, then the Java code generator will generate equals() and
2628     ///  hashCode() methods for all messages defined in the .proto file.
2629     ///  This increases generated code size, potentially substantially for large
2630     ///  protos, which may harm a memory-constrained application.
2631     ///  - In the full runtime this is a speed optimization, as the
2632     ///  AbstractMessage base class includes reflection-based implementations of
2633     ///  these methods.
2634     ///  - In the lite runtime, setting this option changes the semantics of
2635     ///  equals() and hashCode() to more closely match those of the full runtime;
2636     ///  the generated methods compute their results based on field values rather
2637     ///  than object identity. (Implementations should not assume that hashcodes
2638     ///  will be consistent across runtimes or versions of the protocol compiler.)
2639     /// </summary>
2640     public bool JavaGenerateEqualsAndHash {
2641       get { return javaGenerateEqualsAndHash_; }
2642       set {
2643         javaGenerateEqualsAndHash_ = value;
2644       }
2645     }
2646 
2647     /// <summary>Field number for the "java_string_check_utf8" field.</summary>
2648     public const int JavaStringCheckUtf8FieldNumber = 27;
2649     private bool javaStringCheckUtf8_;
2650     /// <summary>
2651     ///  If set true, then the Java2 code generator will generate code that
2652     ///  throws an exception whenever an attempt is made to assign a non-UTF-8
2653     ///  byte sequence to a string field.
2654     ///  Message reflection will do the same.
2655     ///  However, an extension field still accepts non-UTF-8 byte sequences.
2656     ///  This option has no effect on when used with the lite runtime.
2657     /// </summary>
2658     public bool JavaStringCheckUtf8 {
2659       get { return javaStringCheckUtf8_; }
2660       set {
2661         javaStringCheckUtf8_ = value;
2662       }
2663     }
2664 
2665     /// <summary>Field number for the "optimize_for" field.</summary>
2666     public const int OptimizeForFieldNumber = 9;
2667     private global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode optimizeFor_ = 0;
2668     public global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode OptimizeFor {
2669       get { return optimizeFor_; }
2670       set {
2671         optimizeFor_ = value;
2672       }
2673     }
2674 
2675     /// <summary>Field number for the "go_package" field.</summary>
2676     public const int GoPackageFieldNumber = 11;
2677     private string goPackage_ = "";
2678     /// <summary>
2679     ///  Sets the Go package where structs generated from this .proto will be
2680     ///  placed. If omitted, the Go package will be derived from the following:
2681     ///    - The basename of the package import path, if provided.
2682     ///    - Otherwise, the package statement in the .proto file, if present.
2683     ///    - Otherwise, the basename of the .proto file, without extension.
2684     /// </summary>
2685     public string GoPackage {
2686       get { return goPackage_; }
2687       set {
2688         goPackage_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2689       }
2690     }
2691 
2692     /// <summary>Field number for the "cc_generic_services" field.</summary>
2693     public const int CcGenericServicesFieldNumber = 16;
2694     private bool ccGenericServices_;
2695     /// <summary>
2696     ///  Should generic services be generated in each language?  "Generic" services
2697     ///  are not specific to any particular RPC system.  They are generated by the
2698     ///  main code generators in each language (without additional plugins).
2699     ///  Generic services were the only kind of service generation supported by
2700     ///  early versions of google.protobuf.
2701     ///
2702     ///  Generic services are now considered deprecated in favor of using plugins
2703     ///  that generate code specific to your particular RPC system.  Therefore,
2704     ///  these default to false.  Old code which depends on generic services should
2705     ///  explicitly set them to true.
2706     /// </summary>
2707     public bool CcGenericServices {
2708       get { return ccGenericServices_; }
2709       set {
2710         ccGenericServices_ = value;
2711       }
2712     }
2713 
2714     /// <summary>Field number for the "java_generic_services" field.</summary>
2715     public const int JavaGenericServicesFieldNumber = 17;
2716     private bool javaGenericServices_;
2717     public bool JavaGenericServices {
2718       get { return javaGenericServices_; }
2719       set {
2720         javaGenericServices_ = value;
2721       }
2722     }
2723 
2724     /// <summary>Field number for the "py_generic_services" field.</summary>
2725     public const int PyGenericServicesFieldNumber = 18;
2726     private bool pyGenericServices_;
2727     public bool PyGenericServices {
2728       get { return pyGenericServices_; }
2729       set {
2730         pyGenericServices_ = value;
2731       }
2732     }
2733 
2734     /// <summary>Field number for the "deprecated" field.</summary>
2735     public const int DeprecatedFieldNumber = 23;
2736     private bool deprecated_;
2737     /// <summary>
2738     ///  Is this file deprecated?
2739     ///  Depending on the target platform, this can emit Deprecated annotations
2740     ///  for everything in the file, or it will be completely ignored; in the very
2741     ///  least, this is a formalization for deprecating files.
2742     /// </summary>
2743     public bool Deprecated {
2744       get { return deprecated_; }
2745       set {
2746         deprecated_ = value;
2747       }
2748     }
2749 
2750     /// <summary>Field number for the "cc_enable_arenas" field.</summary>
2751     public const int CcEnableArenasFieldNumber = 31;
2752     private bool ccEnableArenas_;
2753     /// <summary>
2754     ///  Enables the use of arenas for the proto messages in this file. This applies
2755     ///  only to generated classes for C++.
2756     /// </summary>
2757     public bool CcEnableArenas {
2758       get { return ccEnableArenas_; }
2759       set {
2760         ccEnableArenas_ = value;
2761       }
2762     }
2763 
2764     /// <summary>Field number for the "objc_class_prefix" field.</summary>
2765     public const int ObjcClassPrefixFieldNumber = 36;
2766     private string objcClassPrefix_ = "";
2767     /// <summary>
2768     ///  Sets the objective c class prefix which is prepended to all objective c
2769     ///  generated classes from this .proto. There is no default.
2770     /// </summary>
2771     public string ObjcClassPrefix {
2772       get { return objcClassPrefix_; }
2773       set {
2774         objcClassPrefix_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2775       }
2776     }
2777 
2778     /// <summary>Field number for the "csharp_namespace" field.</summary>
2779     public const int CsharpNamespaceFieldNumber = 37;
2780     private string csharpNamespace_ = "";
2781     /// <summary>
2782     ///  Namespace for generated classes; defaults to the package.
2783     /// </summary>
2784     public string CsharpNamespace {
2785       get { return csharpNamespace_; }
2786       set {
2787         csharpNamespace_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
2788       }
2789     }
2790 
2791     /// <summary>Field number for the "uninterpreted_option" field.</summary>
2792     public const int UninterpretedOptionFieldNumber = 999;
2793     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
2794         = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
2795     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
2796     /// <summary>
2797     ///  The parser stores options it doesn't recognize here. See above.
2798     /// </summary>
2799     public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
2800       get { return uninterpretedOption_; }
2801     }
2802 
Equals(object other)2803     public override bool Equals(object other) {
2804       return Equals(other as FileOptions);
2805     }
2806 
Equals(FileOptions other)2807     public bool Equals(FileOptions other) {
2808       if (ReferenceEquals(other, null)) {
2809         return false;
2810       }
2811       if (ReferenceEquals(other, this)) {
2812         return true;
2813       }
2814       if (JavaPackage != other.JavaPackage) return false;
2815       if (JavaOuterClassname != other.JavaOuterClassname) return false;
2816       if (JavaMultipleFiles != other.JavaMultipleFiles) return false;
2817       if (JavaGenerateEqualsAndHash != other.JavaGenerateEqualsAndHash) return false;
2818       if (JavaStringCheckUtf8 != other.JavaStringCheckUtf8) return false;
2819       if (OptimizeFor != other.OptimizeFor) return false;
2820       if (GoPackage != other.GoPackage) return false;
2821       if (CcGenericServices != other.CcGenericServices) return false;
2822       if (JavaGenericServices != other.JavaGenericServices) return false;
2823       if (PyGenericServices != other.PyGenericServices) return false;
2824       if (Deprecated != other.Deprecated) return false;
2825       if (CcEnableArenas != other.CcEnableArenas) return false;
2826       if (ObjcClassPrefix != other.ObjcClassPrefix) return false;
2827       if (CsharpNamespace != other.CsharpNamespace) return false;
2828       if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
2829       return true;
2830     }
2831 
GetHashCode()2832     public override int GetHashCode() {
2833       int hash = 1;
2834       if (JavaPackage.Length != 0) hash ^= JavaPackage.GetHashCode();
2835       if (JavaOuterClassname.Length != 0) hash ^= JavaOuterClassname.GetHashCode();
2836       if (JavaMultipleFiles != false) hash ^= JavaMultipleFiles.GetHashCode();
2837       if (JavaGenerateEqualsAndHash != false) hash ^= JavaGenerateEqualsAndHash.GetHashCode();
2838       if (JavaStringCheckUtf8 != false) hash ^= JavaStringCheckUtf8.GetHashCode();
2839       if (OptimizeFor != 0) hash ^= OptimizeFor.GetHashCode();
2840       if (GoPackage.Length != 0) hash ^= GoPackage.GetHashCode();
2841       if (CcGenericServices != false) hash ^= CcGenericServices.GetHashCode();
2842       if (JavaGenericServices != false) hash ^= JavaGenericServices.GetHashCode();
2843       if (PyGenericServices != false) hash ^= PyGenericServices.GetHashCode();
2844       if (Deprecated != false) hash ^= Deprecated.GetHashCode();
2845       if (CcEnableArenas != false) hash ^= CcEnableArenas.GetHashCode();
2846       if (ObjcClassPrefix.Length != 0) hash ^= ObjcClassPrefix.GetHashCode();
2847       if (CsharpNamespace.Length != 0) hash ^= CsharpNamespace.GetHashCode();
2848       hash ^= uninterpretedOption_.GetHashCode();
2849       return hash;
2850     }
2851 
ToString()2852     public override string ToString() {
2853       return pb::JsonFormatter.ToDiagnosticString(this);
2854     }
2855 
WriteTo(pb::CodedOutputStream output)2856     public void WriteTo(pb::CodedOutputStream output) {
2857       if (JavaPackage.Length != 0) {
2858         output.WriteRawTag(10);
2859         output.WriteString(JavaPackage);
2860       }
2861       if (JavaOuterClassname.Length != 0) {
2862         output.WriteRawTag(66);
2863         output.WriteString(JavaOuterClassname);
2864       }
2865       if (OptimizeFor != 0) {
2866         output.WriteRawTag(72);
2867         output.WriteEnum((int) OptimizeFor);
2868       }
2869       if (JavaMultipleFiles != false) {
2870         output.WriteRawTag(80);
2871         output.WriteBool(JavaMultipleFiles);
2872       }
2873       if (GoPackage.Length != 0) {
2874         output.WriteRawTag(90);
2875         output.WriteString(GoPackage);
2876       }
2877       if (CcGenericServices != false) {
2878         output.WriteRawTag(128, 1);
2879         output.WriteBool(CcGenericServices);
2880       }
2881       if (JavaGenericServices != false) {
2882         output.WriteRawTag(136, 1);
2883         output.WriteBool(JavaGenericServices);
2884       }
2885       if (PyGenericServices != false) {
2886         output.WriteRawTag(144, 1);
2887         output.WriteBool(PyGenericServices);
2888       }
2889       if (JavaGenerateEqualsAndHash != false) {
2890         output.WriteRawTag(160, 1);
2891         output.WriteBool(JavaGenerateEqualsAndHash);
2892       }
2893       if (Deprecated != false) {
2894         output.WriteRawTag(184, 1);
2895         output.WriteBool(Deprecated);
2896       }
2897       if (JavaStringCheckUtf8 != false) {
2898         output.WriteRawTag(216, 1);
2899         output.WriteBool(JavaStringCheckUtf8);
2900       }
2901       if (CcEnableArenas != false) {
2902         output.WriteRawTag(248, 1);
2903         output.WriteBool(CcEnableArenas);
2904       }
2905       if (ObjcClassPrefix.Length != 0) {
2906         output.WriteRawTag(162, 2);
2907         output.WriteString(ObjcClassPrefix);
2908       }
2909       if (CsharpNamespace.Length != 0) {
2910         output.WriteRawTag(170, 2);
2911         output.WriteString(CsharpNamespace);
2912       }
2913       uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
2914     }
2915 
CalculateSize()2916     public int CalculateSize() {
2917       int size = 0;
2918       if (JavaPackage.Length != 0) {
2919         size += 1 + pb::CodedOutputStream.ComputeStringSize(JavaPackage);
2920       }
2921       if (JavaOuterClassname.Length != 0) {
2922         size += 1 + pb::CodedOutputStream.ComputeStringSize(JavaOuterClassname);
2923       }
2924       if (JavaMultipleFiles != false) {
2925         size += 1 + 1;
2926       }
2927       if (JavaGenerateEqualsAndHash != false) {
2928         size += 2 + 1;
2929       }
2930       if (JavaStringCheckUtf8 != false) {
2931         size += 2 + 1;
2932       }
2933       if (OptimizeFor != 0) {
2934         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) OptimizeFor);
2935       }
2936       if (GoPackage.Length != 0) {
2937         size += 1 + pb::CodedOutputStream.ComputeStringSize(GoPackage);
2938       }
2939       if (CcGenericServices != false) {
2940         size += 2 + 1;
2941       }
2942       if (JavaGenericServices != false) {
2943         size += 2 + 1;
2944       }
2945       if (PyGenericServices != false) {
2946         size += 2 + 1;
2947       }
2948       if (Deprecated != false) {
2949         size += 2 + 1;
2950       }
2951       if (CcEnableArenas != false) {
2952         size += 2 + 1;
2953       }
2954       if (ObjcClassPrefix.Length != 0) {
2955         size += 2 + pb::CodedOutputStream.ComputeStringSize(ObjcClassPrefix);
2956       }
2957       if (CsharpNamespace.Length != 0) {
2958         size += 2 + pb::CodedOutputStream.ComputeStringSize(CsharpNamespace);
2959       }
2960       size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
2961       return size;
2962     }
2963 
MergeFrom(FileOptions other)2964     public void MergeFrom(FileOptions other) {
2965       if (other == null) {
2966         return;
2967       }
2968       if (other.JavaPackage.Length != 0) {
2969         JavaPackage = other.JavaPackage;
2970       }
2971       if (other.JavaOuterClassname.Length != 0) {
2972         JavaOuterClassname = other.JavaOuterClassname;
2973       }
2974       if (other.JavaMultipleFiles != false) {
2975         JavaMultipleFiles = other.JavaMultipleFiles;
2976       }
2977       if (other.JavaGenerateEqualsAndHash != false) {
2978         JavaGenerateEqualsAndHash = other.JavaGenerateEqualsAndHash;
2979       }
2980       if (other.JavaStringCheckUtf8 != false) {
2981         JavaStringCheckUtf8 = other.JavaStringCheckUtf8;
2982       }
2983       if (other.OptimizeFor != 0) {
2984         OptimizeFor = other.OptimizeFor;
2985       }
2986       if (other.GoPackage.Length != 0) {
2987         GoPackage = other.GoPackage;
2988       }
2989       if (other.CcGenericServices != false) {
2990         CcGenericServices = other.CcGenericServices;
2991       }
2992       if (other.JavaGenericServices != false) {
2993         JavaGenericServices = other.JavaGenericServices;
2994       }
2995       if (other.PyGenericServices != false) {
2996         PyGenericServices = other.PyGenericServices;
2997       }
2998       if (other.Deprecated != false) {
2999         Deprecated = other.Deprecated;
3000       }
3001       if (other.CcEnableArenas != false) {
3002         CcEnableArenas = other.CcEnableArenas;
3003       }
3004       if (other.ObjcClassPrefix.Length != 0) {
3005         ObjcClassPrefix = other.ObjcClassPrefix;
3006       }
3007       if (other.CsharpNamespace.Length != 0) {
3008         CsharpNamespace = other.CsharpNamespace;
3009       }
3010       uninterpretedOption_.Add(other.uninterpretedOption_);
3011     }
3012 
MergeFrom(pb::CodedInputStream input)3013     public void MergeFrom(pb::CodedInputStream input) {
3014       uint tag;
3015       while ((tag = input.ReadTag()) != 0) {
3016         switch(tag) {
3017           default:
3018             input.SkipLastField();
3019             break;
3020           case 10: {
3021             JavaPackage = input.ReadString();
3022             break;
3023           }
3024           case 66: {
3025             JavaOuterClassname = input.ReadString();
3026             break;
3027           }
3028           case 72: {
3029             optimizeFor_ = (global::Google.Protobuf.Reflection.FileOptions.Types.OptimizeMode) input.ReadEnum();
3030             break;
3031           }
3032           case 80: {
3033             JavaMultipleFiles = input.ReadBool();
3034             break;
3035           }
3036           case 90: {
3037             GoPackage = input.ReadString();
3038             break;
3039           }
3040           case 128: {
3041             CcGenericServices = input.ReadBool();
3042             break;
3043           }
3044           case 136: {
3045             JavaGenericServices = input.ReadBool();
3046             break;
3047           }
3048           case 144: {
3049             PyGenericServices = input.ReadBool();
3050             break;
3051           }
3052           case 160: {
3053             JavaGenerateEqualsAndHash = input.ReadBool();
3054             break;
3055           }
3056           case 184: {
3057             Deprecated = input.ReadBool();
3058             break;
3059           }
3060           case 216: {
3061             JavaStringCheckUtf8 = input.ReadBool();
3062             break;
3063           }
3064           case 248: {
3065             CcEnableArenas = input.ReadBool();
3066             break;
3067           }
3068           case 290: {
3069             ObjcClassPrefix = input.ReadString();
3070             break;
3071           }
3072           case 298: {
3073             CsharpNamespace = input.ReadString();
3074             break;
3075           }
3076           case 7994: {
3077             uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
3078             break;
3079           }
3080         }
3081       }
3082     }
3083 
3084     #region Nested types
3085     /// <summary>Container for nested types declared in the FileOptions message type.</summary>
3086     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3087     public static partial class Types {
3088       /// <summary>
3089       ///  Generated classes can be optimized for speed or code size.
3090       /// </summary>
3091       internal enum OptimizeMode {
3092         /// <summary>
3093         ///  Generate complete code for parsing, serialization,
3094         /// </summary>
3095         [pbr::OriginalName("SPEED")] Speed = 1,
3096         /// <summary>
3097         ///  etc.
3098         /// </summary>
3099         [pbr::OriginalName("CODE_SIZE")] CodeSize = 2,
3100         /// <summary>
3101         ///  Generate code using MessageLite and the lite runtime.
3102         /// </summary>
3103         [pbr::OriginalName("LITE_RUNTIME")] LiteRuntime = 3,
3104       }
3105 
3106     }
3107     #endregion
3108 
3109   }
3110 
3111   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3112   internal sealed partial class MessageOptions : pb::IMessage<MessageOptions> {
3113     private static readonly pb::MessageParser<MessageOptions> _parser = new pb::MessageParser<MessageOptions>(() => new MessageOptions());
3114     public static pb::MessageParser<MessageOptions> Parser { get { return _parser; } }
3115 
3116     public static pbr::MessageDescriptor Descriptor {
3117       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[10]; }
3118     }
3119 
3120     pbr::MessageDescriptor pb::IMessage.Descriptor {
3121       get { return Descriptor; }
3122     }
3123 
MessageOptions()3124     public MessageOptions() {
3125       OnConstruction();
3126     }
3127 
OnConstruction()3128     partial void OnConstruction();
3129 
MessageOptions(MessageOptions other)3130     public MessageOptions(MessageOptions other) : this() {
3131       messageSetWireFormat_ = other.messageSetWireFormat_;
3132       noStandardDescriptorAccessor_ = other.noStandardDescriptorAccessor_;
3133       deprecated_ = other.deprecated_;
3134       mapEntry_ = other.mapEntry_;
3135       uninterpretedOption_ = other.uninterpretedOption_.Clone();
3136     }
3137 
Clone()3138     public MessageOptions Clone() {
3139       return new MessageOptions(this);
3140     }
3141 
3142     /// <summary>Field number for the "message_set_wire_format" field.</summary>
3143     public const int MessageSetWireFormatFieldNumber = 1;
3144     private bool messageSetWireFormat_;
3145     /// <summary>
3146     ///  Set true to use the old proto1 MessageSet wire format for extensions.
3147     ///  This is provided for backwards-compatibility with the MessageSet wire
3148     ///  format.  You should not use this for any other reason:  It's less
3149     ///  efficient, has fewer features, and is more complicated.
3150     ///
3151     ///  The message must be defined exactly as follows:
3152     ///    message Foo {
3153     ///      option message_set_wire_format = true;
3154     ///      extensions 4 to max;
3155     ///    }
3156     ///  Note that the message cannot have any defined fields; MessageSets only
3157     ///  have extensions.
3158     ///
3159     ///  All extensions of your type must be singular messages; e.g. they cannot
3160     ///  be int32s, enums, or repeated messages.
3161     ///
3162     ///  Because this is an option, the above two restrictions are not enforced by
3163     ///  the protocol compiler.
3164     /// </summary>
3165     public bool MessageSetWireFormat {
3166       get { return messageSetWireFormat_; }
3167       set {
3168         messageSetWireFormat_ = value;
3169       }
3170     }
3171 
3172     /// <summary>Field number for the "no_standard_descriptor_accessor" field.</summary>
3173     public const int NoStandardDescriptorAccessorFieldNumber = 2;
3174     private bool noStandardDescriptorAccessor_;
3175     /// <summary>
3176     ///  Disables the generation of the standard "descriptor()" accessor, which can
3177     ///  conflict with a field of the same name.  This is meant to make migration
3178     ///  from proto1 easier; new code should avoid fields named "descriptor".
3179     /// </summary>
3180     public bool NoStandardDescriptorAccessor {
3181       get { return noStandardDescriptorAccessor_; }
3182       set {
3183         noStandardDescriptorAccessor_ = value;
3184       }
3185     }
3186 
3187     /// <summary>Field number for the "deprecated" field.</summary>
3188     public const int DeprecatedFieldNumber = 3;
3189     private bool deprecated_;
3190     /// <summary>
3191     ///  Is this message deprecated?
3192     ///  Depending on the target platform, this can emit Deprecated annotations
3193     ///  for the message, or it will be completely ignored; in the very least,
3194     ///  this is a formalization for deprecating messages.
3195     /// </summary>
3196     public bool Deprecated {
3197       get { return deprecated_; }
3198       set {
3199         deprecated_ = value;
3200       }
3201     }
3202 
3203     /// <summary>Field number for the "map_entry" field.</summary>
3204     public const int MapEntryFieldNumber = 7;
3205     private bool mapEntry_;
3206     /// <summary>
3207     ///  Whether the message is an automatically generated map entry type for the
3208     ///  maps field.
3209     ///
3210     ///  For maps fields:
3211     ///      map&lt;KeyType, ValueType> map_field = 1;
3212     ///  The parsed descriptor looks like:
3213     ///      message MapFieldEntry {
3214     ///          option map_entry = true;
3215     ///          optional KeyType key = 1;
3216     ///          optional ValueType value = 2;
3217     ///      }
3218     ///      repeated MapFieldEntry map_field = 1;
3219     ///
3220     ///  Implementations may choose not to generate the map_entry=true message, but
3221     ///  use a native map in the target language to hold the keys and values.
3222     ///  The reflection APIs in such implementions still need to work as
3223     ///  if the field is a repeated message field.
3224     ///
3225     ///  NOTE: Do not set the option in .proto files. Always use the maps syntax
3226     ///  instead. The option should only be implicitly set by the proto compiler
3227     ///  parser.
3228     /// </summary>
3229     public bool MapEntry {
3230       get { return mapEntry_; }
3231       set {
3232         mapEntry_ = value;
3233       }
3234     }
3235 
3236     /// <summary>Field number for the "uninterpreted_option" field.</summary>
3237     public const int UninterpretedOptionFieldNumber = 999;
3238     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
3239         = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
3240     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
3241     /// <summary>
3242     ///  The parser stores options it doesn't recognize here. See above.
3243     /// </summary>
3244     public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
3245       get { return uninterpretedOption_; }
3246     }
3247 
Equals(object other)3248     public override bool Equals(object other) {
3249       return Equals(other as MessageOptions);
3250     }
3251 
Equals(MessageOptions other)3252     public bool Equals(MessageOptions other) {
3253       if (ReferenceEquals(other, null)) {
3254         return false;
3255       }
3256       if (ReferenceEquals(other, this)) {
3257         return true;
3258       }
3259       if (MessageSetWireFormat != other.MessageSetWireFormat) return false;
3260       if (NoStandardDescriptorAccessor != other.NoStandardDescriptorAccessor) return false;
3261       if (Deprecated != other.Deprecated) return false;
3262       if (MapEntry != other.MapEntry) return false;
3263       if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
3264       return true;
3265     }
3266 
GetHashCode()3267     public override int GetHashCode() {
3268       int hash = 1;
3269       if (MessageSetWireFormat != false) hash ^= MessageSetWireFormat.GetHashCode();
3270       if (NoStandardDescriptorAccessor != false) hash ^= NoStandardDescriptorAccessor.GetHashCode();
3271       if (Deprecated != false) hash ^= Deprecated.GetHashCode();
3272       if (MapEntry != false) hash ^= MapEntry.GetHashCode();
3273       hash ^= uninterpretedOption_.GetHashCode();
3274       return hash;
3275     }
3276 
ToString()3277     public override string ToString() {
3278       return pb::JsonFormatter.ToDiagnosticString(this);
3279     }
3280 
WriteTo(pb::CodedOutputStream output)3281     public void WriteTo(pb::CodedOutputStream output) {
3282       if (MessageSetWireFormat != false) {
3283         output.WriteRawTag(8);
3284         output.WriteBool(MessageSetWireFormat);
3285       }
3286       if (NoStandardDescriptorAccessor != false) {
3287         output.WriteRawTag(16);
3288         output.WriteBool(NoStandardDescriptorAccessor);
3289       }
3290       if (Deprecated != false) {
3291         output.WriteRawTag(24);
3292         output.WriteBool(Deprecated);
3293       }
3294       if (MapEntry != false) {
3295         output.WriteRawTag(56);
3296         output.WriteBool(MapEntry);
3297       }
3298       uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
3299     }
3300 
CalculateSize()3301     public int CalculateSize() {
3302       int size = 0;
3303       if (MessageSetWireFormat != false) {
3304         size += 1 + 1;
3305       }
3306       if (NoStandardDescriptorAccessor != false) {
3307         size += 1 + 1;
3308       }
3309       if (Deprecated != false) {
3310         size += 1 + 1;
3311       }
3312       if (MapEntry != false) {
3313         size += 1 + 1;
3314       }
3315       size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
3316       return size;
3317     }
3318 
MergeFrom(MessageOptions other)3319     public void MergeFrom(MessageOptions other) {
3320       if (other == null) {
3321         return;
3322       }
3323       if (other.MessageSetWireFormat != false) {
3324         MessageSetWireFormat = other.MessageSetWireFormat;
3325       }
3326       if (other.NoStandardDescriptorAccessor != false) {
3327         NoStandardDescriptorAccessor = other.NoStandardDescriptorAccessor;
3328       }
3329       if (other.Deprecated != false) {
3330         Deprecated = other.Deprecated;
3331       }
3332       if (other.MapEntry != false) {
3333         MapEntry = other.MapEntry;
3334       }
3335       uninterpretedOption_.Add(other.uninterpretedOption_);
3336     }
3337 
MergeFrom(pb::CodedInputStream input)3338     public void MergeFrom(pb::CodedInputStream input) {
3339       uint tag;
3340       while ((tag = input.ReadTag()) != 0) {
3341         switch(tag) {
3342           default:
3343             input.SkipLastField();
3344             break;
3345           case 8: {
3346             MessageSetWireFormat = input.ReadBool();
3347             break;
3348           }
3349           case 16: {
3350             NoStandardDescriptorAccessor = input.ReadBool();
3351             break;
3352           }
3353           case 24: {
3354             Deprecated = input.ReadBool();
3355             break;
3356           }
3357           case 56: {
3358             MapEntry = input.ReadBool();
3359             break;
3360           }
3361           case 7994: {
3362             uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
3363             break;
3364           }
3365         }
3366       }
3367     }
3368 
3369   }
3370 
3371   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3372   internal sealed partial class FieldOptions : pb::IMessage<FieldOptions> {
3373     private static readonly pb::MessageParser<FieldOptions> _parser = new pb::MessageParser<FieldOptions>(() => new FieldOptions());
3374     public static pb::MessageParser<FieldOptions> Parser { get { return _parser; } }
3375 
3376     public static pbr::MessageDescriptor Descriptor {
3377       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[11]; }
3378     }
3379 
3380     pbr::MessageDescriptor pb::IMessage.Descriptor {
3381       get { return Descriptor; }
3382     }
3383 
FieldOptions()3384     public FieldOptions() {
3385       OnConstruction();
3386     }
3387 
OnConstruction()3388     partial void OnConstruction();
3389 
FieldOptions(FieldOptions other)3390     public FieldOptions(FieldOptions other) : this() {
3391       ctype_ = other.ctype_;
3392       packed_ = other.packed_;
3393       jstype_ = other.jstype_;
3394       lazy_ = other.lazy_;
3395       deprecated_ = other.deprecated_;
3396       weak_ = other.weak_;
3397       uninterpretedOption_ = other.uninterpretedOption_.Clone();
3398     }
3399 
Clone()3400     public FieldOptions Clone() {
3401       return new FieldOptions(this);
3402     }
3403 
3404     /// <summary>Field number for the "ctype" field.</summary>
3405     public const int CtypeFieldNumber = 1;
3406     private global::Google.Protobuf.Reflection.FieldOptions.Types.CType ctype_ = 0;
3407     /// <summary>
3408     ///  The ctype option instructs the C++ code generator to use a different
3409     ///  representation of the field than it normally would.  See the specific
3410     ///  options below.  This option is not yet implemented in the open source
3411     ///  release -- sorry, we'll try to include it in a future version!
3412     /// </summary>
3413     public global::Google.Protobuf.Reflection.FieldOptions.Types.CType Ctype {
3414       get { return ctype_; }
3415       set {
3416         ctype_ = value;
3417       }
3418     }
3419 
3420     /// <summary>Field number for the "packed" field.</summary>
3421     public const int PackedFieldNumber = 2;
3422     private bool packed_;
3423     /// <summary>
3424     ///  The packed option can be enabled for repeated primitive fields to enable
3425     ///  a more efficient representation on the wire. Rather than repeatedly
3426     ///  writing the tag and type for each element, the entire array is encoded as
3427     ///  a single length-delimited blob. In proto3, only explicit setting it to
3428     ///  false will avoid using packed encoding.
3429     /// </summary>
3430     public bool Packed {
3431       get { return packed_; }
3432       set {
3433         packed_ = value;
3434       }
3435     }
3436 
3437     /// <summary>Field number for the "jstype" field.</summary>
3438     public const int JstypeFieldNumber = 6;
3439     private global::Google.Protobuf.Reflection.FieldOptions.Types.JSType jstype_ = 0;
3440     /// <summary>
3441     ///  The jstype option determines the JavaScript type used for values of the
3442     ///  field.  The option is permitted only for 64 bit integral and fixed types
3443     ///  (int64, uint64, sint64, fixed64, sfixed64).  By default these types are
3444     ///  represented as JavaScript strings.  This avoids loss of precision that can
3445     ///  happen when a large value is converted to a floating point JavaScript
3446     ///  numbers.  Specifying JS_NUMBER for the jstype causes the generated
3447     ///  JavaScript code to use the JavaScript "number" type instead of strings.
3448     ///  This option is an enum to permit additional types to be added,
3449     ///  e.g. goog.math.Integer.
3450     /// </summary>
3451     public global::Google.Protobuf.Reflection.FieldOptions.Types.JSType Jstype {
3452       get { return jstype_; }
3453       set {
3454         jstype_ = value;
3455       }
3456     }
3457 
3458     /// <summary>Field number for the "lazy" field.</summary>
3459     public const int LazyFieldNumber = 5;
3460     private bool lazy_;
3461     /// <summary>
3462     ///  Should this field be parsed lazily?  Lazy applies only to message-type
3463     ///  fields.  It means that when the outer message is initially parsed, the
3464     ///  inner message's contents will not be parsed but instead stored in encoded
3465     ///  form.  The inner message will actually be parsed when it is first accessed.
3466     ///
3467     ///  This is only a hint.  Implementations are free to choose whether to use
3468     ///  eager or lazy parsing regardless of the value of this option.  However,
3469     ///  setting this option true suggests that the protocol author believes that
3470     ///  using lazy parsing on this field is worth the additional bookkeeping
3471     ///  overhead typically needed to implement it.
3472     ///
3473     ///  This option does not affect the public interface of any generated code;
3474     ///  all method signatures remain the same.  Furthermore, thread-safety of the
3475     ///  interface is not affected by this option; const methods remain safe to
3476     ///  call from multiple threads concurrently, while non-const methods continue
3477     ///  to require exclusive access.
3478     ///
3479     ///  Note that implementations may choose not to check required fields within
3480     ///  a lazy sub-message.  That is, calling IsInitialized() on the outher message
3481     ///  may return true even if the inner message has missing required fields.
3482     ///  This is necessary because otherwise the inner message would have to be
3483     ///  parsed in order to perform the check, defeating the purpose of lazy
3484     ///  parsing.  An implementation which chooses not to check required fields
3485     ///  must be consistent about it.  That is, for any particular sub-message, the
3486     ///  implementation must either *always* check its required fields, or *never*
3487     ///  check its required fields, regardless of whether or not the message has
3488     ///  been parsed.
3489     /// </summary>
3490     public bool Lazy {
3491       get { return lazy_; }
3492       set {
3493         lazy_ = value;
3494       }
3495     }
3496 
3497     /// <summary>Field number for the "deprecated" field.</summary>
3498     public const int DeprecatedFieldNumber = 3;
3499     private bool deprecated_;
3500     /// <summary>
3501     ///  Is this field deprecated?
3502     ///  Depending on the target platform, this can emit Deprecated annotations
3503     ///  for accessors, or it will be completely ignored; in the very least, this
3504     ///  is a formalization for deprecating fields.
3505     /// </summary>
3506     public bool Deprecated {
3507       get { return deprecated_; }
3508       set {
3509         deprecated_ = value;
3510       }
3511     }
3512 
3513     /// <summary>Field number for the "weak" field.</summary>
3514     public const int WeakFieldNumber = 10;
3515     private bool weak_;
3516     /// <summary>
3517     ///  For Google-internal migration only. Do not use.
3518     /// </summary>
3519     public bool Weak {
3520       get { return weak_; }
3521       set {
3522         weak_ = value;
3523       }
3524     }
3525 
3526     /// <summary>Field number for the "uninterpreted_option" field.</summary>
3527     public const int UninterpretedOptionFieldNumber = 999;
3528     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
3529         = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
3530     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
3531     /// <summary>
3532     ///  The parser stores options it doesn't recognize here. See above.
3533     /// </summary>
3534     public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
3535       get { return uninterpretedOption_; }
3536     }
3537 
Equals(object other)3538     public override bool Equals(object other) {
3539       return Equals(other as FieldOptions);
3540     }
3541 
Equals(FieldOptions other)3542     public bool Equals(FieldOptions other) {
3543       if (ReferenceEquals(other, null)) {
3544         return false;
3545       }
3546       if (ReferenceEquals(other, this)) {
3547         return true;
3548       }
3549       if (Ctype != other.Ctype) return false;
3550       if (Packed != other.Packed) return false;
3551       if (Jstype != other.Jstype) return false;
3552       if (Lazy != other.Lazy) return false;
3553       if (Deprecated != other.Deprecated) return false;
3554       if (Weak != other.Weak) return false;
3555       if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
3556       return true;
3557     }
3558 
GetHashCode()3559     public override int GetHashCode() {
3560       int hash = 1;
3561       if (Ctype != 0) hash ^= Ctype.GetHashCode();
3562       if (Packed != false) hash ^= Packed.GetHashCode();
3563       if (Jstype != 0) hash ^= Jstype.GetHashCode();
3564       if (Lazy != false) hash ^= Lazy.GetHashCode();
3565       if (Deprecated != false) hash ^= Deprecated.GetHashCode();
3566       if (Weak != false) hash ^= Weak.GetHashCode();
3567       hash ^= uninterpretedOption_.GetHashCode();
3568       return hash;
3569     }
3570 
ToString()3571     public override string ToString() {
3572       return pb::JsonFormatter.ToDiagnosticString(this);
3573     }
3574 
WriteTo(pb::CodedOutputStream output)3575     public void WriteTo(pb::CodedOutputStream output) {
3576       if (Ctype != 0) {
3577         output.WriteRawTag(8);
3578         output.WriteEnum((int) Ctype);
3579       }
3580       if (Packed != false) {
3581         output.WriteRawTag(16);
3582         output.WriteBool(Packed);
3583       }
3584       if (Deprecated != false) {
3585         output.WriteRawTag(24);
3586         output.WriteBool(Deprecated);
3587       }
3588       if (Lazy != false) {
3589         output.WriteRawTag(40);
3590         output.WriteBool(Lazy);
3591       }
3592       if (Jstype != 0) {
3593         output.WriteRawTag(48);
3594         output.WriteEnum((int) Jstype);
3595       }
3596       if (Weak != false) {
3597         output.WriteRawTag(80);
3598         output.WriteBool(Weak);
3599       }
3600       uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
3601     }
3602 
CalculateSize()3603     public int CalculateSize() {
3604       int size = 0;
3605       if (Ctype != 0) {
3606         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Ctype);
3607       }
3608       if (Packed != false) {
3609         size += 1 + 1;
3610       }
3611       if (Jstype != 0) {
3612         size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) Jstype);
3613       }
3614       if (Lazy != false) {
3615         size += 1 + 1;
3616       }
3617       if (Deprecated != false) {
3618         size += 1 + 1;
3619       }
3620       if (Weak != false) {
3621         size += 1 + 1;
3622       }
3623       size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
3624       return size;
3625     }
3626 
MergeFrom(FieldOptions other)3627     public void MergeFrom(FieldOptions other) {
3628       if (other == null) {
3629         return;
3630       }
3631       if (other.Ctype != 0) {
3632         Ctype = other.Ctype;
3633       }
3634       if (other.Packed != false) {
3635         Packed = other.Packed;
3636       }
3637       if (other.Jstype != 0) {
3638         Jstype = other.Jstype;
3639       }
3640       if (other.Lazy != false) {
3641         Lazy = other.Lazy;
3642       }
3643       if (other.Deprecated != false) {
3644         Deprecated = other.Deprecated;
3645       }
3646       if (other.Weak != false) {
3647         Weak = other.Weak;
3648       }
3649       uninterpretedOption_.Add(other.uninterpretedOption_);
3650     }
3651 
MergeFrom(pb::CodedInputStream input)3652     public void MergeFrom(pb::CodedInputStream input) {
3653       uint tag;
3654       while ((tag = input.ReadTag()) != 0) {
3655         switch(tag) {
3656           default:
3657             input.SkipLastField();
3658             break;
3659           case 8: {
3660             ctype_ = (global::Google.Protobuf.Reflection.FieldOptions.Types.CType) input.ReadEnum();
3661             break;
3662           }
3663           case 16: {
3664             Packed = input.ReadBool();
3665             break;
3666           }
3667           case 24: {
3668             Deprecated = input.ReadBool();
3669             break;
3670           }
3671           case 40: {
3672             Lazy = input.ReadBool();
3673             break;
3674           }
3675           case 48: {
3676             jstype_ = (global::Google.Protobuf.Reflection.FieldOptions.Types.JSType) input.ReadEnum();
3677             break;
3678           }
3679           case 80: {
3680             Weak = input.ReadBool();
3681             break;
3682           }
3683           case 7994: {
3684             uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
3685             break;
3686           }
3687         }
3688       }
3689     }
3690 
3691     #region Nested types
3692     /// <summary>Container for nested types declared in the FieldOptions message type.</summary>
3693     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3694     public static partial class Types {
3695       internal enum CType {
3696         /// <summary>
3697         ///  Default mode.
3698         /// </summary>
3699         [pbr::OriginalName("STRING")] String = 0,
3700         [pbr::OriginalName("CORD")] Cord = 1,
3701         [pbr::OriginalName("STRING_PIECE")] StringPiece = 2,
3702       }
3703 
3704       internal enum JSType {
3705         /// <summary>
3706         ///  Use the default type.
3707         /// </summary>
3708         [pbr::OriginalName("JS_NORMAL")] JsNormal = 0,
3709         /// <summary>
3710         ///  Use JavaScript strings.
3711         /// </summary>
3712         [pbr::OriginalName("JS_STRING")] JsString = 1,
3713         /// <summary>
3714         ///  Use JavaScript numbers.
3715         /// </summary>
3716         [pbr::OriginalName("JS_NUMBER")] JsNumber = 2,
3717       }
3718 
3719     }
3720     #endregion
3721 
3722   }
3723 
3724   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3725   internal sealed partial class EnumOptions : pb::IMessage<EnumOptions> {
3726     private static readonly pb::MessageParser<EnumOptions> _parser = new pb::MessageParser<EnumOptions>(() => new EnumOptions());
3727     public static pb::MessageParser<EnumOptions> Parser { get { return _parser; } }
3728 
3729     public static pbr::MessageDescriptor Descriptor {
3730       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[12]; }
3731     }
3732 
3733     pbr::MessageDescriptor pb::IMessage.Descriptor {
3734       get { return Descriptor; }
3735     }
3736 
EnumOptions()3737     public EnumOptions() {
3738       OnConstruction();
3739     }
3740 
OnConstruction()3741     partial void OnConstruction();
3742 
EnumOptions(EnumOptions other)3743     public EnumOptions(EnumOptions other) : this() {
3744       allowAlias_ = other.allowAlias_;
3745       deprecated_ = other.deprecated_;
3746       uninterpretedOption_ = other.uninterpretedOption_.Clone();
3747     }
3748 
Clone()3749     public EnumOptions Clone() {
3750       return new EnumOptions(this);
3751     }
3752 
3753     /// <summary>Field number for the "allow_alias" field.</summary>
3754     public const int AllowAliasFieldNumber = 2;
3755     private bool allowAlias_;
3756     /// <summary>
3757     ///  Set this option to true to allow mapping different tag names to the same
3758     ///  value.
3759     /// </summary>
3760     public bool AllowAlias {
3761       get { return allowAlias_; }
3762       set {
3763         allowAlias_ = value;
3764       }
3765     }
3766 
3767     /// <summary>Field number for the "deprecated" field.</summary>
3768     public const int DeprecatedFieldNumber = 3;
3769     private bool deprecated_;
3770     /// <summary>
3771     ///  Is this enum deprecated?
3772     ///  Depending on the target platform, this can emit Deprecated annotations
3773     ///  for the enum, or it will be completely ignored; in the very least, this
3774     ///  is a formalization for deprecating enums.
3775     /// </summary>
3776     public bool Deprecated {
3777       get { return deprecated_; }
3778       set {
3779         deprecated_ = value;
3780       }
3781     }
3782 
3783     /// <summary>Field number for the "uninterpreted_option" field.</summary>
3784     public const int UninterpretedOptionFieldNumber = 999;
3785     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
3786         = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
3787     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
3788     /// <summary>
3789     ///  The parser stores options it doesn't recognize here. See above.
3790     /// </summary>
3791     public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
3792       get { return uninterpretedOption_; }
3793     }
3794 
Equals(object other)3795     public override bool Equals(object other) {
3796       return Equals(other as EnumOptions);
3797     }
3798 
Equals(EnumOptions other)3799     public bool Equals(EnumOptions other) {
3800       if (ReferenceEquals(other, null)) {
3801         return false;
3802       }
3803       if (ReferenceEquals(other, this)) {
3804         return true;
3805       }
3806       if (AllowAlias != other.AllowAlias) return false;
3807       if (Deprecated != other.Deprecated) return false;
3808       if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
3809       return true;
3810     }
3811 
GetHashCode()3812     public override int GetHashCode() {
3813       int hash = 1;
3814       if (AllowAlias != false) hash ^= AllowAlias.GetHashCode();
3815       if (Deprecated != false) hash ^= Deprecated.GetHashCode();
3816       hash ^= uninterpretedOption_.GetHashCode();
3817       return hash;
3818     }
3819 
ToString()3820     public override string ToString() {
3821       return pb::JsonFormatter.ToDiagnosticString(this);
3822     }
3823 
WriteTo(pb::CodedOutputStream output)3824     public void WriteTo(pb::CodedOutputStream output) {
3825       if (AllowAlias != false) {
3826         output.WriteRawTag(16);
3827         output.WriteBool(AllowAlias);
3828       }
3829       if (Deprecated != false) {
3830         output.WriteRawTag(24);
3831         output.WriteBool(Deprecated);
3832       }
3833       uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
3834     }
3835 
CalculateSize()3836     public int CalculateSize() {
3837       int size = 0;
3838       if (AllowAlias != false) {
3839         size += 1 + 1;
3840       }
3841       if (Deprecated != false) {
3842         size += 1 + 1;
3843       }
3844       size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
3845       return size;
3846     }
3847 
MergeFrom(EnumOptions other)3848     public void MergeFrom(EnumOptions other) {
3849       if (other == null) {
3850         return;
3851       }
3852       if (other.AllowAlias != false) {
3853         AllowAlias = other.AllowAlias;
3854       }
3855       if (other.Deprecated != false) {
3856         Deprecated = other.Deprecated;
3857       }
3858       uninterpretedOption_.Add(other.uninterpretedOption_);
3859     }
3860 
MergeFrom(pb::CodedInputStream input)3861     public void MergeFrom(pb::CodedInputStream input) {
3862       uint tag;
3863       while ((tag = input.ReadTag()) != 0) {
3864         switch(tag) {
3865           default:
3866             input.SkipLastField();
3867             break;
3868           case 16: {
3869             AllowAlias = input.ReadBool();
3870             break;
3871           }
3872           case 24: {
3873             Deprecated = input.ReadBool();
3874             break;
3875           }
3876           case 7994: {
3877             uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
3878             break;
3879           }
3880         }
3881       }
3882     }
3883 
3884   }
3885 
3886   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
3887   internal sealed partial class EnumValueOptions : pb::IMessage<EnumValueOptions> {
3888     private static readonly pb::MessageParser<EnumValueOptions> _parser = new pb::MessageParser<EnumValueOptions>(() => new EnumValueOptions());
3889     public static pb::MessageParser<EnumValueOptions> Parser { get { return _parser; } }
3890 
3891     public static pbr::MessageDescriptor Descriptor {
3892       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[13]; }
3893     }
3894 
3895     pbr::MessageDescriptor pb::IMessage.Descriptor {
3896       get { return Descriptor; }
3897     }
3898 
EnumValueOptions()3899     public EnumValueOptions() {
3900       OnConstruction();
3901     }
3902 
OnConstruction()3903     partial void OnConstruction();
3904 
EnumValueOptions(EnumValueOptions other)3905     public EnumValueOptions(EnumValueOptions other) : this() {
3906       deprecated_ = other.deprecated_;
3907       uninterpretedOption_ = other.uninterpretedOption_.Clone();
3908     }
3909 
Clone()3910     public EnumValueOptions Clone() {
3911       return new EnumValueOptions(this);
3912     }
3913 
3914     /// <summary>Field number for the "deprecated" field.</summary>
3915     public const int DeprecatedFieldNumber = 1;
3916     private bool deprecated_;
3917     /// <summary>
3918     ///  Is this enum value deprecated?
3919     ///  Depending on the target platform, this can emit Deprecated annotations
3920     ///  for the enum value, or it will be completely ignored; in the very least,
3921     ///  this is a formalization for deprecating enum values.
3922     /// </summary>
3923     public bool Deprecated {
3924       get { return deprecated_; }
3925       set {
3926         deprecated_ = value;
3927       }
3928     }
3929 
3930     /// <summary>Field number for the "uninterpreted_option" field.</summary>
3931     public const int UninterpretedOptionFieldNumber = 999;
3932     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
3933         = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
3934     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
3935     /// <summary>
3936     ///  The parser stores options it doesn't recognize here. See above.
3937     /// </summary>
3938     public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
3939       get { return uninterpretedOption_; }
3940     }
3941 
Equals(object other)3942     public override bool Equals(object other) {
3943       return Equals(other as EnumValueOptions);
3944     }
3945 
Equals(EnumValueOptions other)3946     public bool Equals(EnumValueOptions other) {
3947       if (ReferenceEquals(other, null)) {
3948         return false;
3949       }
3950       if (ReferenceEquals(other, this)) {
3951         return true;
3952       }
3953       if (Deprecated != other.Deprecated) return false;
3954       if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
3955       return true;
3956     }
3957 
GetHashCode()3958     public override int GetHashCode() {
3959       int hash = 1;
3960       if (Deprecated != false) hash ^= Deprecated.GetHashCode();
3961       hash ^= uninterpretedOption_.GetHashCode();
3962       return hash;
3963     }
3964 
ToString()3965     public override string ToString() {
3966       return pb::JsonFormatter.ToDiagnosticString(this);
3967     }
3968 
WriteTo(pb::CodedOutputStream output)3969     public void WriteTo(pb::CodedOutputStream output) {
3970       if (Deprecated != false) {
3971         output.WriteRawTag(8);
3972         output.WriteBool(Deprecated);
3973       }
3974       uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
3975     }
3976 
CalculateSize()3977     public int CalculateSize() {
3978       int size = 0;
3979       if (Deprecated != false) {
3980         size += 1 + 1;
3981       }
3982       size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
3983       return size;
3984     }
3985 
MergeFrom(EnumValueOptions other)3986     public void MergeFrom(EnumValueOptions other) {
3987       if (other == null) {
3988         return;
3989       }
3990       if (other.Deprecated != false) {
3991         Deprecated = other.Deprecated;
3992       }
3993       uninterpretedOption_.Add(other.uninterpretedOption_);
3994     }
3995 
MergeFrom(pb::CodedInputStream input)3996     public void MergeFrom(pb::CodedInputStream input) {
3997       uint tag;
3998       while ((tag = input.ReadTag()) != 0) {
3999         switch(tag) {
4000           default:
4001             input.SkipLastField();
4002             break;
4003           case 8: {
4004             Deprecated = input.ReadBool();
4005             break;
4006           }
4007           case 7994: {
4008             uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
4009             break;
4010           }
4011         }
4012       }
4013     }
4014 
4015   }
4016 
4017   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4018   internal sealed partial class ServiceOptions : pb::IMessage<ServiceOptions> {
4019     private static readonly pb::MessageParser<ServiceOptions> _parser = new pb::MessageParser<ServiceOptions>(() => new ServiceOptions());
4020     public static pb::MessageParser<ServiceOptions> Parser { get { return _parser; } }
4021 
4022     public static pbr::MessageDescriptor Descriptor {
4023       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[14]; }
4024     }
4025 
4026     pbr::MessageDescriptor pb::IMessage.Descriptor {
4027       get { return Descriptor; }
4028     }
4029 
ServiceOptions()4030     public ServiceOptions() {
4031       OnConstruction();
4032     }
4033 
OnConstruction()4034     partial void OnConstruction();
4035 
ServiceOptions(ServiceOptions other)4036     public ServiceOptions(ServiceOptions other) : this() {
4037       deprecated_ = other.deprecated_;
4038       uninterpretedOption_ = other.uninterpretedOption_.Clone();
4039     }
4040 
Clone()4041     public ServiceOptions Clone() {
4042       return new ServiceOptions(this);
4043     }
4044 
4045     /// <summary>Field number for the "deprecated" field.</summary>
4046     public const int DeprecatedFieldNumber = 33;
4047     private bool deprecated_;
4048     /// <summary>
4049     ///  Is this service deprecated?
4050     ///  Depending on the target platform, this can emit Deprecated annotations
4051     ///  for the service, or it will be completely ignored; in the very least,
4052     ///  this is a formalization for deprecating services.
4053     /// </summary>
4054     public bool Deprecated {
4055       get { return deprecated_; }
4056       set {
4057         deprecated_ = value;
4058       }
4059     }
4060 
4061     /// <summary>Field number for the "uninterpreted_option" field.</summary>
4062     public const int UninterpretedOptionFieldNumber = 999;
4063     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
4064         = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
4065     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
4066     /// <summary>
4067     ///  The parser stores options it doesn't recognize here. See above.
4068     /// </summary>
4069     public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
4070       get { return uninterpretedOption_; }
4071     }
4072 
Equals(object other)4073     public override bool Equals(object other) {
4074       return Equals(other as ServiceOptions);
4075     }
4076 
Equals(ServiceOptions other)4077     public bool Equals(ServiceOptions other) {
4078       if (ReferenceEquals(other, null)) {
4079         return false;
4080       }
4081       if (ReferenceEquals(other, this)) {
4082         return true;
4083       }
4084       if (Deprecated != other.Deprecated) return false;
4085       if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
4086       return true;
4087     }
4088 
GetHashCode()4089     public override int GetHashCode() {
4090       int hash = 1;
4091       if (Deprecated != false) hash ^= Deprecated.GetHashCode();
4092       hash ^= uninterpretedOption_.GetHashCode();
4093       return hash;
4094     }
4095 
ToString()4096     public override string ToString() {
4097       return pb::JsonFormatter.ToDiagnosticString(this);
4098     }
4099 
WriteTo(pb::CodedOutputStream output)4100     public void WriteTo(pb::CodedOutputStream output) {
4101       if (Deprecated != false) {
4102         output.WriteRawTag(136, 2);
4103         output.WriteBool(Deprecated);
4104       }
4105       uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
4106     }
4107 
CalculateSize()4108     public int CalculateSize() {
4109       int size = 0;
4110       if (Deprecated != false) {
4111         size += 2 + 1;
4112       }
4113       size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
4114       return size;
4115     }
4116 
MergeFrom(ServiceOptions other)4117     public void MergeFrom(ServiceOptions other) {
4118       if (other == null) {
4119         return;
4120       }
4121       if (other.Deprecated != false) {
4122         Deprecated = other.Deprecated;
4123       }
4124       uninterpretedOption_.Add(other.uninterpretedOption_);
4125     }
4126 
MergeFrom(pb::CodedInputStream input)4127     public void MergeFrom(pb::CodedInputStream input) {
4128       uint tag;
4129       while ((tag = input.ReadTag()) != 0) {
4130         switch(tag) {
4131           default:
4132             input.SkipLastField();
4133             break;
4134           case 264: {
4135             Deprecated = input.ReadBool();
4136             break;
4137           }
4138           case 7994: {
4139             uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
4140             break;
4141           }
4142         }
4143       }
4144     }
4145 
4146   }
4147 
4148   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4149   internal sealed partial class MethodOptions : pb::IMessage<MethodOptions> {
4150     private static readonly pb::MessageParser<MethodOptions> _parser = new pb::MessageParser<MethodOptions>(() => new MethodOptions());
4151     public static pb::MessageParser<MethodOptions> Parser { get { return _parser; } }
4152 
4153     public static pbr::MessageDescriptor Descriptor {
4154       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[15]; }
4155     }
4156 
4157     pbr::MessageDescriptor pb::IMessage.Descriptor {
4158       get { return Descriptor; }
4159     }
4160 
MethodOptions()4161     public MethodOptions() {
4162       OnConstruction();
4163     }
4164 
OnConstruction()4165     partial void OnConstruction();
4166 
MethodOptions(MethodOptions other)4167     public MethodOptions(MethodOptions other) : this() {
4168       deprecated_ = other.deprecated_;
4169       uninterpretedOption_ = other.uninterpretedOption_.Clone();
4170     }
4171 
Clone()4172     public MethodOptions Clone() {
4173       return new MethodOptions(this);
4174     }
4175 
4176     /// <summary>Field number for the "deprecated" field.</summary>
4177     public const int DeprecatedFieldNumber = 33;
4178     private bool deprecated_;
4179     /// <summary>
4180     ///  Is this method deprecated?
4181     ///  Depending on the target platform, this can emit Deprecated annotations
4182     ///  for the method, or it will be completely ignored; in the very least,
4183     ///  this is a formalization for deprecating methods.
4184     /// </summary>
4185     public bool Deprecated {
4186       get { return deprecated_; }
4187       set {
4188         deprecated_ = value;
4189       }
4190     }
4191 
4192     /// <summary>Field number for the "uninterpreted_option" field.</summary>
4193     public const int UninterpretedOptionFieldNumber = 999;
4194     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption> _repeated_uninterpretedOption_codec
4195         = pb::FieldCodec.ForMessage(7994, global::Google.Protobuf.Reflection.UninterpretedOption.Parser);
4196     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> uninterpretedOption_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption>();
4197     /// <summary>
4198     ///  The parser stores options it doesn't recognize here. See above.
4199     /// </summary>
4200     public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption> UninterpretedOption {
4201       get { return uninterpretedOption_; }
4202     }
4203 
Equals(object other)4204     public override bool Equals(object other) {
4205       return Equals(other as MethodOptions);
4206     }
4207 
Equals(MethodOptions other)4208     public bool Equals(MethodOptions other) {
4209       if (ReferenceEquals(other, null)) {
4210         return false;
4211       }
4212       if (ReferenceEquals(other, this)) {
4213         return true;
4214       }
4215       if (Deprecated != other.Deprecated) return false;
4216       if(!uninterpretedOption_.Equals(other.uninterpretedOption_)) return false;
4217       return true;
4218     }
4219 
GetHashCode()4220     public override int GetHashCode() {
4221       int hash = 1;
4222       if (Deprecated != false) hash ^= Deprecated.GetHashCode();
4223       hash ^= uninterpretedOption_.GetHashCode();
4224       return hash;
4225     }
4226 
ToString()4227     public override string ToString() {
4228       return pb::JsonFormatter.ToDiagnosticString(this);
4229     }
4230 
WriteTo(pb::CodedOutputStream output)4231     public void WriteTo(pb::CodedOutputStream output) {
4232       if (Deprecated != false) {
4233         output.WriteRawTag(136, 2);
4234         output.WriteBool(Deprecated);
4235       }
4236       uninterpretedOption_.WriteTo(output, _repeated_uninterpretedOption_codec);
4237     }
4238 
CalculateSize()4239     public int CalculateSize() {
4240       int size = 0;
4241       if (Deprecated != false) {
4242         size += 2 + 1;
4243       }
4244       size += uninterpretedOption_.CalculateSize(_repeated_uninterpretedOption_codec);
4245       return size;
4246     }
4247 
MergeFrom(MethodOptions other)4248     public void MergeFrom(MethodOptions other) {
4249       if (other == null) {
4250         return;
4251       }
4252       if (other.Deprecated != false) {
4253         Deprecated = other.Deprecated;
4254       }
4255       uninterpretedOption_.Add(other.uninterpretedOption_);
4256     }
4257 
MergeFrom(pb::CodedInputStream input)4258     public void MergeFrom(pb::CodedInputStream input) {
4259       uint tag;
4260       while ((tag = input.ReadTag()) != 0) {
4261         switch(tag) {
4262           default:
4263             input.SkipLastField();
4264             break;
4265           case 264: {
4266             Deprecated = input.ReadBool();
4267             break;
4268           }
4269           case 7994: {
4270             uninterpretedOption_.AddEntriesFrom(input, _repeated_uninterpretedOption_codec);
4271             break;
4272           }
4273         }
4274       }
4275     }
4276 
4277   }
4278 
4279   /// <summary>
4280   ///  A message representing a option the parser does not recognize. This only
4281   ///  appears in options protos created by the compiler::Parser class.
4282   ///  DescriptorPool resolves these when building Descriptor objects. Therefore,
4283   ///  options protos in descriptor objects (e.g. returned by Descriptor::options(),
4284   ///  or produced by Descriptor::CopyTo()) will never have UninterpretedOptions
4285   ///  in them.
4286   /// </summary>
4287   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4288   internal sealed partial class UninterpretedOption : pb::IMessage<UninterpretedOption> {
4289     private static readonly pb::MessageParser<UninterpretedOption> _parser = new pb::MessageParser<UninterpretedOption>(() => new UninterpretedOption());
4290     public static pb::MessageParser<UninterpretedOption> Parser { get { return _parser; } }
4291 
4292     public static pbr::MessageDescriptor Descriptor {
4293       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[16]; }
4294     }
4295 
4296     pbr::MessageDescriptor pb::IMessage.Descriptor {
4297       get { return Descriptor; }
4298     }
4299 
UninterpretedOption()4300     public UninterpretedOption() {
4301       OnConstruction();
4302     }
4303 
OnConstruction()4304     partial void OnConstruction();
4305 
UninterpretedOption(UninterpretedOption other)4306     public UninterpretedOption(UninterpretedOption other) : this() {
4307       name_ = other.name_.Clone();
4308       identifierValue_ = other.identifierValue_;
4309       positiveIntValue_ = other.positiveIntValue_;
4310       negativeIntValue_ = other.negativeIntValue_;
4311       doubleValue_ = other.doubleValue_;
4312       stringValue_ = other.stringValue_;
4313       aggregateValue_ = other.aggregateValue_;
4314     }
4315 
Clone()4316     public UninterpretedOption Clone() {
4317       return new UninterpretedOption(this);
4318     }
4319 
4320     /// <summary>Field number for the "name" field.</summary>
4321     public const int NameFieldNumber = 2;
4322     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> _repeated_name_codec
4323         = pb::FieldCodec.ForMessage(18, global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart.Parser);
4324     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> name_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart>();
4325     public pbc::RepeatedField<global::Google.Protobuf.Reflection.UninterpretedOption.Types.NamePart> Name {
4326       get { return name_; }
4327     }
4328 
4329     /// <summary>Field number for the "identifier_value" field.</summary>
4330     public const int IdentifierValueFieldNumber = 3;
4331     private string identifierValue_ = "";
4332     /// <summary>
4333     ///  The value of the uninterpreted option, in whatever type the tokenizer
4334     ///  identified it as during parsing. Exactly one of these should be set.
4335     /// </summary>
4336     public string IdentifierValue {
4337       get { return identifierValue_; }
4338       set {
4339         identifierValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4340       }
4341     }
4342 
4343     /// <summary>Field number for the "positive_int_value" field.</summary>
4344     public const int PositiveIntValueFieldNumber = 4;
4345     private ulong positiveIntValue_;
4346     public ulong PositiveIntValue {
4347       get { return positiveIntValue_; }
4348       set {
4349         positiveIntValue_ = value;
4350       }
4351     }
4352 
4353     /// <summary>Field number for the "negative_int_value" field.</summary>
4354     public const int NegativeIntValueFieldNumber = 5;
4355     private long negativeIntValue_;
4356     public long NegativeIntValue {
4357       get { return negativeIntValue_; }
4358       set {
4359         negativeIntValue_ = value;
4360       }
4361     }
4362 
4363     /// <summary>Field number for the "double_value" field.</summary>
4364     public const int DoubleValueFieldNumber = 6;
4365     private double doubleValue_;
4366     public double DoubleValue {
4367       get { return doubleValue_; }
4368       set {
4369         doubleValue_ = value;
4370       }
4371     }
4372 
4373     /// <summary>Field number for the "string_value" field.</summary>
4374     public const int StringValueFieldNumber = 7;
4375     private pb::ByteString stringValue_ = pb::ByteString.Empty;
4376     public pb::ByteString StringValue {
4377       get { return stringValue_; }
4378       set {
4379         stringValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4380       }
4381     }
4382 
4383     /// <summary>Field number for the "aggregate_value" field.</summary>
4384     public const int AggregateValueFieldNumber = 8;
4385     private string aggregateValue_ = "";
4386     public string AggregateValue {
4387       get { return aggregateValue_; }
4388       set {
4389         aggregateValue_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4390       }
4391     }
4392 
Equals(object other)4393     public override bool Equals(object other) {
4394       return Equals(other as UninterpretedOption);
4395     }
4396 
Equals(UninterpretedOption other)4397     public bool Equals(UninterpretedOption other) {
4398       if (ReferenceEquals(other, null)) {
4399         return false;
4400       }
4401       if (ReferenceEquals(other, this)) {
4402         return true;
4403       }
4404       if(!name_.Equals(other.name_)) return false;
4405       if (IdentifierValue != other.IdentifierValue) return false;
4406       if (PositiveIntValue != other.PositiveIntValue) return false;
4407       if (NegativeIntValue != other.NegativeIntValue) return false;
4408       if (DoubleValue != other.DoubleValue) return false;
4409       if (StringValue != other.StringValue) return false;
4410       if (AggregateValue != other.AggregateValue) return false;
4411       return true;
4412     }
4413 
GetHashCode()4414     public override int GetHashCode() {
4415       int hash = 1;
4416       hash ^= name_.GetHashCode();
4417       if (IdentifierValue.Length != 0) hash ^= IdentifierValue.GetHashCode();
4418       if (PositiveIntValue != 0UL) hash ^= PositiveIntValue.GetHashCode();
4419       if (NegativeIntValue != 0L) hash ^= NegativeIntValue.GetHashCode();
4420       if (DoubleValue != 0D) hash ^= DoubleValue.GetHashCode();
4421       if (StringValue.Length != 0) hash ^= StringValue.GetHashCode();
4422       if (AggregateValue.Length != 0) hash ^= AggregateValue.GetHashCode();
4423       return hash;
4424     }
4425 
ToString()4426     public override string ToString() {
4427       return pb::JsonFormatter.ToDiagnosticString(this);
4428     }
4429 
WriteTo(pb::CodedOutputStream output)4430     public void WriteTo(pb::CodedOutputStream output) {
4431       name_.WriteTo(output, _repeated_name_codec);
4432       if (IdentifierValue.Length != 0) {
4433         output.WriteRawTag(26);
4434         output.WriteString(IdentifierValue);
4435       }
4436       if (PositiveIntValue != 0UL) {
4437         output.WriteRawTag(32);
4438         output.WriteUInt64(PositiveIntValue);
4439       }
4440       if (NegativeIntValue != 0L) {
4441         output.WriteRawTag(40);
4442         output.WriteInt64(NegativeIntValue);
4443       }
4444       if (DoubleValue != 0D) {
4445         output.WriteRawTag(49);
4446         output.WriteDouble(DoubleValue);
4447       }
4448       if (StringValue.Length != 0) {
4449         output.WriteRawTag(58);
4450         output.WriteBytes(StringValue);
4451       }
4452       if (AggregateValue.Length != 0) {
4453         output.WriteRawTag(66);
4454         output.WriteString(AggregateValue);
4455       }
4456     }
4457 
CalculateSize()4458     public int CalculateSize() {
4459       int size = 0;
4460       size += name_.CalculateSize(_repeated_name_codec);
4461       if (IdentifierValue.Length != 0) {
4462         size += 1 + pb::CodedOutputStream.ComputeStringSize(IdentifierValue);
4463       }
4464       if (PositiveIntValue != 0UL) {
4465         size += 1 + pb::CodedOutputStream.ComputeUInt64Size(PositiveIntValue);
4466       }
4467       if (NegativeIntValue != 0L) {
4468         size += 1 + pb::CodedOutputStream.ComputeInt64Size(NegativeIntValue);
4469       }
4470       if (DoubleValue != 0D) {
4471         size += 1 + 8;
4472       }
4473       if (StringValue.Length != 0) {
4474         size += 1 + pb::CodedOutputStream.ComputeBytesSize(StringValue);
4475       }
4476       if (AggregateValue.Length != 0) {
4477         size += 1 + pb::CodedOutputStream.ComputeStringSize(AggregateValue);
4478       }
4479       return size;
4480     }
4481 
MergeFrom(UninterpretedOption other)4482     public void MergeFrom(UninterpretedOption other) {
4483       if (other == null) {
4484         return;
4485       }
4486       name_.Add(other.name_);
4487       if (other.IdentifierValue.Length != 0) {
4488         IdentifierValue = other.IdentifierValue;
4489       }
4490       if (other.PositiveIntValue != 0UL) {
4491         PositiveIntValue = other.PositiveIntValue;
4492       }
4493       if (other.NegativeIntValue != 0L) {
4494         NegativeIntValue = other.NegativeIntValue;
4495       }
4496       if (other.DoubleValue != 0D) {
4497         DoubleValue = other.DoubleValue;
4498       }
4499       if (other.StringValue.Length != 0) {
4500         StringValue = other.StringValue;
4501       }
4502       if (other.AggregateValue.Length != 0) {
4503         AggregateValue = other.AggregateValue;
4504       }
4505     }
4506 
MergeFrom(pb::CodedInputStream input)4507     public void MergeFrom(pb::CodedInputStream input) {
4508       uint tag;
4509       while ((tag = input.ReadTag()) != 0) {
4510         switch(tag) {
4511           default:
4512             input.SkipLastField();
4513             break;
4514           case 18: {
4515             name_.AddEntriesFrom(input, _repeated_name_codec);
4516             break;
4517           }
4518           case 26: {
4519             IdentifierValue = input.ReadString();
4520             break;
4521           }
4522           case 32: {
4523             PositiveIntValue = input.ReadUInt64();
4524             break;
4525           }
4526           case 40: {
4527             NegativeIntValue = input.ReadInt64();
4528             break;
4529           }
4530           case 49: {
4531             DoubleValue = input.ReadDouble();
4532             break;
4533           }
4534           case 58: {
4535             StringValue = input.ReadBytes();
4536             break;
4537           }
4538           case 66: {
4539             AggregateValue = input.ReadString();
4540             break;
4541           }
4542         }
4543       }
4544     }
4545 
4546     #region Nested types
4547     /// <summary>Container for nested types declared in the UninterpretedOption message type.</summary>
4548     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4549     public static partial class Types {
4550       /// <summary>
4551       ///  The name of the uninterpreted option.  Each string represents a segment in
4552       ///  a dot-separated name.  is_extension is true iff a segment represents an
4553       ///  extension (denoted with parentheses in options specs in .proto files).
4554       ///  E.g.,{ ["foo", false], ["bar.baz", true], ["qux", false] } represents
4555       ///  "foo.(bar.baz).qux".
4556       /// </summary>
4557       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4558       internal sealed partial class NamePart : pb::IMessage<NamePart> {
4559         private static readonly pb::MessageParser<NamePart> _parser = new pb::MessageParser<NamePart>(() => new NamePart());
4560         public static pb::MessageParser<NamePart> Parser { get { return _parser; } }
4561 
4562         public static pbr::MessageDescriptor Descriptor {
4563           get { return global::Google.Protobuf.Reflection.UninterpretedOption.Descriptor.NestedTypes[0]; }
4564         }
4565 
4566         pbr::MessageDescriptor pb::IMessage.Descriptor {
4567           get { return Descriptor; }
4568         }
4569 
NamePart()4570         public NamePart() {
4571           OnConstruction();
4572         }
4573 
OnConstruction()4574         partial void OnConstruction();
4575 
NamePart(NamePart other)4576         public NamePart(NamePart other) : this() {
4577           namePart_ = other.namePart_;
4578           isExtension_ = other.isExtension_;
4579         }
4580 
Clone()4581         public NamePart Clone() {
4582           return new NamePart(this);
4583         }
4584 
4585         /// <summary>Field number for the "name_part" field.</summary>
4586         public const int NamePart_FieldNumber = 1;
4587         private string namePart_ = "";
4588         public string NamePart_ {
4589           get { return namePart_; }
4590           set {
4591             namePart_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4592           }
4593         }
4594 
4595         /// <summary>Field number for the "is_extension" field.</summary>
4596         public const int IsExtensionFieldNumber = 2;
4597         private bool isExtension_;
4598         public bool IsExtension {
4599           get { return isExtension_; }
4600           set {
4601             isExtension_ = value;
4602           }
4603         }
4604 
Equals(object other)4605         public override bool Equals(object other) {
4606           return Equals(other as NamePart);
4607         }
4608 
Equals(NamePart other)4609         public bool Equals(NamePart other) {
4610           if (ReferenceEquals(other, null)) {
4611             return false;
4612           }
4613           if (ReferenceEquals(other, this)) {
4614             return true;
4615           }
4616           if (NamePart_ != other.NamePart_) return false;
4617           if (IsExtension != other.IsExtension) return false;
4618           return true;
4619         }
4620 
GetHashCode()4621         public override int GetHashCode() {
4622           int hash = 1;
4623           if (NamePart_.Length != 0) hash ^= NamePart_.GetHashCode();
4624           if (IsExtension != false) hash ^= IsExtension.GetHashCode();
4625           return hash;
4626         }
4627 
ToString()4628         public override string ToString() {
4629           return pb::JsonFormatter.ToDiagnosticString(this);
4630         }
4631 
WriteTo(pb::CodedOutputStream output)4632         public void WriteTo(pb::CodedOutputStream output) {
4633           if (NamePart_.Length != 0) {
4634             output.WriteRawTag(10);
4635             output.WriteString(NamePart_);
4636           }
4637           if (IsExtension != false) {
4638             output.WriteRawTag(16);
4639             output.WriteBool(IsExtension);
4640           }
4641         }
4642 
CalculateSize()4643         public int CalculateSize() {
4644           int size = 0;
4645           if (NamePart_.Length != 0) {
4646             size += 1 + pb::CodedOutputStream.ComputeStringSize(NamePart_);
4647           }
4648           if (IsExtension != false) {
4649             size += 1 + 1;
4650           }
4651           return size;
4652         }
4653 
MergeFrom(NamePart other)4654         public void MergeFrom(NamePart other) {
4655           if (other == null) {
4656             return;
4657           }
4658           if (other.NamePart_.Length != 0) {
4659             NamePart_ = other.NamePart_;
4660           }
4661           if (other.IsExtension != false) {
4662             IsExtension = other.IsExtension;
4663           }
4664         }
4665 
MergeFrom(pb::CodedInputStream input)4666         public void MergeFrom(pb::CodedInputStream input) {
4667           uint tag;
4668           while ((tag = input.ReadTag()) != 0) {
4669             switch(tag) {
4670               default:
4671                 input.SkipLastField();
4672                 break;
4673               case 10: {
4674                 NamePart_ = input.ReadString();
4675                 break;
4676               }
4677               case 16: {
4678                 IsExtension = input.ReadBool();
4679                 break;
4680               }
4681             }
4682           }
4683         }
4684 
4685       }
4686 
4687     }
4688     #endregion
4689 
4690   }
4691 
4692   /// <summary>
4693   ///  Encapsulates information about the original source file from which a
4694   ///  FileDescriptorProto was generated.
4695   /// </summary>
4696   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4697   internal sealed partial class SourceCodeInfo : pb::IMessage<SourceCodeInfo> {
4698     private static readonly pb::MessageParser<SourceCodeInfo> _parser = new pb::MessageParser<SourceCodeInfo>(() => new SourceCodeInfo());
4699     public static pb::MessageParser<SourceCodeInfo> Parser { get { return _parser; } }
4700 
4701     public static pbr::MessageDescriptor Descriptor {
4702       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[17]; }
4703     }
4704 
4705     pbr::MessageDescriptor pb::IMessage.Descriptor {
4706       get { return Descriptor; }
4707     }
4708 
SourceCodeInfo()4709     public SourceCodeInfo() {
4710       OnConstruction();
4711     }
4712 
OnConstruction()4713     partial void OnConstruction();
4714 
SourceCodeInfo(SourceCodeInfo other)4715     public SourceCodeInfo(SourceCodeInfo other) : this() {
4716       location_ = other.location_.Clone();
4717     }
4718 
Clone()4719     public SourceCodeInfo Clone() {
4720       return new SourceCodeInfo(this);
4721     }
4722 
4723     /// <summary>Field number for the "location" field.</summary>
4724     public const int LocationFieldNumber = 1;
4725     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> _repeated_location_codec
4726         = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location.Parser);
4727     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> location_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location>();
4728     /// <summary>
4729     ///  A Location identifies a piece of source code in a .proto file which
4730     ///  corresponds to a particular definition.  This information is intended
4731     ///  to be useful to IDEs, code indexers, documentation generators, and similar
4732     ///  tools.
4733     ///
4734     ///  For example, say we have a file like:
4735     ///    message Foo {
4736     ///      optional string foo = 1;
4737     ///    }
4738     ///  Let's look at just the field definition:
4739     ///    optional string foo = 1;
4740     ///    ^       ^^     ^^  ^  ^^^
4741     ///    a       bc     de  f  ghi
4742     ///  We have the following locations:
4743     ///    span   path               represents
4744     ///    [a,i)  [ 4, 0, 2, 0 ]     The whole field definition.
4745     ///    [a,b)  [ 4, 0, 2, 0, 4 ]  The label (optional).
4746     ///    [c,d)  [ 4, 0, 2, 0, 5 ]  The type (string).
4747     ///    [e,f)  [ 4, 0, 2, 0, 1 ]  The name (foo).
4748     ///    [g,h)  [ 4, 0, 2, 0, 3 ]  The number (1).
4749     ///
4750     ///  Notes:
4751     ///  - A location may refer to a repeated field itself (i.e. not to any
4752     ///    particular index within it).  This is used whenever a set of elements are
4753     ///    logically enclosed in a single code segment.  For example, an entire
4754     ///    extend block (possibly containing multiple extension definitions) will
4755     ///    have an outer location whose path refers to the "extensions" repeated
4756     ///    field without an index.
4757     ///  - Multiple locations may have the same path.  This happens when a single
4758     ///    logical declaration is spread out across multiple places.  The most
4759     ///    obvious example is the "extend" block again -- there may be multiple
4760     ///    extend blocks in the same scope, each of which will have the same path.
4761     ///  - A location's span is not always a subset of its parent's span.  For
4762     ///    example, the "extendee" of an extension declaration appears at the
4763     ///    beginning of the "extend" block and is shared by all extensions within
4764     ///    the block.
4765     ///  - Just because a location's span is a subset of some other location's span
4766     ///    does not mean that it is a descendent.  For example, a "group" defines
4767     ///    both a type and a field in a single declaration.  Thus, the locations
4768     ///    corresponding to the type and field and their components will overlap.
4769     ///  - Code which tries to interpret locations should probably be designed to
4770     ///    ignore those that it doesn't understand, as more types of locations could
4771     ///    be recorded in the future.
4772     /// </summary>
4773     public pbc::RepeatedField<global::Google.Protobuf.Reflection.SourceCodeInfo.Types.Location> Location {
4774       get { return location_; }
4775     }
4776 
Equals(object other)4777     public override bool Equals(object other) {
4778       return Equals(other as SourceCodeInfo);
4779     }
4780 
Equals(SourceCodeInfo other)4781     public bool Equals(SourceCodeInfo other) {
4782       if (ReferenceEquals(other, null)) {
4783         return false;
4784       }
4785       if (ReferenceEquals(other, this)) {
4786         return true;
4787       }
4788       if(!location_.Equals(other.location_)) return false;
4789       return true;
4790     }
4791 
GetHashCode()4792     public override int GetHashCode() {
4793       int hash = 1;
4794       hash ^= location_.GetHashCode();
4795       return hash;
4796     }
4797 
ToString()4798     public override string ToString() {
4799       return pb::JsonFormatter.ToDiagnosticString(this);
4800     }
4801 
WriteTo(pb::CodedOutputStream output)4802     public void WriteTo(pb::CodedOutputStream output) {
4803       location_.WriteTo(output, _repeated_location_codec);
4804     }
4805 
CalculateSize()4806     public int CalculateSize() {
4807       int size = 0;
4808       size += location_.CalculateSize(_repeated_location_codec);
4809       return size;
4810     }
4811 
MergeFrom(SourceCodeInfo other)4812     public void MergeFrom(SourceCodeInfo other) {
4813       if (other == null) {
4814         return;
4815       }
4816       location_.Add(other.location_);
4817     }
4818 
MergeFrom(pb::CodedInputStream input)4819     public void MergeFrom(pb::CodedInputStream input) {
4820       uint tag;
4821       while ((tag = input.ReadTag()) != 0) {
4822         switch(tag) {
4823           default:
4824             input.SkipLastField();
4825             break;
4826           case 10: {
4827             location_.AddEntriesFrom(input, _repeated_location_codec);
4828             break;
4829           }
4830         }
4831       }
4832     }
4833 
4834     #region Nested types
4835     /// <summary>Container for nested types declared in the SourceCodeInfo message type.</summary>
4836     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4837     public static partial class Types {
4838       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
4839       internal sealed partial class Location : pb::IMessage<Location> {
4840         private static readonly pb::MessageParser<Location> _parser = new pb::MessageParser<Location>(() => new Location());
4841         public static pb::MessageParser<Location> Parser { get { return _parser; } }
4842 
4843         public static pbr::MessageDescriptor Descriptor {
4844           get { return global::Google.Protobuf.Reflection.SourceCodeInfo.Descriptor.NestedTypes[0]; }
4845         }
4846 
4847         pbr::MessageDescriptor pb::IMessage.Descriptor {
4848           get { return Descriptor; }
4849         }
4850 
Location()4851         public Location() {
4852           OnConstruction();
4853         }
4854 
OnConstruction()4855         partial void OnConstruction();
4856 
Location(Location other)4857         public Location(Location other) : this() {
4858           path_ = other.path_.Clone();
4859           span_ = other.span_.Clone();
4860           leadingComments_ = other.leadingComments_;
4861           trailingComments_ = other.trailingComments_;
4862           leadingDetachedComments_ = other.leadingDetachedComments_.Clone();
4863         }
4864 
Clone()4865         public Location Clone() {
4866           return new Location(this);
4867         }
4868 
4869         /// <summary>Field number for the "path" field.</summary>
4870         public const int PathFieldNumber = 1;
4871         private static readonly pb::FieldCodec<int> _repeated_path_codec
4872             = pb::FieldCodec.ForInt32(10);
4873         private readonly pbc::RepeatedField<int> path_ = new pbc::RepeatedField<int>();
4874         /// <summary>
4875         ///  Identifies which part of the FileDescriptorProto was defined at this
4876         ///  location.
4877         ///
4878         ///  Each element is a field number or an index.  They form a path from
4879         ///  the root FileDescriptorProto to the place where the definition.  For
4880         ///  example, this path:
4881         ///    [ 4, 3, 2, 7, 1 ]
4882         ///  refers to:
4883         ///    file.message_type(3)  // 4, 3
4884         ///        .field(7)         // 2, 7
4885         ///        .name()           // 1
4886         ///  This is because FileDescriptorProto.message_type has field number 4:
4887         ///    repeated DescriptorProto message_type = 4;
4888         ///  and DescriptorProto.field has field number 2:
4889         ///    repeated FieldDescriptorProto field = 2;
4890         ///  and FieldDescriptorProto.name has field number 1:
4891         ///    optional string name = 1;
4892         ///
4893         ///  Thus, the above path gives the location of a field name.  If we removed
4894         ///  the last element:
4895         ///    [ 4, 3, 2, 7 ]
4896         ///  this path refers to the whole field declaration (from the beginning
4897         ///  of the label to the terminating semicolon).
4898         /// </summary>
4899         public pbc::RepeatedField<int> Path {
4900           get { return path_; }
4901         }
4902 
4903         /// <summary>Field number for the "span" field.</summary>
4904         public const int SpanFieldNumber = 2;
4905         private static readonly pb::FieldCodec<int> _repeated_span_codec
4906             = pb::FieldCodec.ForInt32(18);
4907         private readonly pbc::RepeatedField<int> span_ = new pbc::RepeatedField<int>();
4908         /// <summary>
4909         ///  Always has exactly three or four elements: start line, start column,
4910         ///  end line (optional, otherwise assumed same as start line), end column.
4911         ///  These are packed into a single field for efficiency.  Note that line
4912         ///  and column numbers are zero-based -- typically you will want to add
4913         ///  1 to each before displaying to a user.
4914         /// </summary>
4915         public pbc::RepeatedField<int> Span {
4916           get { return span_; }
4917         }
4918 
4919         /// <summary>Field number for the "leading_comments" field.</summary>
4920         public const int LeadingCommentsFieldNumber = 3;
4921         private string leadingComments_ = "";
4922         /// <summary>
4923         ///  If this SourceCodeInfo represents a complete declaration, these are any
4924         ///  comments appearing before and after the declaration which appear to be
4925         ///  attached to the declaration.
4926         ///
4927         ///  A series of line comments appearing on consecutive lines, with no other
4928         ///  tokens appearing on those lines, will be treated as a single comment.
4929         ///
4930         ///  leading_detached_comments will keep paragraphs of comments that appear
4931         ///  before (but not connected to) the current element. Each paragraph,
4932         ///  separated by empty lines, will be one comment element in the repeated
4933         ///  field.
4934         ///
4935         ///  Only the comment content is provided; comment markers (e.g. //) are
4936         ///  stripped out.  For block comments, leading whitespace and an asterisk
4937         ///  will be stripped from the beginning of each line other than the first.
4938         ///  Newlines are included in the output.
4939         ///
4940         ///  Examples:
4941         ///
4942         ///    optional int32 foo = 1;  // Comment attached to foo.
4943         ///    // Comment attached to bar.
4944         ///    optional int32 bar = 2;
4945         ///
4946         ///    optional string baz = 3;
4947         ///    // Comment attached to baz.
4948         ///    // Another line attached to baz.
4949         ///
4950         ///    // Comment attached to qux.
4951         ///    //
4952         ///    // Another line attached to qux.
4953         ///    optional double qux = 4;
4954         ///
4955         ///    // Detached comment for corge. This is not leading or trailing comments
4956         ///    // to qux or corge because there are blank lines separating it from
4957         ///    // both.
4958         ///
4959         ///    // Detached comment for corge paragraph 2.
4960         ///
4961         ///    optional string corge = 5;
4962         ///    /* Block comment attached
4963         ///     * to corge.  Leading asterisks
4964         ///     * will be removed. */
4965         ///    /* Block comment attached to
4966         ///     * grault. */
4967         ///    optional int32 grault = 6;
4968         ///
4969         ///    // ignored detached comments.
4970         /// </summary>
4971         public string LeadingComments {
4972           get { return leadingComments_; }
4973           set {
4974             leadingComments_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4975           }
4976         }
4977 
4978         /// <summary>Field number for the "trailing_comments" field.</summary>
4979         public const int TrailingCommentsFieldNumber = 4;
4980         private string trailingComments_ = "";
4981         public string TrailingComments {
4982           get { return trailingComments_; }
4983           set {
4984             trailingComments_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
4985           }
4986         }
4987 
4988         /// <summary>Field number for the "leading_detached_comments" field.</summary>
4989         public const int LeadingDetachedCommentsFieldNumber = 6;
4990         private static readonly pb::FieldCodec<string> _repeated_leadingDetachedComments_codec
4991             = pb::FieldCodec.ForString(50);
4992         private readonly pbc::RepeatedField<string> leadingDetachedComments_ = new pbc::RepeatedField<string>();
4993         public pbc::RepeatedField<string> LeadingDetachedComments {
4994           get { return leadingDetachedComments_; }
4995         }
4996 
Equals(object other)4997         public override bool Equals(object other) {
4998           return Equals(other as Location);
4999         }
5000 
Equals(Location other)5001         public bool Equals(Location other) {
5002           if (ReferenceEquals(other, null)) {
5003             return false;
5004           }
5005           if (ReferenceEquals(other, this)) {
5006             return true;
5007           }
5008           if(!path_.Equals(other.path_)) return false;
5009           if(!span_.Equals(other.span_)) return false;
5010           if (LeadingComments != other.LeadingComments) return false;
5011           if (TrailingComments != other.TrailingComments) return false;
5012           if(!leadingDetachedComments_.Equals(other.leadingDetachedComments_)) return false;
5013           return true;
5014         }
5015 
GetHashCode()5016         public override int GetHashCode() {
5017           int hash = 1;
5018           hash ^= path_.GetHashCode();
5019           hash ^= span_.GetHashCode();
5020           if (LeadingComments.Length != 0) hash ^= LeadingComments.GetHashCode();
5021           if (TrailingComments.Length != 0) hash ^= TrailingComments.GetHashCode();
5022           hash ^= leadingDetachedComments_.GetHashCode();
5023           return hash;
5024         }
5025 
ToString()5026         public override string ToString() {
5027           return pb::JsonFormatter.ToDiagnosticString(this);
5028         }
5029 
WriteTo(pb::CodedOutputStream output)5030         public void WriteTo(pb::CodedOutputStream output) {
5031           path_.WriteTo(output, _repeated_path_codec);
5032           span_.WriteTo(output, _repeated_span_codec);
5033           if (LeadingComments.Length != 0) {
5034             output.WriteRawTag(26);
5035             output.WriteString(LeadingComments);
5036           }
5037           if (TrailingComments.Length != 0) {
5038             output.WriteRawTag(34);
5039             output.WriteString(TrailingComments);
5040           }
5041           leadingDetachedComments_.WriteTo(output, _repeated_leadingDetachedComments_codec);
5042         }
5043 
CalculateSize()5044         public int CalculateSize() {
5045           int size = 0;
5046           size += path_.CalculateSize(_repeated_path_codec);
5047           size += span_.CalculateSize(_repeated_span_codec);
5048           if (LeadingComments.Length != 0) {
5049             size += 1 + pb::CodedOutputStream.ComputeStringSize(LeadingComments);
5050           }
5051           if (TrailingComments.Length != 0) {
5052             size += 1 + pb::CodedOutputStream.ComputeStringSize(TrailingComments);
5053           }
5054           size += leadingDetachedComments_.CalculateSize(_repeated_leadingDetachedComments_codec);
5055           return size;
5056         }
5057 
MergeFrom(Location other)5058         public void MergeFrom(Location other) {
5059           if (other == null) {
5060             return;
5061           }
5062           path_.Add(other.path_);
5063           span_.Add(other.span_);
5064           if (other.LeadingComments.Length != 0) {
5065             LeadingComments = other.LeadingComments;
5066           }
5067           if (other.TrailingComments.Length != 0) {
5068             TrailingComments = other.TrailingComments;
5069           }
5070           leadingDetachedComments_.Add(other.leadingDetachedComments_);
5071         }
5072 
MergeFrom(pb::CodedInputStream input)5073         public void MergeFrom(pb::CodedInputStream input) {
5074           uint tag;
5075           while ((tag = input.ReadTag()) != 0) {
5076             switch(tag) {
5077               default:
5078                 input.SkipLastField();
5079                 break;
5080               case 10:
5081               case 8: {
5082                 path_.AddEntriesFrom(input, _repeated_path_codec);
5083                 break;
5084               }
5085               case 18:
5086               case 16: {
5087                 span_.AddEntriesFrom(input, _repeated_span_codec);
5088                 break;
5089               }
5090               case 26: {
5091                 LeadingComments = input.ReadString();
5092                 break;
5093               }
5094               case 34: {
5095                 TrailingComments = input.ReadString();
5096                 break;
5097               }
5098               case 50: {
5099                 leadingDetachedComments_.AddEntriesFrom(input, _repeated_leadingDetachedComments_codec);
5100                 break;
5101               }
5102             }
5103           }
5104         }
5105 
5106       }
5107 
5108     }
5109     #endregion
5110 
5111   }
5112 
5113   /// <summary>
5114   ///  Describes the relationship between generated code and its original source
5115   ///  file. A GeneratedCodeInfo message is associated with only one generated
5116   ///  source file, but may contain references to different source .proto files.
5117   /// </summary>
5118   [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
5119   internal sealed partial class GeneratedCodeInfo : pb::IMessage<GeneratedCodeInfo> {
5120     private static readonly pb::MessageParser<GeneratedCodeInfo> _parser = new pb::MessageParser<GeneratedCodeInfo>(() => new GeneratedCodeInfo());
5121     public static pb::MessageParser<GeneratedCodeInfo> Parser { get { return _parser; } }
5122 
5123     public static pbr::MessageDescriptor Descriptor {
5124       get { return global::Google.Protobuf.Reflection.DescriptorReflection.Descriptor.MessageTypes[18]; }
5125     }
5126 
5127     pbr::MessageDescriptor pb::IMessage.Descriptor {
5128       get { return Descriptor; }
5129     }
5130 
GeneratedCodeInfo()5131     public GeneratedCodeInfo() {
5132       OnConstruction();
5133     }
5134 
OnConstruction()5135     partial void OnConstruction();
5136 
GeneratedCodeInfo(GeneratedCodeInfo other)5137     public GeneratedCodeInfo(GeneratedCodeInfo other) : this() {
5138       annotation_ = other.annotation_.Clone();
5139     }
5140 
Clone()5141     public GeneratedCodeInfo Clone() {
5142       return new GeneratedCodeInfo(this);
5143     }
5144 
5145     /// <summary>Field number for the "annotation" field.</summary>
5146     public const int AnnotationFieldNumber = 1;
5147     private static readonly pb::FieldCodec<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> _repeated_annotation_codec
5148         = pb::FieldCodec.ForMessage(10, global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation.Parser);
5149     private readonly pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> annotation_ = new pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation>();
5150     /// <summary>
5151     ///  An Annotation connects some span of text in generated code to an element
5152     ///  of its generating .proto file.
5153     /// </summary>
5154     public pbc::RepeatedField<global::Google.Protobuf.Reflection.GeneratedCodeInfo.Types.Annotation> Annotation {
5155       get { return annotation_; }
5156     }
5157 
Equals(object other)5158     public override bool Equals(object other) {
5159       return Equals(other as GeneratedCodeInfo);
5160     }
5161 
Equals(GeneratedCodeInfo other)5162     public bool Equals(GeneratedCodeInfo other) {
5163       if (ReferenceEquals(other, null)) {
5164         return false;
5165       }
5166       if (ReferenceEquals(other, this)) {
5167         return true;
5168       }
5169       if(!annotation_.Equals(other.annotation_)) return false;
5170       return true;
5171     }
5172 
GetHashCode()5173     public override int GetHashCode() {
5174       int hash = 1;
5175       hash ^= annotation_.GetHashCode();
5176       return hash;
5177     }
5178 
ToString()5179     public override string ToString() {
5180       return pb::JsonFormatter.ToDiagnosticString(this);
5181     }
5182 
WriteTo(pb::CodedOutputStream output)5183     public void WriteTo(pb::CodedOutputStream output) {
5184       annotation_.WriteTo(output, _repeated_annotation_codec);
5185     }
5186 
CalculateSize()5187     public int CalculateSize() {
5188       int size = 0;
5189       size += annotation_.CalculateSize(_repeated_annotation_codec);
5190       return size;
5191     }
5192 
MergeFrom(GeneratedCodeInfo other)5193     public void MergeFrom(GeneratedCodeInfo other) {
5194       if (other == null) {
5195         return;
5196       }
5197       annotation_.Add(other.annotation_);
5198     }
5199 
MergeFrom(pb::CodedInputStream input)5200     public void MergeFrom(pb::CodedInputStream input) {
5201       uint tag;
5202       while ((tag = input.ReadTag()) != 0) {
5203         switch(tag) {
5204           default:
5205             input.SkipLastField();
5206             break;
5207           case 10: {
5208             annotation_.AddEntriesFrom(input, _repeated_annotation_codec);
5209             break;
5210           }
5211         }
5212       }
5213     }
5214 
5215     #region Nested types
5216     /// <summary>Container for nested types declared in the GeneratedCodeInfo message type.</summary>
5217     [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
5218     public static partial class Types {
5219       [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
5220       internal sealed partial class Annotation : pb::IMessage<Annotation> {
5221         private static readonly pb::MessageParser<Annotation> _parser = new pb::MessageParser<Annotation>(() => new Annotation());
5222         public static pb::MessageParser<Annotation> Parser { get { return _parser; } }
5223 
5224         public static pbr::MessageDescriptor Descriptor {
5225           get { return global::Google.Protobuf.Reflection.GeneratedCodeInfo.Descriptor.NestedTypes[0]; }
5226         }
5227 
5228         pbr::MessageDescriptor pb::IMessage.Descriptor {
5229           get { return Descriptor; }
5230         }
5231 
Annotation()5232         public Annotation() {
5233           OnConstruction();
5234         }
5235 
OnConstruction()5236         partial void OnConstruction();
5237 
Annotation(Annotation other)5238         public Annotation(Annotation other) : this() {
5239           path_ = other.path_.Clone();
5240           sourceFile_ = other.sourceFile_;
5241           begin_ = other.begin_;
5242           end_ = other.end_;
5243         }
5244 
Clone()5245         public Annotation Clone() {
5246           return new Annotation(this);
5247         }
5248 
5249         /// <summary>Field number for the "path" field.</summary>
5250         public const int PathFieldNumber = 1;
5251         private static readonly pb::FieldCodec<int> _repeated_path_codec
5252             = pb::FieldCodec.ForInt32(10);
5253         private readonly pbc::RepeatedField<int> path_ = new pbc::RepeatedField<int>();
5254         /// <summary>
5255         ///  Identifies the element in the original source .proto file. This field
5256         ///  is formatted the same as SourceCodeInfo.Location.path.
5257         /// </summary>
5258         public pbc::RepeatedField<int> Path {
5259           get { return path_; }
5260         }
5261 
5262         /// <summary>Field number for the "source_file" field.</summary>
5263         public const int SourceFileFieldNumber = 2;
5264         private string sourceFile_ = "";
5265         /// <summary>
5266         ///  Identifies the filesystem path to the original source .proto.
5267         /// </summary>
5268         public string SourceFile {
5269           get { return sourceFile_; }
5270           set {
5271             sourceFile_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
5272           }
5273         }
5274 
5275         /// <summary>Field number for the "begin" field.</summary>
5276         public const int BeginFieldNumber = 3;
5277         private int begin_;
5278         /// <summary>
5279         ///  Identifies the starting offset in bytes in the generated code
5280         ///  that relates to the identified object.
5281         /// </summary>
5282         public int Begin {
5283           get { return begin_; }
5284           set {
5285             begin_ = value;
5286           }
5287         }
5288 
5289         /// <summary>Field number for the "end" field.</summary>
5290         public const int EndFieldNumber = 4;
5291         private int end_;
5292         /// <summary>
5293         ///  Identifies the ending offset in bytes in the generated code that
5294         ///  relates to the identified offset. The end offset should be one past
5295         ///  the last relevant byte (so the length of the text = end - begin).
5296         /// </summary>
5297         public int End {
5298           get { return end_; }
5299           set {
5300             end_ = value;
5301           }
5302         }
5303 
Equals(object other)5304         public override bool Equals(object other) {
5305           return Equals(other as Annotation);
5306         }
5307 
Equals(Annotation other)5308         public bool Equals(Annotation other) {
5309           if (ReferenceEquals(other, null)) {
5310             return false;
5311           }
5312           if (ReferenceEquals(other, this)) {
5313             return true;
5314           }
5315           if(!path_.Equals(other.path_)) return false;
5316           if (SourceFile != other.SourceFile) return false;
5317           if (Begin != other.Begin) return false;
5318           if (End != other.End) return false;
5319           return true;
5320         }
5321 
GetHashCode()5322         public override int GetHashCode() {
5323           int hash = 1;
5324           hash ^= path_.GetHashCode();
5325           if (SourceFile.Length != 0) hash ^= SourceFile.GetHashCode();
5326           if (Begin != 0) hash ^= Begin.GetHashCode();
5327           if (End != 0) hash ^= End.GetHashCode();
5328           return hash;
5329         }
5330 
ToString()5331         public override string ToString() {
5332           return pb::JsonFormatter.ToDiagnosticString(this);
5333         }
5334 
WriteTo(pb::CodedOutputStream output)5335         public void WriteTo(pb::CodedOutputStream output) {
5336           path_.WriteTo(output, _repeated_path_codec);
5337           if (SourceFile.Length != 0) {
5338             output.WriteRawTag(18);
5339             output.WriteString(SourceFile);
5340           }
5341           if (Begin != 0) {
5342             output.WriteRawTag(24);
5343             output.WriteInt32(Begin);
5344           }
5345           if (End != 0) {
5346             output.WriteRawTag(32);
5347             output.WriteInt32(End);
5348           }
5349         }
5350 
CalculateSize()5351         public int CalculateSize() {
5352           int size = 0;
5353           size += path_.CalculateSize(_repeated_path_codec);
5354           if (SourceFile.Length != 0) {
5355             size += 1 + pb::CodedOutputStream.ComputeStringSize(SourceFile);
5356           }
5357           if (Begin != 0) {
5358             size += 1 + pb::CodedOutputStream.ComputeInt32Size(Begin);
5359           }
5360           if (End != 0) {
5361             size += 1 + pb::CodedOutputStream.ComputeInt32Size(End);
5362           }
5363           return size;
5364         }
5365 
MergeFrom(Annotation other)5366         public void MergeFrom(Annotation other) {
5367           if (other == null) {
5368             return;
5369           }
5370           path_.Add(other.path_);
5371           if (other.SourceFile.Length != 0) {
5372             SourceFile = other.SourceFile;
5373           }
5374           if (other.Begin != 0) {
5375             Begin = other.Begin;
5376           }
5377           if (other.End != 0) {
5378             End = other.End;
5379           }
5380         }
5381 
MergeFrom(pb::CodedInputStream input)5382         public void MergeFrom(pb::CodedInputStream input) {
5383           uint tag;
5384           while ((tag = input.ReadTag()) != 0) {
5385             switch(tag) {
5386               default:
5387                 input.SkipLastField();
5388                 break;
5389               case 10:
5390               case 8: {
5391                 path_.AddEntriesFrom(input, _repeated_path_codec);
5392                 break;
5393               }
5394               case 18: {
5395                 SourceFile = input.ReadString();
5396                 break;
5397               }
5398               case 24: {
5399                 Begin = input.ReadInt32();
5400                 break;
5401               }
5402               case 32: {
5403                 End = input.ReadInt32();
5404                 break;
5405               }
5406             }
5407           }
5408         }
5409 
5410       }
5411 
5412     }
5413     #endregion
5414 
5415   }
5416 
5417   #endregion
5418 
5419 }
5420 
5421 #endregion Designer generated code
5422