prost_reflect/reflect/
wkt.rs

1use crate::descriptor::types::descriptor_proto::ExtensionRange;
2use crate::descriptor::types::descriptor_proto::ReservedRange;
3use crate::descriptor::types::field_descriptor_proto::Label::*;
4use crate::descriptor::types::field_descriptor_proto::Type::*;
5use crate::descriptor::types::DescriptorProto;
6use crate::descriptor::types::EnumDescriptorProto;
7use crate::descriptor::types::EnumValueDescriptorProto;
8use crate::descriptor::types::FieldDescriptorProto;
9use crate::descriptor::types::FieldOptions;
10use crate::descriptor::types::FileDescriptorProto;
11use crate::descriptor::types::FileDescriptorSet;
12use crate::descriptor::types::FileOptions;
13use crate::descriptor::types::MessageOptions;
14use crate::descriptor::types::OneofDescriptorProto;
15use crate::descriptor::types::Options;
16use crate::prost_types::file_options::OptimizeMode::Speed;
17use crate::DescriptorError;
18use crate::{DescriptorPool, MessageDescriptor, ReflectMessage};
19
20#[allow(deprecated)]
21fn make_descriptor() -> FileDescriptorSet {
22    FileDescriptorSet {
23        file: vec![
24            FileDescriptorProto {
25                name: Some("google/protobuf/any.proto".into()),
26                package: Some("google.protobuf".into()),
27                dependency: vec![],
28                public_dependency: vec![],
29                weak_dependency: vec![],
30                message_type: vec![DescriptorProto {
31                    name: Some("Any".into()),
32                    field: vec![
33                        FieldDescriptorProto {
34                            name: Some("type_url".into()),
35                            number: Some(1),
36                            label: Some(Optional.into()),
37                            r#type: Some(String.into()),
38                            type_name: None,
39                            extendee: None,
40                            default_value: None,
41                            oneof_index: None,
42                            json_name: Some("typeUrl".into()),
43                            options: None,
44                            proto3_optional: None,
45                        },
46                        FieldDescriptorProto {
47                            name: Some("value".into()),
48                            number: Some(2),
49                            label: Some(Optional.into()),
50                            r#type: Some(Bytes.into()),
51                            type_name: None,
52                            extendee: None,
53                            default_value: None,
54                            oneof_index: None,
55                            json_name: Some("value".into()),
56                            options: None,
57                            proto3_optional: None,
58                        },
59                    ],
60                    extension: vec![],
61                    nested_type: vec![],
62                    enum_type: vec![],
63                    extension_range: vec![],
64                    oneof_decl: vec![],
65                    options: None,
66                    reserved_range: vec![],
67                    reserved_name: vec![],
68                }],
69                enum_type: vec![],
70                service: vec![],
71                extension: vec![],
72                options: Some(Options::from_prost(FileOptions {
73                    java_package: Some("com.google.protobuf".into()),
74                    java_outer_classname: Some("AnyProto".into()),
75                    java_multiple_files: Some(true),
76                    java_generate_equals_and_hash: None,
77                    java_string_check_utf8: None,
78                    optimize_for: None,
79                    go_package: Some("google.golang.org/protobuf/types/known/anypb".into()),
80                    cc_generic_services: None,
81                    java_generic_services: None,
82                    py_generic_services: None,
83                    php_generic_services: None,
84                    deprecated: None,
85                    cc_enable_arenas: None,
86                    objc_class_prefix: Some("GPB".into()),
87                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
88                    swift_prefix: None,
89                    php_class_prefix: None,
90                    php_namespace: None,
91                    php_metadata_namespace: None,
92                    ruby_package: None,
93                    uninterpreted_option: vec![],
94                })),
95                source_code_info: None,
96                syntax: Some("proto3".into()),
97            },
98            FileDescriptorProto {
99                name: Some("google/protobuf/source_context.proto".into()),
100                package: Some("google.protobuf".into()),
101                dependency: vec![],
102                public_dependency: vec![],
103                weak_dependency: vec![],
104                message_type: vec![DescriptorProto {
105                    name: Some("SourceContext".into()),
106                    field: vec![FieldDescriptorProto {
107                        name: Some("file_name".into()),
108                        number: Some(1),
109                        label: Some(Optional.into()),
110                        r#type: Some(String.into()),
111                        type_name: None,
112                        extendee: None,
113                        default_value: None,
114                        oneof_index: None,
115                        json_name: Some("fileName".into()),
116                        options: None,
117                        proto3_optional: None,
118                    }],
119                    extension: vec![],
120                    nested_type: vec![],
121                    enum_type: vec![],
122                    extension_range: vec![],
123                    oneof_decl: vec![],
124                    options: None,
125                    reserved_range: vec![],
126                    reserved_name: vec![],
127                }],
128                enum_type: vec![],
129                service: vec![],
130                extension: vec![],
131                options: Some(Options::from_prost(FileOptions {
132                    java_package: Some("com.google.protobuf".into()),
133                    java_outer_classname: Some("SourceContextProto".into()),
134                    java_multiple_files: Some(true),
135                    java_generate_equals_and_hash: None,
136                    java_string_check_utf8: None,
137                    optimize_for: None,
138                    go_package: Some(
139                        "google.golang.org/protobuf/types/known/sourcecontextpb".into(),
140                    ),
141                    cc_generic_services: None,
142                    java_generic_services: None,
143                    py_generic_services: None,
144                    php_generic_services: None,
145                    deprecated: None,
146                    cc_enable_arenas: None,
147                    objc_class_prefix: Some("GPB".into()),
148                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
149                    swift_prefix: None,
150                    php_class_prefix: None,
151                    php_namespace: None,
152                    php_metadata_namespace: None,
153                    ruby_package: None,
154                    uninterpreted_option: vec![],
155                })),
156                source_code_info: None,
157                syntax: Some("proto3".into()),
158            },
159            FileDescriptorProto {
160                name: Some("google/protobuf/type.proto".into()),
161                package: Some("google.protobuf".into()),
162                dependency: vec![
163                    "google/protobuf/any.proto".into(),
164                    "google/protobuf/source_context.proto".into(),
165                ],
166                public_dependency: vec![],
167                weak_dependency: vec![],
168                message_type: vec![
169                    DescriptorProto {
170                        name: Some("Type".into()),
171                        field: vec![
172                            FieldDescriptorProto {
173                                name: Some("name".into()),
174                                number: Some(1),
175                                label: Some(Optional.into()),
176                                r#type: Some(String.into()),
177                                type_name: None,
178                                extendee: None,
179                                default_value: None,
180                                oneof_index: None,
181                                json_name: Some("name".into()),
182                                options: None,
183                                proto3_optional: None,
184                            },
185                            FieldDescriptorProto {
186                                name: Some("fields".into()),
187                                number: Some(2),
188                                label: Some(Repeated.into()),
189                                r#type: Some(Message.into()),
190                                type_name: Some(".google.protobuf.Field".into()),
191                                extendee: None,
192                                default_value: None,
193                                oneof_index: None,
194                                json_name: Some("fields".into()),
195                                options: None,
196                                proto3_optional: None,
197                            },
198                            FieldDescriptorProto {
199                                name: Some("oneofs".into()),
200                                number: Some(3),
201                                label: Some(Repeated.into()),
202                                r#type: Some(String.into()),
203                                type_name: None,
204                                extendee: None,
205                                default_value: None,
206                                oneof_index: None,
207                                json_name: Some("oneofs".into()),
208                                options: None,
209                                proto3_optional: None,
210                            },
211                            FieldDescriptorProto {
212                                name: Some("options".into()),
213                                number: Some(4),
214                                label: Some(Repeated.into()),
215                                r#type: Some(Message.into()),
216                                type_name: Some(".google.protobuf.Option".into()),
217                                extendee: None,
218                                default_value: None,
219                                oneof_index: None,
220                                json_name: Some("options".into()),
221                                options: None,
222                                proto3_optional: None,
223                            },
224                            FieldDescriptorProto {
225                                name: Some("source_context".into()),
226                                number: Some(5),
227                                label: Some(Optional.into()),
228                                r#type: Some(Message.into()),
229                                type_name: Some(".google.protobuf.SourceContext".into()),
230                                extendee: None,
231                                default_value: None,
232                                oneof_index: None,
233                                json_name: Some("sourceContext".into()),
234                                options: None,
235                                proto3_optional: None,
236                            },
237                            FieldDescriptorProto {
238                                name: Some("syntax".into()),
239                                number: Some(6),
240                                label: Some(Optional.into()),
241                                r#type: Some(Enum.into()),
242                                type_name: Some(".google.protobuf.Syntax".into()),
243                                extendee: None,
244                                default_value: None,
245                                oneof_index: None,
246                                json_name: Some("syntax".into()),
247                                options: None,
248                                proto3_optional: None,
249                            },
250                            FieldDescriptorProto {
251                                name: Some("edition".to_owned()),
252                                number: Some(7),
253                                label: Some(Optional.into()),
254                                r#type: Some(String.into()),
255                                type_name: None,
256                                extendee: None,
257                                default_value: None,
258                                oneof_index: None,
259                                json_name: Some("edition".to_owned()),
260                                options: None,
261                                proto3_optional: None,
262                            },
263                        ],
264                        extension: vec![],
265                        nested_type: vec![],
266                        enum_type: vec![],
267                        extension_range: vec![],
268                        oneof_decl: vec![],
269                        options: None,
270                        reserved_range: vec![],
271                        reserved_name: vec![],
272                    },
273                    DescriptorProto {
274                        name: Some("Field".into()),
275                        field: vec![
276                            FieldDescriptorProto {
277                                name: Some("kind".into()),
278                                number: Some(1),
279                                label: Some(Optional.into()),
280                                r#type: Some(Enum.into()),
281                                type_name: Some(".google.protobuf.Field.Kind".into()),
282                                extendee: None,
283                                default_value: None,
284                                oneof_index: None,
285                                json_name: Some("kind".into()),
286                                options: None,
287                                proto3_optional: None,
288                            },
289                            FieldDescriptorProto {
290                                name: Some("cardinality".into()),
291                                number: Some(2),
292                                label: Some(Optional.into()),
293                                r#type: Some(Enum.into()),
294                                type_name: Some(".google.protobuf.Field.Cardinality".into()),
295                                extendee: None,
296                                default_value: None,
297                                oneof_index: None,
298                                json_name: Some("cardinality".into()),
299                                options: None,
300                                proto3_optional: None,
301                            },
302                            FieldDescriptorProto {
303                                name: Some("number".into()),
304                                number: Some(3),
305                                label: Some(Optional.into()),
306                                r#type: Some(Int32.into()),
307                                type_name: None,
308                                extendee: None,
309                                default_value: None,
310                                oneof_index: None,
311                                json_name: Some("number".into()),
312                                options: None,
313                                proto3_optional: None,
314                            },
315                            FieldDescriptorProto {
316                                name: Some("name".into()),
317                                number: Some(4),
318                                label: Some(Optional.into()),
319                                r#type: Some(String.into()),
320                                type_name: None,
321                                extendee: None,
322                                default_value: None,
323                                oneof_index: None,
324                                json_name: Some("name".into()),
325                                options: None,
326                                proto3_optional: None,
327                            },
328                            FieldDescriptorProto {
329                                name: Some("type_url".into()),
330                                number: Some(6),
331                                label: Some(Optional.into()),
332                                r#type: Some(String.into()),
333                                type_name: None,
334                                extendee: None,
335                                default_value: None,
336                                oneof_index: None,
337                                json_name: Some("typeUrl".into()),
338                                options: None,
339                                proto3_optional: None,
340                            },
341                            FieldDescriptorProto {
342                                name: Some("oneof_index".into()),
343                                number: Some(7),
344                                label: Some(Optional.into()),
345                                r#type: Some(Int32.into()),
346                                type_name: None,
347                                extendee: None,
348                                default_value: None,
349                                oneof_index: None,
350                                json_name: Some("oneofIndex".into()),
351                                options: None,
352                                proto3_optional: None,
353                            },
354                            FieldDescriptorProto {
355                                name: Some("packed".into()),
356                                number: Some(8),
357                                label: Some(Optional.into()),
358                                r#type: Some(Bool.into()),
359                                type_name: None,
360                                extendee: None,
361                                default_value: None,
362                                oneof_index: None,
363                                json_name: Some("packed".into()),
364                                options: None,
365                                proto3_optional: None,
366                            },
367                            FieldDescriptorProto {
368                                name: Some("options".into()),
369                                number: Some(9),
370                                label: Some(Repeated.into()),
371                                r#type: Some(Message.into()),
372                                type_name: Some(".google.protobuf.Option".into()),
373                                extendee: None,
374                                default_value: None,
375                                oneof_index: None,
376                                json_name: Some("options".into()),
377                                options: None,
378                                proto3_optional: None,
379                            },
380                            FieldDescriptorProto {
381                                name: Some("json_name".into()),
382                                number: Some(10),
383                                label: Some(Optional.into()),
384                                r#type: Some(String.into()),
385                                type_name: None,
386                                extendee: None,
387                                default_value: None,
388                                oneof_index: None,
389                                json_name: Some("jsonName".into()),
390                                options: None,
391                                proto3_optional: None,
392                            },
393                            FieldDescriptorProto {
394                                name: Some("default_value".into()),
395                                number: Some(11),
396                                label: Some(Optional.into()),
397                                r#type: Some(String.into()),
398                                type_name: None,
399                                extendee: None,
400                                default_value: None,
401                                oneof_index: None,
402                                json_name: Some("defaultValue".into()),
403                                options: None,
404                                proto3_optional: None,
405                            },
406                        ],
407                        extension: vec![],
408                        nested_type: vec![],
409                        enum_type: vec![
410                            EnumDescriptorProto {
411                                name: Some("Kind".into()),
412                                value: vec![
413                                    EnumValueDescriptorProto {
414                                        name: Some("TYPE_UNKNOWN".into()),
415                                        number: Some(0),
416                                        options: None,
417                                    },
418                                    EnumValueDescriptorProto {
419                                        name: Some("TYPE_DOUBLE".into()),
420                                        number: Some(1),
421                                        options: None,
422                                    },
423                                    EnumValueDescriptorProto {
424                                        name: Some("TYPE_FLOAT".into()),
425                                        number: Some(2),
426                                        options: None,
427                                    },
428                                    EnumValueDescriptorProto {
429                                        name: Some("TYPE_INT64".into()),
430                                        number: Some(3),
431                                        options: None,
432                                    },
433                                    EnumValueDescriptorProto {
434                                        name: Some("TYPE_UINT64".into()),
435                                        number: Some(4),
436                                        options: None,
437                                    },
438                                    EnumValueDescriptorProto {
439                                        name: Some("TYPE_INT32".into()),
440                                        number: Some(5),
441                                        options: None,
442                                    },
443                                    EnumValueDescriptorProto {
444                                        name: Some("TYPE_FIXED64".into()),
445                                        number: Some(6),
446                                        options: None,
447                                    },
448                                    EnumValueDescriptorProto {
449                                        name: Some("TYPE_FIXED32".into()),
450                                        number: Some(7),
451                                        options: None,
452                                    },
453                                    EnumValueDescriptorProto {
454                                        name: Some("TYPE_BOOL".into()),
455                                        number: Some(8),
456                                        options: None,
457                                    },
458                                    EnumValueDescriptorProto {
459                                        name: Some("TYPE_STRING".into()),
460                                        number: Some(9),
461                                        options: None,
462                                    },
463                                    EnumValueDescriptorProto {
464                                        name: Some("TYPE_GROUP".into()),
465                                        number: Some(10),
466                                        options: None,
467                                    },
468                                    EnumValueDescriptorProto {
469                                        name: Some("TYPE_MESSAGE".into()),
470                                        number: Some(11),
471                                        options: None,
472                                    },
473                                    EnumValueDescriptorProto {
474                                        name: Some("TYPE_BYTES".into()),
475                                        number: Some(12),
476                                        options: None,
477                                    },
478                                    EnumValueDescriptorProto {
479                                        name: Some("TYPE_UINT32".into()),
480                                        number: Some(13),
481                                        options: None,
482                                    },
483                                    EnumValueDescriptorProto {
484                                        name: Some("TYPE_ENUM".into()),
485                                        number: Some(14),
486                                        options: None,
487                                    },
488                                    EnumValueDescriptorProto {
489                                        name: Some("TYPE_SFIXED32".into()),
490                                        number: Some(15),
491                                        options: None,
492                                    },
493                                    EnumValueDescriptorProto {
494                                        name: Some("TYPE_SFIXED64".into()),
495                                        number: Some(16),
496                                        options: None,
497                                    },
498                                    EnumValueDescriptorProto {
499                                        name: Some("TYPE_SINT32".into()),
500                                        number: Some(17),
501                                        options: None,
502                                    },
503                                    EnumValueDescriptorProto {
504                                        name: Some("TYPE_SINT64".into()),
505                                        number: Some(18),
506                                        options: None,
507                                    },
508                                ],
509                                options: None,
510                                reserved_range: vec![],
511                                reserved_name: vec![],
512                            },
513                            EnumDescriptorProto {
514                                name: Some("Cardinality".into()),
515                                value: vec![
516                                    EnumValueDescriptorProto {
517                                        name: Some("CARDINALITY_UNKNOWN".into()),
518                                        number: Some(0),
519                                        options: None,
520                                    },
521                                    EnumValueDescriptorProto {
522                                        name: Some("CARDINALITY_OPTIONAL".into()),
523                                        number: Some(1),
524                                        options: None,
525                                    },
526                                    EnumValueDescriptorProto {
527                                        name: Some("CARDINALITY_REQUIRED".into()),
528                                        number: Some(2),
529                                        options: None,
530                                    },
531                                    EnumValueDescriptorProto {
532                                        name: Some("CARDINALITY_REPEATED".into()),
533                                        number: Some(3),
534                                        options: None,
535                                    },
536                                ],
537                                options: None,
538                                reserved_range: vec![],
539                                reserved_name: vec![],
540                            },
541                        ],
542                        extension_range: vec![],
543                        oneof_decl: vec![],
544                        options: None,
545                        reserved_range: vec![],
546                        reserved_name: vec![],
547                    },
548                    DescriptorProto {
549                        name: Some("Enum".into()),
550                        field: vec![
551                            FieldDescriptorProto {
552                                name: Some("name".into()),
553                                number: Some(1),
554                                label: Some(Optional.into()),
555                                r#type: Some(String.into()),
556                                type_name: None,
557                                extendee: None,
558                                default_value: None,
559                                oneof_index: None,
560                                json_name: Some("name".into()),
561                                options: None,
562                                proto3_optional: None,
563                            },
564                            FieldDescriptorProto {
565                                name: Some("enumvalue".into()),
566                                number: Some(2),
567                                label: Some(Repeated.into()),
568                                r#type: Some(Message.into()),
569                                type_name: Some(".google.protobuf.EnumValue".into()),
570                                extendee: None,
571                                default_value: None,
572                                oneof_index: None,
573                                json_name: Some("enumvalue".into()),
574                                options: None,
575                                proto3_optional: None,
576                            },
577                            FieldDescriptorProto {
578                                name: Some("options".into()),
579                                number: Some(3),
580                                label: Some(Repeated.into()),
581                                r#type: Some(Message.into()),
582                                type_name: Some(".google.protobuf.Option".into()),
583                                extendee: None,
584                                default_value: None,
585                                oneof_index: None,
586                                json_name: Some("options".into()),
587                                options: None,
588                                proto3_optional: None,
589                            },
590                            FieldDescriptorProto {
591                                name: Some("source_context".into()),
592                                number: Some(4),
593                                label: Some(Optional.into()),
594                                r#type: Some(Message.into()),
595                                type_name: Some(".google.protobuf.SourceContext".into()),
596                                extendee: None,
597                                default_value: None,
598                                oneof_index: None,
599                                json_name: Some("sourceContext".into()),
600                                options: None,
601                                proto3_optional: None,
602                            },
603                            FieldDescriptorProto {
604                                name: Some("syntax".into()),
605                                number: Some(5),
606                                label: Some(Optional.into()),
607                                r#type: Some(Enum.into()),
608                                type_name: Some(".google.protobuf.Syntax".into()),
609                                extendee: None,
610                                default_value: None,
611                                oneof_index: None,
612                                json_name: Some("syntax".into()),
613                                options: None,
614                                proto3_optional: None,
615                            },
616                            FieldDescriptorProto {
617                                name: Some("edition".to_owned()),
618                                number: Some(6),
619                                label: Some(Optional.into()),
620                                r#type: Some(String.into()),
621                                type_name: None,
622                                extendee: None,
623                                default_value: None,
624                                oneof_index: None,
625                                json_name: Some("edition".to_owned()),
626                                options: None,
627                                proto3_optional: None,
628                            },
629                        ],
630                        extension: vec![],
631                        nested_type: vec![],
632                        enum_type: vec![],
633                        extension_range: vec![],
634                        oneof_decl: vec![],
635                        options: None,
636                        reserved_range: vec![],
637                        reserved_name: vec![],
638                    },
639                    DescriptorProto {
640                        name: Some("EnumValue".into()),
641                        field: vec![
642                            FieldDescriptorProto {
643                                name: Some("name".into()),
644                                number: Some(1),
645                                label: Some(Optional.into()),
646                                r#type: Some(String.into()),
647                                type_name: None,
648                                extendee: None,
649                                default_value: None,
650                                oneof_index: None,
651                                json_name: Some("name".into()),
652                                options: None,
653                                proto3_optional: None,
654                            },
655                            FieldDescriptorProto {
656                                name: Some("number".into()),
657                                number: Some(2),
658                                label: Some(Optional.into()),
659                                r#type: Some(Int32.into()),
660                                type_name: None,
661                                extendee: None,
662                                default_value: None,
663                                oneof_index: None,
664                                json_name: Some("number".into()),
665                                options: None,
666                                proto3_optional: None,
667                            },
668                            FieldDescriptorProto {
669                                name: Some("options".into()),
670                                number: Some(3),
671                                label: Some(Repeated.into()),
672                                r#type: Some(Message.into()),
673                                type_name: Some(".google.protobuf.Option".into()),
674                                extendee: None,
675                                default_value: None,
676                                oneof_index: None,
677                                json_name: Some("options".into()),
678                                options: None,
679                                proto3_optional: None,
680                            },
681                        ],
682                        extension: vec![],
683                        nested_type: vec![],
684                        enum_type: vec![],
685                        extension_range: vec![],
686                        oneof_decl: vec![],
687                        options: None,
688                        reserved_range: vec![],
689                        reserved_name: vec![],
690                    },
691                    DescriptorProto {
692                        name: Some("Option".into()),
693                        field: vec![
694                            FieldDescriptorProto {
695                                name: Some("name".into()),
696                                number: Some(1),
697                                label: Some(Optional.into()),
698                                r#type: Some(String.into()),
699                                type_name: None,
700                                extendee: None,
701                                default_value: None,
702                                oneof_index: None,
703                                json_name: Some("name".into()),
704                                options: None,
705                                proto3_optional: None,
706                            },
707                            FieldDescriptorProto {
708                                name: Some("value".into()),
709                                number: Some(2),
710                                label: Some(Optional.into()),
711                                r#type: Some(Message.into()),
712                                type_name: Some(".google.protobuf.Any".into()),
713                                extendee: None,
714                                default_value: None,
715                                oneof_index: None,
716                                json_name: Some("value".into()),
717                                options: None,
718                                proto3_optional: None,
719                            },
720                        ],
721                        extension: vec![],
722                        nested_type: vec![],
723                        enum_type: vec![],
724                        extension_range: vec![],
725                        oneof_decl: vec![],
726                        options: None,
727                        reserved_range: vec![],
728                        reserved_name: vec![],
729                    },
730                ],
731                enum_type: vec![EnumDescriptorProto {
732                    name: Some("Syntax".into()),
733                    value: vec![
734                        EnumValueDescriptorProto {
735                            name: Some("SYNTAX_PROTO2".into()),
736                            number: Some(0),
737                            options: None,
738                        },
739                        EnumValueDescriptorProto {
740                            name: Some("SYNTAX_PROTO3".into()),
741                            number: Some(1),
742                            options: None,
743                        },
744                        EnumValueDescriptorProto {
745                            name: Some("SYNTAX_EDITIONS".into()),
746                            number: Some(2),
747                            options: None,
748                        },
749                    ],
750                    options: None,
751                    reserved_range: vec![],
752                    reserved_name: vec![],
753                }],
754                service: vec![],
755                extension: vec![],
756                options: Some(Options::from_prost(FileOptions {
757                    java_package: Some("com.google.protobuf".into()),
758                    java_outer_classname: Some("TypeProto".into()),
759                    java_multiple_files: Some(true),
760                    java_generate_equals_and_hash: None,
761                    java_string_check_utf8: None,
762                    optimize_for: None,
763                    go_package: Some("google.golang.org/protobuf/types/known/typepb".into()),
764                    cc_generic_services: None,
765                    java_generic_services: None,
766                    py_generic_services: None,
767                    php_generic_services: None,
768                    deprecated: None,
769                    cc_enable_arenas: Some(true),
770                    objc_class_prefix: Some("GPB".into()),
771                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
772                    swift_prefix: None,
773                    php_class_prefix: None,
774                    php_namespace: None,
775                    php_metadata_namespace: None,
776                    ruby_package: None,
777                    uninterpreted_option: vec![],
778                })),
779                source_code_info: None,
780                syntax: Some("proto3".into()),
781            },
782            FileDescriptorProto {
783                name: Some("google/protobuf/api.proto".into()),
784                package: Some("google.protobuf".into()),
785                dependency: vec![
786                    "google/protobuf/source_context.proto".into(),
787                    "google/protobuf/type.proto".into(),
788                ],
789                public_dependency: vec![],
790                weak_dependency: vec![],
791                message_type: vec![
792                    DescriptorProto {
793                        name: Some("Api".into()),
794                        field: vec![
795                            FieldDescriptorProto {
796                                name: Some("name".into()),
797                                number: Some(1),
798                                label: Some(Optional.into()),
799                                r#type: Some(String.into()),
800                                type_name: None,
801                                extendee: None,
802                                default_value: None,
803                                oneof_index: None,
804                                json_name: Some("name".into()),
805                                options: None,
806                                proto3_optional: None,
807                            },
808                            FieldDescriptorProto {
809                                name: Some("methods".into()),
810                                number: Some(2),
811                                label: Some(Repeated.into()),
812                                r#type: Some(Message.into()),
813                                type_name: Some(".google.protobuf.Method".into()),
814                                extendee: None,
815                                default_value: None,
816                                oneof_index: None,
817                                json_name: Some("methods".into()),
818                                options: None,
819                                proto3_optional: None,
820                            },
821                            FieldDescriptorProto {
822                                name: Some("options".into()),
823                                number: Some(3),
824                                label: Some(Repeated.into()),
825                                r#type: Some(Message.into()),
826                                type_name: Some(".google.protobuf.Option".into()),
827                                extendee: None,
828                                default_value: None,
829                                oneof_index: None,
830                                json_name: Some("options".into()),
831                                options: None,
832                                proto3_optional: None,
833                            },
834                            FieldDescriptorProto {
835                                name: Some("version".into()),
836                                number: Some(4),
837                                label: Some(Optional.into()),
838                                r#type: Some(String.into()),
839                                type_name: None,
840                                extendee: None,
841                                default_value: None,
842                                oneof_index: None,
843                                json_name: Some("version".into()),
844                                options: None,
845                                proto3_optional: None,
846                            },
847                            FieldDescriptorProto {
848                                name: Some("source_context".into()),
849                                number: Some(5),
850                                label: Some(Optional.into()),
851                                r#type: Some(Message.into()),
852                                type_name: Some(".google.protobuf.SourceContext".into()),
853                                extendee: None,
854                                default_value: None,
855                                oneof_index: None,
856                                json_name: Some("sourceContext".into()),
857                                options: None,
858                                proto3_optional: None,
859                            },
860                            FieldDescriptorProto {
861                                name: Some("mixins".into()),
862                                number: Some(6),
863                                label: Some(Repeated.into()),
864                                r#type: Some(Message.into()),
865                                type_name: Some(".google.protobuf.Mixin".into()),
866                                extendee: None,
867                                default_value: None,
868                                oneof_index: None,
869                                json_name: Some("mixins".into()),
870                                options: None,
871                                proto3_optional: None,
872                            },
873                            FieldDescriptorProto {
874                                name: Some("syntax".into()),
875                                number: Some(7),
876                                label: Some(Optional.into()),
877                                r#type: Some(Enum.into()),
878                                type_name: Some(".google.protobuf.Syntax".into()),
879                                extendee: None,
880                                default_value: None,
881                                oneof_index: None,
882                                json_name: Some("syntax".into()),
883                                options: None,
884                                proto3_optional: None,
885                            },
886                        ],
887                        extension: vec![],
888                        nested_type: vec![],
889                        enum_type: vec![],
890                        extension_range: vec![],
891                        oneof_decl: vec![],
892                        options: None,
893                        reserved_range: vec![],
894                        reserved_name: vec![],
895                    },
896                    DescriptorProto {
897                        name: Some("Method".into()),
898                        field: vec![
899                            FieldDescriptorProto {
900                                name: Some("name".into()),
901                                number: Some(1),
902                                label: Some(Optional.into()),
903                                r#type: Some(String.into()),
904                                type_name: None,
905                                extendee: None,
906                                default_value: None,
907                                oneof_index: None,
908                                json_name: Some("name".into()),
909                                options: None,
910                                proto3_optional: None,
911                            },
912                            FieldDescriptorProto {
913                                name: Some("request_type_url".into()),
914                                number: Some(2),
915                                label: Some(Optional.into()),
916                                r#type: Some(String.into()),
917                                type_name: None,
918                                extendee: None,
919                                default_value: None,
920                                oneof_index: None,
921                                json_name: Some("requestTypeUrl".into()),
922                                options: None,
923                                proto3_optional: None,
924                            },
925                            FieldDescriptorProto {
926                                name: Some("request_streaming".into()),
927                                number: Some(3),
928                                label: Some(Optional.into()),
929                                r#type: Some(Bool.into()),
930                                type_name: None,
931                                extendee: None,
932                                default_value: None,
933                                oneof_index: None,
934                                json_name: Some("requestStreaming".into()),
935                                options: None,
936                                proto3_optional: None,
937                            },
938                            FieldDescriptorProto {
939                                name: Some("response_type_url".into()),
940                                number: Some(4),
941                                label: Some(Optional.into()),
942                                r#type: Some(String.into()),
943                                type_name: None,
944                                extendee: None,
945                                default_value: None,
946                                oneof_index: None,
947                                json_name: Some("responseTypeUrl".into()),
948                                options: None,
949                                proto3_optional: None,
950                            },
951                            FieldDescriptorProto {
952                                name: Some("response_streaming".into()),
953                                number: Some(5),
954                                label: Some(Optional.into()),
955                                r#type: Some(Bool.into()),
956                                type_name: None,
957                                extendee: None,
958                                default_value: None,
959                                oneof_index: None,
960                                json_name: Some("responseStreaming".into()),
961                                options: None,
962                                proto3_optional: None,
963                            },
964                            FieldDescriptorProto {
965                                name: Some("options".into()),
966                                number: Some(6),
967                                label: Some(Repeated.into()),
968                                r#type: Some(Message.into()),
969                                type_name: Some(".google.protobuf.Option".into()),
970                                extendee: None,
971                                default_value: None,
972                                oneof_index: None,
973                                json_name: Some("options".into()),
974                                options: None,
975                                proto3_optional: None,
976                            },
977                            FieldDescriptorProto {
978                                name: Some("syntax".into()),
979                                number: Some(7),
980                                label: Some(Optional.into()),
981                                r#type: Some(Enum.into()),
982                                type_name: Some(".google.protobuf.Syntax".into()),
983                                extendee: None,
984                                default_value: None,
985                                oneof_index: None,
986                                json_name: Some("syntax".into()),
987                                options: None,
988                                proto3_optional: None,
989                            },
990                        ],
991                        extension: vec![],
992                        nested_type: vec![],
993                        enum_type: vec![],
994                        extension_range: vec![],
995                        oneof_decl: vec![],
996                        options: None,
997                        reserved_range: vec![],
998                        reserved_name: vec![],
999                    },
1000                    DescriptorProto {
1001                        name: Some("Mixin".into()),
1002                        field: vec![
1003                            FieldDescriptorProto {
1004                                name: Some("name".into()),
1005                                number: Some(1),
1006                                label: Some(Optional.into()),
1007                                r#type: Some(String.into()),
1008                                type_name: None,
1009                                extendee: None,
1010                                default_value: None,
1011                                oneof_index: None,
1012                                json_name: Some("name".into()),
1013                                options: None,
1014                                proto3_optional: None,
1015                            },
1016                            FieldDescriptorProto {
1017                                name: Some("root".into()),
1018                                number: Some(2),
1019                                label: Some(Optional.into()),
1020                                r#type: Some(String.into()),
1021                                type_name: None,
1022                                extendee: None,
1023                                default_value: None,
1024                                oneof_index: None,
1025                                json_name: Some("root".into()),
1026                                options: None,
1027                                proto3_optional: None,
1028                            },
1029                        ],
1030                        extension: vec![],
1031                        nested_type: vec![],
1032                        enum_type: vec![],
1033                        extension_range: vec![],
1034                        oneof_decl: vec![],
1035                        options: None,
1036                        reserved_range: vec![],
1037                        reserved_name: vec![],
1038                    },
1039                ],
1040                enum_type: vec![],
1041                service: vec![],
1042                extension: vec![],
1043                options: Some(Options::from_prost(FileOptions {
1044                    java_package: Some("com.google.protobuf".into()),
1045                    java_outer_classname: Some("ApiProto".into()),
1046                    java_multiple_files: Some(true),
1047                    java_generate_equals_and_hash: None,
1048                    java_string_check_utf8: None,
1049                    optimize_for: None,
1050                    go_package: Some("google.golang.org/protobuf/types/known/apipb".into()),
1051                    cc_generic_services: None,
1052                    java_generic_services: None,
1053                    py_generic_services: None,
1054                    php_generic_services: None,
1055                    deprecated: None,
1056                    cc_enable_arenas: None,
1057                    objc_class_prefix: Some("GPB".into()),
1058                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
1059                    swift_prefix: None,
1060                    php_class_prefix: None,
1061                    php_namespace: None,
1062                    php_metadata_namespace: None,
1063                    ruby_package: None,
1064                    uninterpreted_option: vec![],
1065                })),
1066                source_code_info: None,
1067                syntax: Some("proto3".into()),
1068            },
1069            FileDescriptorProto {
1070                name: Some("google/protobuf/descriptor.proto".into()),
1071                package: Some("google.protobuf".into()),
1072                dependency: vec![],
1073                public_dependency: vec![],
1074                weak_dependency: vec![],
1075                message_type: vec![
1076                    DescriptorProto {
1077                        name: Some("FileDescriptorSet".into()),
1078                        field: vec![FieldDescriptorProto {
1079                            name: Some("file".into()),
1080                            number: Some(1),
1081                            label: Some(Repeated.into()),
1082                            r#type: Some(Message.into()),
1083                            type_name: Some(".google.protobuf.FileDescriptorProto".into()),
1084                            extendee: None,
1085                            default_value: None,
1086                            oneof_index: None,
1087                            json_name: Some("file".into()),
1088                            options: None,
1089                            proto3_optional: None,
1090                        }],
1091                        extension: vec![],
1092                        nested_type: vec![],
1093                        enum_type: vec![],
1094                        extension_range: vec![],
1095                        oneof_decl: vec![],
1096                        options: None,
1097                        reserved_range: vec![],
1098                        reserved_name: vec![],
1099                    },
1100                    DescriptorProto {
1101                        name: Some("FileDescriptorProto".into()),
1102                        field: vec![
1103                            FieldDescriptorProto {
1104                                name: Some("name".into()),
1105                                number: Some(1),
1106                                label: Some(Optional.into()),
1107                                r#type: Some(String.into()),
1108                                type_name: None,
1109                                extendee: None,
1110                                default_value: None,
1111                                oneof_index: None,
1112                                json_name: Some("name".into()),
1113                                options: None,
1114                                proto3_optional: None,
1115                            },
1116                            FieldDescriptorProto {
1117                                name: Some("package".into()),
1118                                number: Some(2),
1119                                label: Some(Optional.into()),
1120                                r#type: Some(String.into()),
1121                                type_name: None,
1122                                extendee: None,
1123                                default_value: None,
1124                                oneof_index: None,
1125                                json_name: Some("package".into()),
1126                                options: None,
1127                                proto3_optional: None,
1128                            },
1129                            FieldDescriptorProto {
1130                                name: Some("dependency".into()),
1131                                number: Some(3),
1132                                label: Some(Repeated.into()),
1133                                r#type: Some(String.into()),
1134                                type_name: None,
1135                                extendee: None,
1136                                default_value: None,
1137                                oneof_index: None,
1138                                json_name: Some("dependency".into()),
1139                                options: None,
1140                                proto3_optional: None,
1141                            },
1142                            FieldDescriptorProto {
1143                                name: Some("public_dependency".into()),
1144                                number: Some(10),
1145                                label: Some(Repeated.into()),
1146                                r#type: Some(Int32.into()),
1147                                type_name: None,
1148                                extendee: None,
1149                                default_value: None,
1150                                oneof_index: None,
1151                                json_name: Some("publicDependency".into()),
1152                                options: None,
1153                                proto3_optional: None,
1154                            },
1155                            FieldDescriptorProto {
1156                                name: Some("weak_dependency".into()),
1157                                number: Some(11),
1158                                label: Some(Repeated.into()),
1159                                r#type: Some(Int32.into()),
1160                                type_name: None,
1161                                extendee: None,
1162                                default_value: None,
1163                                oneof_index: None,
1164                                json_name: Some("weakDependency".into()),
1165                                options: None,
1166                                proto3_optional: None,
1167                            },
1168                            FieldDescriptorProto {
1169                                name: Some("message_type".into()),
1170                                number: Some(4),
1171                                label: Some(Repeated.into()),
1172                                r#type: Some(Message.into()),
1173                                type_name: Some(".google.protobuf.DescriptorProto".into()),
1174                                extendee: None,
1175                                default_value: None,
1176                                oneof_index: None,
1177                                json_name: Some("messageType".into()),
1178                                options: None,
1179                                proto3_optional: None,
1180                            },
1181                            FieldDescriptorProto {
1182                                name: Some("enum_type".into()),
1183                                number: Some(5),
1184                                label: Some(Repeated.into()),
1185                                r#type: Some(Message.into()),
1186                                type_name: Some(".google.protobuf.EnumDescriptorProto".into()),
1187                                extendee: None,
1188                                default_value: None,
1189                                oneof_index: None,
1190                                json_name: Some("enumType".into()),
1191                                options: None,
1192                                proto3_optional: None,
1193                            },
1194                            FieldDescriptorProto {
1195                                name: Some("service".into()),
1196                                number: Some(6),
1197                                label: Some(Repeated.into()),
1198                                r#type: Some(Message.into()),
1199                                type_name: Some(".google.protobuf.ServiceDescriptorProto".into()),
1200                                extendee: None,
1201                                default_value: None,
1202                                oneof_index: None,
1203                                json_name: Some("service".into()),
1204                                options: None,
1205                                proto3_optional: None,
1206                            },
1207                            FieldDescriptorProto {
1208                                name: Some("extension".into()),
1209                                number: Some(7),
1210                                label: Some(Repeated.into()),
1211                                r#type: Some(Message.into()),
1212                                type_name: Some(".google.protobuf.FieldDescriptorProto".into()),
1213                                extendee: None,
1214                                default_value: None,
1215                                oneof_index: None,
1216                                json_name: Some("extension".into()),
1217                                options: None,
1218                                proto3_optional: None,
1219                            },
1220                            FieldDescriptorProto {
1221                                name: Some("options".into()),
1222                                number: Some(8),
1223                                label: Some(Optional.into()),
1224                                r#type: Some(Message.into()),
1225                                type_name: Some(".google.protobuf.FileOptions".into()),
1226                                extendee: None,
1227                                default_value: None,
1228                                oneof_index: None,
1229                                json_name: Some("options".into()),
1230                                options: None,
1231                                proto3_optional: None,
1232                            },
1233                            FieldDescriptorProto {
1234                                name: Some("source_code_info".into()),
1235                                number: Some(9),
1236                                label: Some(Optional.into()),
1237                                r#type: Some(Message.into()),
1238                                type_name: Some(".google.protobuf.SourceCodeInfo".into()),
1239                                extendee: None,
1240                                default_value: None,
1241                                oneof_index: None,
1242                                json_name: Some("sourceCodeInfo".into()),
1243                                options: None,
1244                                proto3_optional: None,
1245                            },
1246                            FieldDescriptorProto {
1247                                name: Some("syntax".into()),
1248                                number: Some(12),
1249                                label: Some(Optional.into()),
1250                                r#type: Some(String.into()),
1251                                type_name: None,
1252                                extendee: None,
1253                                default_value: None,
1254                                oneof_index: None,
1255                                json_name: Some("syntax".into()),
1256                                options: None,
1257                                proto3_optional: None,
1258                            },
1259                            FieldDescriptorProto {
1260                                name: Some("edition".into()),
1261                                number: Some(14),
1262                                label: Some(Optional.into()),
1263                                r#type: Some(Enum.into()),
1264                                type_name: Some(".google.protobuf.Edition".into()),
1265                                extendee: None,
1266                                default_value: None,
1267                                oneof_index: None,
1268                                json_name: Some("edition".into()),
1269                                options: None,
1270                                proto3_optional: None,
1271                            },
1272                        ],
1273                        extension: vec![],
1274                        nested_type: vec![],
1275                        enum_type: vec![],
1276                        extension_range: vec![],
1277                        oneof_decl: vec![],
1278                        options: None,
1279                        reserved_range: vec![],
1280                        reserved_name: vec![],
1281                    },
1282                    DescriptorProto {
1283                        name: Some("DescriptorProto".into()),
1284                        field: vec![
1285                            FieldDescriptorProto {
1286                                name: Some("name".into()),
1287                                number: Some(1),
1288                                label: Some(Optional.into()),
1289                                r#type: Some(String.into()),
1290                                type_name: None,
1291                                extendee: None,
1292                                default_value: None,
1293                                oneof_index: None,
1294                                json_name: Some("name".into()),
1295                                options: None,
1296                                proto3_optional: None,
1297                            },
1298                            FieldDescriptorProto {
1299                                name: Some("field".into()),
1300                                number: Some(2),
1301                                label: Some(Repeated.into()),
1302                                r#type: Some(Message.into()),
1303                                type_name: Some(".google.protobuf.FieldDescriptorProto".into()),
1304                                extendee: None,
1305                                default_value: None,
1306                                oneof_index: None,
1307                                json_name: Some("field".into()),
1308                                options: None,
1309                                proto3_optional: None,
1310                            },
1311                            FieldDescriptorProto {
1312                                name: Some("extension".into()),
1313                                number: Some(6),
1314                                label: Some(Repeated.into()),
1315                                r#type: Some(Message.into()),
1316                                type_name: Some(".google.protobuf.FieldDescriptorProto".into()),
1317                                extendee: None,
1318                                default_value: None,
1319                                oneof_index: None,
1320                                json_name: Some("extension".into()),
1321                                options: None,
1322                                proto3_optional: None,
1323                            },
1324                            FieldDescriptorProto {
1325                                name: Some("nested_type".into()),
1326                                number: Some(3),
1327                                label: Some(Repeated.into()),
1328                                r#type: Some(Message.into()),
1329                                type_name: Some(".google.protobuf.DescriptorProto".into()),
1330                                extendee: None,
1331                                default_value: None,
1332                                oneof_index: None,
1333                                json_name: Some("nestedType".into()),
1334                                options: None,
1335                                proto3_optional: None,
1336                            },
1337                            FieldDescriptorProto {
1338                                name: Some("enum_type".into()),
1339                                number: Some(4),
1340                                label: Some(Repeated.into()),
1341                                r#type: Some(Message.into()),
1342                                type_name: Some(".google.protobuf.EnumDescriptorProto".into()),
1343                                extendee: None,
1344                                default_value: None,
1345                                oneof_index: None,
1346                                json_name: Some("enumType".into()),
1347                                options: None,
1348                                proto3_optional: None,
1349                            },
1350                            FieldDescriptorProto {
1351                                name: Some("extension_range".into()),
1352                                number: Some(5),
1353                                label: Some(Repeated.into()),
1354                                r#type: Some(Message.into()),
1355                                type_name: Some(
1356                                    ".google.protobuf.DescriptorProto.ExtensionRange".into(),
1357                                ),
1358                                extendee: None,
1359                                default_value: None,
1360                                oneof_index: None,
1361                                json_name: Some("extensionRange".into()),
1362                                options: None,
1363                                proto3_optional: None,
1364                            },
1365                            FieldDescriptorProto {
1366                                name: Some("oneof_decl".into()),
1367                                number: Some(8),
1368                                label: Some(Repeated.into()),
1369                                r#type: Some(Message.into()),
1370                                type_name: Some(".google.protobuf.OneofDescriptorProto".into()),
1371                                extendee: None,
1372                                default_value: None,
1373                                oneof_index: None,
1374                                json_name: Some("oneofDecl".into()),
1375                                options: None,
1376                                proto3_optional: None,
1377                            },
1378                            FieldDescriptorProto {
1379                                name: Some("options".into()),
1380                                number: Some(7),
1381                                label: Some(Optional.into()),
1382                                r#type: Some(Message.into()),
1383                                type_name: Some(".google.protobuf.MessageOptions".into()),
1384                                extendee: None,
1385                                default_value: None,
1386                                oneof_index: None,
1387                                json_name: Some("options".into()),
1388                                options: None,
1389                                proto3_optional: None,
1390                            },
1391                            FieldDescriptorProto {
1392                                name: Some("reserved_range".into()),
1393                                number: Some(9),
1394                                label: Some(Repeated.into()),
1395                                r#type: Some(Message.into()),
1396                                type_name: Some(
1397                                    ".google.protobuf.DescriptorProto.ReservedRange".into(),
1398                                ),
1399                                extendee: None,
1400                                default_value: None,
1401                                oneof_index: None,
1402                                json_name: Some("reservedRange".into()),
1403                                options: None,
1404                                proto3_optional: None,
1405                            },
1406                            FieldDescriptorProto {
1407                                name: Some("reserved_name".into()),
1408                                number: Some(10),
1409                                label: Some(Repeated.into()),
1410                                r#type: Some(String.into()),
1411                                type_name: None,
1412                                extendee: None,
1413                                default_value: None,
1414                                oneof_index: None,
1415                                json_name: Some("reservedName".into()),
1416                                options: None,
1417                                proto3_optional: None,
1418                            },
1419                        ],
1420                        extension: vec![],
1421                        nested_type: vec![
1422                            DescriptorProto {
1423                                name: Some("ExtensionRange".into()),
1424                                field: vec![
1425                                    FieldDescriptorProto {
1426                                        name: Some("start".into()),
1427                                        number: Some(1),
1428                                        label: Some(Optional.into()),
1429                                        r#type: Some(Int32.into()),
1430                                        type_name: None,
1431                                        extendee: None,
1432                                        default_value: None,
1433                                        oneof_index: None,
1434                                        json_name: Some("start".into()),
1435                                        options: None,
1436                                        proto3_optional: None,
1437                                    },
1438                                    FieldDescriptorProto {
1439                                        name: Some("end".into()),
1440                                        number: Some(2),
1441                                        label: Some(Optional.into()),
1442                                        r#type: Some(Int32.into()),
1443                                        type_name: None,
1444                                        extendee: None,
1445                                        default_value: None,
1446                                        oneof_index: None,
1447                                        json_name: Some("end".into()),
1448                                        options: None,
1449                                        proto3_optional: None,
1450                                    },
1451                                    FieldDescriptorProto {
1452                                        name: Some("options".into()),
1453                                        number: Some(3),
1454                                        label: Some(Optional.into()),
1455                                        r#type: Some(Message.into()),
1456                                        type_name: Some(
1457                                            ".google.protobuf.ExtensionRangeOptions".into(),
1458                                        ),
1459                                        extendee: None,
1460                                        default_value: None,
1461                                        oneof_index: None,
1462                                        json_name: Some("options".into()),
1463                                        options: None,
1464                                        proto3_optional: None,
1465                                    },
1466                                ],
1467                                extension: vec![],
1468                                nested_type: vec![],
1469                                enum_type: vec![],
1470                                extension_range: vec![],
1471                                oneof_decl: vec![],
1472                                options: None,
1473                                reserved_range: vec![],
1474                                reserved_name: vec![],
1475                            },
1476                            DescriptorProto {
1477                                name: Some("ReservedRange".into()),
1478                                field: vec![
1479                                    FieldDescriptorProto {
1480                                        name: Some("start".into()),
1481                                        number: Some(1),
1482                                        label: Some(Optional.into()),
1483                                        r#type: Some(Int32.into()),
1484                                        type_name: None,
1485                                        extendee: None,
1486                                        default_value: None,
1487                                        oneof_index: None,
1488                                        json_name: Some("start".into()),
1489                                        options: None,
1490                                        proto3_optional: None,
1491                                    },
1492                                    FieldDescriptorProto {
1493                                        name: Some("end".into()),
1494                                        number: Some(2),
1495                                        label: Some(Optional.into()),
1496                                        r#type: Some(Int32.into()),
1497                                        type_name: None,
1498                                        extendee: None,
1499                                        default_value: None,
1500                                        oneof_index: None,
1501                                        json_name: Some("end".into()),
1502                                        options: None,
1503                                        proto3_optional: None,
1504                                    },
1505                                ],
1506                                extension: vec![],
1507                                nested_type: vec![],
1508                                enum_type: vec![],
1509                                extension_range: vec![],
1510                                oneof_decl: vec![],
1511                                options: None,
1512                                reserved_range: vec![],
1513                                reserved_name: vec![],
1514                            },
1515                        ],
1516                        enum_type: vec![],
1517                        extension_range: vec![],
1518                        oneof_decl: vec![],
1519                        options: None,
1520                        reserved_range: vec![],
1521                        reserved_name: vec![],
1522                    },
1523                    DescriptorProto {
1524                        name: Some("ExtensionRangeOptions".into()),
1525                        field: vec![
1526                            FieldDescriptorProto {
1527                                name: Some("uninterpreted_option".into()),
1528                                number: Some(999),
1529                                label: Some(Repeated.into()),
1530                                r#type: Some(Message.into()),
1531                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
1532                                extendee: None,
1533                                default_value: None,
1534                                oneof_index: None,
1535                                json_name: Some("uninterpretedOption".into()),
1536                                options: None,
1537                                proto3_optional: None,
1538                            },
1539                            FieldDescriptorProto {
1540                                name: Some("declaration".into()),
1541                                number: Some(2),
1542                                label: Some(Repeated.into()),
1543                                r#type: Some(Message.into()),
1544                                type_name: Some(
1545                                    ".google.protobuf.ExtensionRangeOptions.Declaration".into(),
1546                                ),
1547                                extendee: None,
1548                                default_value: None,
1549                                oneof_index: None,
1550                                json_name: Some("declaration".into()),
1551                                options: Some(Options::from_prost(FieldOptions {
1552                                    ctype: None,
1553                                    packed: None,
1554                                    jstype: None,
1555                                    lazy: None,
1556                                    deprecated: None,
1557                                    weak: None,
1558                                    uninterpreted_option: vec![],
1559                                })),
1560                                proto3_optional: None,
1561                            },
1562                            FieldDescriptorProto {
1563                                name: Some("features".into()),
1564                                number: Some(50),
1565                                label: Some(Optional.into()),
1566                                r#type: Some(Message.into()),
1567                                type_name: Some(".google.protobuf.FeatureSet".into()),
1568                                extendee: None,
1569                                default_value: None,
1570                                oneof_index: None,
1571                                json_name: Some("features".into()),
1572                                options: None,
1573                                proto3_optional: None,
1574                            },
1575                            FieldDescriptorProto {
1576                                name: Some("verification".into()),
1577                                number: Some(3),
1578                                label: Some(Optional.into()),
1579                                r#type: Some(Enum.into()),
1580                                type_name: Some(
1581                                    ".google.protobuf.ExtensionRangeOptions.VerificationState"
1582                                        .into(),
1583                                ),
1584                                extendee: None,
1585                                default_value: Some("UNVERIFIED".into()),
1586                                oneof_index: None,
1587                                json_name: Some("verification".into()),
1588                                options: None,
1589                                proto3_optional: None,
1590                            },
1591                        ],
1592                        extension: vec![],
1593                        nested_type: vec![DescriptorProto {
1594                            name: Some("Declaration".into()),
1595                            field: vec![
1596                                FieldDescriptorProto {
1597                                    name: Some("number".into()),
1598                                    number: Some(1),
1599                                    label: Some(Optional.into()),
1600                                    r#type: Some(Int32.into()),
1601                                    type_name: None,
1602                                    extendee: None,
1603                                    default_value: None,
1604                                    oneof_index: None,
1605                                    json_name: Some("number".into()),
1606                                    options: None,
1607                                    proto3_optional: None,
1608                                },
1609                                FieldDescriptorProto {
1610                                    name: Some("full_name".into()),
1611                                    number: Some(2),
1612                                    label: Some(Optional.into()),
1613                                    r#type: Some(String.into()),
1614                                    type_name: None,
1615                                    extendee: None,
1616                                    default_value: None,
1617                                    oneof_index: None,
1618                                    json_name: Some("fullName".into()),
1619                                    options: None,
1620                                    proto3_optional: None,
1621                                },
1622                                FieldDescriptorProto {
1623                                    name: Some("type".into()),
1624                                    number: Some(3),
1625                                    label: Some(Optional.into()),
1626                                    r#type: Some(String.into()),
1627                                    type_name: None,
1628                                    extendee: None,
1629                                    default_value: None,
1630                                    oneof_index: None,
1631                                    json_name: Some("type".into()),
1632                                    options: None,
1633                                    proto3_optional: None,
1634                                },
1635                                FieldDescriptorProto {
1636                                    name: Some("reserved".into()),
1637                                    number: Some(5),
1638                                    label: Some(Optional.into()),
1639                                    r#type: Some(Bool.into()),
1640                                    type_name: None,
1641                                    extendee: None,
1642                                    default_value: None,
1643                                    oneof_index: None,
1644                                    json_name: Some("reserved".into()),
1645                                    options: None,
1646                                    proto3_optional: None,
1647                                },
1648                                FieldDescriptorProto {
1649                                    name: Some("repeated".into()),
1650                                    number: Some(6),
1651                                    label: Some(Optional.into()),
1652                                    r#type: Some(Bool.into()),
1653                                    type_name: None,
1654                                    extendee: None,
1655                                    default_value: None,
1656                                    oneof_index: None,
1657                                    json_name: Some("repeated".into()),
1658                                    options: None,
1659                                    proto3_optional: None,
1660                                },
1661                            ],
1662                            extension: vec![],
1663                            nested_type: vec![],
1664                            enum_type: vec![],
1665                            extension_range: vec![],
1666                            oneof_decl: vec![],
1667                            options: None,
1668                            reserved_range: vec![ReservedRange {
1669                                start: Some(4),
1670                                end: Some(5),
1671                            }],
1672                            reserved_name: vec![],
1673                        }],
1674                        enum_type: vec![EnumDescriptorProto {
1675                            name: Some("VerificationState".into()),
1676                            value: vec![
1677                                EnumValueDescriptorProto {
1678                                    name: Some("DECLARATION".into()),
1679                                    number: Some(0),
1680                                    options: None,
1681                                },
1682                                EnumValueDescriptorProto {
1683                                    name: Some("UNVERIFIED".into()),
1684                                    number: Some(1),
1685                                    options: None,
1686                                },
1687                            ],
1688                            options: None,
1689                            reserved_range: vec![],
1690                            reserved_name: vec![],
1691                        }],
1692                        extension_range: vec![ExtensionRange {
1693                            start: Some(1000),
1694                            end: Some(536870912),
1695                            options: None,
1696                        }],
1697                        oneof_decl: vec![],
1698                        options: None,
1699                        reserved_range: vec![],
1700                        reserved_name: vec![],
1701                    },
1702                    DescriptorProto {
1703                        name: Some("FieldDescriptorProto".into()),
1704                        field: vec![
1705                            FieldDescriptorProto {
1706                                name: Some("name".into()),
1707                                number: Some(1),
1708                                label: Some(Optional.into()),
1709                                r#type: Some(String.into()),
1710                                type_name: None,
1711                                extendee: None,
1712                                default_value: None,
1713                                oneof_index: None,
1714                                json_name: Some("name".into()),
1715                                options: None,
1716                                proto3_optional: None,
1717                            },
1718                            FieldDescriptorProto {
1719                                name: Some("number".into()),
1720                                number: Some(3),
1721                                label: Some(Optional.into()),
1722                                r#type: Some(Int32.into()),
1723                                type_name: None,
1724                                extendee: None,
1725                                default_value: None,
1726                                oneof_index: None,
1727                                json_name: Some("number".into()),
1728                                options: None,
1729                                proto3_optional: None,
1730                            },
1731                            FieldDescriptorProto {
1732                                name: Some("label".into()),
1733                                number: Some(4),
1734                                label: Some(Optional.into()),
1735                                r#type: Some(Enum.into()),
1736                                type_name: Some(
1737                                    ".google.protobuf.FieldDescriptorProto.Label".into(),
1738                                ),
1739                                extendee: None,
1740                                default_value: None,
1741                                oneof_index: None,
1742                                json_name: Some("label".into()),
1743                                options: None,
1744                                proto3_optional: None,
1745                            },
1746                            FieldDescriptorProto {
1747                                name: Some("type".into()),
1748                                number: Some(5),
1749                                label: Some(Optional.into()),
1750                                r#type: Some(Enum.into()),
1751                                type_name: Some(
1752                                    ".google.protobuf.FieldDescriptorProto.Type".into(),
1753                                ),
1754                                extendee: None,
1755                                default_value: None,
1756                                oneof_index: None,
1757                                json_name: Some("type".into()),
1758                                options: None,
1759                                proto3_optional: None,
1760                            },
1761                            FieldDescriptorProto {
1762                                name: Some("type_name".into()),
1763                                number: Some(6),
1764                                label: Some(Optional.into()),
1765                                r#type: Some(String.into()),
1766                                type_name: None,
1767                                extendee: None,
1768                                default_value: None,
1769                                oneof_index: None,
1770                                json_name: Some("typeName".into()),
1771                                options: None,
1772                                proto3_optional: None,
1773                            },
1774                            FieldDescriptorProto {
1775                                name: Some("extendee".into()),
1776                                number: Some(2),
1777                                label: Some(Optional.into()),
1778                                r#type: Some(String.into()),
1779                                type_name: None,
1780                                extendee: None,
1781                                default_value: None,
1782                                oneof_index: None,
1783                                json_name: Some("extendee".into()),
1784                                options: None,
1785                                proto3_optional: None,
1786                            },
1787                            FieldDescriptorProto {
1788                                name: Some("default_value".into()),
1789                                number: Some(7),
1790                                label: Some(Optional.into()),
1791                                r#type: Some(String.into()),
1792                                type_name: None,
1793                                extendee: None,
1794                                default_value: None,
1795                                oneof_index: None,
1796                                json_name: Some("defaultValue".into()),
1797                                options: None,
1798                                proto3_optional: None,
1799                            },
1800                            FieldDescriptorProto {
1801                                name: Some("oneof_index".into()),
1802                                number: Some(9),
1803                                label: Some(Optional.into()),
1804                                r#type: Some(Int32.into()),
1805                                type_name: None,
1806                                extendee: None,
1807                                default_value: None,
1808                                oneof_index: None,
1809                                json_name: Some("oneofIndex".into()),
1810                                options: None,
1811                                proto3_optional: None,
1812                            },
1813                            FieldDescriptorProto {
1814                                name: Some("json_name".into()),
1815                                number: Some(10),
1816                                label: Some(Optional.into()),
1817                                r#type: Some(String.into()),
1818                                type_name: None,
1819                                extendee: None,
1820                                default_value: None,
1821                                oneof_index: None,
1822                                json_name: Some("jsonName".into()),
1823                                options: None,
1824                                proto3_optional: None,
1825                            },
1826                            FieldDescriptorProto {
1827                                name: Some("options".into()),
1828                                number: Some(8),
1829                                label: Some(Optional.into()),
1830                                r#type: Some(Message.into()),
1831                                type_name: Some(".google.protobuf.FieldOptions".into()),
1832                                extendee: None,
1833                                default_value: None,
1834                                oneof_index: None,
1835                                json_name: Some("options".into()),
1836                                options: None,
1837                                proto3_optional: None,
1838                            },
1839                            FieldDescriptorProto {
1840                                name: Some("proto3_optional".into()),
1841                                number: Some(17),
1842                                label: Some(Optional.into()),
1843                                r#type: Some(Bool.into()),
1844                                type_name: None,
1845                                extendee: None,
1846                                default_value: None,
1847                                oneof_index: None,
1848                                json_name: Some("proto3Optional".into()),
1849                                options: None,
1850                                proto3_optional: None,
1851                            },
1852                        ],
1853                        extension: vec![],
1854                        nested_type: vec![],
1855                        enum_type: vec![
1856                            EnumDescriptorProto {
1857                                name: Some("Type".into()),
1858                                value: vec![
1859                                    EnumValueDescriptorProto {
1860                                        name: Some("TYPE_DOUBLE".into()),
1861                                        number: Some(1),
1862                                        options: None,
1863                                    },
1864                                    EnumValueDescriptorProto {
1865                                        name: Some("TYPE_FLOAT".into()),
1866                                        number: Some(2),
1867                                        options: None,
1868                                    },
1869                                    EnumValueDescriptorProto {
1870                                        name: Some("TYPE_INT64".into()),
1871                                        number: Some(3),
1872                                        options: None,
1873                                    },
1874                                    EnumValueDescriptorProto {
1875                                        name: Some("TYPE_UINT64".into()),
1876                                        number: Some(4),
1877                                        options: None,
1878                                    },
1879                                    EnumValueDescriptorProto {
1880                                        name: Some("TYPE_INT32".into()),
1881                                        number: Some(5),
1882                                        options: None,
1883                                    },
1884                                    EnumValueDescriptorProto {
1885                                        name: Some("TYPE_FIXED64".into()),
1886                                        number: Some(6),
1887                                        options: None,
1888                                    },
1889                                    EnumValueDescriptorProto {
1890                                        name: Some("TYPE_FIXED32".into()),
1891                                        number: Some(7),
1892                                        options: None,
1893                                    },
1894                                    EnumValueDescriptorProto {
1895                                        name: Some("TYPE_BOOL".into()),
1896                                        number: Some(8),
1897                                        options: None,
1898                                    },
1899                                    EnumValueDescriptorProto {
1900                                        name: Some("TYPE_STRING".into()),
1901                                        number: Some(9),
1902                                        options: None,
1903                                    },
1904                                    EnumValueDescriptorProto {
1905                                        name: Some("TYPE_GROUP".into()),
1906                                        number: Some(10),
1907                                        options: None,
1908                                    },
1909                                    EnumValueDescriptorProto {
1910                                        name: Some("TYPE_MESSAGE".into()),
1911                                        number: Some(11),
1912                                        options: None,
1913                                    },
1914                                    EnumValueDescriptorProto {
1915                                        name: Some("TYPE_BYTES".into()),
1916                                        number: Some(12),
1917                                        options: None,
1918                                    },
1919                                    EnumValueDescriptorProto {
1920                                        name: Some("TYPE_UINT32".into()),
1921                                        number: Some(13),
1922                                        options: None,
1923                                    },
1924                                    EnumValueDescriptorProto {
1925                                        name: Some("TYPE_ENUM".into()),
1926                                        number: Some(14),
1927                                        options: None,
1928                                    },
1929                                    EnumValueDescriptorProto {
1930                                        name: Some("TYPE_SFIXED32".into()),
1931                                        number: Some(15),
1932                                        options: None,
1933                                    },
1934                                    EnumValueDescriptorProto {
1935                                        name: Some("TYPE_SFIXED64".into()),
1936                                        number: Some(16),
1937                                        options: None,
1938                                    },
1939                                    EnumValueDescriptorProto {
1940                                        name: Some("TYPE_SINT32".into()),
1941                                        number: Some(17),
1942                                        options: None,
1943                                    },
1944                                    EnumValueDescriptorProto {
1945                                        name: Some("TYPE_SINT64".into()),
1946                                        number: Some(18),
1947                                        options: None,
1948                                    },
1949                                ],
1950                                options: None,
1951                                reserved_range: vec![],
1952                                reserved_name: vec![],
1953                            },
1954                            EnumDescriptorProto {
1955                                name: Some("Label".into()),
1956                                value: vec![
1957                                    EnumValueDescriptorProto {
1958                                        name: Some("LABEL_OPTIONAL".into()),
1959                                        number: Some(1),
1960                                        options: None,
1961                                    },
1962                                    EnumValueDescriptorProto {
1963                                        name: Some("LABEL_REPEATED".into()),
1964                                        number: Some(3),
1965                                        options: None,
1966                                    },
1967                                    EnumValueDescriptorProto {
1968                                        name: Some("LABEL_REQUIRED".into()),
1969                                        number: Some(2),
1970                                        options: None,
1971                                    },
1972                                ],
1973                                options: None,
1974                                reserved_range: vec![],
1975                                reserved_name: vec![],
1976                            },
1977                        ],
1978                        extension_range: vec![],
1979                        oneof_decl: vec![],
1980                        options: None,
1981                        reserved_range: vec![],
1982                        reserved_name: vec![],
1983                    },
1984                    DescriptorProto {
1985                        name: Some("OneofDescriptorProto".into()),
1986                        field: vec![
1987                            FieldDescriptorProto {
1988                                name: Some("name".into()),
1989                                number: Some(1),
1990                                label: Some(Optional.into()),
1991                                r#type: Some(String.into()),
1992                                type_name: None,
1993                                extendee: None,
1994                                default_value: None,
1995                                oneof_index: None,
1996                                json_name: Some("name".into()),
1997                                options: None,
1998                                proto3_optional: None,
1999                            },
2000                            FieldDescriptorProto {
2001                                name: Some("options".into()),
2002                                number: Some(2),
2003                                label: Some(Optional.into()),
2004                                r#type: Some(Message.into()),
2005                                type_name: Some(".google.protobuf.OneofOptions".into()),
2006                                extendee: None,
2007                                default_value: None,
2008                                oneof_index: None,
2009                                json_name: Some("options".into()),
2010                                options: None,
2011                                proto3_optional: None,
2012                            },
2013                        ],
2014                        extension: vec![],
2015                        nested_type: vec![],
2016                        enum_type: vec![],
2017                        extension_range: vec![],
2018                        oneof_decl: vec![],
2019                        options: None,
2020                        reserved_range: vec![],
2021                        reserved_name: vec![],
2022                    },
2023                    DescriptorProto {
2024                        name: Some("EnumDescriptorProto".into()),
2025                        field: vec![
2026                            FieldDescriptorProto {
2027                                name: Some("name".into()),
2028                                number: Some(1),
2029                                label: Some(Optional.into()),
2030                                r#type: Some(String.into()),
2031                                type_name: None,
2032                                extendee: None,
2033                                default_value: None,
2034                                oneof_index: None,
2035                                json_name: Some("name".into()),
2036                                options: None,
2037                                proto3_optional: None,
2038                            },
2039                            FieldDescriptorProto {
2040                                name: Some("value".into()),
2041                                number: Some(2),
2042                                label: Some(Repeated.into()),
2043                                r#type: Some(Message.into()),
2044                                type_name: Some(".google.protobuf.EnumValueDescriptorProto".into()),
2045                                extendee: None,
2046                                default_value: None,
2047                                oneof_index: None,
2048                                json_name: Some("value".into()),
2049                                options: None,
2050                                proto3_optional: None,
2051                            },
2052                            FieldDescriptorProto {
2053                                name: Some("options".into()),
2054                                number: Some(3),
2055                                label: Some(Optional.into()),
2056                                r#type: Some(Message.into()),
2057                                type_name: Some(".google.protobuf.EnumOptions".into()),
2058                                extendee: None,
2059                                default_value: None,
2060                                oneof_index: None,
2061                                json_name: Some("options".into()),
2062                                options: None,
2063                                proto3_optional: None,
2064                            },
2065                            FieldDescriptorProto {
2066                                name: Some("reserved_range".into()),
2067                                number: Some(4),
2068                                label: Some(Repeated.into()),
2069                                r#type: Some(Message.into()),
2070                                type_name: Some(
2071                                    ".google.protobuf.EnumDescriptorProto.EnumReservedRange".into(),
2072                                ),
2073                                extendee: None,
2074                                default_value: None,
2075                                oneof_index: None,
2076                                json_name: Some("reservedRange".into()),
2077                                options: None,
2078                                proto3_optional: None,
2079                            },
2080                            FieldDescriptorProto {
2081                                name: Some("reserved_name".into()),
2082                                number: Some(5),
2083                                label: Some(Repeated.into()),
2084                                r#type: Some(String.into()),
2085                                type_name: None,
2086                                extendee: None,
2087                                default_value: None,
2088                                oneof_index: None,
2089                                json_name: Some("reservedName".into()),
2090                                options: None,
2091                                proto3_optional: None,
2092                            },
2093                        ],
2094                        extension: vec![],
2095                        nested_type: vec![DescriptorProto {
2096                            name: Some("EnumReservedRange".into()),
2097                            field: vec![
2098                                FieldDescriptorProto {
2099                                    name: Some("start".into()),
2100                                    number: Some(1),
2101                                    label: Some(Optional.into()),
2102                                    r#type: Some(Int32.into()),
2103                                    type_name: None,
2104                                    extendee: None,
2105                                    default_value: None,
2106                                    oneof_index: None,
2107                                    json_name: Some("start".into()),
2108                                    options: None,
2109                                    proto3_optional: None,
2110                                },
2111                                FieldDescriptorProto {
2112                                    name: Some("end".into()),
2113                                    number: Some(2),
2114                                    label: Some(Optional.into()),
2115                                    r#type: Some(Int32.into()),
2116                                    type_name: None,
2117                                    extendee: None,
2118                                    default_value: None,
2119                                    oneof_index: None,
2120                                    json_name: Some("end".into()),
2121                                    options: None,
2122                                    proto3_optional: None,
2123                                },
2124                            ],
2125                            extension: vec![],
2126                            nested_type: vec![],
2127                            enum_type: vec![],
2128                            extension_range: vec![],
2129                            oneof_decl: vec![],
2130                            options: None,
2131                            reserved_range: vec![],
2132                            reserved_name: vec![],
2133                        }],
2134                        enum_type: vec![],
2135                        extension_range: vec![],
2136                        oneof_decl: vec![],
2137                        options: None,
2138                        reserved_range: vec![],
2139                        reserved_name: vec![],
2140                    },
2141                    DescriptorProto {
2142                        name: Some("EnumValueDescriptorProto".into()),
2143                        field: vec![
2144                            FieldDescriptorProto {
2145                                name: Some("name".into()),
2146                                number: Some(1),
2147                                label: Some(Optional.into()),
2148                                r#type: Some(String.into()),
2149                                type_name: None,
2150                                extendee: None,
2151                                default_value: None,
2152                                oneof_index: None,
2153                                json_name: Some("name".into()),
2154                                options: None,
2155                                proto3_optional: None,
2156                            },
2157                            FieldDescriptorProto {
2158                                name: Some("number".into()),
2159                                number: Some(2),
2160                                label: Some(Optional.into()),
2161                                r#type: Some(Int32.into()),
2162                                type_name: None,
2163                                extendee: None,
2164                                default_value: None,
2165                                oneof_index: None,
2166                                json_name: Some("number".into()),
2167                                options: None,
2168                                proto3_optional: None,
2169                            },
2170                            FieldDescriptorProto {
2171                                name: Some("options".into()),
2172                                number: Some(3),
2173                                label: Some(Optional.into()),
2174                                r#type: Some(Message.into()),
2175                                type_name: Some(".google.protobuf.EnumValueOptions".into()),
2176                                extendee: None,
2177                                default_value: None,
2178                                oneof_index: None,
2179                                json_name: Some("options".into()),
2180                                options: None,
2181                                proto3_optional: None,
2182                            },
2183                        ],
2184                        extension: vec![],
2185                        nested_type: vec![],
2186                        enum_type: vec![],
2187                        extension_range: vec![],
2188                        oneof_decl: vec![],
2189                        options: None,
2190                        reserved_range: vec![],
2191                        reserved_name: vec![],
2192                    },
2193                    DescriptorProto {
2194                        name: Some("ServiceDescriptorProto".into()),
2195                        field: vec![
2196                            FieldDescriptorProto {
2197                                name: Some("name".into()),
2198                                number: Some(1),
2199                                label: Some(Optional.into()),
2200                                r#type: Some(String.into()),
2201                                type_name: None,
2202                                extendee: None,
2203                                default_value: None,
2204                                oneof_index: None,
2205                                json_name: Some("name".into()),
2206                                options: None,
2207                                proto3_optional: None,
2208                            },
2209                            FieldDescriptorProto {
2210                                name: Some("method".into()),
2211                                number: Some(2),
2212                                label: Some(Repeated.into()),
2213                                r#type: Some(Message.into()),
2214                                type_name: Some(".google.protobuf.MethodDescriptorProto".into()),
2215                                extendee: None,
2216                                default_value: None,
2217                                oneof_index: None,
2218                                json_name: Some("method".into()),
2219                                options: None,
2220                                proto3_optional: None,
2221                            },
2222                            FieldDescriptorProto {
2223                                name: Some("options".into()),
2224                                number: Some(3),
2225                                label: Some(Optional.into()),
2226                                r#type: Some(Message.into()),
2227                                type_name: Some(".google.protobuf.ServiceOptions".into()),
2228                                extendee: None,
2229                                default_value: None,
2230                                oneof_index: None,
2231                                json_name: Some("options".into()),
2232                                options: None,
2233                                proto3_optional: None,
2234                            },
2235                        ],
2236                        extension: vec![],
2237                        nested_type: vec![],
2238                        enum_type: vec![],
2239                        extension_range: vec![],
2240                        oneof_decl: vec![],
2241                        options: None,
2242                        reserved_range: vec![],
2243                        reserved_name: vec![],
2244                    },
2245                    DescriptorProto {
2246                        name: Some("MethodDescriptorProto".into()),
2247                        field: vec![
2248                            FieldDescriptorProto {
2249                                name: Some("name".into()),
2250                                number: Some(1),
2251                                label: Some(Optional.into()),
2252                                r#type: Some(String.into()),
2253                                type_name: None,
2254                                extendee: None,
2255                                default_value: None,
2256                                oneof_index: None,
2257                                json_name: Some("name".into()),
2258                                options: None,
2259                                proto3_optional: None,
2260                            },
2261                            FieldDescriptorProto {
2262                                name: Some("input_type".into()),
2263                                number: Some(2),
2264                                label: Some(Optional.into()),
2265                                r#type: Some(String.into()),
2266                                type_name: None,
2267                                extendee: None,
2268                                default_value: None,
2269                                oneof_index: None,
2270                                json_name: Some("inputType".into()),
2271                                options: None,
2272                                proto3_optional: None,
2273                            },
2274                            FieldDescriptorProto {
2275                                name: Some("output_type".into()),
2276                                number: Some(3),
2277                                label: Some(Optional.into()),
2278                                r#type: Some(String.into()),
2279                                type_name: None,
2280                                extendee: None,
2281                                default_value: None,
2282                                oneof_index: None,
2283                                json_name: Some("outputType".into()),
2284                                options: None,
2285                                proto3_optional: None,
2286                            },
2287                            FieldDescriptorProto {
2288                                name: Some("options".into()),
2289                                number: Some(4),
2290                                label: Some(Optional.into()),
2291                                r#type: Some(Message.into()),
2292                                type_name: Some(".google.protobuf.MethodOptions".into()),
2293                                extendee: None,
2294                                default_value: None,
2295                                oneof_index: None,
2296                                json_name: Some("options".into()),
2297                                options: None,
2298                                proto3_optional: None,
2299                            },
2300                            FieldDescriptorProto {
2301                                name: Some("client_streaming".into()),
2302                                number: Some(5),
2303                                label: Some(Optional.into()),
2304                                r#type: Some(Bool.into()),
2305                                type_name: None,
2306                                extendee: None,
2307                                default_value: Some("false".into()),
2308                                oneof_index: None,
2309                                json_name: Some("clientStreaming".into()),
2310                                options: None,
2311                                proto3_optional: None,
2312                            },
2313                            FieldDescriptorProto {
2314                                name: Some("server_streaming".into()),
2315                                number: Some(6),
2316                                label: Some(Optional.into()),
2317                                r#type: Some(Bool.into()),
2318                                type_name: None,
2319                                extendee: None,
2320                                default_value: Some("false".into()),
2321                                oneof_index: None,
2322                                json_name: Some("serverStreaming".into()),
2323                                options: None,
2324                                proto3_optional: None,
2325                            },
2326                        ],
2327                        extension: vec![],
2328                        nested_type: vec![],
2329                        enum_type: vec![],
2330                        extension_range: vec![],
2331                        oneof_decl: vec![],
2332                        options: None,
2333                        reserved_range: vec![],
2334                        reserved_name: vec![],
2335                    },
2336                    DescriptorProto {
2337                        name: Some("FileOptions".into()),
2338                        field: vec![
2339                            FieldDescriptorProto {
2340                                name: Some("java_package".into()),
2341                                number: Some(1),
2342                                label: Some(Optional.into()),
2343                                r#type: Some(String.into()),
2344                                type_name: None,
2345                                extendee: None,
2346                                default_value: None,
2347                                oneof_index: None,
2348                                json_name: Some("javaPackage".into()),
2349                                options: None,
2350                                proto3_optional: None,
2351                            },
2352                            FieldDescriptorProto {
2353                                name: Some("java_outer_classname".into()),
2354                                number: Some(8),
2355                                label: Some(Optional.into()),
2356                                r#type: Some(String.into()),
2357                                type_name: None,
2358                                extendee: None,
2359                                default_value: None,
2360                                oneof_index: None,
2361                                json_name: Some("javaOuterClassname".into()),
2362                                options: None,
2363                                proto3_optional: None,
2364                            },
2365                            FieldDescriptorProto {
2366                                name: Some("java_multiple_files".into()),
2367                                number: Some(10),
2368                                label: Some(Optional.into()),
2369                                r#type: Some(Bool.into()),
2370                                type_name: None,
2371                                extendee: None,
2372                                default_value: Some("false".into()),
2373                                oneof_index: None,
2374                                json_name: Some("javaMultipleFiles".into()),
2375                                options: None,
2376                                proto3_optional: None,
2377                            },
2378                            FieldDescriptorProto {
2379                                name: Some("java_generate_equals_and_hash".into()),
2380                                number: Some(20),
2381                                label: Some(Optional.into()),
2382                                r#type: Some(Bool.into()),
2383                                type_name: None,
2384                                extendee: None,
2385                                default_value: None,
2386                                oneof_index: None,
2387                                json_name: Some("javaGenerateEqualsAndHash".into()),
2388                                options: Some(Options::from_prost(FieldOptions {
2389                                    ctype: None,
2390                                    packed: None,
2391                                    jstype: None,
2392                                    lazy: None,
2393                                    deprecated: Some(true),
2394                                    weak: None,
2395                                    uninterpreted_option: vec![],
2396                                })),
2397                                proto3_optional: None,
2398                            },
2399                            FieldDescriptorProto {
2400                                name: Some("java_string_check_utf8".into()),
2401                                number: Some(27),
2402                                label: Some(Optional.into()),
2403                                r#type: Some(Bool.into()),
2404                                type_name: None,
2405                                extendee: None,
2406                                default_value: Some("false".into()),
2407                                oneof_index: None,
2408                                json_name: Some("javaStringCheckUtf8".into()),
2409                                options: None,
2410                                proto3_optional: None,
2411                            },
2412                            FieldDescriptorProto {
2413                                name: Some("optimize_for".into()),
2414                                number: Some(9),
2415                                label: Some(Optional.into()),
2416                                r#type: Some(Enum.into()),
2417                                type_name: Some(".google.protobuf.FileOptions.OptimizeMode".into()),
2418                                extendee: None,
2419                                default_value: Some("SPEED".into()),
2420                                oneof_index: None,
2421                                json_name: Some("optimizeFor".into()),
2422                                options: None,
2423                                proto3_optional: None,
2424                            },
2425                            FieldDescriptorProto {
2426                                name: Some("go_package".into()),
2427                                number: Some(11),
2428                                label: Some(Optional.into()),
2429                                r#type: Some(String.into()),
2430                                type_name: None,
2431                                extendee: None,
2432                                default_value: None,
2433                                oneof_index: None,
2434                                json_name: Some("goPackage".into()),
2435                                options: None,
2436                                proto3_optional: None,
2437                            },
2438                            FieldDescriptorProto {
2439                                name: Some("cc_generic_services".into()),
2440                                number: Some(16),
2441                                label: Some(Optional.into()),
2442                                r#type: Some(Bool.into()),
2443                                type_name: None,
2444                                extendee: None,
2445                                default_value: Some("false".into()),
2446                                oneof_index: None,
2447                                json_name: Some("ccGenericServices".into()),
2448                                options: None,
2449                                proto3_optional: None,
2450                            },
2451                            FieldDescriptorProto {
2452                                name: Some("java_generic_services".into()),
2453                                number: Some(17),
2454                                label: Some(Optional.into()),
2455                                r#type: Some(Bool.into()),
2456                                type_name: None,
2457                                extendee: None,
2458                                default_value: Some("false".into()),
2459                                oneof_index: None,
2460                                json_name: Some("javaGenericServices".into()),
2461                                options: None,
2462                                proto3_optional: None,
2463                            },
2464                            FieldDescriptorProto {
2465                                name: Some("py_generic_services".into()),
2466                                number: Some(18),
2467                                label: Some(Optional.into()),
2468                                r#type: Some(Bool.into()),
2469                                type_name: None,
2470                                extendee: None,
2471                                default_value: Some("false".into()),
2472                                oneof_index: None,
2473                                json_name: Some("pyGenericServices".into()),
2474                                options: None,
2475                                proto3_optional: None,
2476                            },
2477                            FieldDescriptorProto {
2478                                name: Some("php_generic_services".into()),
2479                                number: Some(42),
2480                                label: Some(Optional.into()),
2481                                r#type: Some(Bool.into()),
2482                                type_name: None,
2483                                extendee: None,
2484                                default_value: Some("false".into()),
2485                                oneof_index: None,
2486                                json_name: Some("phpGenericServices".into()),
2487                                options: None,
2488                                proto3_optional: None,
2489                            },
2490                            FieldDescriptorProto {
2491                                name: Some("deprecated".into()),
2492                                number: Some(23),
2493                                label: Some(Optional.into()),
2494                                r#type: Some(Bool.into()),
2495                                type_name: None,
2496                                extendee: None,
2497                                default_value: Some("false".into()),
2498                                oneof_index: None,
2499                                json_name: Some("deprecated".into()),
2500                                options: None,
2501                                proto3_optional: None,
2502                            },
2503                            FieldDescriptorProto {
2504                                name: Some("cc_enable_arenas".into()),
2505                                number: Some(31),
2506                                label: Some(Optional.into()),
2507                                r#type: Some(Bool.into()),
2508                                type_name: None,
2509                                extendee: None,
2510                                default_value: Some("true".into()),
2511                                oneof_index: None,
2512                                json_name: Some("ccEnableArenas".into()),
2513                                options: None,
2514                                proto3_optional: None,
2515                            },
2516                            FieldDescriptorProto {
2517                                name: Some("objc_class_prefix".into()),
2518                                number: Some(36),
2519                                label: Some(Optional.into()),
2520                                r#type: Some(String.into()),
2521                                type_name: None,
2522                                extendee: None,
2523                                default_value: None,
2524                                oneof_index: None,
2525                                json_name: Some("objcClassPrefix".into()),
2526                                options: None,
2527                                proto3_optional: None,
2528                            },
2529                            FieldDescriptorProto {
2530                                name: Some("csharp_namespace".into()),
2531                                number: Some(37),
2532                                label: Some(Optional.into()),
2533                                r#type: Some(String.into()),
2534                                type_name: None,
2535                                extendee: None,
2536                                default_value: None,
2537                                oneof_index: None,
2538                                json_name: Some("csharpNamespace".into()),
2539                                options: None,
2540                                proto3_optional: None,
2541                            },
2542                            FieldDescriptorProto {
2543                                name: Some("swift_prefix".into()),
2544                                number: Some(39),
2545                                label: Some(Optional.into()),
2546                                r#type: Some(String.into()),
2547                                type_name: None,
2548                                extendee: None,
2549                                default_value: None,
2550                                oneof_index: None,
2551                                json_name: Some("swiftPrefix".into()),
2552                                options: None,
2553                                proto3_optional: None,
2554                            },
2555                            FieldDescriptorProto {
2556                                name: Some("php_class_prefix".into()),
2557                                number: Some(40),
2558                                label: Some(Optional.into()),
2559                                r#type: Some(String.into()),
2560                                type_name: None,
2561                                extendee: None,
2562                                default_value: None,
2563                                oneof_index: None,
2564                                json_name: Some("phpClassPrefix".into()),
2565                                options: None,
2566                                proto3_optional: None,
2567                            },
2568                            FieldDescriptorProto {
2569                                name: Some("php_namespace".into()),
2570                                number: Some(41),
2571                                label: Some(Optional.into()),
2572                                r#type: Some(String.into()),
2573                                type_name: None,
2574                                extendee: None,
2575                                default_value: None,
2576                                oneof_index: None,
2577                                json_name: Some("phpNamespace".into()),
2578                                options: None,
2579                                proto3_optional: None,
2580                            },
2581                            FieldDescriptorProto {
2582                                name: Some("php_metadata_namespace".into()),
2583                                number: Some(44),
2584                                label: Some(Optional.into()),
2585                                r#type: Some(String.into()),
2586                                type_name: None,
2587                                extendee: None,
2588                                default_value: None,
2589                                oneof_index: None,
2590                                json_name: Some("phpMetadataNamespace".into()),
2591                                options: None,
2592                                proto3_optional: None,
2593                            },
2594                            FieldDescriptorProto {
2595                                name: Some("ruby_package".into()),
2596                                number: Some(45),
2597                                label: Some(Optional.into()),
2598                                r#type: Some(String.into()),
2599                                type_name: None,
2600                                extendee: None,
2601                                default_value: None,
2602                                oneof_index: None,
2603                                json_name: Some("rubyPackage".into()),
2604                                options: None,
2605                                proto3_optional: None,
2606                            },
2607                            FieldDescriptorProto {
2608                                name: Some("features".into()),
2609                                number: Some(50),
2610                                label: Some(Optional.into()),
2611                                r#type: Some(Message.into()),
2612                                type_name: Some(".google.protobuf.FeatureSet".into()),
2613                                extendee: None,
2614                                default_value: None,
2615                                oneof_index: None,
2616                                json_name: Some("features".into()),
2617                                options: None,
2618                                proto3_optional: None,
2619                            },
2620                            FieldDescriptorProto {
2621                                name: Some("uninterpreted_option".into()),
2622                                number: Some(999),
2623                                label: Some(Repeated.into()),
2624                                r#type: Some(Message.into()),
2625                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
2626                                extendee: None,
2627                                default_value: None,
2628                                oneof_index: None,
2629                                json_name: Some("uninterpretedOption".into()),
2630                                options: None,
2631                                proto3_optional: None,
2632                            },
2633                        ],
2634                        extension: vec![],
2635                        nested_type: vec![],
2636                        enum_type: vec![EnumDescriptorProto {
2637                            name: Some("OptimizeMode".into()),
2638                            value: vec![
2639                                EnumValueDescriptorProto {
2640                                    name: Some("SPEED".into()),
2641                                    number: Some(1),
2642                                    options: None,
2643                                },
2644                                EnumValueDescriptorProto {
2645                                    name: Some("CODE_SIZE".into()),
2646                                    number: Some(2),
2647                                    options: None,
2648                                },
2649                                EnumValueDescriptorProto {
2650                                    name: Some("LITE_RUNTIME".into()),
2651                                    number: Some(3),
2652                                    options: None,
2653                                },
2654                            ],
2655                            options: None,
2656                            reserved_range: vec![],
2657                            reserved_name: vec![],
2658                        }],
2659                        extension_range: vec![ExtensionRange {
2660                            start: Some(1000),
2661                            end: Some(536870912),
2662                            options: None,
2663                        }],
2664                        oneof_decl: vec![],
2665                        options: None,
2666                        reserved_range: vec![ReservedRange {
2667                            start: Some(38),
2668                            end: Some(39),
2669                        }],
2670                        reserved_name: vec![],
2671                    },
2672                    DescriptorProto {
2673                        name: Some("MessageOptions".into()),
2674                        field: vec![
2675                            FieldDescriptorProto {
2676                                name: Some("message_set_wire_format".into()),
2677                                number: Some(1),
2678                                label: Some(Optional.into()),
2679                                r#type: Some(Bool.into()),
2680                                type_name: None,
2681                                extendee: None,
2682                                default_value: Some("false".into()),
2683                                oneof_index: None,
2684                                json_name: Some("messageSetWireFormat".into()),
2685                                options: None,
2686                                proto3_optional: None,
2687                            },
2688                            FieldDescriptorProto {
2689                                name: Some("no_standard_descriptor_accessor".into()),
2690                                number: Some(2),
2691                                label: Some(Optional.into()),
2692                                r#type: Some(Bool.into()),
2693                                type_name: None,
2694                                extendee: None,
2695                                default_value: Some("false".into()),
2696                                oneof_index: None,
2697                                json_name: Some("noStandardDescriptorAccessor".into()),
2698                                options: None,
2699                                proto3_optional: None,
2700                            },
2701                            FieldDescriptorProto {
2702                                name: Some("deprecated".into()),
2703                                number: Some(3),
2704                                label: Some(Optional.into()),
2705                                r#type: Some(Bool.into()),
2706                                type_name: None,
2707                                extendee: None,
2708                                default_value: Some("false".into()),
2709                                oneof_index: None,
2710                                json_name: Some("deprecated".into()),
2711                                options: None,
2712                                proto3_optional: None,
2713                            },
2714                            FieldDescriptorProto {
2715                                name: Some("map_entry".into()),
2716                                number: Some(7),
2717                                label: Some(Optional.into()),
2718                                r#type: Some(Bool.into()),
2719                                type_name: None,
2720                                extendee: None,
2721                                default_value: None,
2722                                oneof_index: None,
2723                                json_name: Some("mapEntry".into()),
2724                                options: None,
2725                                proto3_optional: None,
2726                            },
2727                            FieldDescriptorProto {
2728                                name: Some("deprecated_legacy_json_field_conflicts".into()),
2729                                number: Some(11),
2730                                label: Some(Optional.into()),
2731                                r#type: Some(Bool.into()),
2732                                type_name: None,
2733                                extendee: None,
2734                                default_value: None,
2735                                oneof_index: None,
2736                                json_name: Some("deprecatedLegacyJsonFieldConflicts".into()),
2737                                options: Some(Options::from_prost(FieldOptions {
2738                                    ctype: None,
2739                                    packed: None,
2740                                    jstype: None,
2741                                    lazy: None,
2742                                    deprecated: Some(true),
2743                                    weak: None,
2744                                    uninterpreted_option: vec![],
2745                                })),
2746                                proto3_optional: None,
2747                            },
2748                            FieldDescriptorProto {
2749                                name: Some("features".into()),
2750                                number: Some(12),
2751                                label: Some(Optional.into()),
2752                                r#type: Some(Message.into()),
2753                                type_name: Some(".google.protobuf.FeatureSet".into()),
2754                                extendee: None,
2755                                default_value: None,
2756                                oneof_index: None,
2757                                json_name: Some("features".into()),
2758                                options: None,
2759                                proto3_optional: None,
2760                            },
2761                            FieldDescriptorProto {
2762                                name: Some("uninterpreted_option".into()),
2763                                number: Some(999),
2764                                label: Some(Repeated.into()),
2765                                r#type: Some(Message.into()),
2766                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
2767                                extendee: None,
2768                                default_value: None,
2769                                oneof_index: None,
2770                                json_name: Some("uninterpretedOption".into()),
2771                                options: None,
2772                                proto3_optional: None,
2773                            },
2774                        ],
2775                        extension: vec![],
2776                        nested_type: vec![],
2777                        enum_type: vec![],
2778                        extension_range: vec![ExtensionRange {
2779                            start: Some(1000),
2780                            end: Some(536870912),
2781                            options: None,
2782                        }],
2783                        oneof_decl: vec![],
2784                        options: None,
2785                        reserved_range: vec![
2786                            ReservedRange {
2787                                start: Some(4),
2788                                end: Some(5),
2789                            },
2790                            ReservedRange {
2791                                start: Some(5),
2792                                end: Some(6),
2793                            },
2794                            ReservedRange {
2795                                start: Some(6),
2796                                end: Some(7),
2797                            },
2798                            ReservedRange {
2799                                start: Some(8),
2800                                end: Some(9),
2801                            },
2802                            ReservedRange {
2803                                start: Some(9),
2804                                end: Some(10),
2805                            },
2806                        ],
2807                        reserved_name: vec![],
2808                    },
2809                    DescriptorProto {
2810                        name: Some("FieldOptions".into()),
2811                        field: vec![
2812                            FieldDescriptorProto {
2813                                name: Some("ctype".into()),
2814                                number: Some(1),
2815                                label: Some(Optional.into()),
2816                                r#type: Some(Enum.into()),
2817                                type_name: Some(".google.protobuf.FieldOptions.CType".into()),
2818                                extendee: None,
2819                                default_value: Some("STRING".into()),
2820                                oneof_index: None,
2821                                json_name: Some("ctype".into()),
2822                                options: None,
2823                                proto3_optional: None,
2824                            },
2825                            FieldDescriptorProto {
2826                                name: Some("packed".into()),
2827                                number: Some(2),
2828                                label: Some(Optional.into()),
2829                                r#type: Some(Bool.into()),
2830                                type_name: None,
2831                                extendee: None,
2832                                default_value: None,
2833                                oneof_index: None,
2834                                json_name: Some("packed".into()),
2835                                options: None,
2836                                proto3_optional: None,
2837                            },
2838                            FieldDescriptorProto {
2839                                name: Some("jstype".into()),
2840                                number: Some(6),
2841                                label: Some(Optional.into()),
2842                                r#type: Some(Enum.into()),
2843                                type_name: Some(".google.protobuf.FieldOptions.JSType".into()),
2844                                extendee: None,
2845                                default_value: Some("JS_NORMAL".into()),
2846                                oneof_index: None,
2847                                json_name: Some("jstype".into()),
2848                                options: None,
2849                                proto3_optional: None,
2850                            },
2851                            FieldDescriptorProto {
2852                                name: Some("lazy".into()),
2853                                number: Some(5),
2854                                label: Some(Optional.into()),
2855                                r#type: Some(Bool.into()),
2856                                type_name: None,
2857                                extendee: None,
2858                                default_value: Some("false".into()),
2859                                oneof_index: None,
2860                                json_name: Some("lazy".into()),
2861                                options: None,
2862                                proto3_optional: None,
2863                            },
2864                            FieldDescriptorProto {
2865                                name: Some("unverified_lazy".into()),
2866                                number: Some(15),
2867                                label: Some(Optional.into()),
2868                                r#type: Some(Bool.into()),
2869                                type_name: None,
2870                                extendee: None,
2871                                default_value: Some("false".into()),
2872                                oneof_index: None,
2873                                json_name: Some("unverifiedLazy".into()),
2874                                options: None,
2875                                proto3_optional: None,
2876                            },
2877                            FieldDescriptorProto {
2878                                name: Some("deprecated".into()),
2879                                number: Some(3),
2880                                label: Some(Optional.into()),
2881                                r#type: Some(Bool.into()),
2882                                type_name: None,
2883                                extendee: None,
2884                                default_value: Some("false".into()),
2885                                oneof_index: None,
2886                                json_name: Some("deprecated".into()),
2887                                options: None,
2888                                proto3_optional: None,
2889                            },
2890                            FieldDescriptorProto {
2891                                name: Some("weak".into()),
2892                                number: Some(10),
2893                                label: Some(Optional.into()),
2894                                r#type: Some(Bool.into()),
2895                                type_name: None,
2896                                extendee: None,
2897                                default_value: Some("false".into()),
2898                                oneof_index: None,
2899                                json_name: Some("weak".into()),
2900                                options: None,
2901                                proto3_optional: None,
2902                            },
2903                            FieldDescriptorProto {
2904                                name: Some("debug_redact".into()),
2905                                number: Some(16),
2906                                label: Some(Optional.into()),
2907                                r#type: Some(Bool.into()),
2908                                type_name: None,
2909                                extendee: None,
2910                                default_value: Some("false".into()),
2911                                oneof_index: None,
2912                                json_name: Some("debugRedact".into()),
2913                                options: None,
2914                                proto3_optional: None,
2915                            },
2916                            FieldDescriptorProto {
2917                                name: Some("retention".into()),
2918                                number: Some(17),
2919                                label: Some(Optional.into()),
2920                                r#type: Some(Enum.into()),
2921                                type_name: Some(
2922                                    ".google.protobuf.FieldOptions.OptionRetention".into(),
2923                                ),
2924                                extendee: None,
2925                                default_value: None,
2926                                oneof_index: None,
2927                                json_name: Some("retention".into()),
2928                                options: None,
2929                                proto3_optional: None,
2930                            },
2931                            FieldDescriptorProto {
2932                                name: Some("targets".into()),
2933                                number: Some(19),
2934                                label: Some(Repeated.into()),
2935                                r#type: Some(Enum.into()),
2936                                type_name: Some(
2937                                    ".google.protobuf.FieldOptions.OptionTargetType".into(),
2938                                ),
2939                                extendee: None,
2940                                default_value: None,
2941                                oneof_index: None,
2942                                json_name: Some("targets".into()),
2943                                options: None,
2944                                proto3_optional: None,
2945                            },
2946                            FieldDescriptorProto {
2947                                name: Some("edition_defaults".into()),
2948                                number: Some(20),
2949                                label: Some(Repeated.into()),
2950                                r#type: Some(Message.into()),
2951                                type_name: Some(
2952                                    ".google.protobuf.FieldOptions.EditionDefault".into(),
2953                                ),
2954                                extendee: None,
2955                                default_value: None,
2956                                oneof_index: None,
2957                                json_name: Some("editionDefaults".into()),
2958                                options: None,
2959                                proto3_optional: None,
2960                            },
2961                            FieldDescriptorProto {
2962                                name: Some("features".into()),
2963                                number: Some(21),
2964                                label: Some(Optional.into()),
2965                                r#type: Some(Message.into()),
2966                                type_name: Some(".google.protobuf.FeatureSet".into()),
2967                                extendee: None,
2968                                default_value: None,
2969                                oneof_index: None,
2970                                json_name: Some("features".into()),
2971                                options: None,
2972                                proto3_optional: None,
2973                            },
2974                            FieldDescriptorProto {
2975                                name: Some("uninterpreted_option".into()),
2976                                number: Some(999),
2977                                label: Some(Repeated.into()),
2978                                r#type: Some(Message.into()),
2979                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
2980                                extendee: None,
2981                                default_value: None,
2982                                oneof_index: None,
2983                                json_name: Some("uninterpretedOption".into()),
2984                                options: None,
2985                                proto3_optional: None,
2986                            },
2987                        ],
2988                        extension: vec![],
2989                        nested_type: vec![DescriptorProto {
2990                            name: Some("EditionDefault".into()),
2991                            field: vec![
2992                                FieldDescriptorProto {
2993                                    name: Some("edition".into()),
2994                                    number: Some(3),
2995                                    label: Some(Optional.into()),
2996                                    r#type: Some(Enum.into()),
2997                                    type_name: Some(".google.protobuf.Edition".into()),
2998                                    extendee: None,
2999                                    default_value: None,
3000                                    oneof_index: None,
3001                                    json_name: Some("edition".into()),
3002                                    options: None,
3003                                    proto3_optional: None,
3004                                },
3005                                FieldDescriptorProto {
3006                                    name: Some("value".into()),
3007                                    number: Some(2),
3008                                    label: Some(Optional.into()),
3009                                    r#type: Some(String.into()),
3010                                    type_name: None,
3011                                    extendee: None,
3012                                    default_value: None,
3013                                    oneof_index: None,
3014                                    json_name: Some("value".into()),
3015                                    options: None,
3016                                    proto3_optional: None,
3017                                },
3018                            ],
3019                            extension: vec![],
3020                            nested_type: vec![],
3021                            enum_type: vec![],
3022                            extension_range: vec![],
3023                            oneof_decl: vec![],
3024                            options: None,
3025                            reserved_range: vec![],
3026                            reserved_name: vec![],
3027                        }],
3028                        enum_type: vec![
3029                            EnumDescriptorProto {
3030                                name: Some("CType".into()),
3031                                value: vec![
3032                                    EnumValueDescriptorProto {
3033                                        name: Some("STRING".into()),
3034                                        number: Some(0),
3035                                        options: None,
3036                                    },
3037                                    EnumValueDescriptorProto {
3038                                        name: Some("CORD".into()),
3039                                        number: Some(1),
3040                                        options: None,
3041                                    },
3042                                    EnumValueDescriptorProto {
3043                                        name: Some("STRING_PIECE".into()),
3044                                        number: Some(2),
3045                                        options: None,
3046                                    },
3047                                ],
3048                                options: None,
3049                                reserved_range: vec![],
3050                                reserved_name: vec![],
3051                            },
3052                            EnumDescriptorProto {
3053                                name: Some("JSType".into()),
3054                                value: vec![
3055                                    EnumValueDescriptorProto {
3056                                        name: Some("JS_NORMAL".into()),
3057                                        number: Some(0),
3058                                        options: None,
3059                                    },
3060                                    EnumValueDescriptorProto {
3061                                        name: Some("JS_STRING".into()),
3062                                        number: Some(1),
3063                                        options: None,
3064                                    },
3065                                    EnumValueDescriptorProto {
3066                                        name: Some("JS_NUMBER".into()),
3067                                        number: Some(2),
3068                                        options: None,
3069                                    },
3070                                ],
3071                                options: None,
3072                                reserved_range: vec![],
3073                                reserved_name: vec![],
3074                            },
3075                            EnumDescriptorProto {
3076                                name: Some("OptionRetention".into()),
3077                                value: vec![
3078                                    EnumValueDescriptorProto {
3079                                        name: Some("RETENTION_UNKNOWN".into()),
3080                                        number: Some(0),
3081                                        options: None,
3082                                    },
3083                                    EnumValueDescriptorProto {
3084                                        name: Some("RETENTION_RUNTIME".into()),
3085                                        number: Some(1),
3086                                        options: None,
3087                                    },
3088                                    EnumValueDescriptorProto {
3089                                        name: Some("RETENTION_SOURCE".into()),
3090                                        number: Some(2),
3091                                        options: None,
3092                                    },
3093                                ],
3094                                options: None,
3095                                reserved_range: vec![],
3096                                reserved_name: vec![],
3097                            },
3098                            EnumDescriptorProto {
3099                                name: Some("OptionTargetType".into()),
3100                                value: vec![
3101                                    EnumValueDescriptorProto {
3102                                        name: Some("TARGET_TYPE_UNKNOWN".into()),
3103                                        number: Some(0),
3104                                        options: None,
3105                                    },
3106                                    EnumValueDescriptorProto {
3107                                        name: Some("TARGET_TYPE_FILE".into()),
3108                                        number: Some(1),
3109                                        options: None,
3110                                    },
3111                                    EnumValueDescriptorProto {
3112                                        name: Some("TARGET_TYPE_EXTENSION_RANGE".into()),
3113                                        number: Some(2),
3114                                        options: None,
3115                                    },
3116                                    EnumValueDescriptorProto {
3117                                        name: Some("TARGET_TYPE_MESSAGE".into()),
3118                                        number: Some(3),
3119                                        options: None,
3120                                    },
3121                                    EnumValueDescriptorProto {
3122                                        name: Some("TARGET_TYPE_FIELD".into()),
3123                                        number: Some(4),
3124                                        options: None,
3125                                    },
3126                                    EnumValueDescriptorProto {
3127                                        name: Some("TARGET_TYPE_ONEOF".into()),
3128                                        number: Some(5),
3129                                        options: None,
3130                                    },
3131                                    EnumValueDescriptorProto {
3132                                        name: Some("TARGET_TYPE_ENUM".into()),
3133                                        number: Some(6),
3134                                        options: None,
3135                                    },
3136                                    EnumValueDescriptorProto {
3137                                        name: Some("TARGET_TYPE_ENUM_ENTRY".into()),
3138                                        number: Some(7),
3139                                        options: None,
3140                                    },
3141                                    EnumValueDescriptorProto {
3142                                        name: Some("TARGET_TYPE_SERVICE".into()),
3143                                        number: Some(8),
3144                                        options: None,
3145                                    },
3146                                    EnumValueDescriptorProto {
3147                                        name: Some("TARGET_TYPE_METHOD".into()),
3148                                        number: Some(9),
3149                                        options: None,
3150                                    },
3151                                ],
3152                                options: None,
3153                                reserved_range: vec![],
3154                                reserved_name: vec![],
3155                            },
3156                        ],
3157                        extension_range: vec![ExtensionRange {
3158                            start: Some(1000),
3159                            end: Some(536870912),
3160                            options: None,
3161                        }],
3162                        oneof_decl: vec![],
3163                        options: None,
3164                        reserved_range: vec![
3165                            ReservedRange {
3166                                start: Some(4),
3167                                end: Some(5),
3168                            },
3169                            ReservedRange {
3170                                start: Some(18),
3171                                end: Some(19),
3172                            },
3173                        ],
3174                        reserved_name: vec![],
3175                    },
3176                    DescriptorProto {
3177                        name: Some("OneofOptions".into()),
3178                        field: vec![
3179                            FieldDescriptorProto {
3180                                name: Some("features".into()),
3181                                number: Some(1),
3182                                label: Some(Optional.into()),
3183                                r#type: Some(Message.into()),
3184                                type_name: Some(".google.protobuf.FeatureSet".into()),
3185                                extendee: None,
3186                                default_value: None,
3187                                oneof_index: None,
3188                                json_name: Some("features".into()),
3189                                options: None,
3190                                proto3_optional: None,
3191                            },
3192                            FieldDescriptorProto {
3193                                name: Some("uninterpreted_option".into()),
3194                                number: Some(999),
3195                                label: Some(Repeated.into()),
3196                                r#type: Some(Message.into()),
3197                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
3198                                extendee: None,
3199                                default_value: None,
3200                                oneof_index: None,
3201                                json_name: Some("uninterpretedOption".into()),
3202                                options: None,
3203                                proto3_optional: None,
3204                            },
3205                        ],
3206                        extension: vec![],
3207                        nested_type: vec![],
3208                        enum_type: vec![],
3209                        extension_range: vec![ExtensionRange {
3210                            start: Some(1000),
3211                            end: Some(536870912),
3212                            options: None,
3213                        }],
3214                        oneof_decl: vec![],
3215                        options: None,
3216                        reserved_range: vec![],
3217                        reserved_name: vec![],
3218                    },
3219                    DescriptorProto {
3220                        name: Some("EnumOptions".into()),
3221                        field: vec![
3222                            FieldDescriptorProto {
3223                                name: Some("allow_alias".into()),
3224                                number: Some(2),
3225                                label: Some(Optional.into()),
3226                                r#type: Some(Bool.into()),
3227                                type_name: None,
3228                                extendee: None,
3229                                default_value: None,
3230                                oneof_index: None,
3231                                json_name: Some("allowAlias".into()),
3232                                options: None,
3233                                proto3_optional: None,
3234                            },
3235                            FieldDescriptorProto {
3236                                name: Some("deprecated".into()),
3237                                number: Some(3),
3238                                label: Some(Optional.into()),
3239                                r#type: Some(Bool.into()),
3240                                type_name: None,
3241                                extendee: None,
3242                                default_value: Some("false".into()),
3243                                oneof_index: None,
3244                                json_name: Some("deprecated".into()),
3245                                options: None,
3246                                proto3_optional: None,
3247                            },
3248                            FieldDescriptorProto {
3249                                name: Some("deprecated_legacy_json_field_conflicts".into()),
3250                                number: Some(6),
3251                                label: Some(Optional.into()),
3252                                r#type: Some(Bool.into()),
3253                                type_name: None,
3254                                extendee: None,
3255                                default_value: None,
3256                                oneof_index: None,
3257                                json_name: Some("deprecatedLegacyJsonFieldConflicts".into()),
3258                                options: Some(Options::from_prost(FieldOptions {
3259                                    ctype: None,
3260                                    packed: None,
3261                                    jstype: None,
3262                                    lazy: None,
3263                                    deprecated: Some(true),
3264                                    weak: None,
3265                                    uninterpreted_option: vec![],
3266                                })),
3267                                proto3_optional: None,
3268                            },
3269                            FieldDescriptorProto {
3270                                name: Some("features".into()),
3271                                number: Some(7),
3272                                label: Some(Optional.into()),
3273                                r#type: Some(Message.into()),
3274                                type_name: Some(".google.protobuf.FeatureSet".into()),
3275                                extendee: None,
3276                                default_value: None,
3277                                oneof_index: None,
3278                                json_name: Some("features".into()),
3279                                options: None,
3280                                proto3_optional: None,
3281                            },
3282                            FieldDescriptorProto {
3283                                name: Some("uninterpreted_option".into()),
3284                                number: Some(999),
3285                                label: Some(Repeated.into()),
3286                                r#type: Some(Message.into()),
3287                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
3288                                extendee: None,
3289                                default_value: None,
3290                                oneof_index: None,
3291                                json_name: Some("uninterpretedOption".into()),
3292                                options: None,
3293                                proto3_optional: None,
3294                            },
3295                        ],
3296                        extension: vec![],
3297                        nested_type: vec![],
3298                        enum_type: vec![],
3299                        extension_range: vec![ExtensionRange {
3300                            start: Some(1000),
3301                            end: Some(536870912),
3302                            options: None,
3303                        }],
3304                        oneof_decl: vec![],
3305                        options: None,
3306                        reserved_range: vec![ReservedRange {
3307                            start: Some(5),
3308                            end: Some(6),
3309                        }],
3310                        reserved_name: vec![],
3311                    },
3312                    DescriptorProto {
3313                        name: Some("EnumValueOptions".into()),
3314                        field: vec![
3315                            FieldDescriptorProto {
3316                                name: Some("deprecated".into()),
3317                                number: Some(1),
3318                                label: Some(Optional.into()),
3319                                r#type: Some(Bool.into()),
3320                                type_name: None,
3321                                extendee: None,
3322                                default_value: Some("false".into()),
3323                                oneof_index: None,
3324                                json_name: Some("deprecated".into()),
3325                                options: None,
3326                                proto3_optional: None,
3327                            },
3328                            FieldDescriptorProto {
3329                                name: Some("features".into()),
3330                                number: Some(2),
3331                                label: Some(Optional.into()),
3332                                r#type: Some(Message.into()),
3333                                type_name: Some(".google.protobuf.FeatureSet".into()),
3334                                extendee: None,
3335                                default_value: None,
3336                                oneof_index: None,
3337                                json_name: Some("features".into()),
3338                                options: None,
3339                                proto3_optional: None,
3340                            },
3341                            FieldDescriptorProto {
3342                                name: Some("debug_redact".into()),
3343                                number: Some(3),
3344                                label: Some(Optional.into()),
3345                                r#type: Some(Bool.into()),
3346                                type_name: None,
3347                                extendee: None,
3348                                default_value: Some("false".into()),
3349                                oneof_index: None,
3350                                json_name: Some("debugRedact".into()),
3351                                options: None,
3352                                proto3_optional: None,
3353                            },
3354                            FieldDescriptorProto {
3355                                name: Some("uninterpreted_option".into()),
3356                                number: Some(999),
3357                                label: Some(Repeated.into()),
3358                                r#type: Some(Message.into()),
3359                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
3360                                extendee: None,
3361                                default_value: None,
3362                                oneof_index: None,
3363                                json_name: Some("uninterpretedOption".into()),
3364                                options: None,
3365                                proto3_optional: None,
3366                            },
3367                        ],
3368                        extension: vec![],
3369                        nested_type: vec![],
3370                        enum_type: vec![],
3371                        extension_range: vec![ExtensionRange {
3372                            start: Some(1000),
3373                            end: Some(536870912),
3374                            options: None,
3375                        }],
3376                        oneof_decl: vec![],
3377                        options: None,
3378                        reserved_range: vec![],
3379                        reserved_name: vec![],
3380                    },
3381                    DescriptorProto {
3382                        name: Some("ServiceOptions".into()),
3383                        field: vec![
3384                            FieldDescriptorProto {
3385                                name: Some("features".into()),
3386                                number: Some(34),
3387                                label: Some(Optional.into()),
3388                                r#type: Some(Message.into()),
3389                                type_name: Some(".google.protobuf.FeatureSet".into()),
3390                                extendee: None,
3391                                default_value: None,
3392                                oneof_index: None,
3393                                json_name: Some("features".into()),
3394                                options: None,
3395                                proto3_optional: None,
3396                            },
3397                            FieldDescriptorProto {
3398                                name: Some("deprecated".into()),
3399                                number: Some(33),
3400                                label: Some(Optional.into()),
3401                                r#type: Some(Bool.into()),
3402                                type_name: None,
3403                                extendee: None,
3404                                default_value: Some("false".into()),
3405                                oneof_index: None,
3406                                json_name: Some("deprecated".into()),
3407                                options: None,
3408                                proto3_optional: None,
3409                            },
3410                            FieldDescriptorProto {
3411                                name: Some("uninterpreted_option".into()),
3412                                number: Some(999),
3413                                label: Some(Repeated.into()),
3414                                r#type: Some(Message.into()),
3415                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
3416                                extendee: None,
3417                                default_value: None,
3418                                oneof_index: None,
3419                                json_name: Some("uninterpretedOption".into()),
3420                                options: None,
3421                                proto3_optional: None,
3422                            },
3423                        ],
3424                        extension: vec![],
3425                        nested_type: vec![],
3426                        enum_type: vec![],
3427                        extension_range: vec![ExtensionRange {
3428                            start: Some(1000),
3429                            end: Some(536870912),
3430                            options: None,
3431                        }],
3432                        oneof_decl: vec![],
3433                        options: None,
3434                        reserved_range: vec![],
3435                        reserved_name: vec![],
3436                    },
3437                    DescriptorProto {
3438                        name: Some("MethodOptions".into()),
3439                        field: vec![
3440                            FieldDescriptorProto {
3441                                name: Some("deprecated".into()),
3442                                number: Some(33),
3443                                label: Some(Optional.into()),
3444                                r#type: Some(Bool.into()),
3445                                type_name: None,
3446                                extendee: None,
3447                                default_value: Some("false".into()),
3448                                oneof_index: None,
3449                                json_name: Some("deprecated".into()),
3450                                options: None,
3451                                proto3_optional: None,
3452                            },
3453                            FieldDescriptorProto {
3454                                name: Some("idempotency_level".into()),
3455                                number: Some(34),
3456                                label: Some(Optional.into()),
3457                                r#type: Some(Enum.into()),
3458                                type_name: Some(
3459                                    ".google.protobuf.MethodOptions.IdempotencyLevel".into(),
3460                                ),
3461                                extendee: None,
3462                                default_value: Some("IDEMPOTENCY_UNKNOWN".into()),
3463                                oneof_index: None,
3464                                json_name: Some("idempotencyLevel".into()),
3465                                options: None,
3466                                proto3_optional: None,
3467                            },
3468                            FieldDescriptorProto {
3469                                name: Some("features".into()),
3470                                number: Some(35),
3471                                label: Some(Optional.into()),
3472                                r#type: Some(Message.into()),
3473                                type_name: Some(".google.protobuf.FeatureSet".into()),
3474                                extendee: None,
3475                                default_value: None,
3476                                oneof_index: None,
3477                                json_name: Some("features".into()),
3478                                options: None,
3479                                proto3_optional: None,
3480                            },
3481                            FieldDescriptorProto {
3482                                name: Some("uninterpreted_option".into()),
3483                                number: Some(999),
3484                                label: Some(Repeated.into()),
3485                                r#type: Some(Message.into()),
3486                                type_name: Some(".google.protobuf.UninterpretedOption".into()),
3487                                extendee: None,
3488                                default_value: None,
3489                                oneof_index: None,
3490                                json_name: Some("uninterpretedOption".into()),
3491                                options: None,
3492                                proto3_optional: None,
3493                            },
3494                        ],
3495                        extension: vec![],
3496                        nested_type: vec![],
3497                        enum_type: vec![EnumDescriptorProto {
3498                            name: Some("IdempotencyLevel".into()),
3499                            value: vec![
3500                                EnumValueDescriptorProto {
3501                                    name: Some("IDEMPOTENCY_UNKNOWN".into()),
3502                                    number: Some(0),
3503                                    options: None,
3504                                },
3505                                EnumValueDescriptorProto {
3506                                    name: Some("NO_SIDE_EFFECTS".into()),
3507                                    number: Some(1),
3508                                    options: None,
3509                                },
3510                                EnumValueDescriptorProto {
3511                                    name: Some("IDEMPOTENT".into()),
3512                                    number: Some(2),
3513                                    options: None,
3514                                },
3515                            ],
3516                            options: None,
3517                            reserved_range: vec![],
3518                            reserved_name: vec![],
3519                        }],
3520                        extension_range: vec![ExtensionRange {
3521                            start: Some(1000),
3522                            end: Some(536870912),
3523                            options: None,
3524                        }],
3525                        oneof_decl: vec![],
3526                        options: None,
3527                        reserved_range: vec![],
3528                        reserved_name: vec![],
3529                    },
3530                    DescriptorProto {
3531                        name: Some("UninterpretedOption".into()),
3532                        field: vec![
3533                            FieldDescriptorProto {
3534                                name: Some("name".into()),
3535                                number: Some(2),
3536                                label: Some(Repeated.into()),
3537                                r#type: Some(Message.into()),
3538                                type_name: Some(
3539                                    ".google.protobuf.UninterpretedOption.NamePart".into(),
3540                                ),
3541                                extendee: None,
3542                                default_value: None,
3543                                oneof_index: None,
3544                                json_name: Some("name".into()),
3545                                options: None,
3546                                proto3_optional: None,
3547                            },
3548                            FieldDescriptorProto {
3549                                name: Some("identifier_value".into()),
3550                                number: Some(3),
3551                                label: Some(Optional.into()),
3552                                r#type: Some(String.into()),
3553                                type_name: None,
3554                                extendee: None,
3555                                default_value: None,
3556                                oneof_index: None,
3557                                json_name: Some("identifierValue".into()),
3558                                options: None,
3559                                proto3_optional: None,
3560                            },
3561                            FieldDescriptorProto {
3562                                name: Some("positive_int_value".into()),
3563                                number: Some(4),
3564                                label: Some(Optional.into()),
3565                                r#type: Some(Uint64.into()),
3566                                type_name: None,
3567                                extendee: None,
3568                                default_value: None,
3569                                oneof_index: None,
3570                                json_name: Some("positiveIntValue".into()),
3571                                options: None,
3572                                proto3_optional: None,
3573                            },
3574                            FieldDescriptorProto {
3575                                name: Some("negative_int_value".into()),
3576                                number: Some(5),
3577                                label: Some(Optional.into()),
3578                                r#type: Some(Int64.into()),
3579                                type_name: None,
3580                                extendee: None,
3581                                default_value: None,
3582                                oneof_index: None,
3583                                json_name: Some("negativeIntValue".into()),
3584                                options: None,
3585                                proto3_optional: None,
3586                            },
3587                            FieldDescriptorProto {
3588                                name: Some("double_value".into()),
3589                                number: Some(6),
3590                                label: Some(Optional.into()),
3591                                r#type: Some(Double.into()),
3592                                type_name: None,
3593                                extendee: None,
3594                                default_value: None,
3595                                oneof_index: None,
3596                                json_name: Some("doubleValue".into()),
3597                                options: None,
3598                                proto3_optional: None,
3599                            },
3600                            FieldDescriptorProto {
3601                                name: Some("string_value".into()),
3602                                number: Some(7),
3603                                label: Some(Optional.into()),
3604                                r#type: Some(Bytes.into()),
3605                                type_name: None,
3606                                extendee: None,
3607                                default_value: None,
3608                                oneof_index: None,
3609                                json_name: Some("stringValue".into()),
3610                                options: None,
3611                                proto3_optional: None,
3612                            },
3613                            FieldDescriptorProto {
3614                                name: Some("aggregate_value".into()),
3615                                number: Some(8),
3616                                label: Some(Optional.into()),
3617                                r#type: Some(String.into()),
3618                                type_name: None,
3619                                extendee: None,
3620                                default_value: None,
3621                                oneof_index: None,
3622                                json_name: Some("aggregateValue".into()),
3623                                options: None,
3624                                proto3_optional: None,
3625                            },
3626                        ],
3627                        extension: vec![],
3628                        nested_type: vec![DescriptorProto {
3629                            name: Some("NamePart".into()),
3630                            field: vec![
3631                                FieldDescriptorProto {
3632                                    name: Some("name_part".into()),
3633                                    number: Some(1),
3634                                    label: Some(Required.into()),
3635                                    r#type: Some(String.into()),
3636                                    type_name: None,
3637                                    extendee: None,
3638                                    default_value: None,
3639                                    oneof_index: None,
3640                                    json_name: Some("namePart".into()),
3641                                    options: None,
3642                                    proto3_optional: None,
3643                                },
3644                                FieldDescriptorProto {
3645                                    name: Some("is_extension".into()),
3646                                    number: Some(2),
3647                                    label: Some(Required.into()),
3648                                    r#type: Some(Bool.into()),
3649                                    type_name: None,
3650                                    extendee: None,
3651                                    default_value: None,
3652                                    oneof_index: None,
3653                                    json_name: Some("isExtension".into()),
3654                                    options: None,
3655                                    proto3_optional: None,
3656                                },
3657                            ],
3658                            extension: vec![],
3659                            nested_type: vec![],
3660                            enum_type: vec![],
3661                            extension_range: vec![],
3662                            oneof_decl: vec![],
3663                            options: None,
3664                            reserved_range: vec![],
3665                            reserved_name: vec![],
3666                        }],
3667                        enum_type: vec![],
3668                        extension_range: vec![],
3669                        oneof_decl: vec![],
3670                        options: None,
3671                        reserved_range: vec![],
3672                        reserved_name: vec![],
3673                    },
3674                    DescriptorProto {
3675                        name: Some("FeatureSet".into()),
3676                        field: vec![
3677                            FieldDescriptorProto {
3678                                name: Some("field_presence".into()),
3679                                number: Some(1),
3680                                label: Some(Optional.into()),
3681                                r#type: Some(Enum.into()),
3682                                type_name: Some(".google.protobuf.FeatureSet.FieldPresence".into()),
3683                                extendee: None,
3684                                default_value: None,
3685                                oneof_index: None,
3686                                json_name: Some("fieldPresence".into()),
3687                                options: Some(Options::from_prost(FieldOptions {
3688                                    ctype: None,
3689                                    packed: None,
3690                                    jstype: None,
3691                                    lazy: None,
3692                                    deprecated: None,
3693                                    weak: None,
3694                                    uninterpreted_option: vec![],
3695                                })),
3696                                proto3_optional: None,
3697                            },
3698                            FieldDescriptorProto {
3699                                name: Some("enum_type".into()),
3700                                number: Some(2),
3701                                label: Some(Optional.into()),
3702                                r#type: Some(Enum.into()),
3703                                type_name: Some(".google.protobuf.FeatureSet.EnumType".into()),
3704                                extendee: None,
3705                                default_value: None,
3706                                oneof_index: None,
3707                                json_name: Some("enumType".into()),
3708                                options: Some(Options::from_prost(FieldOptions {
3709                                    ctype: None,
3710                                    packed: None,
3711                                    jstype: None,
3712                                    lazy: None,
3713                                    deprecated: None,
3714                                    weak: None,
3715                                    uninterpreted_option: vec![],
3716                                })),
3717                                proto3_optional: None,
3718                            },
3719                            FieldDescriptorProto {
3720                                name: Some("repeated_field_encoding".into()),
3721                                number: Some(3),
3722                                label: Some(Optional.into()),
3723                                r#type: Some(Enum.into()),
3724                                type_name: Some(
3725                                    ".google.protobuf.FeatureSet.RepeatedFieldEncoding".into(),
3726                                ),
3727                                extendee: None,
3728                                default_value: None,
3729                                oneof_index: None,
3730                                json_name: Some("repeatedFieldEncoding".into()),
3731                                options: Some(Options::from_prost(FieldOptions {
3732                                    ctype: None,
3733                                    packed: None,
3734                                    jstype: None,
3735                                    lazy: None,
3736                                    deprecated: None,
3737                                    weak: None,
3738                                    uninterpreted_option: vec![],
3739                                })),
3740                                proto3_optional: None,
3741                            },
3742                            FieldDescriptorProto {
3743                                name: Some("utf8_validation".into()),
3744                                number: Some(4),
3745                                label: Some(Optional.into()),
3746                                r#type: Some(Enum.into()),
3747                                type_name: Some(
3748                                    ".google.protobuf.FeatureSet.Utf8Validation".into(),
3749                                ),
3750                                extendee: None,
3751                                default_value: None,
3752                                oneof_index: None,
3753                                json_name: Some("utf8Validation".into()),
3754                                options: Some(Options::from_prost(FieldOptions {
3755                                    ctype: None,
3756                                    packed: None,
3757                                    jstype: None,
3758                                    lazy: None,
3759                                    deprecated: None,
3760                                    weak: None,
3761                                    uninterpreted_option: vec![],
3762                                })),
3763                                proto3_optional: None,
3764                            },
3765                            FieldDescriptorProto {
3766                                name: Some("message_encoding".into()),
3767                                number: Some(5),
3768                                label: Some(Optional.into()),
3769                                r#type: Some(Enum.into()),
3770                                type_name: Some(
3771                                    ".google.protobuf.FeatureSet.MessageEncoding".into(),
3772                                ),
3773                                extendee: None,
3774                                default_value: None,
3775                                oneof_index: None,
3776                                json_name: Some("messageEncoding".into()),
3777                                options: Some(Options::from_prost(FieldOptions {
3778                                    ctype: None,
3779                                    packed: None,
3780                                    jstype: None,
3781                                    lazy: None,
3782                                    deprecated: None,
3783                                    weak: None,
3784                                    uninterpreted_option: vec![],
3785                                })),
3786                                proto3_optional: None,
3787                            },
3788                            FieldDescriptorProto {
3789                                name: Some("json_format".into()),
3790                                number: Some(6),
3791                                label: Some(Optional.into()),
3792                                r#type: Some(Enum.into()),
3793                                type_name: Some(".google.protobuf.FeatureSet.JsonFormat".into()),
3794                                extendee: None,
3795                                default_value: None,
3796                                oneof_index: None,
3797                                json_name: Some("jsonFormat".into()),
3798                                options: Some(Options::from_prost(FieldOptions {
3799                                    ctype: None,
3800                                    packed: None,
3801                                    jstype: None,
3802                                    lazy: None,
3803                                    deprecated: None,
3804                                    weak: None,
3805                                    uninterpreted_option: vec![],
3806                                })),
3807                                proto3_optional: None,
3808                            },
3809                        ],
3810                        extension: vec![],
3811                        nested_type: vec![],
3812                        enum_type: vec![
3813                            EnumDescriptorProto {
3814                                name: Some("FieldPresence".into()),
3815                                value: vec![
3816                                    EnumValueDescriptorProto {
3817                                        name: Some("FIELD_PRESENCE_UNKNOWN".into()),
3818                                        number: Some(0),
3819                                        options: None,
3820                                    },
3821                                    EnumValueDescriptorProto {
3822                                        name: Some("EXPLICIT".into()),
3823                                        number: Some(1),
3824                                        options: None,
3825                                    },
3826                                    EnumValueDescriptorProto {
3827                                        name: Some("IMPLICIT".into()),
3828                                        number: Some(2),
3829                                        options: None,
3830                                    },
3831                                    EnumValueDescriptorProto {
3832                                        name: Some("LEGACY_REQUIRED".into()),
3833                                        number: Some(3),
3834                                        options: None,
3835                                    },
3836                                ],
3837                                options: None,
3838                                reserved_range: vec![],
3839                                reserved_name: vec![],
3840                            },
3841                            EnumDescriptorProto {
3842                                name: Some("EnumType".into()),
3843                                value: vec![
3844                                    EnumValueDescriptorProto {
3845                                        name: Some("ENUM_TYPE_UNKNOWN".into()),
3846                                        number: Some(0),
3847                                        options: None,
3848                                    },
3849                                    EnumValueDescriptorProto {
3850                                        name: Some("OPEN".into()),
3851                                        number: Some(1),
3852                                        options: None,
3853                                    },
3854                                    EnumValueDescriptorProto {
3855                                        name: Some("CLOSED".into()),
3856                                        number: Some(2),
3857                                        options: None,
3858                                    },
3859                                ],
3860                                options: None,
3861                                reserved_range: vec![],
3862                                reserved_name: vec![],
3863                            },
3864                            EnumDescriptorProto {
3865                                name: Some("RepeatedFieldEncoding".into()),
3866                                value: vec![
3867                                    EnumValueDescriptorProto {
3868                                        name: Some("REPEATED_FIELD_ENCODING_UNKNOWN".into()),
3869                                        number: Some(0),
3870                                        options: None,
3871                                    },
3872                                    EnumValueDescriptorProto {
3873                                        name: Some("PACKED".into()),
3874                                        number: Some(1),
3875                                        options: None,
3876                                    },
3877                                    EnumValueDescriptorProto {
3878                                        name: Some("EXPANDED".into()),
3879                                        number: Some(2),
3880                                        options: None,
3881                                    },
3882                                ],
3883                                options: None,
3884                                reserved_range: vec![],
3885                                reserved_name: vec![],
3886                            },
3887                            EnumDescriptorProto {
3888                                name: Some("Utf8Validation".into()),
3889                                value: vec![
3890                                    EnumValueDescriptorProto {
3891                                        name: Some("UTF8_VALIDATION_UNKNOWN".into()),
3892                                        number: Some(0),
3893                                        options: None,
3894                                    },
3895                                    EnumValueDescriptorProto {
3896                                        name: Some("NONE".into()),
3897                                        number: Some(1),
3898                                        options: None,
3899                                    },
3900                                    EnumValueDescriptorProto {
3901                                        name: Some("VERIFY".into()),
3902                                        number: Some(2),
3903                                        options: None,
3904                                    },
3905                                ],
3906                                options: None,
3907                                reserved_range: vec![],
3908                                reserved_name: vec![],
3909                            },
3910                            EnumDescriptorProto {
3911                                name: Some("MessageEncoding".into()),
3912                                value: vec![
3913                                    EnumValueDescriptorProto {
3914                                        name: Some("MESSAGE_ENCODING_UNKNOWN".into()),
3915                                        number: Some(0),
3916                                        options: None,
3917                                    },
3918                                    EnumValueDescriptorProto {
3919                                        name: Some("LENGTH_PREFIXED".into()),
3920                                        number: Some(1),
3921                                        options: None,
3922                                    },
3923                                    EnumValueDescriptorProto {
3924                                        name: Some("DELIMITED".into()),
3925                                        number: Some(2),
3926                                        options: None,
3927                                    },
3928                                ],
3929                                options: None,
3930                                reserved_range: vec![],
3931                                reserved_name: vec![],
3932                            },
3933                            EnumDescriptorProto {
3934                                name: Some("JsonFormat".into()),
3935                                value: vec![
3936                                    EnumValueDescriptorProto {
3937                                        name: Some("JSON_FORMAT_UNKNOWN".into()),
3938                                        number: Some(0),
3939                                        options: None,
3940                                    },
3941                                    EnumValueDescriptorProto {
3942                                        name: Some("ALLOW".into()),
3943                                        number: Some(1),
3944                                        options: None,
3945                                    },
3946                                    EnumValueDescriptorProto {
3947                                        name: Some("LEGACY_BEST_EFFORT".into()),
3948                                        number: Some(2),
3949                                        options: None,
3950                                    },
3951                                ],
3952                                options: None,
3953                                reserved_range: vec![],
3954                                reserved_name: vec![],
3955                            },
3956                        ],
3957                        extension_range: vec![
3958                            ExtensionRange {
3959                                start: Some(1000),
3960                                end: Some(1001),
3961                                options: None,
3962                            },
3963                            ExtensionRange {
3964                                start: Some(1001),
3965                                end: Some(1002),
3966                                options: None,
3967                            },
3968                            ExtensionRange {
3969                                start: Some(9995),
3970                                end: Some(10000),
3971                                options: None,
3972                            },
3973                        ],
3974                        oneof_decl: vec![],
3975                        options: None,
3976                        reserved_range: vec![ReservedRange {
3977                            start: Some(999),
3978                            end: Some(1000),
3979                        }],
3980                        reserved_name: vec![],
3981                    },
3982                    DescriptorProto {
3983                        name: Some("FeatureSetDefaults".into()),
3984                        field: vec![
3985                            FieldDescriptorProto {
3986                                name: Some("defaults".into()),
3987                                number: Some(1),
3988                                label: Some(Repeated.into()),
3989                                r#type: Some(Message.into()),
3990                                type_name: Some(
3991                                    ".google.protobuf.FeatureSetDefaults.FeatureSetEditionDefault"
3992                                        .into(),
3993                                ),
3994                                extendee: None,
3995                                default_value: None,
3996                                oneof_index: None,
3997                                json_name: Some("defaults".into()),
3998                                options: None,
3999                                proto3_optional: None,
4000                            },
4001                            FieldDescriptorProto {
4002                                name: Some("minimum_edition".into()),
4003                                number: Some(4),
4004                                label: Some(Optional.into()),
4005                                r#type: Some(Enum.into()),
4006                                type_name: Some(".google.protobuf.Edition".into()),
4007                                extendee: None,
4008                                default_value: None,
4009                                oneof_index: None,
4010                                json_name: Some("minimumEdition".into()),
4011                                options: None,
4012                                proto3_optional: None,
4013                            },
4014                            FieldDescriptorProto {
4015                                name: Some("maximum_edition".into()),
4016                                number: Some(5),
4017                                label: Some(Optional.into()),
4018                                r#type: Some(Enum.into()),
4019                                type_name: Some(".google.protobuf.Edition".into()),
4020                                extendee: None,
4021                                default_value: None,
4022                                oneof_index: None,
4023                                json_name: Some("maximumEdition".into()),
4024                                options: None,
4025                                proto3_optional: None,
4026                            },
4027                        ],
4028                        extension: vec![],
4029                        nested_type: vec![DescriptorProto {
4030                            name: Some("FeatureSetEditionDefault".into()),
4031                            field: vec![
4032                                FieldDescriptorProto {
4033                                    name: Some("edition".into()),
4034                                    number: Some(3),
4035                                    label: Some(Optional.into()),
4036                                    r#type: Some(Enum.into()),
4037                                    type_name: Some(".google.protobuf.Edition".into()),
4038                                    extendee: None,
4039                                    default_value: None,
4040                                    oneof_index: None,
4041                                    json_name: Some("edition".into()),
4042                                    options: None,
4043                                    proto3_optional: None,
4044                                },
4045                                FieldDescriptorProto {
4046                                    name: Some("features".into()),
4047                                    number: Some(2),
4048                                    label: Some(Optional.into()),
4049                                    r#type: Some(Message.into()),
4050                                    type_name: Some(".google.protobuf.FeatureSet".into()),
4051                                    extendee: None,
4052                                    default_value: None,
4053                                    oneof_index: None,
4054                                    json_name: Some("features".into()),
4055                                    options: None,
4056                                    proto3_optional: None,
4057                                },
4058                            ],
4059                            extension: vec![],
4060                            nested_type: vec![],
4061                            enum_type: vec![],
4062                            extension_range: vec![],
4063                            oneof_decl: vec![],
4064                            options: None,
4065                            reserved_range: vec![],
4066                            reserved_name: vec![],
4067                        }],
4068                        enum_type: vec![],
4069                        extension_range: vec![],
4070                        oneof_decl: vec![],
4071                        options: None,
4072                        reserved_range: vec![],
4073                        reserved_name: vec![],
4074                    },
4075                    DescriptorProto {
4076                        name: Some("SourceCodeInfo".into()),
4077                        field: vec![FieldDescriptorProto {
4078                            name: Some("location".into()),
4079                            number: Some(1),
4080                            label: Some(Repeated.into()),
4081                            r#type: Some(Message.into()),
4082                            type_name: Some(".google.protobuf.SourceCodeInfo.Location".into()),
4083                            extendee: None,
4084                            default_value: None,
4085                            oneof_index: None,
4086                            json_name: Some("location".into()),
4087                            options: None,
4088                            proto3_optional: None,
4089                        }],
4090                        extension: vec![],
4091                        nested_type: vec![DescriptorProto {
4092                            name: Some("Location".into()),
4093                            field: vec![
4094                                FieldDescriptorProto {
4095                                    name: Some("path".into()),
4096                                    number: Some(1),
4097                                    label: Some(Repeated.into()),
4098                                    r#type: Some(Int32.into()),
4099                                    type_name: None,
4100                                    extendee: None,
4101                                    default_value: None,
4102                                    oneof_index: None,
4103                                    json_name: Some("path".into()),
4104                                    options: Some(Options::from_prost(FieldOptions {
4105                                        ctype: None,
4106                                        packed: Some(true),
4107                                        jstype: None,
4108                                        lazy: None,
4109                                        deprecated: None,
4110                                        weak: None,
4111                                        uninterpreted_option: vec![],
4112                                    })),
4113                                    proto3_optional: None,
4114                                },
4115                                FieldDescriptorProto {
4116                                    name: Some("span".into()),
4117                                    number: Some(2),
4118                                    label: Some(Repeated.into()),
4119                                    r#type: Some(Int32.into()),
4120                                    type_name: None,
4121                                    extendee: None,
4122                                    default_value: None,
4123                                    oneof_index: None,
4124                                    json_name: Some("span".into()),
4125                                    options: Some(Options::from_prost(FieldOptions {
4126                                        ctype: None,
4127                                        packed: Some(true),
4128                                        jstype: None,
4129                                        lazy: None,
4130                                        deprecated: None,
4131                                        weak: None,
4132                                        uninterpreted_option: vec![],
4133                                    })),
4134                                    proto3_optional: None,
4135                                },
4136                                FieldDescriptorProto {
4137                                    name: Some("leading_comments".into()),
4138                                    number: Some(3),
4139                                    label: Some(Optional.into()),
4140                                    r#type: Some(String.into()),
4141                                    type_name: None,
4142                                    extendee: None,
4143                                    default_value: None,
4144                                    oneof_index: None,
4145                                    json_name: Some("leadingComments".into()),
4146                                    options: None,
4147                                    proto3_optional: None,
4148                                },
4149                                FieldDescriptorProto {
4150                                    name: Some("trailing_comments".into()),
4151                                    number: Some(4),
4152                                    label: Some(Optional.into()),
4153                                    r#type: Some(String.into()),
4154                                    type_name: None,
4155                                    extendee: None,
4156                                    default_value: None,
4157                                    oneof_index: None,
4158                                    json_name: Some("trailingComments".into()),
4159                                    options: None,
4160                                    proto3_optional: None,
4161                                },
4162                                FieldDescriptorProto {
4163                                    name: Some("leading_detached_comments".into()),
4164                                    number: Some(6),
4165                                    label: Some(Repeated.into()),
4166                                    r#type: Some(String.into()),
4167                                    type_name: None,
4168                                    extendee: None,
4169                                    default_value: None,
4170                                    oneof_index: None,
4171                                    json_name: Some("leadingDetachedComments".into()),
4172                                    options: None,
4173                                    proto3_optional: None,
4174                                },
4175                            ],
4176                            extension: vec![],
4177                            nested_type: vec![],
4178                            enum_type: vec![],
4179                            extension_range: vec![],
4180                            oneof_decl: vec![],
4181                            options: None,
4182                            reserved_range: vec![],
4183                            reserved_name: vec![],
4184                        }],
4185                        enum_type: vec![],
4186                        extension_range: vec![],
4187                        oneof_decl: vec![],
4188                        options: None,
4189                        reserved_range: vec![],
4190                        reserved_name: vec![],
4191                    },
4192                    DescriptorProto {
4193                        name: Some("GeneratedCodeInfo".into()),
4194                        field: vec![FieldDescriptorProto {
4195                            name: Some("annotation".into()),
4196                            number: Some(1),
4197                            label: Some(Repeated.into()),
4198                            r#type: Some(Message.into()),
4199                            type_name: Some(".google.protobuf.GeneratedCodeInfo.Annotation".into()),
4200                            extendee: None,
4201                            default_value: None,
4202                            oneof_index: None,
4203                            json_name: Some("annotation".into()),
4204                            options: None,
4205                            proto3_optional: None,
4206                        }],
4207                        extension: vec![],
4208                        nested_type: vec![DescriptorProto {
4209                            name: Some("Annotation".into()),
4210                            field: vec![
4211                                FieldDescriptorProto {
4212                                    name: Some("path".into()),
4213                                    number: Some(1),
4214                                    label: Some(Repeated.into()),
4215                                    r#type: Some(Int32.into()),
4216                                    type_name: None,
4217                                    extendee: None,
4218                                    default_value: None,
4219                                    oneof_index: None,
4220                                    json_name: Some("path".into()),
4221                                    options: Some(Options::from_prost(FieldOptions {
4222                                        ctype: None,
4223                                        packed: Some(true),
4224                                        jstype: None,
4225                                        lazy: None,
4226                                        deprecated: None,
4227                                        weak: None,
4228                                        uninterpreted_option: vec![],
4229                                    })),
4230                                    proto3_optional: None,
4231                                },
4232                                FieldDescriptorProto {
4233                                    name: Some("source_file".into()),
4234                                    number: Some(2),
4235                                    label: Some(Optional.into()),
4236                                    r#type: Some(String.into()),
4237                                    type_name: None,
4238                                    extendee: None,
4239                                    default_value: None,
4240                                    oneof_index: None,
4241                                    json_name: Some("sourceFile".into()),
4242                                    options: None,
4243                                    proto3_optional: None,
4244                                },
4245                                FieldDescriptorProto {
4246                                    name: Some("begin".into()),
4247                                    number: Some(3),
4248                                    label: Some(Optional.into()),
4249                                    r#type: Some(Int32.into()),
4250                                    type_name: None,
4251                                    extendee: None,
4252                                    default_value: None,
4253                                    oneof_index: None,
4254                                    json_name: Some("begin".into()),
4255                                    options: None,
4256                                    proto3_optional: None,
4257                                },
4258                                FieldDescriptorProto {
4259                                    name: Some("end".into()),
4260                                    number: Some(4),
4261                                    label: Some(Optional.into()),
4262                                    r#type: Some(Int32.into()),
4263                                    type_name: None,
4264                                    extendee: None,
4265                                    default_value: None,
4266                                    oneof_index: None,
4267                                    json_name: Some("end".into()),
4268                                    options: None,
4269                                    proto3_optional: None,
4270                                },
4271                                FieldDescriptorProto {
4272                                    name: Some("semantic".into()),
4273                                    number: Some(5),
4274                                    label: Some(Optional.into()),
4275                                    r#type: Some(Enum.into()),
4276                                    type_name: Some(
4277                                        ".google.protobuf.GeneratedCodeInfo.Annotation.Semantic"
4278                                            .into(),
4279                                    ),
4280                                    extendee: None,
4281                                    default_value: None,
4282                                    oneof_index: None,
4283                                    json_name: Some("semantic".into()),
4284                                    options: None,
4285                                    proto3_optional: None,
4286                                },
4287                            ],
4288                            extension: vec![],
4289                            nested_type: vec![],
4290                            enum_type: vec![EnumDescriptorProto {
4291                                name: Some("Semantic".into()),
4292                                value: vec![
4293                                    EnumValueDescriptorProto {
4294                                        name: Some("NONE".into()),
4295                                        number: Some(0),
4296                                        options: None,
4297                                    },
4298                                    EnumValueDescriptorProto {
4299                                        name: Some("SET".into()),
4300                                        number: Some(1),
4301                                        options: None,
4302                                    },
4303                                    EnumValueDescriptorProto {
4304                                        name: Some("ALIAS".into()),
4305                                        number: Some(2),
4306                                        options: None,
4307                                    },
4308                                ],
4309                                options: None,
4310                                reserved_range: vec![],
4311                                reserved_name: vec![],
4312                            }],
4313                            extension_range: vec![],
4314                            oneof_decl: vec![],
4315                            options: None,
4316                            reserved_range: vec![],
4317                            reserved_name: vec![],
4318                        }],
4319                        enum_type: vec![],
4320                        extension_range: vec![],
4321                        oneof_decl: vec![],
4322                        options: None,
4323                        reserved_range: vec![],
4324                        reserved_name: vec![],
4325                    },
4326                ],
4327                enum_type: vec![EnumDescriptorProto {
4328                    name: Some("Edition".into()),
4329                    value: vec![
4330                        EnumValueDescriptorProto {
4331                            name: Some("EDITION_UNKNOWN".into()),
4332                            number: Some(0),
4333                            options: None,
4334                        },
4335                        EnumValueDescriptorProto {
4336                            name: Some("EDITION_PROTO2".into()),
4337                            number: Some(998),
4338                            options: None,
4339                        },
4340                        EnumValueDescriptorProto {
4341                            name: Some("EDITION_PROTO3".into()),
4342                            number: Some(999),
4343                            options: None,
4344                        },
4345                        EnumValueDescriptorProto {
4346                            name: Some("EDITION_2023".into()),
4347                            number: Some(1000),
4348                            options: None,
4349                        },
4350                        EnumValueDescriptorProto {
4351                            name: Some("EDITION_1_TEST_ONLY".into()),
4352                            number: Some(1),
4353                            options: None,
4354                        },
4355                        EnumValueDescriptorProto {
4356                            name: Some("EDITION_2_TEST_ONLY".into()),
4357                            number: Some(2),
4358                            options: None,
4359                        },
4360                        EnumValueDescriptorProto {
4361                            name: Some("EDITION_99997_TEST_ONLY".into()),
4362                            number: Some(99997),
4363                            options: None,
4364                        },
4365                        EnumValueDescriptorProto {
4366                            name: Some("EDITION_99998_TEST_ONLY".into()),
4367                            number: Some(99998),
4368                            options: None,
4369                        },
4370                        EnumValueDescriptorProto {
4371                            name: Some("EDITION_99999_TEST_ONLY".into()),
4372                            number: Some(99999),
4373                            options: None,
4374                        },
4375                    ],
4376                    options: None,
4377                    reserved_range: vec![],
4378                    reserved_name: vec![],
4379                }],
4380                service: vec![],
4381                extension: vec![],
4382                options: Some(Options::from_prost(FileOptions {
4383                    java_package: Some("com.google.protobuf".into()),
4384                    java_outer_classname: Some("DescriptorProtos".into()),
4385                    java_multiple_files: None,
4386                    java_generate_equals_and_hash: None,
4387                    java_string_check_utf8: None,
4388                    optimize_for: Some(Speed.into()),
4389                    go_package: Some("google.golang.org/protobuf/types/descriptorpb".into()),
4390                    cc_generic_services: None,
4391                    java_generic_services: None,
4392                    py_generic_services: None,
4393                    php_generic_services: None,
4394                    deprecated: None,
4395                    cc_enable_arenas: Some(true),
4396                    objc_class_prefix: Some("GPB".into()),
4397                    csharp_namespace: Some("Google.Protobuf.Reflection".into()),
4398                    swift_prefix: None,
4399                    php_class_prefix: None,
4400                    php_namespace: None,
4401                    php_metadata_namespace: None,
4402                    ruby_package: None,
4403                    uninterpreted_option: vec![],
4404                })),
4405                source_code_info: None,
4406                syntax: None,
4407            },
4408            FileDescriptorProto {
4409                name: Some("google/protobuf/duration.proto".into()),
4410                package: Some("google.protobuf".into()),
4411                dependency: vec![],
4412                public_dependency: vec![],
4413                weak_dependency: vec![],
4414                message_type: vec![DescriptorProto {
4415                    name: Some("Duration".into()),
4416                    field: vec![
4417                        FieldDescriptorProto {
4418                            name: Some("seconds".into()),
4419                            number: Some(1),
4420                            label: Some(Optional.into()),
4421                            r#type: Some(Int64.into()),
4422                            type_name: None,
4423                            extendee: None,
4424                            default_value: None,
4425                            oneof_index: None,
4426                            json_name: Some("seconds".into()),
4427                            options: None,
4428                            proto3_optional: None,
4429                        },
4430                        FieldDescriptorProto {
4431                            name: Some("nanos".into()),
4432                            number: Some(2),
4433                            label: Some(Optional.into()),
4434                            r#type: Some(Int32.into()),
4435                            type_name: None,
4436                            extendee: None,
4437                            default_value: None,
4438                            oneof_index: None,
4439                            json_name: Some("nanos".into()),
4440                            options: None,
4441                            proto3_optional: None,
4442                        },
4443                    ],
4444                    extension: vec![],
4445                    nested_type: vec![],
4446                    enum_type: vec![],
4447                    extension_range: vec![],
4448                    oneof_decl: vec![],
4449                    options: None,
4450                    reserved_range: vec![],
4451                    reserved_name: vec![],
4452                }],
4453                enum_type: vec![],
4454                service: vec![],
4455                extension: vec![],
4456                options: Some(Options::from_prost(FileOptions {
4457                    java_package: Some("com.google.protobuf".into()),
4458                    java_outer_classname: Some("DurationProto".into()),
4459                    java_multiple_files: Some(true),
4460                    java_generate_equals_and_hash: None,
4461                    java_string_check_utf8: None,
4462                    optimize_for: None,
4463                    go_package: Some("google.golang.org/protobuf/types/known/durationpb".into()),
4464                    cc_generic_services: None,
4465                    java_generic_services: None,
4466                    py_generic_services: None,
4467                    php_generic_services: None,
4468                    deprecated: None,
4469                    cc_enable_arenas: Some(true),
4470                    objc_class_prefix: Some("GPB".into()),
4471                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
4472                    swift_prefix: None,
4473                    php_class_prefix: None,
4474                    php_namespace: None,
4475                    php_metadata_namespace: None,
4476                    ruby_package: None,
4477                    uninterpreted_option: vec![],
4478                })),
4479                source_code_info: None,
4480                syntax: Some("proto3".into()),
4481            },
4482            FileDescriptorProto {
4483                name: Some("google/protobuf/empty.proto".into()),
4484                package: Some("google.protobuf".into()),
4485                dependency: vec![],
4486                public_dependency: vec![],
4487                weak_dependency: vec![],
4488                message_type: vec![DescriptorProto {
4489                    name: Some("Empty".into()),
4490                    field: vec![],
4491                    extension: vec![],
4492                    nested_type: vec![],
4493                    enum_type: vec![],
4494                    extension_range: vec![],
4495                    oneof_decl: vec![],
4496                    options: None,
4497                    reserved_range: vec![],
4498                    reserved_name: vec![],
4499                }],
4500                enum_type: vec![],
4501                service: vec![],
4502                extension: vec![],
4503                options: Some(Options::from_prost(FileOptions {
4504                    java_package: Some("com.google.protobuf".into()),
4505                    java_outer_classname: Some("EmptyProto".into()),
4506                    java_multiple_files: Some(true),
4507                    java_generate_equals_and_hash: None,
4508                    java_string_check_utf8: None,
4509                    optimize_for: None,
4510                    go_package: Some("google.golang.org/protobuf/types/known/emptypb".into()),
4511                    cc_generic_services: None,
4512                    java_generic_services: None,
4513                    py_generic_services: None,
4514                    php_generic_services: None,
4515                    deprecated: None,
4516                    cc_enable_arenas: Some(true),
4517                    objc_class_prefix: Some("GPB".into()),
4518                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
4519                    swift_prefix: None,
4520                    php_class_prefix: None,
4521                    php_namespace: None,
4522                    php_metadata_namespace: None,
4523                    ruby_package: None,
4524                    uninterpreted_option: vec![],
4525                })),
4526                source_code_info: None,
4527                syntax: Some("proto3".into()),
4528            },
4529            FileDescriptorProto {
4530                name: Some("google/protobuf/field_mask.proto".into()),
4531                package: Some("google.protobuf".into()),
4532                dependency: vec![],
4533                public_dependency: vec![],
4534                weak_dependency: vec![],
4535                message_type: vec![DescriptorProto {
4536                    name: Some("FieldMask".into()),
4537                    field: vec![FieldDescriptorProto {
4538                        name: Some("paths".into()),
4539                        number: Some(1),
4540                        label: Some(Repeated.into()),
4541                        r#type: Some(String.into()),
4542                        type_name: None,
4543                        extendee: None,
4544                        default_value: None,
4545                        oneof_index: None,
4546                        json_name: Some("paths".into()),
4547                        options: None,
4548                        proto3_optional: None,
4549                    }],
4550                    extension: vec![],
4551                    nested_type: vec![],
4552                    enum_type: vec![],
4553                    extension_range: vec![],
4554                    oneof_decl: vec![],
4555                    options: None,
4556                    reserved_range: vec![],
4557                    reserved_name: vec![],
4558                }],
4559                enum_type: vec![],
4560                service: vec![],
4561                extension: vec![],
4562                options: Some(Options::from_prost(FileOptions {
4563                    java_package: Some("com.google.protobuf".into()),
4564                    java_outer_classname: Some("FieldMaskProto".into()),
4565                    java_multiple_files: Some(true),
4566                    java_generate_equals_and_hash: None,
4567                    java_string_check_utf8: None,
4568                    optimize_for: None,
4569                    go_package: Some("google.golang.org/protobuf/types/known/fieldmaskpb".into()),
4570                    cc_generic_services: None,
4571                    java_generic_services: None,
4572                    py_generic_services: None,
4573                    php_generic_services: None,
4574                    deprecated: None,
4575                    cc_enable_arenas: Some(true),
4576                    objc_class_prefix: Some("GPB".into()),
4577                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
4578                    swift_prefix: None,
4579                    php_class_prefix: None,
4580                    php_namespace: None,
4581                    php_metadata_namespace: None,
4582                    ruby_package: None,
4583                    uninterpreted_option: vec![],
4584                })),
4585                source_code_info: None,
4586                syntax: Some("proto3".into()),
4587            },
4588            FileDescriptorProto {
4589                name: Some("google/protobuf/struct.proto".into()),
4590                package: Some("google.protobuf".into()),
4591                dependency: vec![],
4592                public_dependency: vec![],
4593                weak_dependency: vec![],
4594                message_type: vec![
4595                    DescriptorProto {
4596                        name: Some("Struct".into()),
4597                        field: vec![FieldDescriptorProto {
4598                            name: Some("fields".into()),
4599                            number: Some(1),
4600                            label: Some(Repeated.into()),
4601                            r#type: Some(Message.into()),
4602                            type_name: Some(".google.protobuf.Struct.FieldsEntry".into()),
4603                            extendee: None,
4604                            default_value: None,
4605                            oneof_index: None,
4606                            json_name: Some("fields".into()),
4607                            options: None,
4608                            proto3_optional: None,
4609                        }],
4610                        extension: vec![],
4611                        nested_type: vec![DescriptorProto {
4612                            name: Some("FieldsEntry".into()),
4613                            field: vec![
4614                                FieldDescriptorProto {
4615                                    name: Some("key".into()),
4616                                    number: Some(1),
4617                                    label: Some(Optional.into()),
4618                                    r#type: Some(String.into()),
4619                                    type_name: None,
4620                                    extendee: None,
4621                                    default_value: None,
4622                                    oneof_index: None,
4623                                    json_name: Some("key".into()),
4624                                    options: None,
4625                                    proto3_optional: None,
4626                                },
4627                                FieldDescriptorProto {
4628                                    name: Some("value".into()),
4629                                    number: Some(2),
4630                                    label: Some(Optional.into()),
4631                                    r#type: Some(Message.into()),
4632                                    type_name: Some(".google.protobuf.Value".into()),
4633                                    extendee: None,
4634                                    default_value: None,
4635                                    oneof_index: None,
4636                                    json_name: Some("value".into()),
4637                                    options: None,
4638                                    proto3_optional: None,
4639                                },
4640                            ],
4641                            extension: vec![],
4642                            nested_type: vec![],
4643                            enum_type: vec![],
4644                            extension_range: vec![],
4645                            oneof_decl: vec![],
4646                            options: Some(Options::from_prost(MessageOptions {
4647                                message_set_wire_format: None,
4648                                no_standard_descriptor_accessor: None,
4649                                deprecated: None,
4650                                map_entry: Some(true),
4651                                uninterpreted_option: vec![],
4652                            })),
4653                            reserved_range: vec![],
4654                            reserved_name: vec![],
4655                        }],
4656                        enum_type: vec![],
4657                        extension_range: vec![],
4658                        oneof_decl: vec![],
4659                        options: None,
4660                        reserved_range: vec![],
4661                        reserved_name: vec![],
4662                    },
4663                    DescriptorProto {
4664                        name: Some("Value".into()),
4665                        field: vec![
4666                            FieldDescriptorProto {
4667                                name: Some("null_value".into()),
4668                                number: Some(1),
4669                                label: Some(Optional.into()),
4670                                r#type: Some(Enum.into()),
4671                                type_name: Some(".google.protobuf.NullValue".into()),
4672                                extendee: None,
4673                                default_value: None,
4674                                oneof_index: Some(0),
4675                                json_name: Some("nullValue".into()),
4676                                options: None,
4677                                proto3_optional: None,
4678                            },
4679                            FieldDescriptorProto {
4680                                name: Some("number_value".into()),
4681                                number: Some(2),
4682                                label: Some(Optional.into()),
4683                                r#type: Some(Double.into()),
4684                                type_name: None,
4685                                extendee: None,
4686                                default_value: None,
4687                                oneof_index: Some(0),
4688                                json_name: Some("numberValue".into()),
4689                                options: None,
4690                                proto3_optional: None,
4691                            },
4692                            FieldDescriptorProto {
4693                                name: Some("string_value".into()),
4694                                number: Some(3),
4695                                label: Some(Optional.into()),
4696                                r#type: Some(String.into()),
4697                                type_name: None,
4698                                extendee: None,
4699                                default_value: None,
4700                                oneof_index: Some(0),
4701                                json_name: Some("stringValue".into()),
4702                                options: None,
4703                                proto3_optional: None,
4704                            },
4705                            FieldDescriptorProto {
4706                                name: Some("bool_value".into()),
4707                                number: Some(4),
4708                                label: Some(Optional.into()),
4709                                r#type: Some(Bool.into()),
4710                                type_name: None,
4711                                extendee: None,
4712                                default_value: None,
4713                                oneof_index: Some(0),
4714                                json_name: Some("boolValue".into()),
4715                                options: None,
4716                                proto3_optional: None,
4717                            },
4718                            FieldDescriptorProto {
4719                                name: Some("struct_value".into()),
4720                                number: Some(5),
4721                                label: Some(Optional.into()),
4722                                r#type: Some(Message.into()),
4723                                type_name: Some(".google.protobuf.Struct".into()),
4724                                extendee: None,
4725                                default_value: None,
4726                                oneof_index: Some(0),
4727                                json_name: Some("structValue".into()),
4728                                options: None,
4729                                proto3_optional: None,
4730                            },
4731                            FieldDescriptorProto {
4732                                name: Some("list_value".into()),
4733                                number: Some(6),
4734                                label: Some(Optional.into()),
4735                                r#type: Some(Message.into()),
4736                                type_name: Some(".google.protobuf.ListValue".into()),
4737                                extendee: None,
4738                                default_value: None,
4739                                oneof_index: Some(0),
4740                                json_name: Some("listValue".into()),
4741                                options: None,
4742                                proto3_optional: None,
4743                            },
4744                        ],
4745                        extension: vec![],
4746                        nested_type: vec![],
4747                        enum_type: vec![],
4748                        extension_range: vec![],
4749                        oneof_decl: vec![OneofDescriptorProto {
4750                            name: Some("kind".into()),
4751                            options: None,
4752                        }],
4753                        options: None,
4754                        reserved_range: vec![],
4755                        reserved_name: vec![],
4756                    },
4757                    DescriptorProto {
4758                        name: Some("ListValue".into()),
4759                        field: vec![FieldDescriptorProto {
4760                            name: Some("values".into()),
4761                            number: Some(1),
4762                            label: Some(Repeated.into()),
4763                            r#type: Some(Message.into()),
4764                            type_name: Some(".google.protobuf.Value".into()),
4765                            extendee: None,
4766                            default_value: None,
4767                            oneof_index: None,
4768                            json_name: Some("values".into()),
4769                            options: None,
4770                            proto3_optional: None,
4771                        }],
4772                        extension: vec![],
4773                        nested_type: vec![],
4774                        enum_type: vec![],
4775                        extension_range: vec![],
4776                        oneof_decl: vec![],
4777                        options: None,
4778                        reserved_range: vec![],
4779                        reserved_name: vec![],
4780                    },
4781                ],
4782                enum_type: vec![EnumDescriptorProto {
4783                    name: Some("NullValue".into()),
4784                    value: vec![EnumValueDescriptorProto {
4785                        name: Some("NULL_VALUE".into()),
4786                        number: Some(0),
4787                        options: None,
4788                    }],
4789                    options: None,
4790                    reserved_range: vec![],
4791                    reserved_name: vec![],
4792                }],
4793                service: vec![],
4794                extension: vec![],
4795                options: Some(Options::from_prost(FileOptions {
4796                    java_package: Some("com.google.protobuf".into()),
4797                    java_outer_classname: Some("StructProto".into()),
4798                    java_multiple_files: Some(true),
4799                    java_generate_equals_and_hash: None,
4800                    java_string_check_utf8: None,
4801                    optimize_for: None,
4802                    go_package: Some("google.golang.org/protobuf/types/known/structpb".into()),
4803                    cc_generic_services: None,
4804                    java_generic_services: None,
4805                    py_generic_services: None,
4806                    php_generic_services: None,
4807                    deprecated: None,
4808                    cc_enable_arenas: Some(true),
4809                    objc_class_prefix: Some("GPB".into()),
4810                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
4811                    swift_prefix: None,
4812                    php_class_prefix: None,
4813                    php_namespace: None,
4814                    php_metadata_namespace: None,
4815                    ruby_package: None,
4816                    uninterpreted_option: vec![],
4817                })),
4818                source_code_info: None,
4819                syntax: Some("proto3".into()),
4820            },
4821            FileDescriptorProto {
4822                name: Some("google/protobuf/timestamp.proto".into()),
4823                package: Some("google.protobuf".into()),
4824                dependency: vec![],
4825                public_dependency: vec![],
4826                weak_dependency: vec![],
4827                message_type: vec![DescriptorProto {
4828                    name: Some("Timestamp".into()),
4829                    field: vec![
4830                        FieldDescriptorProto {
4831                            name: Some("seconds".into()),
4832                            number: Some(1),
4833                            label: Some(Optional.into()),
4834                            r#type: Some(Int64.into()),
4835                            type_name: None,
4836                            extendee: None,
4837                            default_value: None,
4838                            oneof_index: None,
4839                            json_name: Some("seconds".into()),
4840                            options: None,
4841                            proto3_optional: None,
4842                        },
4843                        FieldDescriptorProto {
4844                            name: Some("nanos".into()),
4845                            number: Some(2),
4846                            label: Some(Optional.into()),
4847                            r#type: Some(Int32.into()),
4848                            type_name: None,
4849                            extendee: None,
4850                            default_value: None,
4851                            oneof_index: None,
4852                            json_name: Some("nanos".into()),
4853                            options: None,
4854                            proto3_optional: None,
4855                        },
4856                    ],
4857                    extension: vec![],
4858                    nested_type: vec![],
4859                    enum_type: vec![],
4860                    extension_range: vec![],
4861                    oneof_decl: vec![],
4862                    options: None,
4863                    reserved_range: vec![],
4864                    reserved_name: vec![],
4865                }],
4866                enum_type: vec![],
4867                service: vec![],
4868                extension: vec![],
4869                options: Some(Options::from_prost(FileOptions {
4870                    java_package: Some("com.google.protobuf".into()),
4871                    java_outer_classname: Some("TimestampProto".into()),
4872                    java_multiple_files: Some(true),
4873                    java_generate_equals_and_hash: None,
4874                    java_string_check_utf8: None,
4875                    optimize_for: None,
4876                    go_package: Some("google.golang.org/protobuf/types/known/timestamppb".into()),
4877                    cc_generic_services: None,
4878                    java_generic_services: None,
4879                    py_generic_services: None,
4880                    php_generic_services: None,
4881                    deprecated: None,
4882                    cc_enable_arenas: Some(true),
4883                    objc_class_prefix: Some("GPB".into()),
4884                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
4885                    swift_prefix: None,
4886                    php_class_prefix: None,
4887                    php_namespace: None,
4888                    php_metadata_namespace: None,
4889                    ruby_package: None,
4890                    uninterpreted_option: vec![],
4891                })),
4892                source_code_info: None,
4893                syntax: Some("proto3".into()),
4894            },
4895            FileDescriptorProto {
4896                name: Some("google/protobuf/wrappers.proto".into()),
4897                package: Some("google.protobuf".into()),
4898                dependency: vec![],
4899                public_dependency: vec![],
4900                weak_dependency: vec![],
4901                message_type: vec![
4902                    DescriptorProto {
4903                        name: Some("DoubleValue".into()),
4904                        field: vec![FieldDescriptorProto {
4905                            name: Some("value".into()),
4906                            number: Some(1),
4907                            label: Some(Optional.into()),
4908                            r#type: Some(Double.into()),
4909                            type_name: None,
4910                            extendee: None,
4911                            default_value: None,
4912                            oneof_index: None,
4913                            json_name: Some("value".into()),
4914                            options: None,
4915                            proto3_optional: None,
4916                        }],
4917                        extension: vec![],
4918                        nested_type: vec![],
4919                        enum_type: vec![],
4920                        extension_range: vec![],
4921                        oneof_decl: vec![],
4922                        options: None,
4923                        reserved_range: vec![],
4924                        reserved_name: vec![],
4925                    },
4926                    DescriptorProto {
4927                        name: Some("FloatValue".into()),
4928                        field: vec![FieldDescriptorProto {
4929                            name: Some("value".into()),
4930                            number: Some(1),
4931                            label: Some(Optional.into()),
4932                            r#type: Some(Float.into()),
4933                            type_name: None,
4934                            extendee: None,
4935                            default_value: None,
4936                            oneof_index: None,
4937                            json_name: Some("value".into()),
4938                            options: None,
4939                            proto3_optional: None,
4940                        }],
4941                        extension: vec![],
4942                        nested_type: vec![],
4943                        enum_type: vec![],
4944                        extension_range: vec![],
4945                        oneof_decl: vec![],
4946                        options: None,
4947                        reserved_range: vec![],
4948                        reserved_name: vec![],
4949                    },
4950                    DescriptorProto {
4951                        name: Some("Int64Value".into()),
4952                        field: vec![FieldDescriptorProto {
4953                            name: Some("value".into()),
4954                            number: Some(1),
4955                            label: Some(Optional.into()),
4956                            r#type: Some(Int64.into()),
4957                            type_name: None,
4958                            extendee: None,
4959                            default_value: None,
4960                            oneof_index: None,
4961                            json_name: Some("value".into()),
4962                            options: None,
4963                            proto3_optional: None,
4964                        }],
4965                        extension: vec![],
4966                        nested_type: vec![],
4967                        enum_type: vec![],
4968                        extension_range: vec![],
4969                        oneof_decl: vec![],
4970                        options: None,
4971                        reserved_range: vec![],
4972                        reserved_name: vec![],
4973                    },
4974                    DescriptorProto {
4975                        name: Some("UInt64Value".into()),
4976                        field: vec![FieldDescriptorProto {
4977                            name: Some("value".into()),
4978                            number: Some(1),
4979                            label: Some(Optional.into()),
4980                            r#type: Some(Uint64.into()),
4981                            type_name: None,
4982                            extendee: None,
4983                            default_value: None,
4984                            oneof_index: None,
4985                            json_name: Some("value".into()),
4986                            options: None,
4987                            proto3_optional: None,
4988                        }],
4989                        extension: vec![],
4990                        nested_type: vec![],
4991                        enum_type: vec![],
4992                        extension_range: vec![],
4993                        oneof_decl: vec![],
4994                        options: None,
4995                        reserved_range: vec![],
4996                        reserved_name: vec![],
4997                    },
4998                    DescriptorProto {
4999                        name: Some("Int32Value".into()),
5000                        field: vec![FieldDescriptorProto {
5001                            name: Some("value".into()),
5002                            number: Some(1),
5003                            label: Some(Optional.into()),
5004                            r#type: Some(Int32.into()),
5005                            type_name: None,
5006                            extendee: None,
5007                            default_value: None,
5008                            oneof_index: None,
5009                            json_name: Some("value".into()),
5010                            options: None,
5011                            proto3_optional: None,
5012                        }],
5013                        extension: vec![],
5014                        nested_type: vec![],
5015                        enum_type: vec![],
5016                        extension_range: vec![],
5017                        oneof_decl: vec![],
5018                        options: None,
5019                        reserved_range: vec![],
5020                        reserved_name: vec![],
5021                    },
5022                    DescriptorProto {
5023                        name: Some("UInt32Value".into()),
5024                        field: vec![FieldDescriptorProto {
5025                            name: Some("value".into()),
5026                            number: Some(1),
5027                            label: Some(Optional.into()),
5028                            r#type: Some(Uint32.into()),
5029                            type_name: None,
5030                            extendee: None,
5031                            default_value: None,
5032                            oneof_index: None,
5033                            json_name: Some("value".into()),
5034                            options: None,
5035                            proto3_optional: None,
5036                        }],
5037                        extension: vec![],
5038                        nested_type: vec![],
5039                        enum_type: vec![],
5040                        extension_range: vec![],
5041                        oneof_decl: vec![],
5042                        options: None,
5043                        reserved_range: vec![],
5044                        reserved_name: vec![],
5045                    },
5046                    DescriptorProto {
5047                        name: Some("BoolValue".into()),
5048                        field: vec![FieldDescriptorProto {
5049                            name: Some("value".into()),
5050                            number: Some(1),
5051                            label: Some(Optional.into()),
5052                            r#type: Some(Bool.into()),
5053                            type_name: None,
5054                            extendee: None,
5055                            default_value: None,
5056                            oneof_index: None,
5057                            json_name: Some("value".into()),
5058                            options: None,
5059                            proto3_optional: None,
5060                        }],
5061                        extension: vec![],
5062                        nested_type: vec![],
5063                        enum_type: vec![],
5064                        extension_range: vec![],
5065                        oneof_decl: vec![],
5066                        options: None,
5067                        reserved_range: vec![],
5068                        reserved_name: vec![],
5069                    },
5070                    DescriptorProto {
5071                        name: Some("StringValue".into()),
5072                        field: vec![FieldDescriptorProto {
5073                            name: Some("value".into()),
5074                            number: Some(1),
5075                            label: Some(Optional.into()),
5076                            r#type: Some(String.into()),
5077                            type_name: None,
5078                            extendee: None,
5079                            default_value: None,
5080                            oneof_index: None,
5081                            json_name: Some("value".into()),
5082                            options: None,
5083                            proto3_optional: None,
5084                        }],
5085                        extension: vec![],
5086                        nested_type: vec![],
5087                        enum_type: vec![],
5088                        extension_range: vec![],
5089                        oneof_decl: vec![],
5090                        options: None,
5091                        reserved_range: vec![],
5092                        reserved_name: vec![],
5093                    },
5094                    DescriptorProto {
5095                        name: Some("BytesValue".into()),
5096                        field: vec![FieldDescriptorProto {
5097                            name: Some("value".into()),
5098                            number: Some(1),
5099                            label: Some(Optional.into()),
5100                            r#type: Some(Bytes.into()),
5101                            type_name: None,
5102                            extendee: None,
5103                            default_value: None,
5104                            oneof_index: None,
5105                            json_name: Some("value".into()),
5106                            options: None,
5107                            proto3_optional: None,
5108                        }],
5109                        extension: vec![],
5110                        nested_type: vec![],
5111                        enum_type: vec![],
5112                        extension_range: vec![],
5113                        oneof_decl: vec![],
5114                        options: None,
5115                        reserved_range: vec![],
5116                        reserved_name: vec![],
5117                    },
5118                ],
5119                enum_type: vec![],
5120                service: vec![],
5121                extension: vec![],
5122                options: Some(Options::from_prost(FileOptions {
5123                    java_package: Some("com.google.protobuf".into()),
5124                    java_outer_classname: Some("WrappersProto".into()),
5125                    java_multiple_files: Some(true),
5126                    java_generate_equals_and_hash: None,
5127                    java_string_check_utf8: None,
5128                    optimize_for: None,
5129                    go_package: Some("google.golang.org/protobuf/types/known/wrapperspb".into()),
5130                    cc_generic_services: None,
5131                    java_generic_services: None,
5132                    py_generic_services: None,
5133                    php_generic_services: None,
5134                    deprecated: None,
5135                    cc_enable_arenas: Some(true),
5136                    objc_class_prefix: Some("GPB".into()),
5137                    csharp_namespace: Some("Google.Protobuf.WellKnownTypes".into()),
5138                    swift_prefix: None,
5139                    php_class_prefix: None,
5140                    php_namespace: None,
5141                    php_metadata_namespace: None,
5142                    ruby_package: None,
5143                    uninterpreted_option: vec![],
5144                })),
5145                source_code_info: None,
5146                syntax: Some("proto3".into()),
5147            },
5148            FileDescriptorProto {
5149                name: Some("google/protobuf/compiler/plugin.proto".into()),
5150                package: Some("google.protobuf.compiler".into()),
5151                dependency: vec!["google/protobuf/descriptor.proto".into()],
5152                public_dependency: vec![],
5153                weak_dependency: vec![],
5154                message_type: vec![
5155                    DescriptorProto {
5156                        name: Some("Version".into()),
5157                        field: vec![
5158                            FieldDescriptorProto {
5159                                name: Some("major".into()),
5160                                number: Some(1),
5161                                label: Some(Optional.into()),
5162                                r#type: Some(Int32.into()),
5163                                type_name: None,
5164                                extendee: None,
5165                                default_value: None,
5166                                oneof_index: None,
5167                                json_name: Some("major".into()),
5168                                options: None,
5169                                proto3_optional: None,
5170                            },
5171                            FieldDescriptorProto {
5172                                name: Some("minor".into()),
5173                                number: Some(2),
5174                                label: Some(Optional.into()),
5175                                r#type: Some(Int32.into()),
5176                                type_name: None,
5177                                extendee: None,
5178                                default_value: None,
5179                                oneof_index: None,
5180                                json_name: Some("minor".into()),
5181                                options: None,
5182                                proto3_optional: None,
5183                            },
5184                            FieldDescriptorProto {
5185                                name: Some("patch".into()),
5186                                number: Some(3),
5187                                label: Some(Optional.into()),
5188                                r#type: Some(Int32.into()),
5189                                type_name: None,
5190                                extendee: None,
5191                                default_value: None,
5192                                oneof_index: None,
5193                                json_name: Some("patch".into()),
5194                                options: None,
5195                                proto3_optional: None,
5196                            },
5197                            FieldDescriptorProto {
5198                                name: Some("suffix".into()),
5199                                number: Some(4),
5200                                label: Some(Optional.into()),
5201                                r#type: Some(String.into()),
5202                                type_name: None,
5203                                extendee: None,
5204                                default_value: None,
5205                                oneof_index: None,
5206                                json_name: Some("suffix".into()),
5207                                options: None,
5208                                proto3_optional: None,
5209                            },
5210                        ],
5211                        extension: vec![],
5212                        nested_type: vec![],
5213                        enum_type: vec![],
5214                        extension_range: vec![],
5215                        oneof_decl: vec![],
5216                        options: None,
5217                        reserved_range: vec![],
5218                        reserved_name: vec![],
5219                    },
5220                    DescriptorProto {
5221                        name: Some("CodeGeneratorRequest".into()),
5222                        field: vec![
5223                            FieldDescriptorProto {
5224                                name: Some("file_to_generate".into()),
5225                                number: Some(1),
5226                                label: Some(Repeated.into()),
5227                                r#type: Some(String.into()),
5228                                type_name: None,
5229                                extendee: None,
5230                                default_value: None,
5231                                oneof_index: None,
5232                                json_name: Some("fileToGenerate".into()),
5233                                options: None,
5234                                proto3_optional: None,
5235                            },
5236                            FieldDescriptorProto {
5237                                name: Some("parameter".into()),
5238                                number: Some(2),
5239                                label: Some(Optional.into()),
5240                                r#type: Some(String.into()),
5241                                type_name: None,
5242                                extendee: None,
5243                                default_value: None,
5244                                oneof_index: None,
5245                                json_name: Some("parameter".into()),
5246                                options: None,
5247                                proto3_optional: None,
5248                            },
5249                            FieldDescriptorProto {
5250                                name: Some("proto_file".into()),
5251                                number: Some(15),
5252                                label: Some(Repeated.into()),
5253                                r#type: Some(Message.into()),
5254                                type_name: Some(".google.protobuf.FileDescriptorProto".into()),
5255                                extendee: None,
5256                                default_value: None,
5257                                oneof_index: None,
5258                                json_name: Some("protoFile".into()),
5259                                options: None,
5260                                proto3_optional: None,
5261                            },
5262                            FieldDescriptorProto {
5263                                name: Some("source_file_descriptors".into()),
5264                                number: Some(17),
5265                                label: Some(Repeated.into()),
5266                                r#type: Some(Message.into()),
5267                                type_name: Some(".google.protobuf.FileDescriptorProto".into()),
5268                                extendee: None,
5269                                default_value: None,
5270                                oneof_index: None,
5271                                json_name: Some("sourceFileDescriptors".into()),
5272                                options: None,
5273                                proto3_optional: None,
5274                            },
5275                            FieldDescriptorProto {
5276                                name: Some("compiler_version".into()),
5277                                number: Some(3),
5278                                label: Some(Optional.into()),
5279                                r#type: Some(Message.into()),
5280                                type_name: Some(".google.protobuf.compiler.Version".into()),
5281                                extendee: None,
5282                                default_value: None,
5283                                oneof_index: None,
5284                                json_name: Some("compilerVersion".into()),
5285                                options: None,
5286                                proto3_optional: None,
5287                            },
5288                        ],
5289                        extension: vec![],
5290                        nested_type: vec![],
5291                        enum_type: vec![],
5292                        extension_range: vec![],
5293                        oneof_decl: vec![],
5294                        options: None,
5295                        reserved_range: vec![],
5296                        reserved_name: vec![],
5297                    },
5298                    DescriptorProto {
5299                        name: Some("CodeGeneratorResponse".into()),
5300                        field: vec![
5301                            FieldDescriptorProto {
5302                                name: Some("error".into()),
5303                                number: Some(1),
5304                                label: Some(Optional.into()),
5305                                r#type: Some(String.into()),
5306                                type_name: None,
5307                                extendee: None,
5308                                default_value: None,
5309                                oneof_index: None,
5310                                json_name: Some("error".into()),
5311                                options: None,
5312                                proto3_optional: None,
5313                            },
5314                            FieldDescriptorProto {
5315                                name: Some("supported_features".into()),
5316                                number: Some(2),
5317                                label: Some(Optional.into()),
5318                                r#type: Some(Uint64.into()),
5319                                type_name: None,
5320                                extendee: None,
5321                                default_value: None,
5322                                oneof_index: None,
5323                                json_name: Some("supportedFeatures".into()),
5324                                options: None,
5325                                proto3_optional: None,
5326                            },
5327                            FieldDescriptorProto {
5328                                name: Some("file".into()),
5329                                number: Some(15),
5330                                label: Some(Repeated.into()),
5331                                r#type: Some(Message.into()),
5332                                type_name: Some(
5333                                    ".google.protobuf.compiler.CodeGeneratorResponse.File".into(),
5334                                ),
5335                                extendee: None,
5336                                default_value: None,
5337                                oneof_index: None,
5338                                json_name: Some("file".into()),
5339                                options: None,
5340                                proto3_optional: None,
5341                            },
5342                        ],
5343                        extension: vec![],
5344                        nested_type: vec![DescriptorProto {
5345                            name: Some("File".into()),
5346                            field: vec![
5347                                FieldDescriptorProto {
5348                                    name: Some("name".into()),
5349                                    number: Some(1),
5350                                    label: Some(Optional.into()),
5351                                    r#type: Some(String.into()),
5352                                    type_name: None,
5353                                    extendee: None,
5354                                    default_value: None,
5355                                    oneof_index: None,
5356                                    json_name: Some("name".into()),
5357                                    options: None,
5358                                    proto3_optional: None,
5359                                },
5360                                FieldDescriptorProto {
5361                                    name: Some("insertion_point".into()),
5362                                    number: Some(2),
5363                                    label: Some(Optional.into()),
5364                                    r#type: Some(String.into()),
5365                                    type_name: None,
5366                                    extendee: None,
5367                                    default_value: None,
5368                                    oneof_index: None,
5369                                    json_name: Some("insertionPoint".into()),
5370                                    options: None,
5371                                    proto3_optional: None,
5372                                },
5373                                FieldDescriptorProto {
5374                                    name: Some("content".into()),
5375                                    number: Some(15),
5376                                    label: Some(Optional.into()),
5377                                    r#type: Some(String.into()),
5378                                    type_name: None,
5379                                    extendee: None,
5380                                    default_value: None,
5381                                    oneof_index: None,
5382                                    json_name: Some("content".into()),
5383                                    options: None,
5384                                    proto3_optional: None,
5385                                },
5386                                FieldDescriptorProto {
5387                                    name: Some("generated_code_info".into()),
5388                                    number: Some(16),
5389                                    label: Some(Optional.into()),
5390                                    r#type: Some(Message.into()),
5391                                    type_name: Some(".google.protobuf.GeneratedCodeInfo".into()),
5392                                    extendee: None,
5393                                    default_value: None,
5394                                    oneof_index: None,
5395                                    json_name: Some("generatedCodeInfo".into()),
5396                                    options: None,
5397                                    proto3_optional: None,
5398                                },
5399                            ],
5400                            extension: vec![],
5401                            nested_type: vec![],
5402                            enum_type: vec![],
5403                            extension_range: vec![],
5404                            oneof_decl: vec![],
5405                            options: None,
5406                            reserved_range: vec![],
5407                            reserved_name: vec![],
5408                        }],
5409                        enum_type: vec![EnumDescriptorProto {
5410                            name: Some("Feature".into()),
5411                            value: vec![
5412                                EnumValueDescriptorProto {
5413                                    name: Some("FEATURE_NONE".into()),
5414                                    number: Some(0),
5415                                    options: None,
5416                                },
5417                                EnumValueDescriptorProto {
5418                                    name: Some("FEATURE_PROTO3_OPTIONAL".into()),
5419                                    number: Some(1),
5420                                    options: None,
5421                                },
5422                                EnumValueDescriptorProto {
5423                                    name: Some("FEATURE_SUPPORTS_EDITIONS".into()),
5424                                    number: Some(2),
5425                                    options: None,
5426                                },
5427                            ],
5428                            options: None,
5429                            reserved_range: vec![],
5430                            reserved_name: vec![],
5431                        }],
5432                        extension_range: vec![],
5433                        oneof_decl: vec![],
5434                        options: None,
5435                        reserved_range: vec![],
5436                        reserved_name: vec![],
5437                    },
5438                ],
5439                enum_type: vec![],
5440                service: vec![],
5441                extension: vec![],
5442                options: Some(Options::from_prost(FileOptions {
5443                    java_package: Some("com.google.protobuf.compiler".into()),
5444                    java_outer_classname: Some("PluginProtos".into()),
5445                    java_multiple_files: None,
5446                    java_generate_equals_and_hash: None,
5447                    java_string_check_utf8: None,
5448                    optimize_for: None,
5449                    go_package: Some("google.golang.org/protobuf/types/pluginpb".into()),
5450                    cc_generic_services: None,
5451                    java_generic_services: None,
5452                    py_generic_services: None,
5453                    php_generic_services: None,
5454                    deprecated: None,
5455                    cc_enable_arenas: None,
5456                    objc_class_prefix: None,
5457                    csharp_namespace: Some("Google.Protobuf.Compiler".into()),
5458                    swift_prefix: None,
5459                    php_class_prefix: None,
5460                    php_namespace: None,
5461                    php_metadata_namespace: None,
5462                    ruby_package: None,
5463                    uninterpreted_option: vec![],
5464                })),
5465                source_code_info: None,
5466                syntax: None,
5467            },
5468        ],
5469    }
5470}
5471
5472pub fn make_wkt_descriptor_pool() -> Result<DescriptorPool, DescriptorError> {
5473    let file_descriptor_set = make_descriptor();
5474    let mut pool = DescriptorPool::new();
5475    pool.build_files(file_descriptor_set.file.into_iter())?;
5476    Ok(pool)
5477}
5478
5479macro_rules! impl_reflect_message {
5480    ($($ty:ty => $name:literal;)*) => {
5481        $(
5482            impl ReflectMessage for $ty {
5483                #[doc = concat!("Returns a descriptor for the `", $name, "` message type.")]
5484                fn descriptor(&self) -> MessageDescriptor {
5485                    match DescriptorPool::global().get_message_by_name($name) {
5486                        Some(desc) => desc,
5487                        None => panic!("descriptor for well-known type `{}` not found", $name),
5488                    }
5489                }
5490            }
5491        )*
5492
5493        #[test]
5494        fn test_reflect_message_impls() {
5495            $(
5496                assert_eq!(<$ty>::default().descriptor().full_name(), $name);
5497            )*
5498        }
5499    };
5500}
5501
5502impl_reflect_message! {
5503    () => "google.protobuf.Empty";
5504    bool => "google.protobuf.BoolValue";
5505    f32 => "google.protobuf.FloatValue";
5506    f64 => "google.protobuf.DoubleValue";
5507    i32 => "google.protobuf.Int32Value";
5508    i64 => "google.protobuf.Int64Value";
5509    std::string::String => "google.protobuf.StringValue";
5510    u32 => "google.protobuf.UInt32Value";
5511    u64 => "google.protobuf.UInt64Value";
5512    Vec<u8> => "google.protobuf.BytesValue";
5513    prost_types::Any => "google.protobuf.Any";
5514    prost_types::Api => "google.protobuf.Api";
5515    prost_types::compiler::CodeGeneratorRequest => "google.protobuf.compiler.CodeGeneratorRequest";
5516    prost_types::compiler::CodeGeneratorResponse => "google.protobuf.compiler.CodeGeneratorResponse";
5517    prost_types::compiler::code_generator_response::File => "google.protobuf.compiler.CodeGeneratorResponse.File";
5518    prost_types::compiler::Version => "google.protobuf.compiler.Version";
5519    prost_types::DescriptorProto => "google.protobuf.DescriptorProto";
5520    prost_types::descriptor_proto::ExtensionRange => "google.protobuf.DescriptorProto.ExtensionRange";
5521    prost_types::descriptor_proto::ReservedRange => "google.protobuf.DescriptorProto.ReservedRange";
5522    prost_types::Duration => "google.protobuf.Duration";
5523    prost_types::Enum => "google.protobuf.Enum";
5524    prost_types::EnumDescriptorProto => "google.protobuf.EnumDescriptorProto";
5525    prost_types::enum_descriptor_proto::EnumReservedRange => "google.protobuf.EnumDescriptorProto.EnumReservedRange";
5526    prost_types::EnumOptions => "google.protobuf.EnumOptions";
5527    prost_types::EnumValue => "google.protobuf.EnumValue";
5528    prost_types::EnumValueDescriptorProto => "google.protobuf.EnumValueDescriptorProto";
5529    prost_types::EnumValueOptions => "google.protobuf.EnumValueOptions";
5530    prost_types::ExtensionRangeOptions => "google.protobuf.ExtensionRangeOptions";
5531    prost_types::Field => "google.protobuf.Field";
5532    prost_types::FieldDescriptorProto => "google.protobuf.FieldDescriptorProto";
5533    prost_types::FieldMask => "google.protobuf.FieldMask";
5534    prost_types::FieldOptions => "google.protobuf.FieldOptions";
5535    prost_types::FileDescriptorProto => "google.protobuf.FileDescriptorProto";
5536    prost_types::FileDescriptorSet => "google.protobuf.FileDescriptorSet";
5537    prost_types::FileOptions => "google.protobuf.FileOptions";
5538    prost_types::GeneratedCodeInfo => "google.protobuf.GeneratedCodeInfo";
5539    prost_types::generated_code_info::Annotation => "google.protobuf.GeneratedCodeInfo.Annotation";
5540    prost_types::ListValue => "google.protobuf.ListValue";
5541    prost_types::MessageOptions => "google.protobuf.MessageOptions";
5542    prost_types::Method => "google.protobuf.Method";
5543    prost_types::MethodDescriptorProto => "google.protobuf.MethodDescriptorProto";
5544    prost_types::MethodOptions => "google.protobuf.MethodOptions";
5545    prost_types::Mixin => "google.protobuf.Mixin";
5546    prost_types::OneofDescriptorProto => "google.protobuf.OneofDescriptorProto";
5547    prost_types::OneofOptions => "google.protobuf.OneofOptions";
5548    prost_types::Option => "google.protobuf.Option";
5549    prost_types::ServiceDescriptorProto => "google.protobuf.ServiceDescriptorProto";
5550    prost_types::ServiceOptions => "google.protobuf.ServiceOptions";
5551    prost_types::SourceCodeInfo => "google.protobuf.SourceCodeInfo";
5552    prost_types::source_code_info::Location => "google.protobuf.SourceCodeInfo.Location";
5553    prost_types::SourceContext => "google.protobuf.SourceContext";
5554    prost_types::Struct => "google.protobuf.Struct";
5555    prost_types::Timestamp => "google.protobuf.Timestamp";
5556    prost_types::Type => "google.protobuf.Type";
5557    prost_types::UninterpretedOption => "google.protobuf.UninterpretedOption";
5558    prost_types::uninterpreted_option::NamePart => "google.protobuf.UninterpretedOption.NamePart";
5559    prost_types::Value => "google.protobuf.Value";
5560    prost::bytes::Bytes => "google.protobuf.BytesValue";
5561}