tensorflow_serving_client/
saver.rs1#![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
25#[derive(PartialEq,Clone,Default)]
30pub struct SaverDef {
31 pub filename_tensor_name: ::std::string::String,
33 pub save_tensor_name: ::std::string::String,
34 pub restore_op_name: ::std::string::String,
35 pub max_to_keep: i32,
36 pub sharded: bool,
37 pub keep_checkpoint_every_n_hours: f32,
38 pub version: SaverDef_CheckpointFormatVersion,
39 pub unknown_fields: ::protobuf::UnknownFields,
41 pub cached_size: ::protobuf::CachedSize,
42}
43
44impl<'a> ::std::default::Default for &'a SaverDef {
45 fn default() -> &'a SaverDef {
46 <SaverDef as ::protobuf::Message>::default_instance()
47 }
48}
49
50impl SaverDef {
51 pub fn new() -> SaverDef {
52 ::std::default::Default::default()
53 }
54
55 pub fn get_filename_tensor_name(&self) -> &str {
59 &self.filename_tensor_name
60 }
61 pub fn clear_filename_tensor_name(&mut self) {
62 self.filename_tensor_name.clear();
63 }
64
65 pub fn set_filename_tensor_name(&mut self, v: ::std::string::String) {
67 self.filename_tensor_name = v;
68 }
69
70 pub fn mut_filename_tensor_name(&mut self) -> &mut ::std::string::String {
73 &mut self.filename_tensor_name
74 }
75
76 pub fn take_filename_tensor_name(&mut self) -> ::std::string::String {
78 ::std::mem::replace(&mut self.filename_tensor_name, ::std::string::String::new())
79 }
80
81 pub fn get_save_tensor_name(&self) -> &str {
85 &self.save_tensor_name
86 }
87 pub fn clear_save_tensor_name(&mut self) {
88 self.save_tensor_name.clear();
89 }
90
91 pub fn set_save_tensor_name(&mut self, v: ::std::string::String) {
93 self.save_tensor_name = v;
94 }
95
96 pub fn mut_save_tensor_name(&mut self) -> &mut ::std::string::String {
99 &mut self.save_tensor_name
100 }
101
102 pub fn take_save_tensor_name(&mut self) -> ::std::string::String {
104 ::std::mem::replace(&mut self.save_tensor_name, ::std::string::String::new())
105 }
106
107 pub fn get_restore_op_name(&self) -> &str {
111 &self.restore_op_name
112 }
113 pub fn clear_restore_op_name(&mut self) {
114 self.restore_op_name.clear();
115 }
116
117 pub fn set_restore_op_name(&mut self, v: ::std::string::String) {
119 self.restore_op_name = v;
120 }
121
122 pub fn mut_restore_op_name(&mut self) -> &mut ::std::string::String {
125 &mut self.restore_op_name
126 }
127
128 pub fn take_restore_op_name(&mut self) -> ::std::string::String {
130 ::std::mem::replace(&mut self.restore_op_name, ::std::string::String::new())
131 }
132
133 pub fn get_max_to_keep(&self) -> i32 {
137 self.max_to_keep
138 }
139 pub fn clear_max_to_keep(&mut self) {
140 self.max_to_keep = 0;
141 }
142
143 pub fn set_max_to_keep(&mut self, v: i32) {
145 self.max_to_keep = v;
146 }
147
148 pub fn get_sharded(&self) -> bool {
152 self.sharded
153 }
154 pub fn clear_sharded(&mut self) {
155 self.sharded = false;
156 }
157
158 pub fn set_sharded(&mut self, v: bool) {
160 self.sharded = v;
161 }
162
163 pub fn get_keep_checkpoint_every_n_hours(&self) -> f32 {
167 self.keep_checkpoint_every_n_hours
168 }
169 pub fn clear_keep_checkpoint_every_n_hours(&mut self) {
170 self.keep_checkpoint_every_n_hours = 0.;
171 }
172
173 pub fn set_keep_checkpoint_every_n_hours(&mut self, v: f32) {
175 self.keep_checkpoint_every_n_hours = v;
176 }
177
178 pub fn get_version(&self) -> SaverDef_CheckpointFormatVersion {
182 self.version
183 }
184 pub fn clear_version(&mut self) {
185 self.version = SaverDef_CheckpointFormatVersion::LEGACY;
186 }
187
188 pub fn set_version(&mut self, v: SaverDef_CheckpointFormatVersion) {
190 self.version = v;
191 }
192}
193
194impl ::protobuf::Message for SaverDef {
195 fn is_initialized(&self) -> bool {
196 true
197 }
198
199 fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
200 while !is.eof()? {
201 let (field_number, wire_type) = is.read_tag_unpack()?;
202 match field_number {
203 1 => {
204 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filename_tensor_name)?;
205 },
206 2 => {
207 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.save_tensor_name)?;
208 },
209 3 => {
210 ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.restore_op_name)?;
211 },
212 4 => {
213 if wire_type != ::protobuf::wire_format::WireTypeVarint {
214 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
215 }
216 let tmp = is.read_int32()?;
217 self.max_to_keep = tmp;
218 },
219 5 => {
220 if wire_type != ::protobuf::wire_format::WireTypeVarint {
221 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
222 }
223 let tmp = is.read_bool()?;
224 self.sharded = tmp;
225 },
226 6 => {
227 if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
228 return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
229 }
230 let tmp = is.read_float()?;
231 self.keep_checkpoint_every_n_hours = tmp;
232 },
233 7 => {
234 ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.version, 7, &mut self.unknown_fields)?
235 },
236 _ => {
237 ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
238 },
239 };
240 }
241 ::std::result::Result::Ok(())
242 }
243
244 #[allow(unused_variables)]
246 fn compute_size(&self) -> u32 {
247 let mut my_size = 0;
248 if !self.filename_tensor_name.is_empty() {
249 my_size += ::protobuf::rt::string_size(1, &self.filename_tensor_name);
250 }
251 if !self.save_tensor_name.is_empty() {
252 my_size += ::protobuf::rt::string_size(2, &self.save_tensor_name);
253 }
254 if !self.restore_op_name.is_empty() {
255 my_size += ::protobuf::rt::string_size(3, &self.restore_op_name);
256 }
257 if self.max_to_keep != 0 {
258 my_size += ::protobuf::rt::value_size(4, self.max_to_keep, ::protobuf::wire_format::WireTypeVarint);
259 }
260 if self.sharded != false {
261 my_size += 2;
262 }
263 if self.keep_checkpoint_every_n_hours != 0. {
264 my_size += 5;
265 }
266 if self.version != SaverDef_CheckpointFormatVersion::LEGACY {
267 my_size += ::protobuf::rt::enum_size(7, self.version);
268 }
269 my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
270 self.cached_size.set(my_size);
271 my_size
272 }
273
274 fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
275 if !self.filename_tensor_name.is_empty() {
276 os.write_string(1, &self.filename_tensor_name)?;
277 }
278 if !self.save_tensor_name.is_empty() {
279 os.write_string(2, &self.save_tensor_name)?;
280 }
281 if !self.restore_op_name.is_empty() {
282 os.write_string(3, &self.restore_op_name)?;
283 }
284 if self.max_to_keep != 0 {
285 os.write_int32(4, self.max_to_keep)?;
286 }
287 if self.sharded != false {
288 os.write_bool(5, self.sharded)?;
289 }
290 if self.keep_checkpoint_every_n_hours != 0. {
291 os.write_float(6, self.keep_checkpoint_every_n_hours)?;
292 }
293 if self.version != SaverDef_CheckpointFormatVersion::LEGACY {
294 os.write_enum(7, self.version.value())?;
295 }
296 os.write_unknown_fields(self.get_unknown_fields())?;
297 ::std::result::Result::Ok(())
298 }
299
300 fn get_cached_size(&self) -> u32 {
301 self.cached_size.get()
302 }
303
304 fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
305 &self.unknown_fields
306 }
307
308 fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
309 &mut self.unknown_fields
310 }
311
312 fn as_any(&self) -> &dyn (::std::any::Any) {
313 self as &dyn (::std::any::Any)
314 }
315 fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
316 self as &mut dyn (::std::any::Any)
317 }
318 fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
319 self
320 }
321
322 fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
323 Self::descriptor_static()
324 }
325
326 fn new() -> SaverDef {
327 SaverDef::new()
328 }
329
330 fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
331 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
332 unsafe {
333 descriptor.get(|| {
334 let mut fields = ::std::vec::Vec::new();
335 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
336 "filename_tensor_name",
337 |m: &SaverDef| { &m.filename_tensor_name },
338 |m: &mut SaverDef| { &mut m.filename_tensor_name },
339 ));
340 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
341 "save_tensor_name",
342 |m: &SaverDef| { &m.save_tensor_name },
343 |m: &mut SaverDef| { &mut m.save_tensor_name },
344 ));
345 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
346 "restore_op_name",
347 |m: &SaverDef| { &m.restore_op_name },
348 |m: &mut SaverDef| { &mut m.restore_op_name },
349 ));
350 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
351 "max_to_keep",
352 |m: &SaverDef| { &m.max_to_keep },
353 |m: &mut SaverDef| { &mut m.max_to_keep },
354 ));
355 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
356 "sharded",
357 |m: &SaverDef| { &m.sharded },
358 |m: &mut SaverDef| { &mut m.sharded },
359 ));
360 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
361 "keep_checkpoint_every_n_hours",
362 |m: &SaverDef| { &m.keep_checkpoint_every_n_hours },
363 |m: &mut SaverDef| { &mut m.keep_checkpoint_every_n_hours },
364 ));
365 fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<SaverDef_CheckpointFormatVersion>>(
366 "version",
367 |m: &SaverDef| { &m.version },
368 |m: &mut SaverDef| { &mut m.version },
369 ));
370 ::protobuf::reflect::MessageDescriptor::new_pb_name::<SaverDef>(
371 "SaverDef",
372 fields,
373 file_descriptor_proto()
374 )
375 })
376 }
377 }
378
379 fn default_instance() -> &'static SaverDef {
380 static mut instance: ::protobuf::lazy::Lazy<SaverDef> = ::protobuf::lazy::Lazy::INIT;
381 unsafe {
382 instance.get(SaverDef::new)
383 }
384 }
385}
386
387impl ::protobuf::Clear for SaverDef {
388 fn clear(&mut self) {
389 self.filename_tensor_name.clear();
390 self.save_tensor_name.clear();
391 self.restore_op_name.clear();
392 self.max_to_keep = 0;
393 self.sharded = false;
394 self.keep_checkpoint_every_n_hours = 0.;
395 self.version = SaverDef_CheckpointFormatVersion::LEGACY;
396 self.unknown_fields.clear();
397 }
398}
399
400impl ::std::fmt::Debug for SaverDef {
401 fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
402 ::protobuf::text_format::fmt(self, f)
403 }
404}
405
406impl ::protobuf::reflect::ProtobufValue for SaverDef {
407 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
408 ::protobuf::reflect::ReflectValueRef::Message(self)
409 }
410}
411
412#[derive(Clone,PartialEq,Eq,Debug,Hash)]
413pub enum SaverDef_CheckpointFormatVersion {
414 LEGACY = 0,
415 V1 = 1,
416 V2 = 2,
417}
418
419impl ::protobuf::ProtobufEnum for SaverDef_CheckpointFormatVersion {
420 fn value(&self) -> i32 {
421 *self as i32
422 }
423
424 fn from_i32(value: i32) -> ::std::option::Option<SaverDef_CheckpointFormatVersion> {
425 match value {
426 0 => ::std::option::Option::Some(SaverDef_CheckpointFormatVersion::LEGACY),
427 1 => ::std::option::Option::Some(SaverDef_CheckpointFormatVersion::V1),
428 2 => ::std::option::Option::Some(SaverDef_CheckpointFormatVersion::V2),
429 _ => ::std::option::Option::None
430 }
431 }
432
433 fn values() -> &'static [Self] {
434 static values: &'static [SaverDef_CheckpointFormatVersion] = &[
435 SaverDef_CheckpointFormatVersion::LEGACY,
436 SaverDef_CheckpointFormatVersion::V1,
437 SaverDef_CheckpointFormatVersion::V2,
438 ];
439 values
440 }
441
442 fn enum_descriptor_static() -> &'static ::protobuf::reflect::EnumDescriptor {
443 static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::EnumDescriptor> = ::protobuf::lazy::Lazy::INIT;
444 unsafe {
445 descriptor.get(|| {
446 ::protobuf::reflect::EnumDescriptor::new_pb_name::<SaverDef_CheckpointFormatVersion>("SaverDef.CheckpointFormatVersion", file_descriptor_proto())
447 })
448 }
449 }
450}
451
452impl ::std::marker::Copy for SaverDef_CheckpointFormatVersion {
453}
454
455impl ::std::default::Default for SaverDef_CheckpointFormatVersion {
456 fn default() -> Self {
457 SaverDef_CheckpointFormatVersion::LEGACY
458 }
459}
460
461impl ::protobuf::reflect::ProtobufValue for SaverDef_CheckpointFormatVersion {
462 fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
463 ::protobuf::reflect::ReflectValueRef::Enum(self.descriptor())
464 }
465}
466
467static file_descriptor_proto_data: &'static [u8] = b"\
468 \n$tensorflow/core/protobuf/saver.proto\x12\ntensorflow\"\x89\x03\n\x08S\
469 averDef\x120\n\x14filename_tensor_name\x18\x01\x20\x01(\tR\x12filenameTe\
470 nsorName\x12(\n\x10save_tensor_name\x18\x02\x20\x01(\tR\x0esaveTensorNam\
471 e\x12&\n\x0frestore_op_name\x18\x03\x20\x01(\tR\rrestoreOpName\x12\x1e\n\
472 \x0bmax_to_keep\x18\x04\x20\x01(\x05R\tmaxToKeep\x12\x18\n\x07sharded\
473 \x18\x05\x20\x01(\x08R\x07sharded\x12@\n\x1dkeep_checkpoint_every_n_hour\
474 s\x18\x06\x20\x01(\x02R\x19keepCheckpointEveryNHours\x12F\n\x07version\
475 \x18\x07\x20\x01(\x0e2,.tensorflow.SaverDef.CheckpointFormatVersionR\x07\
476 version\"5\n\x17CheckpointFormatVersion\x12\n\n\x06LEGACY\x10\0\x12\x06\
477 \n\x02V1\x10\x01\x12\x06\n\x02V2\x10\x02Bq\n\x13org.tensorflow.utilB\x0b\
478 SaverProtosP\x01ZHgithub.com/tensorflow/tensorflow/tensorflow/go/core/co\
479 re_protos_go_proto\xf8\x01\x01J\x95\x0e\n\x06\x12\x04\0\0/\x01\n\x08\n\
480 \x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x02\0\x13\n\x08\n\x01\
481 \x08\x12\x03\x04\0\x1f\n\t\n\x02\x08\x1f\x12\x03\x04\0\x1f\n\x08\n\x01\
482 \x08\x12\x03\x05\0,\n\t\n\x02\x08\x08\x12\x03\x05\0,\n\x08\n\x01\x08\x12\
483 \x03\x06\0\"\n\t\n\x02\x08\n\x12\x03\x06\0\"\n\x08\n\x01\x08\x12\x03\x07\
484 \0,\n\t\n\x02\x08\x01\x12\x03\x07\0,\n\x08\n\x01\x08\x12\x03\x08\0_\n\t\
485 \n\x02\x08\x0b\x12\x03\x08\0_\nH\n\x02\x04\0\x12\x04\x0b\0/\x01\x1a<\x20\
486 Protocol\x20buffer\x20representing\x20the\x20configuration\x20of\x20a\
487 \x20Saver.\n\n\n\n\x03\x04\0\x01\x12\x03\x0b\x08\x10\nt\n\x04\x04\0\x02\
488 \0\x12\x03\x0e\x02\"\x1ag\x20The\x20name\x20of\x20the\x20tensor\x20in\
489 \x20which\x20to\x20specify\x20the\x20filename\x20when\x20saving\x20or\n\
490 \x20restoring\x20a\x20model\x20checkpoint.\n\n\x0c\n\x05\x04\0\x02\0\x05\
491 \x12\x03\x0e\x02\x08\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03\x0e\t\x1d\n\x0c\
492 \n\x05\x04\0\x02\0\x03\x12\x03\x0e\x20!\nC\n\x04\x04\0\x02\x01\x12\x03\
493 \x11\x02\x1e\x1a6\x20The\x20operation\x20to\x20run\x20when\x20saving\x20\
494 a\x20model\x20checkpoint.\n\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03\x11\
495 \x02\x08\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x11\t\x19\n\x0c\n\x05\x04\
496 \0\x02\x01\x03\x12\x03\x11\x1c\x1d\nF\n\x04\x04\0\x02\x02\x12\x03\x14\
497 \x02\x1d\x1a9\x20The\x20operation\x20to\x20run\x20when\x20restoring\x20a\
498 \x20model\x20checkpoint.\n\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03\x14\x02\
499 \x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03\x14\t\x18\n\x0c\n\x05\x04\0\
500 \x02\x02\x03\x12\x03\x14\x1b\x1c\nX\n\x04\x04\0\x02\x03\x12\x03\x17\x02\
501 \x18\x1aK\x20Maximum\x20number\x20of\x20checkpoints\x20to\x20keep.\x20\
502 \x20If\x200,\x20no\x20checkpoints\x20are\x20deleted.\n\n\x0c\n\x05\x04\0\
503 \x02\x03\x05\x12\x03\x17\x02\x07\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03\
504 \x17\x08\x13\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x03\x17\x16\x17\nL\n\x04\
505 \x04\0\x02\x04\x12\x03\x1a\x02\x13\x1a?\x20Shard\x20the\x20save\x20files\
506 ,\x20one\x20per\x20device\x20that\x20has\x20Variable\x20nodes.\n\n\x0c\n\
507 \x05\x04\0\x02\x04\x05\x12\x03\x1a\x02\x06\n\x0c\n\x05\x04\0\x02\x04\x01\
508 \x12\x03\x1a\x07\x0e\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03\x1a\x11\x12\n\
509 \x90\x02\n\x04\x04\0\x02\x05\x12\x03\x20\x02*\x1a\x82\x02\x20How\x20ofte\
510 n\x20to\x20keep\x20an\x20additional\x20checkpoint.\x20If\x20not\x20speci\
511 fied,\x20only\x20the\x20last\n\x20\"max_to_keep\"\x20checkpoints\x20are\
512 \x20kept;\x20if\x20specified,\x20in\x20addition\x20to\x20keeping\n\x20th\
513 e\x20last\x20\"max_to_keep\"\x20checkpoints,\x20an\x20additional\x20chec\
514 kpoint\x20will\x20be\x20kept\n\x20for\x20every\x20n\x20hours\x20of\x20tr\
515 aining.\n\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x03\x20\x02\x07\n\x0c\n\x05\
516 \x04\0\x02\x05\x01\x12\x03\x20\x08%\n\x0c\n\x05\x04\0\x02\x05\x03\x12\
517 \x03\x20()\n\xa1\x02\n\x04\x04\0\x04\0\x12\x04&\x02-\x03\x1a\x92\x02\x20\
518 A\x20version\x20number\x20that\x20identifies\x20a\x20different\x20on-dis\
519 k\x20checkpoint\x20format.\n\x20Usually,\x20each\x20subclass\x20of\x20Ba\
520 seSaverBuilder\x20works\x20with\x20a\x20particular\n\x20version/format.\
521 \x20\x20However,\x20it\x20is\x20possible\x20that\x20the\x20same\x20build\
522 er\x20may\x20be\n\x20upgraded\x20to\x20support\x20a\x20newer\x20checkpoi\
523 nt\x20format\x20in\x20the\x20future.\n\n\x0c\n\x05\x04\0\x04\0\x01\x12\
524 \x03&\x07\x1e\n(\n\x06\x04\0\x04\0\x02\0\x12\x03(\x04\x0f\x1a\x19\x20Int\
525 ernal\x20legacy\x20format.\n\n\x0e\n\x07\x04\0\x04\0\x02\0\x01\x12\x03(\
526 \x04\n\n\x0e\n\x07\x04\0\x04\0\x02\0\x02\x12\x03(\r\x0e\nY\n\x06\x04\0\
527 \x04\0\x02\x01\x12\x03*\x04\x0b\x1aJ\x20Deprecated\x20format:\x20tf.Save\
528 r()\x20which\x20works\x20with\x20tensorflow::table::Table.\n\n\x0e\n\x07\
529 \x04\0\x04\0\x02\x01\x01\x12\x03*\x04\x06\n\x0e\n\x07\x04\0\x04\0\x02\
530 \x01\x02\x12\x03*\t\n\n0\n\x06\x04\0\x04\0\x02\x02\x12\x03,\x04\x0b\x1a!\
531 \x20Current\x20format:\x20more\x20efficient.\n\n\x0e\n\x07\x04\0\x04\0\
532 \x02\x02\x01\x12\x03,\x04\x06\n\x0e\n\x07\x04\0\x04\0\x02\x02\x02\x12\
533 \x03,\t\n\n\x0b\n\x04\x04\0\x02\x06\x12\x03.\x02&\n\x0c\n\x05\x04\0\x02\
534 \x06\x06\x12\x03.\x02\x19\n\x0c\n\x05\x04\0\x02\x06\x01\x12\x03.\x1a!\n\
535 \x0c\n\x05\x04\0\x02\x06\x03\x12\x03.$%b\x06proto3\
536";
537
538static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;
539
540fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
541 ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
542}
543
544pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
545 unsafe {
546 file_descriptor_proto_lazy.get(|| {
547 parse_descriptor_proto()
548 })
549 }
550}