1#![allow(unknown_lints)]
6#![allow(clippy::all)]
7
8#![cfg_attr(rustfmt, rustfmt_skip)]
9
10#![allow(box_pointers)]
11#![allow(dead_code)]
12#![allow(missing_docs)]
13#![allow(non_camel_case_types)]
14#![allow(non_snake_case)]
15#![allow(non_upper_case_globals)]
16#![allow(trivial_casts)]
17#![allow(unsafe_code)]
18#![allow(unused_imports)]
19#![allow(unused_results)]
20use protobuf::Message as Message_imported_for_functions;
23use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
24
25const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_10_0;
28
29#[derive(PartialEq,Clone,Default)]
30pub struct Signature {
31 pub signing_context: ::protobuf::SingularPtrField<SigningContext>,
33 pub raw_bytes: ::std::vec::Vec<u8>,
34 pub unknown_fields: ::protobuf::UnknownFields,
36 pub cached_size: ::protobuf::CachedSize,
37}
38
39impl<'a> ::std::default::Default for &'a Signature {
40 fn default() -> &'a Signature {
41 <Signature as ::protobuf::Message>::default_instance()
42 }
43}
44
45impl Signature {
46 pub fn new() -> Signature {
47 ::std::default::Default::default()
48 }
49
50 pub fn get_signing_context(&self) -> &SigningContext {
54 self.signing_context.as_ref().unwrap_or_else(|| SigningContext::default_instance())
55 }
56 pub fn clear_signing_context(&mut self) {
57 self.signing_context.clear();
58 }
59
60 pub fn has_signing_context(&self) -> bool {
61 self.signing_context.is_some()
62 }
63
64 pub fn set_signing_context(&mut self, v: SigningContext) {
66 self.signing_context = ::protobuf::SingularPtrField::some(v);
67 }
68
69 pub fn mut_signing_context(&mut self) -> &mut SigningContext {
72 if self.signing_context.is_none() {
73 self.signing_context.set_default();
74 }
75 self.signing_context.as_mut().unwrap()
76 }
77
78 pub fn take_signing_context(&mut self) -> SigningContext {
80 self.signing_context.take().unwrap_or_else(|| SigningContext::new())
81 }
82
83 pub fn get_raw_bytes(&self) -> &[u8] {
87 &self.raw_bytes
88 }
89 pub fn clear_raw_bytes(&mut self) {
90 self.raw_bytes.clear();
91 }
92
93 pub fn set_raw_bytes(&mut self, v: ::std::vec::Vec<u8>) {
95 self.raw_bytes = v;
96 }
97
98 pub fn mut_raw_bytes(&mut self) -> &mut ::std::vec::Vec<u8> {
101 &mut self.raw_bytes
102 }
103
104 pub fn take_raw_bytes(&mut self) -> ::std::vec::Vec<u8> {
106 ::std::mem::replace(&mut self.raw_bytes, ::std::vec::Vec::new())
107 }
108}
109
110impl ::protobuf::Message for Signature {
111 fn is_initialized(&self) -> bool {
112 for v in &self.signing_context {
113 if !v.is_initialized() {
114 return false;
115 }
116 };
117 true
118 }
119
120 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
121 while !is.eof()? {
122 let (field_number, wire_type) = is.read_tag_unpack()?;
123 match field_number {
124 1 => {
125 ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.signing_context)?;
126 },
127 2 => {
128 ::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.raw_bytes)?;
129 },
130 _ => {
131 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
132 },
133 };
134 }
135 ::std::result::Result::Ok(())
136 }
137
138 #[allow(unused_variables)]
140 fn compute_size(&self) -> u32 {
141 let mut my_size = 0;
142 if let Some(ref v) = self.signing_context.as_ref() {
143 let len = v.compute_size();
144 my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
145 }
146 if !self.raw_bytes.is_empty() {
147 my_size += ::protobuf::rt::bytes_size(2, &self.raw_bytes);
148 }
149 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
150 self.cached_size.set(my_size);
151 my_size
152 }
153
154 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
155 if let Some(ref v) = self.signing_context.as_ref() {
156 os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
157 os.write_raw_varint32(v.get_cached_size())?;
158 v.write_to_with_cached_sizes(os)?;
159 }
160 if !self.raw_bytes.is_empty() {
161 os.write_bytes(2, &self.raw_bytes)?;
162 }
163 os.write_unknown_fields(self.get_unknown_fields())?;
164 ::std::result::Result::Ok(())
165 }
166
167 fn get_cached_size(&self) -> u32 {
168 self.cached_size.get()
169 }
170
171 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
172 &self.unknown_fields
173 }
174
175 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
176 &mut self.unknown_fields
177 }
178
179 fn as_any(&self) -> &dyn (::std::any::Any) {
180 self as &dyn (::std::any::Any)
181 }
182 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
183 self as &mut dyn (::std::any::Any)
184 }
185 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
186 self
187 }
188
189 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
190 Self::descriptor_static()
191 }
192
193 fn new() -> Signature {
194 Signature::new()
195 }
196
197 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
198 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
199 lock: ::protobuf::lazy::ONCE_INIT,
200 ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
201 };
202 unsafe {
203 descriptor.get(|| {
204 let mut fields = ::std::vec::Vec::new();
205 fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SigningContext>>(
206 "signing_context",
207 |m: &Signature| { &m.signing_context },
208 |m: &mut Signature| { &mut m.signing_context },
209 ));
210 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
211 "raw_bytes",
212 |m: &Signature| { &m.raw_bytes },
213 |m: &mut Signature| { &mut m.raw_bytes },
214 ));
215 ::protobuf::reflect::MessageDescriptor::new::<Signature>(
216 "Signature",
217 fields,
218 file_descriptor_proto()
219 )
220 })
221 }
222 }
223
224 fn default_instance() -> &'static Signature {
225 static mut instance: ::protobuf::lazy::Lazy<Signature> = ::protobuf::lazy::Lazy {
226 lock: ::protobuf::lazy::ONCE_INIT,
227 ptr: 0 as *const Signature,
228 };
229 unsafe {
230 instance.get(Signature::new)
231 }
232 }
233}
234
235impl ::protobuf::Clear for Signature {
236 fn clear(&mut self) {
237 self.signing_context.clear();
238 self.raw_bytes.clear();
239 self.unknown_fields.clear();
240 }
241}
242
243impl ::std::fmt::Debug for Signature {
244 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
245 ::protobuf::text_format::fmt(self, f)
246 }
247}
248
249impl ::protobuf::reflect::ProtobufValue for Signature {
250 fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
251 ::protobuf::reflect::ProtobufValueRef::Message(self)
252 }
253}
254
255#[derive(PartialEq,Clone,Default)]
256pub struct SigningContext {
257 pub network_type: super::Network::NetworkType,
259 pub signature_type: SignatureType,
260 pub unknown_fields: ::protobuf::UnknownFields,
262 pub cached_size: ::protobuf::CachedSize,
263}
264
265impl<'a> ::std::default::Default for &'a SigningContext {
266 fn default() -> &'a SigningContext {
267 <SigningContext as ::protobuf::Message>::default_instance()
268 }
269}
270
271impl SigningContext {
272 pub fn new() -> SigningContext {
273 ::std::default::Default::default()
274 }
275
276 pub fn get_network_type(&self) -> super::Network::NetworkType {
280 self.network_type
281 }
282 pub fn clear_network_type(&mut self) {
283 self.network_type = super::Network::NetworkType::NETWORK_TYPE_UNKNOWN;
284 }
285
286 pub fn set_network_type(&mut self, v: super::Network::NetworkType) {
288 self.network_type = v;
289 }
290
291 pub fn get_signature_type(&self) -> SignatureType {
295 self.signature_type
296 }
297 pub fn clear_signature_type(&mut self) {
298 self.signature_type = SignatureType::SIGNATURE_TYPE_UNKNOWN;
299 }
300
301 pub fn set_signature_type(&mut self, v: SignatureType) {
303 self.signature_type = v;
304 }
305}
306
307impl ::protobuf::Message for SigningContext {
308 fn is_initialized(&self) -> bool {
309 true
310 }
311
312 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
313 while !is.eof()? {
314 let (field_number, wire_type) = is.read_tag_unpack()?;
315 match field_number {
316 1 => {
317 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.network_type, 1, &mut self.unknown_fields)?
318 },
319 2 => {
320 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.signature_type, 2, &mut self.unknown_fields)?
321 },
322 _ => {
323 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
324 },
325 };
326 }
327 ::std::result::Result::Ok(())
328 }
329
330 #[allow(unused_variables)]
332 fn compute_size(&self) -> u32 {
333 let mut my_size = 0;
334 if self.network_type != super::Network::NetworkType::NETWORK_TYPE_UNKNOWN {
335 my_size += ::protobuf::rt::enum_size(1, self.network_type);
336 }
337 if self.signature_type != SignatureType::SIGNATURE_TYPE_UNKNOWN {
338 my_size += ::protobuf::rt::enum_size(2, self.signature_type);
339 }
340 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
341 self.cached_size.set(my_size);
342 my_size
343 }
344
345 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
346 if self.network_type != super::Network::NetworkType::NETWORK_TYPE_UNKNOWN {
347 os.write_enum(1, self.network_type.value())?;
348 }
349 if self.signature_type != SignatureType::SIGNATURE_TYPE_UNKNOWN {
350 os.write_enum(2, self.signature_type.value())?;
351 }
352 os.write_unknown_fields(self.get_unknown_fields())?;
353 ::std::result::Result::Ok(())
354 }
355
356 fn get_cached_size(&self) -> u32 {
357 self.cached_size.get()
358 }
359
360 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
361 &self.unknown_fields
362 }
363
364 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
365 &mut self.unknown_fields
366 }
367
368 fn as_any(&self) -> &dyn (::std::any::Any) {
369 self as &dyn (::std::any::Any)
370 }
371 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
372 self as &mut dyn (::std::any::Any)
373 }
374 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
375 self
376 }
377
378 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
379 Self::descriptor_static()
380 }
381
382 fn new() -> SigningContext {
383 SigningContext::new()
384 }
385
386 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
387 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
388 lock: ::protobuf::lazy::ONCE_INIT,
389 ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
390 };
391 unsafe {
392 descriptor.get(|| {
393 let mut fields = ::std::vec::Vec::new();
394 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::Network::NetworkType>>(
395 "network_type",
396 |m: &SigningContext| { &m.network_type },
397 |m: &mut SigningContext| { &mut m.network_type },
398 ));
399 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<SignatureType>>(
400 "signature_type",
401 |m: &SigningContext| { &m.signature_type },
402 |m: &mut SigningContext| { &mut m.signature_type },
403 ));
404 ::protobuf::reflect::MessageDescriptor::new::<SigningContext>(
405 "SigningContext",
406 fields,
407 file_descriptor_proto()
408 )
409 })
410 }
411 }
412
413 fn default_instance() -> &'static SigningContext {
414 static mut instance: ::protobuf::lazy::Lazy<SigningContext> = ::protobuf::lazy::Lazy {
415 lock: ::protobuf::lazy::ONCE_INIT,
416 ptr: 0 as *const SigningContext,
417 };
418 unsafe {
419 instance.get(SigningContext::new)
420 }
421 }
422}
423
424impl ::protobuf::Clear for SigningContext {
425 fn clear(&mut self) {
426 self.network_type = super::Network::NetworkType::NETWORK_TYPE_UNKNOWN;
427 self.signature_type = SignatureType::SIGNATURE_TYPE_UNKNOWN;
428 self.unknown_fields.clear();
429 }
430}
431
432impl ::std::fmt::Debug for SigningContext {
433 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
434 ::protobuf::text_format::fmt(self, f)
435 }
436}
437
438impl ::protobuf::reflect::ProtobufValue for SigningContext {
439 fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
440 ::protobuf::reflect::ProtobufValueRef::Message(self)
441 }
442}
443
444#[derive(PartialEq,Clone,Default)]
445pub struct SignatureBatch {
446 pub signatures: ::protobuf::RepeatedField<::std::vec::Vec<u8>>,
448 pub public_keys: ::protobuf::RepeatedField<::std::vec::Vec<u8>>,
449 pub messages: ::protobuf::RepeatedField<::std::vec::Vec<u8>>,
450 pub context: ::std::vec::Vec<u8>,
451 pub unknown_fields: ::protobuf::UnknownFields,
453 pub cached_size: ::protobuf::CachedSize,
454}
455
456impl<'a> ::std::default::Default for &'a SignatureBatch {
457 fn default() -> &'a SignatureBatch {
458 <SignatureBatch as ::protobuf::Message>::default_instance()
459 }
460}
461
462impl SignatureBatch {
463 pub fn new() -> SignatureBatch {
464 ::std::default::Default::default()
465 }
466
467 pub fn get_signatures(&self) -> &[::std::vec::Vec<u8>] {
471 &self.signatures
472 }
473 pub fn clear_signatures(&mut self) {
474 self.signatures.clear();
475 }
476
477 pub fn set_signatures(&mut self, v: ::protobuf::RepeatedField<::std::vec::Vec<u8>>) {
479 self.signatures = v;
480 }
481
482 pub fn mut_signatures(&mut self) -> &mut ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
484 &mut self.signatures
485 }
486
487 pub fn take_signatures(&mut self) -> ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
489 ::std::mem::replace(&mut self.signatures, ::protobuf::RepeatedField::new())
490 }
491
492 pub fn get_public_keys(&self) -> &[::std::vec::Vec<u8>] {
496 &self.public_keys
497 }
498 pub fn clear_public_keys(&mut self) {
499 self.public_keys.clear();
500 }
501
502 pub fn set_public_keys(&mut self, v: ::protobuf::RepeatedField<::std::vec::Vec<u8>>) {
504 self.public_keys = v;
505 }
506
507 pub fn mut_public_keys(&mut self) -> &mut ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
509 &mut self.public_keys
510 }
511
512 pub fn take_public_keys(&mut self) -> ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
514 ::std::mem::replace(&mut self.public_keys, ::protobuf::RepeatedField::new())
515 }
516
517 pub fn get_messages(&self) -> &[::std::vec::Vec<u8>] {
521 &self.messages
522 }
523 pub fn clear_messages(&mut self) {
524 self.messages.clear();
525 }
526
527 pub fn set_messages(&mut self, v: ::protobuf::RepeatedField<::std::vec::Vec<u8>>) {
529 self.messages = v;
530 }
531
532 pub fn mut_messages(&mut self) -> &mut ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
534 &mut self.messages
535 }
536
537 pub fn take_messages(&mut self) -> ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
539 ::std::mem::replace(&mut self.messages, ::protobuf::RepeatedField::new())
540 }
541
542 pub fn get_context(&self) -> &[u8] {
546 &self.context
547 }
548 pub fn clear_context(&mut self) {
549 self.context.clear();
550 }
551
552 pub fn set_context(&mut self, v: ::std::vec::Vec<u8>) {
554 self.context = v;
555 }
556
557 pub fn mut_context(&mut self) -> &mut ::std::vec::Vec<u8> {
560 &mut self.context
561 }
562
563 pub fn take_context(&mut self) -> ::std::vec::Vec<u8> {
565 ::std::mem::replace(&mut self.context, ::std::vec::Vec::new())
566 }
567}
568
569impl ::protobuf::Message for SignatureBatch {
570 fn is_initialized(&self) -> bool {
571 true
572 }
573
574 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
575 while !is.eof()? {
576 let (field_number, wire_type) = is.read_tag_unpack()?;
577 match field_number {
578 1 => {
579 ::protobuf::rt::read_repeated_bytes_into(wire_type, is, &mut self.signatures)?;
580 },
581 2 => {
582 ::protobuf::rt::read_repeated_bytes_into(wire_type, is, &mut self.public_keys)?;
583 },
584 3 => {
585 ::protobuf::rt::read_repeated_bytes_into(wire_type, is, &mut self.messages)?;
586 },
587 4 => {
588 ::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.context)?;
589 },
590 _ => {
591 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
592 },
593 };
594 }
595 ::std::result::Result::Ok(())
596 }
597
598 #[allow(unused_variables)]
600 fn compute_size(&self) -> u32 {
601 let mut my_size = 0;
602 for value in &self.signatures {
603 my_size += ::protobuf::rt::bytes_size(1, &value);
604 };
605 for value in &self.public_keys {
606 my_size += ::protobuf::rt::bytes_size(2, &value);
607 };
608 for value in &self.messages {
609 my_size += ::protobuf::rt::bytes_size(3, &value);
610 };
611 if !self.context.is_empty() {
612 my_size += ::protobuf::rt::bytes_size(4, &self.context);
613 }
614 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
615 self.cached_size.set(my_size);
616 my_size
617 }
618
619 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
620 for v in &self.signatures {
621 os.write_bytes(1, &v)?;
622 };
623 for v in &self.public_keys {
624 os.write_bytes(2, &v)?;
625 };
626 for v in &self.messages {
627 os.write_bytes(3, &v)?;
628 };
629 if !self.context.is_empty() {
630 os.write_bytes(4, &self.context)?;
631 }
632 os.write_unknown_fields(self.get_unknown_fields())?;
633 ::std::result::Result::Ok(())
634 }
635
636 fn get_cached_size(&self) -> u32 {
637 self.cached_size.get()
638 }
639
640 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
641 &self.unknown_fields
642 }
643
644 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
645 &mut self.unknown_fields
646 }
647
648 fn as_any(&self) -> &dyn (::std::any::Any) {
649 self as &dyn (::std::any::Any)
650 }
651 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
652 self as &mut dyn (::std::any::Any)
653 }
654 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
655 self
656 }
657
658 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
659 Self::descriptor_static()
660 }
661
662 fn new() -> SignatureBatch {
663 SignatureBatch::new()
664 }
665
666 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
667 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy {
668 lock: ::protobuf::lazy::ONCE_INIT,
669 ptr: 0 as *const ::protobuf::reflect::MessageDescriptor,
670 };
671 unsafe {
672 descriptor.get(|| {
673 let mut fields = ::std::vec::Vec::new();
674 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
675 "signatures",
676 |m: &SignatureBatch| { &m.signatures },
677 |m: &mut SignatureBatch| { &mut m.signatures },
678 ));
679 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
680 "public_keys",
681 |m: &SignatureBatch| { &m.public_keys },
682 |m: &mut SignatureBatch| { &mut m.public_keys },
683 ));
684 fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
685 "messages",
686 |m: &SignatureBatch| { &m.messages },
687 |m: &mut SignatureBatch| { &mut m.messages },
688 ));
689 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
690 "context",
691 |m: &SignatureBatch| { &m.context },
692 |m: &mut SignatureBatch| { &mut m.context },
693 ));
694 ::protobuf::reflect::MessageDescriptor::new::<SignatureBatch>(
695 "SignatureBatch",
696 fields,
697 file_descriptor_proto()
698 )
699 })
700 }
701 }
702
703 fn default_instance() -> &'static SignatureBatch {
704 static mut instance: ::protobuf::lazy::Lazy<SignatureBatch> = ::protobuf::lazy::Lazy {
705 lock: ::protobuf::lazy::ONCE_INIT,
706 ptr: 0 as *const SignatureBatch,
707 };
708 unsafe {
709 instance.get(SignatureBatch::new)
710 }
711 }
712}
713
714impl ::protobuf::Clear for SignatureBatch {
715 fn clear(&mut self) {
716 self.signatures.clear();
717 self.public_keys.clear();
718 self.messages.clear();
719 self.context.clear();
720 self.unknown_fields.clear();
721 }
722}
723
724impl ::std::fmt::Debug for SignatureBatch {
725 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
726 ::protobuf::text_format::fmt(self, f)
727 }
728}
729
730impl ::protobuf::reflect::ProtobufValue for SignatureBatch {
731 fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
732 ::protobuf::reflect::ProtobufValueRef::Message(self)
733 }
734}
735
736#[derive(Clone,PartialEq,Eq,Debug,Hash)]
737pub enum SignatureType {
738 SIGNATURE_TYPE_UNKNOWN = 0,
739 TRANSACTION_PUBLIC = 1,
740 TRANSACTION_CONFIDENTIAL = 2,
741 PROTOCOL_RPC = 3,
742 PROTOCOL_PEER = 4,
743}
744
745impl ::protobuf::ProtobufEnum for SignatureType {
746 fn value(&self) -> i32 {
747 *self as i32
748 }
749
750 fn from_i32(value: i32) -> ::std::option::Option<SignatureType> {
751 match value {
752 0 => ::std::option::Option::Some(SignatureType::SIGNATURE_TYPE_UNKNOWN),
753 1 => ::std::option::Option::Some(SignatureType::TRANSACTION_PUBLIC),
754 2 => ::std::option::Option::Some(SignatureType::TRANSACTION_CONFIDENTIAL),
755 3 => ::std::option::Option::Some(SignatureType::PROTOCOL_RPC),
756 4 => ::std::option::Option::Some(SignatureType::PROTOCOL_PEER),
757 _ => ::std::option::Option::None
758 }
759 }
760
761 fn values() -> &'static [Self] {
762 static values: &'static [SignatureType] = &[
763 SignatureType::SIGNATURE_TYPE_UNKNOWN,
764 SignatureType::TRANSACTION_PUBLIC,
765 SignatureType::TRANSACTION_CONFIDENTIAL,
766 SignatureType::PROTOCOL_RPC,
767 SignatureType::PROTOCOL_PEER,
768 ];
769 values
770 }
771
772 fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
773 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy {
774 lock: ::protobuf::lazy::ONCE_INIT,
775 ptr: 0 as *const ::protobuf::reflect::EnumDescriptor,
776 };
777 unsafe {
778 descriptor.get(|| {
779 ::protobuf::reflect::EnumDescriptor::new("SignatureType", file_descriptor_proto())
780 })
781 }
782 }
783}
784
785impl ::std::marker::Copy for SignatureType {
786}
787
788impl ::std::default::Default for SignatureType {
789 fn default() -> Self {
790 SignatureType::SIGNATURE_TYPE_UNKNOWN
791 }
792}
793
794impl ::protobuf::reflect::ProtobufValue for SignatureType {
795 fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
796 ::protobuf::reflect::ProtobufValueRef::Enum(self.descriptor())
797 }
798}
799
800#[derive(Clone,PartialEq,Eq,Debug,Hash)]
801pub enum ErrorCode {
802 ERROR_CODE_UNKNOWN = 0,
803 INVALID_SIGNATURE = 1,
804 INVALID_PUBLIC_KEY = 2,
805 INVALID_PRIVATE_KEY = 3,
806 SIGNATURE_VERIFICATION_FAILURE = 4,
807 INVALID_CONTEXT_LENGTH = 5,
808 INVALID_BATCH_MESSAGE = 6,
809 ARRAYS_NOT_EQUAL_LENGTH = 7,
810 BATCH_VERIFICATION_FAILURE = 8,
811 NO_ERROR = 418,
812}
813
814impl ::protobuf::ProtobufEnum for ErrorCode {
815 fn value(&self) -> i32 {
816 *self as i32
817 }
818
819 fn from_i32(value: i32) -> ::std::option::Option<ErrorCode> {
820 match value {
821 0 => ::std::option::Option::Some(ErrorCode::ERROR_CODE_UNKNOWN),
822 1 => ::std::option::Option::Some(ErrorCode::INVALID_SIGNATURE),
823 2 => ::std::option::Option::Some(ErrorCode::INVALID_PUBLIC_KEY),
824 3 => ::std::option::Option::Some(ErrorCode::INVALID_PRIVATE_KEY),
825 4 => ::std::option::Option::Some(ErrorCode::SIGNATURE_VERIFICATION_FAILURE),
826 5 => ::std::option::Option::Some(ErrorCode::INVALID_CONTEXT_LENGTH),
827 6 => ::std::option::Option::Some(ErrorCode::INVALID_BATCH_MESSAGE),
828 7 => ::std::option::Option::Some(ErrorCode::ARRAYS_NOT_EQUAL_LENGTH),
829 8 => ::std::option::Option::Some(ErrorCode::BATCH_VERIFICATION_FAILURE),
830 418 => ::std::option::Option::Some(ErrorCode::NO_ERROR),
831 _ => ::std::option::Option::None
832 }
833 }
834
835 fn values() -> &'static [Self] {
836 static values: &'static [ErrorCode] = &[
837 ErrorCode::ERROR_CODE_UNKNOWN,
838 ErrorCode::INVALID_SIGNATURE,
839 ErrorCode::INVALID_PUBLIC_KEY,
840 ErrorCode::INVALID_PRIVATE_KEY,
841 ErrorCode::SIGNATURE_VERIFICATION_FAILURE,
842 ErrorCode::INVALID_CONTEXT_LENGTH,
843 ErrorCode::INVALID_BATCH_MESSAGE,
844 ErrorCode::ARRAYS_NOT_EQUAL_LENGTH,
845 ErrorCode::BATCH_VERIFICATION_FAILURE,
846 ErrorCode::NO_ERROR,
847 ];
848 values
849 }
850
851 fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
852 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy {
853 lock: ::protobuf::lazy::ONCE_INIT,
854 ptr: 0 as *const ::protobuf::reflect::EnumDescriptor,
855 };
856 unsafe {
857 descriptor.get(|| {
858 ::protobuf::reflect::EnumDescriptor::new("ErrorCode", file_descriptor_proto())
859 })
860 }
861 }
862}
863
864impl ::std::marker::Copy for ErrorCode {
865}
866
867impl ::std::default::Default for ErrorCode {
868 fn default() -> Self {
869 ErrorCode::ERROR_CODE_UNKNOWN
870 }
871}
872
873impl ::protobuf::reflect::ProtobufValue for ErrorCode {
874 fn as_ref(&self) -> ::protobuf::reflect::ProtobufValueRef {
875 ::protobuf::reflect::ProtobufValueRef::Enum(self.descriptor())
876 }
877}
878
879static file_descriptor_proto_data: &'static [u8] = b"\
880 \n\x12Cryptography.proto\x12\x1eCatalyst.Protocol.Cryptography\x1a\rNetw\
881 ork.proto\"\x81\x01\n\tSignature\x12W\n\x0fsigning_context\x18\x01\x20\
882 \x01(\x0b2..Catalyst.Protocol.Cryptography.SigningContextR\x0esigningCon\
883 text\x12\x1b\n\traw_bytes\x18\x02\x20\x01(\x0cR\x08rawBytes\"\xb1\x01\n\
884 \x0eSigningContext\x12I\n\x0cnetwork_type\x18\x01\x20\x01(\x0e2&.Catalys\
885 t.Protocol.Network.NetworkTypeR\x0bnetworkType\x12T\n\x0esignature_type\
886 \x18\x02\x20\x01(\x0e2-.Catalyst.Protocol.Cryptography.SignatureTypeR\rs\
887 ignatureType\"\x87\x01\n\x0eSignatureBatch\x12\x1e\n\nsignatures\x18\x01\
888 \x20\x03(\x0cR\nsignatures\x12\x1f\n\x0bpublic_keys\x18\x02\x20\x03(\x0c\
889 R\npublicKeys\x12\x1a\n\x08messages\x18\x03\x20\x03(\x0cR\x08messages\
890 \x12\x18\n\x07context\x18\x04\x20\x01(\x0cR\x07context*\x86\x01\n\rSigna\
891 tureType\x12\x1a\n\x16SIGNATURE_TYPE_UNKNOWN\x10\0\x12\x16\n\x12TRANSACT\
892 ION_PUBLIC\x10\x01\x12\x1c\n\x18TRANSACTION_CONFIDENTIAL\x10\x02\x12\x10\
893 \n\x0cPROTOCOL_RPC\x10\x03\x12\x11\n\rPROTOCOL_PEER\x10\x04*\x92\x02\n\t\
894 ErrorCode\x12\x16\n\x12ERROR_CODE_UNKNOWN\x10\0\x12\x15\n\x11INVALID_SIG\
895 NATURE\x10\x01\x12\x16\n\x12INVALID_PUBLIC_KEY\x10\x02\x12\x17\n\x13INVA\
896 LID_PRIVATE_KEY\x10\x03\x12\"\n\x1eSIGNATURE_VERIFICATION_FAILURE\x10\
897 \x04\x12\x1a\n\x16INVALID_CONTEXT_LENGTH\x10\x05\x12\x19\n\x15INVALID_BA\
898 TCH_MESSAGE\x10\x06\x12\x1b\n\x17ARRAYS_NOT_EQUAL_LENGTH\x10\x07\x12\x1e\
899 \n\x1aBATCH_VERIFICATION_FAILURE\x10\x08\x12\r\n\x08NO_ERROR\x10\xa2\x03\
900 B\x02P\x01J\xbc\x19\n\x06\x12\x04\x13\0A\x01\n\xdf\x06\n\x01\x0c\x12\x03\
901 \x13\0\x122\xd4\x06*\n\x20Copyright\x20(c)\x202019\x20Catalyst\x20Networ\
902 k\n\n\x20This\x20file\x20is\x20part\x20of\x20Catalyst.Network.Protocol.P\
903 rotobuffs\x20<https://github.com/catalyst-network/protocol-protobuffs>\n\
904 \n\x20Catalyst.Network.Protocol.Protobuffs\x20is\x20free\x20software:\
905 \x20you\x20can\x20redistribute\x20it\x20and/or\x20modify\n\x20it\x20unde\
906 r\x20the\x20terms\x20of\x20the\x20GNU\x20General\x20Public\x20License\
907 \x20as\x20published\x20by\n\x20the\x20Free\x20Software\x20Foundation,\
908 \x20either\x20version\x202\x20of\x20the\x20License,\x20or\n\x20(at\x20yo\
909 ur\x20option)\x20any\x20later\x20version.\n\x20\n\x20Catalyst.Network.Pr\
910 otocol.Protobuffs\x20is\x20distributed\x20in\x20the\x20hope\x20that\x20i\
911 t\x20will\x20be\x20useful,\n\x20but\x20WITHOUT\x20ANY\x20WARRANTY;\x20wi\
912 thout\x20even\x20the\x20implied\x20warranty\x20of\n\x20MERCHANTABILITY\
913 \x20or\x20FITNESS\x20FOR\x20A\x20PARTICULAR\x20PURPOSE.\x20See\x20the\n\
914 \x20GNU\x20General\x20Public\x20License\x20for\x20more\x20details.\n\x20\
915 \n\x20You\x20should\x20have\x20received\x20a\x20copy\x20of\x20the\x20GNU\
916 \x20General\x20Public\x20License\n\x20along\x20with\x20Catalyst.Network.\
917 Protocol.Protobuffs\x20If\x20not,\x20see\x20<https://www.gnu.org/license\
918 s/>.\n\n\x08\n\x01\x08\x12\x03\x15\0\"\n\x0b\n\x04\x08\xe7\x07\0\x12\x03\
919 \x15\0\"\n\x0c\n\x05\x08\xe7\x07\0\x02\x12\x03\x15\x07\x1a\n\r\n\x06\x08\
920 \xe7\x07\0\x02\0\x12\x03\x15\x07\x1a\n\x0e\n\x07\x08\xe7\x07\0\x02\0\x01\
921 \x12\x03\x15\x07\x1a\n\x0c\n\x05\x08\xe7\x07\0\x03\x12\x03\x15\x1d!\n\t\
922 \n\x02\x03\0\x12\x03\x17\x07\x16\n\x08\n\x01\x02\x12\x03\x19\x08&\n\n\n\
923 \x02\x04\0\x12\x04\x1b\0\x1e\x01\n\n\n\x03\x04\0\x01\x12\x03\x1b\x08\x11\
924 \n%\n\x04\x04\0\x02\0\x12\x03\x1c\x08+\"\x18\x20system\x20domain\x20cont\
925 ext.\n\n\r\n\x05\x04\0\x02\0\x04\x12\x04\x1c\x08\x1b\x13\n\x0c\n\x05\x04\
926 \0\x02\0\x06\x12\x03\x1c\x08\x16\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x1c\
927 \x17&\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x1c)*\n\x20\n\x04\x04\0\x02\
928 \x01\x12\x03\x1d\x08\x1c\"\x13\x20signature\x20digest.\n\n\r\n\x05\x04\0\
929 \x02\x01\x04\x12\x04\x1d\x08\x1c+\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\
930 \x1d\x08\r\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x1d\x0e\x17\n\x0c\n\x05\
931 \x04\0\x02\x01\x03\x12\x03\x1d\x1a\x1b\n+\n\x02\x05\0\x12\x04!\0'\x01\
932 \x1a\x1f\x20Represents\x20domains\x20of\x20a\x20node.\n\n\n\n\x03\x05\0\
933 \x01\x12\x03!\x05\x12\n!\n\x04\x05\0\x02\0\x12\x03\"\x08#\"\x14\x20Unkno\
934 wn\x20signature.\n\n\x0c\n\x05\x05\0\x02\0\x01\x12\x03\"\x08\x1e\n\x0c\n\
935 \x05\x05\0\x02\0\x02\x12\x03\"!\"\n2\n\x04\x05\0\x02\x01\x12\x03#\x08\
936 \x1f\"%\x20Signatures\x20for\x20public\x20transactions.\n\n\x0c\n\x05\
937 \x05\0\x02\x01\x01\x12\x03#\x08\x1a\n\x0c\n\x05\x05\0\x02\x01\x02\x12\
938 \x03#\x1d\x1e\n8\n\x04\x05\0\x02\x02\x12\x03$\x08%\"+\x20Signatures\x20f\
939 or\x20confidential\x20transactions.\n\n\x0c\n\x05\x05\0\x02\x02\x01\x12\
940 \x03$\x08\x20\n\x0c\n\x05\x05\0\x02\x02\x02\x12\x03$#$\n+\n\x04\x05\0\
941 \x02\x03\x12\x03%\x08\x19\"\x1e\x20Signatures\x20for\x20rpc\x20messages.\
942 \n\n\x0c\n\x05\x05\0\x02\x03\x01\x12\x03%\x08\x14\n\x0c\n\x05\x05\0\x02\
943 \x03\x02\x12\x03%\x17\x18\n5\n\x04\x05\0\x02\x04\x12\x03&\x08\x1a\"(\x20\
944 Signatures\x20for\x20peer\x20protocol\x20messages.\n\n\x0c\n\x05\x05\0\
945 \x02\x04\x01\x12\x03&\x08\x15\n\x0c\n\x05\x05\0\x02\x04\x02\x12\x03&\x18\
946 \x19\n\n\n\x02\x04\x01\x12\x04)\0,\x01\n\n\n\x03\x04\x01\x01\x12\x03)\
947 \x08\x16\n9\n\x04\x04\x01\x02\0\x12\x03*\x08-\",\x20is\x20the\x20network\
948 \x20enum\x20(mainet\x20/\x20devnet\x20etc).\n\n\r\n\x05\x04\x01\x02\0\
949 \x04\x12\x04*\x08)\x18\n\x0c\n\x05\x04\x01\x02\0\x06\x12\x03*\x08\x1b\n\
950 \x0c\n\x05\x04\x01\x02\0\x01\x12\x03*\x1c(\n\x0c\n\x05\x04\x01\x02\0\x03\
951 \x12\x03*+,\na\n\x04\x04\x01\x02\x01\x12\x03+\x08)\"T\x20contains\x20inf\
952 o\x20on\x20whether\x20the\x20signature\x20is\x20for\x20a\x20protocol\x20\
953 message\x20or\x20a\x20transaction.\n\n\r\n\x05\x04\x01\x02\x01\x04\x12\
954 \x04+\x08*-\n\x0c\n\x05\x04\x01\x02\x01\x06\x12\x03+\x08\x15\n\x0c\n\x05\
955 \x04\x01\x02\x01\x01\x12\x03+\x16$\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\
956 \x03+'(\n\n\n\x02\x05\x01\x12\x04.\09\x01\n\n\n\x03\x05\x01\x01\x12\x03.\
957 \x05\x0e\n\x1d\n\x04\x05\x01\x02\0\x12\x03/\x08\x1f\"\x10\x20Unknown\x20\
958 error.\n\n\x0c\n\x05\x05\x01\x02\0\x01\x12\x03/\x08\x1a\n\x0c\n\x05\x05\
959 \x01\x02\0\x02\x12\x03/\x1d\x1e\nX\n\x04\x05\x01\x02\x01\x12\x030\x08\
960 \x1e\"K\x20Signature\x20is\x20of\x20incorrect\x20length\x20or\x20does\
961 \x20not\x20correspond\x20to\x20a\x20valid\x20point.\n\n\x0c\n\x05\x05\
962 \x01\x02\x01\x01\x12\x030\x08\x19\n\x0c\n\x05\x05\x01\x02\x01\x02\x12\
963 \x030\x1c\x1d\n\\\n\x04\x05\x01\x02\x02\x12\x031\x08\x1f\"O\x20Public\
964 \x20key\x20is\x20of\x20incorrect\x20length\x20or\x20cannot\x20be\x20deco\
965 mpressed\x20to\x20a\x20valid\x20point.\n\n\x0c\n\x05\x05\x01\x02\x02\x01\
966 \x12\x031\x08\x1a\n\x0c\n\x05\x05\x01\x02\x02\x02\x12\x031\x1d\x1e\n2\n\
967 \x04\x05\x01\x02\x03\x12\x032\x08\x20\"%\x20Private\x20key\x20is\x20of\
968 \x20incorrect\x20length.\n\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x032\x08\
969 \x1b\n\x0c\n\x05\x05\x01\x02\x03\x02\x12\x032\x1e\x1f\nM\n\x04\x05\x01\
970 \x02\x04\x12\x033\x02%\"@\x20Signature\x20cannot\x20be\x20verified\x20ag\
971 ainst\x20the\x20provided\x20information.\n\n\x0c\n\x05\x05\x01\x02\x04\
972 \x01\x12\x033\x02\x20\n\x0c\n\x05\x05\x01\x02\x04\x02\x12\x033#$\n9\n\
973 \x04\x05\x01\x02\x05\x12\x034\x02\x1d\",\x20Context\x20exceed\x20the\x20\
974 maximum\x20allowed\x20length.\n\n\x0c\n\x05\x05\x01\x02\x05\x01\x12\x034\
975 \x02\x18\n\x0c\n\x05\x05\x01\x02\x05\x02\x12\x034\x1b\x1c\n8\n\x04\x05\
976 \x01\x02\x06\x12\x035\x08\"\"+\x20Unable\x20to\x20convert\x20message\x20\
977 to\x20valid\x20data.\x20\n\n\x0c\n\x05\x05\x01\x02\x06\x01\x12\x035\x08\
978 \x1d\n\x0c\n\x05\x05\x01\x02\x06\x02\x12\x035\x20!\np\n\x04\x05\x01\x02\
979 \x07\x12\x036\x08$\"c\x20Cannot\x20perform\x20batch\x20verification\x20a\
980 s\x20an\x20unequal\x20number\x20of\x20messages/signatures/keys\x20were\
981 \x20provided.\n\n\x0c\n\x05\x05\x01\x02\x07\x01\x12\x036\x08\x1f\n\x0c\n\
982 \x05\x05\x01\x02\x07\x02\x12\x036\"#\n9\n\x04\x05\x01\x02\x08\x12\x037\
983 \x08'\",\x20One\x20or\x20more\x20signatures\x20cannot\x20be\x20verified.\
984 \n\n\x0c\n\x05\x05\x01\x02\x08\x01\x12\x037\x08\"\n\x0c\n\x05\x05\x01\
985 \x02\x08\x02\x12\x037%&\n(\n\x04\x05\x01\x02\t\x12\x038\x08\x17\"\x1b\
986 \x20No\x20error\x20(just\x20a\x20teapot).\n\n\x0c\n\x05\x05\x01\x02\t\
987 \x01\x12\x038\x08\x10\n\x0c\n\x05\x05\x01\x02\t\x02\x12\x038\x13\x16\n=\
988 \n\x02\x04\x02\x12\x04<\0A\x01\x1a1Holds\x20data\x20for\x20batch\x20veri\
989 fication\x20of\x20signatures.\n\n\n\n\x03\x04\x02\x01\x12\x03<\x08\x16\n\
990 \x0b\n\x04\x04\x02\x02\0\x12\x03=\x08&\n\x0c\n\x05\x04\x02\x02\0\x04\x12\
991 \x03=\x08\x10\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03=\x11\x16\n\x0c\n\x05\
992 \x04\x02\x02\0\x01\x12\x03=\x17!\n\x0c\n\x05\x04\x02\x02\0\x03\x12\x03=$\
993 %\n\x0b\n\x04\x04\x02\x02\x01\x12\x03>\x08'\n\x0c\n\x05\x04\x02\x02\x01\
994 \x04\x12\x03>\x08\x10\n\x0c\n\x05\x04\x02\x02\x01\x05\x12\x03>\x11\x16\n\
995 \x0c\n\x05\x04\x02\x02\x01\x01\x12\x03>\x17\"\n\x0c\n\x05\x04\x02\x02\
996 \x01\x03\x12\x03>%&\n\x0b\n\x04\x04\x02\x02\x02\x12\x03?\x08$\n\x0c\n\
997 \x05\x04\x02\x02\x02\x04\x12\x03?\x08\x10\n\x0c\n\x05\x04\x02\x02\x02\
998 \x05\x12\x03?\x11\x16\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03?\x17\x1f\n\
999 \x0c\n\x05\x04\x02\x02\x02\x03\x12\x03?\"#\n\x0b\n\x04\x04\x02\x02\x03\
1000 \x12\x03@\x08\x1a\n\r\n\x05\x04\x02\x02\x03\x04\x12\x04@\x08?$\n\x0c\n\
1001 \x05\x04\x02\x02\x03\x05\x12\x03@\x08\r\n\x0c\n\x05\x04\x02\x02\x03\x01\
1002 \x12\x03@\x0e\x15\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03@\x18\x19b\x06p\
1003 roto3\
1004";
1005
1006static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy {
1007 lock: ::protobuf::lazy::ONCE_INIT,
1008 ptr: 0 as *const ::protobuf::descriptor::FileDescriptorProto,
1009};
1010
1011fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
1012 ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
1013}
1014
1015pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
1016 unsafe {
1017 file_descriptor_proto_lazy.get(|| {
1018 parse_descriptor_proto()
1019 })
1020 }
1021}