tensorflow_serving_client/
meta_graph.rs

1// This file is generated by rust-protobuf 2.14.0. Do not edit
2// @generated
3
4// https://github.com/rust-lang/rust-clippy/issues/702
5#![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)]
20//! Generated file from `tensorflow/core/protobuf/meta_graph.proto`
21
22use protobuf::Message as Message_imported_for_functions;
23use protobuf::ProtobufEnum as ProtobufEnum_imported_for_functions;
24
25/// Generated files are compatible only with the same version
26/// of protobuf runtime.
27// const _PROTOBUF_VERSION_CHECK: () = ::protobuf::VERSION_2_14_0;
28
29#[derive(PartialEq,Clone,Default)]
30pub struct MetaGraphDef {
31    // message fields
32    pub meta_info_def: ::protobuf::SingularPtrField<MetaGraphDef_MetaInfoDef>,
33    pub graph_def: ::protobuf::SingularPtrField<super::graph::GraphDef>,
34    pub saver_def: ::protobuf::SingularPtrField<super::saver::SaverDef>,
35    pub collection_def: ::std::collections::HashMap<::std::string::String, CollectionDef>,
36    pub signature_def: ::std::collections::HashMap<::std::string::String, SignatureDef>,
37    pub asset_file_def: ::protobuf::RepeatedField<AssetFileDef>,
38    pub object_graph_def: ::protobuf::SingularPtrField<super::saved_object_graph::SavedObjectGraph>,
39    // special fields
40    pub unknown_fields: ::protobuf::UnknownFields,
41    pub cached_size: ::protobuf::CachedSize,
42}
43
44impl<'a> ::std::default::Default for &'a MetaGraphDef {
45    fn default() -> &'a MetaGraphDef {
46        <MetaGraphDef as ::protobuf::Message>::default_instance()
47    }
48}
49
50impl MetaGraphDef {
51    pub fn new() -> MetaGraphDef {
52        ::std::default::Default::default()
53    }
54
55    // .tensorflow.MetaGraphDef.MetaInfoDef meta_info_def = 1;
56
57
58    pub fn get_meta_info_def(&self) -> &MetaGraphDef_MetaInfoDef {
59        self.meta_info_def.as_ref().unwrap_or_else(|| MetaGraphDef_MetaInfoDef::default_instance())
60    }
61    pub fn clear_meta_info_def(&mut self) {
62        self.meta_info_def.clear();
63    }
64
65    pub fn has_meta_info_def(&self) -> bool {
66        self.meta_info_def.is_some()
67    }
68
69    // Param is passed by value, moved
70    pub fn set_meta_info_def(&mut self, v: MetaGraphDef_MetaInfoDef) {
71        self.meta_info_def = ::protobuf::SingularPtrField::some(v);
72    }
73
74    // Mutable pointer to the field.
75    // If field is not initialized, it is initialized with default value first.
76    pub fn mut_meta_info_def(&mut self) -> &mut MetaGraphDef_MetaInfoDef {
77        if self.meta_info_def.is_none() {
78            self.meta_info_def.set_default();
79        }
80        self.meta_info_def.as_mut().unwrap()
81    }
82
83    // Take field
84    pub fn take_meta_info_def(&mut self) -> MetaGraphDef_MetaInfoDef {
85        self.meta_info_def.take().unwrap_or_else(|| MetaGraphDef_MetaInfoDef::new())
86    }
87
88    // .tensorflow.GraphDef graph_def = 2;
89
90
91    pub fn get_graph_def(&self) -> &super::graph::GraphDef {
92        self.graph_def.as_ref().unwrap_or_else(|| super::graph::GraphDef::default_instance())
93    }
94    pub fn clear_graph_def(&mut self) {
95        self.graph_def.clear();
96    }
97
98    pub fn has_graph_def(&self) -> bool {
99        self.graph_def.is_some()
100    }
101
102    // Param is passed by value, moved
103    pub fn set_graph_def(&mut self, v: super::graph::GraphDef) {
104        self.graph_def = ::protobuf::SingularPtrField::some(v);
105    }
106
107    // Mutable pointer to the field.
108    // If field is not initialized, it is initialized with default value first.
109    pub fn mut_graph_def(&mut self) -> &mut super::graph::GraphDef {
110        if self.graph_def.is_none() {
111            self.graph_def.set_default();
112        }
113        self.graph_def.as_mut().unwrap()
114    }
115
116    // Take field
117    pub fn take_graph_def(&mut self) -> super::graph::GraphDef {
118        self.graph_def.take().unwrap_or_else(|| super::graph::GraphDef::new())
119    }
120
121    // .tensorflow.SaverDef saver_def = 3;
122
123
124    pub fn get_saver_def(&self) -> &super::saver::SaverDef {
125        self.saver_def.as_ref().unwrap_or_else(|| super::saver::SaverDef::default_instance())
126    }
127    pub fn clear_saver_def(&mut self) {
128        self.saver_def.clear();
129    }
130
131    pub fn has_saver_def(&self) -> bool {
132        self.saver_def.is_some()
133    }
134
135    // Param is passed by value, moved
136    pub fn set_saver_def(&mut self, v: super::saver::SaverDef) {
137        self.saver_def = ::protobuf::SingularPtrField::some(v);
138    }
139
140    // Mutable pointer to the field.
141    // If field is not initialized, it is initialized with default value first.
142    pub fn mut_saver_def(&mut self) -> &mut super::saver::SaverDef {
143        if self.saver_def.is_none() {
144            self.saver_def.set_default();
145        }
146        self.saver_def.as_mut().unwrap()
147    }
148
149    // Take field
150    pub fn take_saver_def(&mut self) -> super::saver::SaverDef {
151        self.saver_def.take().unwrap_or_else(|| super::saver::SaverDef::new())
152    }
153
154    // repeated .tensorflow.MetaGraphDef.CollectionDefEntry collection_def = 4;
155
156
157    pub fn get_collection_def(&self) -> &::std::collections::HashMap<::std::string::String, CollectionDef> {
158        &self.collection_def
159    }
160    pub fn clear_collection_def(&mut self) {
161        self.collection_def.clear();
162    }
163
164    // Param is passed by value, moved
165    pub fn set_collection_def(&mut self, v: ::std::collections::HashMap<::std::string::String, CollectionDef>) {
166        self.collection_def = v;
167    }
168
169    // Mutable pointer to the field.
170    pub fn mut_collection_def(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, CollectionDef> {
171        &mut self.collection_def
172    }
173
174    // Take field
175    pub fn take_collection_def(&mut self) -> ::std::collections::HashMap<::std::string::String, CollectionDef> {
176        ::std::mem::replace(&mut self.collection_def, ::std::collections::HashMap::new())
177    }
178
179    // repeated .tensorflow.MetaGraphDef.SignatureDefEntry signature_def = 5;
180
181
182    pub fn get_signature_def(&self) -> &::std::collections::HashMap<::std::string::String, SignatureDef> {
183        &self.signature_def
184    }
185    pub fn clear_signature_def(&mut self) {
186        self.signature_def.clear();
187    }
188
189    // Param is passed by value, moved
190    pub fn set_signature_def(&mut self, v: ::std::collections::HashMap<::std::string::String, SignatureDef>) {
191        self.signature_def = v;
192    }
193
194    // Mutable pointer to the field.
195    pub fn mut_signature_def(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, SignatureDef> {
196        &mut self.signature_def
197    }
198
199    // Take field
200    pub fn take_signature_def(&mut self) -> ::std::collections::HashMap<::std::string::String, SignatureDef> {
201        ::std::mem::replace(&mut self.signature_def, ::std::collections::HashMap::new())
202    }
203
204    // repeated .tensorflow.AssetFileDef asset_file_def = 6;
205
206
207    pub fn get_asset_file_def(&self) -> &[AssetFileDef] {
208        &self.asset_file_def
209    }
210    pub fn clear_asset_file_def(&mut self) {
211        self.asset_file_def.clear();
212    }
213
214    // Param is passed by value, moved
215    pub fn set_asset_file_def(&mut self, v: ::protobuf::RepeatedField<AssetFileDef>) {
216        self.asset_file_def = v;
217    }
218
219    // Mutable pointer to the field.
220    pub fn mut_asset_file_def(&mut self) -> &mut ::protobuf::RepeatedField<AssetFileDef> {
221        &mut self.asset_file_def
222    }
223
224    // Take field
225    pub fn take_asset_file_def(&mut self) -> ::protobuf::RepeatedField<AssetFileDef> {
226        ::std::mem::replace(&mut self.asset_file_def, ::protobuf::RepeatedField::new())
227    }
228
229    // .tensorflow.SavedObjectGraph object_graph_def = 7;
230
231
232    pub fn get_object_graph_def(&self) -> &super::saved_object_graph::SavedObjectGraph {
233        self.object_graph_def.as_ref().unwrap_or_else(|| super::saved_object_graph::SavedObjectGraph::default_instance())
234    }
235    pub fn clear_object_graph_def(&mut self) {
236        self.object_graph_def.clear();
237    }
238
239    pub fn has_object_graph_def(&self) -> bool {
240        self.object_graph_def.is_some()
241    }
242
243    // Param is passed by value, moved
244    pub fn set_object_graph_def(&mut self, v: super::saved_object_graph::SavedObjectGraph) {
245        self.object_graph_def = ::protobuf::SingularPtrField::some(v);
246    }
247
248    // Mutable pointer to the field.
249    // If field is not initialized, it is initialized with default value first.
250    pub fn mut_object_graph_def(&mut self) -> &mut super::saved_object_graph::SavedObjectGraph {
251        if self.object_graph_def.is_none() {
252            self.object_graph_def.set_default();
253        }
254        self.object_graph_def.as_mut().unwrap()
255    }
256
257    // Take field
258    pub fn take_object_graph_def(&mut self) -> super::saved_object_graph::SavedObjectGraph {
259        self.object_graph_def.take().unwrap_or_else(|| super::saved_object_graph::SavedObjectGraph::new())
260    }
261}
262
263impl ::protobuf::Message for MetaGraphDef {
264    fn is_initialized(&self) -> bool {
265        for v in &self.meta_info_def {
266            if !v.is_initialized() {
267                return false;
268            }
269        };
270        for v in &self.graph_def {
271            if !v.is_initialized() {
272                return false;
273            }
274        };
275        for v in &self.saver_def {
276            if !v.is_initialized() {
277                return false;
278            }
279        };
280        for v in &self.asset_file_def {
281            if !v.is_initialized() {
282                return false;
283            }
284        };
285        for v in &self.object_graph_def {
286            if !v.is_initialized() {
287                return false;
288            }
289        };
290        true
291    }
292
293    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
294        while !is.eof()? {
295            let (field_number, wire_type) = is.read_tag_unpack()?;
296            match field_number {
297                1 => {
298                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.meta_info_def)?;
299                },
300                2 => {
301                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.graph_def)?;
302                },
303                3 => {
304                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.saver_def)?;
305                },
306                4 => {
307                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<CollectionDef>>(wire_type, is, &mut self.collection_def)?;
308                },
309                5 => {
310                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SignatureDef>>(wire_type, is, &mut self.signature_def)?;
311                },
312                6 => {
313                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.asset_file_def)?;
314                },
315                7 => {
316                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.object_graph_def)?;
317                },
318                _ => {
319                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
320                },
321            };
322        }
323        ::std::result::Result::Ok(())
324    }
325
326    // Compute sizes of nested messages
327    #[allow(unused_variables)]
328    fn compute_size(&self) -> u32 {
329        let mut my_size = 0;
330        if let Some(ref v) = self.meta_info_def.as_ref() {
331            let len = v.compute_size();
332            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
333        }
334        if let Some(ref v) = self.graph_def.as_ref() {
335            let len = v.compute_size();
336            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
337        }
338        if let Some(ref v) = self.saver_def.as_ref() {
339            let len = v.compute_size();
340            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
341        }
342        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<CollectionDef>>(4, &self.collection_def);
343        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SignatureDef>>(5, &self.signature_def);
344        for value in &self.asset_file_def {
345            let len = value.compute_size();
346            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
347        };
348        if let Some(ref v) = self.object_graph_def.as_ref() {
349            let len = v.compute_size();
350            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
351        }
352        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
353        self.cached_size.set(my_size);
354        my_size
355    }
356
357    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
358        if let Some(ref v) = self.meta_info_def.as_ref() {
359            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
360            os.write_raw_varint32(v.get_cached_size())?;
361            v.write_to_with_cached_sizes(os)?;
362        }
363        if let Some(ref v) = self.graph_def.as_ref() {
364            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
365            os.write_raw_varint32(v.get_cached_size())?;
366            v.write_to_with_cached_sizes(os)?;
367        }
368        if let Some(ref v) = self.saver_def.as_ref() {
369            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
370            os.write_raw_varint32(v.get_cached_size())?;
371            v.write_to_with_cached_sizes(os)?;
372        }
373        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<CollectionDef>>(4, &self.collection_def, os)?;
374        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SignatureDef>>(5, &self.signature_def, os)?;
375        for v in &self.asset_file_def {
376            os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
377            os.write_raw_varint32(v.get_cached_size())?;
378            v.write_to_with_cached_sizes(os)?;
379        };
380        if let Some(ref v) = self.object_graph_def.as_ref() {
381            os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
382            os.write_raw_varint32(v.get_cached_size())?;
383            v.write_to_with_cached_sizes(os)?;
384        }
385        os.write_unknown_fields(self.get_unknown_fields())?;
386        ::std::result::Result::Ok(())
387    }
388
389    fn get_cached_size(&self) -> u32 {
390        self.cached_size.get()
391    }
392
393    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
394        &self.unknown_fields
395    }
396
397    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
398        &mut self.unknown_fields
399    }
400
401    fn as_any(&self) -> &dyn (::std::any::Any) {
402        self as &dyn (::std::any::Any)
403    }
404    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
405        self as &mut dyn (::std::any::Any)
406    }
407    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
408        self
409    }
410
411    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
412        Self::descriptor_static()
413    }
414
415    fn new() -> MetaGraphDef {
416        MetaGraphDef::new()
417    }
418
419    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
420        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
421        unsafe {
422            descriptor.get(|| {
423                let mut fields = ::std::vec::Vec::new();
424                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<MetaGraphDef_MetaInfoDef>>(
425                    "meta_info_def",
426                    |m: &MetaGraphDef| { &m.meta_info_def },
427                    |m: &mut MetaGraphDef| { &mut m.meta_info_def },
428                ));
429                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::graph::GraphDef>>(
430                    "graph_def",
431                    |m: &MetaGraphDef| { &m.graph_def },
432                    |m: &mut MetaGraphDef| { &mut m.graph_def },
433                ));
434                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::saver::SaverDef>>(
435                    "saver_def",
436                    |m: &MetaGraphDef| { &m.saver_def },
437                    |m: &mut MetaGraphDef| { &mut m.saver_def },
438                ));
439                fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<CollectionDef>>(
440                    "collection_def",
441                    |m: &MetaGraphDef| { &m.collection_def },
442                    |m: &mut MetaGraphDef| { &mut m.collection_def },
443                ));
444                fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SignatureDef>>(
445                    "signature_def",
446                    |m: &MetaGraphDef| { &m.signature_def },
447                    |m: &mut MetaGraphDef| { &mut m.signature_def },
448                ));
449                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<AssetFileDef>>(
450                    "asset_file_def",
451                    |m: &MetaGraphDef| { &m.asset_file_def },
452                    |m: &mut MetaGraphDef| { &mut m.asset_file_def },
453                ));
454                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::saved_object_graph::SavedObjectGraph>>(
455                    "object_graph_def",
456                    |m: &MetaGraphDef| { &m.object_graph_def },
457                    |m: &mut MetaGraphDef| { &mut m.object_graph_def },
458                ));
459                ::protobuf::reflect::MessageDescriptor::new_pb_name::<MetaGraphDef>(
460                    "MetaGraphDef",
461                    fields,
462                    file_descriptor_proto()
463                )
464            })
465        }
466    }
467
468    fn default_instance() -> &'static MetaGraphDef {
469        static mut instance: ::protobuf::lazy::Lazy<MetaGraphDef> = ::protobuf::lazy::Lazy::INIT;
470        unsafe {
471            instance.get(MetaGraphDef::new)
472        }
473    }
474}
475
476impl ::protobuf::Clear for MetaGraphDef {
477    fn clear(&mut self) {
478        self.meta_info_def.clear();
479        self.graph_def.clear();
480        self.saver_def.clear();
481        self.collection_def.clear();
482        self.signature_def.clear();
483        self.asset_file_def.clear();
484        self.object_graph_def.clear();
485        self.unknown_fields.clear();
486    }
487}
488
489impl ::std::fmt::Debug for MetaGraphDef {
490    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
491        ::protobuf::text_format::fmt(self, f)
492    }
493}
494
495impl ::protobuf::reflect::ProtobufValue for MetaGraphDef {
496    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
497        ::protobuf::reflect::ReflectValueRef::Message(self)
498    }
499}
500
501#[derive(PartialEq,Clone,Default)]
502pub struct MetaGraphDef_MetaInfoDef {
503    // message fields
504    pub meta_graph_version: ::std::string::String,
505    pub stripped_op_list: ::protobuf::SingularPtrField<super::op_def::OpList>,
506    pub any_info: ::protobuf::SingularPtrField<::protobuf::well_known_types::Any>,
507    pub tags: ::protobuf::RepeatedField<::std::string::String>,
508    pub tensorflow_version: ::std::string::String,
509    pub tensorflow_git_version: ::std::string::String,
510    pub stripped_default_attrs: bool,
511    pub function_aliases: ::std::collections::HashMap<::std::string::String, ::std::string::String>,
512    // special fields
513    pub unknown_fields: ::protobuf::UnknownFields,
514    pub cached_size: ::protobuf::CachedSize,
515}
516
517impl<'a> ::std::default::Default for &'a MetaGraphDef_MetaInfoDef {
518    fn default() -> &'a MetaGraphDef_MetaInfoDef {
519        <MetaGraphDef_MetaInfoDef as ::protobuf::Message>::default_instance()
520    }
521}
522
523impl MetaGraphDef_MetaInfoDef {
524    pub fn new() -> MetaGraphDef_MetaInfoDef {
525        ::std::default::Default::default()
526    }
527
528    // string meta_graph_version = 1;
529
530
531    pub fn get_meta_graph_version(&self) -> &str {
532        &self.meta_graph_version
533    }
534    pub fn clear_meta_graph_version(&mut self) {
535        self.meta_graph_version.clear();
536    }
537
538    // Param is passed by value, moved
539    pub fn set_meta_graph_version(&mut self, v: ::std::string::String) {
540        self.meta_graph_version = v;
541    }
542
543    // Mutable pointer to the field.
544    // If field is not initialized, it is initialized with default value first.
545    pub fn mut_meta_graph_version(&mut self) -> &mut ::std::string::String {
546        &mut self.meta_graph_version
547    }
548
549    // Take field
550    pub fn take_meta_graph_version(&mut self) -> ::std::string::String {
551        ::std::mem::replace(&mut self.meta_graph_version, ::std::string::String::new())
552    }
553
554    // .tensorflow.OpList stripped_op_list = 2;
555
556
557    pub fn get_stripped_op_list(&self) -> &super::op_def::OpList {
558        self.stripped_op_list.as_ref().unwrap_or_else(|| super::op_def::OpList::default_instance())
559    }
560    pub fn clear_stripped_op_list(&mut self) {
561        self.stripped_op_list.clear();
562    }
563
564    pub fn has_stripped_op_list(&self) -> bool {
565        self.stripped_op_list.is_some()
566    }
567
568    // Param is passed by value, moved
569    pub fn set_stripped_op_list(&mut self, v: super::op_def::OpList) {
570        self.stripped_op_list = ::protobuf::SingularPtrField::some(v);
571    }
572
573    // Mutable pointer to the field.
574    // If field is not initialized, it is initialized with default value first.
575    pub fn mut_stripped_op_list(&mut self) -> &mut super::op_def::OpList {
576        if self.stripped_op_list.is_none() {
577            self.stripped_op_list.set_default();
578        }
579        self.stripped_op_list.as_mut().unwrap()
580    }
581
582    // Take field
583    pub fn take_stripped_op_list(&mut self) -> super::op_def::OpList {
584        self.stripped_op_list.take().unwrap_or_else(|| super::op_def::OpList::new())
585    }
586
587    // .google.protobuf.Any any_info = 3;
588
589
590    pub fn get_any_info(&self) -> &::protobuf::well_known_types::Any {
591        self.any_info.as_ref().unwrap_or_else(|| ::protobuf::well_known_types::Any::default_instance())
592    }
593    pub fn clear_any_info(&mut self) {
594        self.any_info.clear();
595    }
596
597    pub fn has_any_info(&self) -> bool {
598        self.any_info.is_some()
599    }
600
601    // Param is passed by value, moved
602    pub fn set_any_info(&mut self, v: ::protobuf::well_known_types::Any) {
603        self.any_info = ::protobuf::SingularPtrField::some(v);
604    }
605
606    // Mutable pointer to the field.
607    // If field is not initialized, it is initialized with default value first.
608    pub fn mut_any_info(&mut self) -> &mut ::protobuf::well_known_types::Any {
609        if self.any_info.is_none() {
610            self.any_info.set_default();
611        }
612        self.any_info.as_mut().unwrap()
613    }
614
615    // Take field
616    pub fn take_any_info(&mut self) -> ::protobuf::well_known_types::Any {
617        self.any_info.take().unwrap_or_else(|| ::protobuf::well_known_types::Any::new())
618    }
619
620    // repeated string tags = 4;
621
622
623    pub fn get_tags(&self) -> &[::std::string::String] {
624        &self.tags
625    }
626    pub fn clear_tags(&mut self) {
627        self.tags.clear();
628    }
629
630    // Param is passed by value, moved
631    pub fn set_tags(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
632        self.tags = v;
633    }
634
635    // Mutable pointer to the field.
636    pub fn mut_tags(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
637        &mut self.tags
638    }
639
640    // Take field
641    pub fn take_tags(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
642        ::std::mem::replace(&mut self.tags, ::protobuf::RepeatedField::new())
643    }
644
645    // string tensorflow_version = 5;
646
647
648    pub fn get_tensorflow_version(&self) -> &str {
649        &self.tensorflow_version
650    }
651    pub fn clear_tensorflow_version(&mut self) {
652        self.tensorflow_version.clear();
653    }
654
655    // Param is passed by value, moved
656    pub fn set_tensorflow_version(&mut self, v: ::std::string::String) {
657        self.tensorflow_version = v;
658    }
659
660    // Mutable pointer to the field.
661    // If field is not initialized, it is initialized with default value first.
662    pub fn mut_tensorflow_version(&mut self) -> &mut ::std::string::String {
663        &mut self.tensorflow_version
664    }
665
666    // Take field
667    pub fn take_tensorflow_version(&mut self) -> ::std::string::String {
668        ::std::mem::replace(&mut self.tensorflow_version, ::std::string::String::new())
669    }
670
671    // string tensorflow_git_version = 6;
672
673
674    pub fn get_tensorflow_git_version(&self) -> &str {
675        &self.tensorflow_git_version
676    }
677    pub fn clear_tensorflow_git_version(&mut self) {
678        self.tensorflow_git_version.clear();
679    }
680
681    // Param is passed by value, moved
682    pub fn set_tensorflow_git_version(&mut self, v: ::std::string::String) {
683        self.tensorflow_git_version = v;
684    }
685
686    // Mutable pointer to the field.
687    // If field is not initialized, it is initialized with default value first.
688    pub fn mut_tensorflow_git_version(&mut self) -> &mut ::std::string::String {
689        &mut self.tensorflow_git_version
690    }
691
692    // Take field
693    pub fn take_tensorflow_git_version(&mut self) -> ::std::string::String {
694        ::std::mem::replace(&mut self.tensorflow_git_version, ::std::string::String::new())
695    }
696
697    // bool stripped_default_attrs = 7;
698
699
700    pub fn get_stripped_default_attrs(&self) -> bool {
701        self.stripped_default_attrs
702    }
703    pub fn clear_stripped_default_attrs(&mut self) {
704        self.stripped_default_attrs = false;
705    }
706
707    // Param is passed by value, moved
708    pub fn set_stripped_default_attrs(&mut self, v: bool) {
709        self.stripped_default_attrs = v;
710    }
711
712    // repeated .tensorflow.MetaGraphDef.MetaInfoDef.FunctionAliasesEntry function_aliases = 8;
713
714
715    pub fn get_function_aliases(&self) -> &::std::collections::HashMap<::std::string::String, ::std::string::String> {
716        &self.function_aliases
717    }
718    pub fn clear_function_aliases(&mut self) {
719        self.function_aliases.clear();
720    }
721
722    // Param is passed by value, moved
723    pub fn set_function_aliases(&mut self, v: ::std::collections::HashMap<::std::string::String, ::std::string::String>) {
724        self.function_aliases = v;
725    }
726
727    // Mutable pointer to the field.
728    pub fn mut_function_aliases(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, ::std::string::String> {
729        &mut self.function_aliases
730    }
731
732    // Take field
733    pub fn take_function_aliases(&mut self) -> ::std::collections::HashMap<::std::string::String, ::std::string::String> {
734        ::std::mem::replace(&mut self.function_aliases, ::std::collections::HashMap::new())
735    }
736}
737
738impl ::protobuf::Message for MetaGraphDef_MetaInfoDef {
739    fn is_initialized(&self) -> bool {
740        for v in &self.stripped_op_list {
741            if !v.is_initialized() {
742                return false;
743            }
744        };
745        for v in &self.any_info {
746            if !v.is_initialized() {
747                return false;
748            }
749        };
750        true
751    }
752
753    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
754        while !is.eof()? {
755            let (field_number, wire_type) = is.read_tag_unpack()?;
756            match field_number {
757                1 => {
758                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.meta_graph_version)?;
759                },
760                2 => {
761                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.stripped_op_list)?;
762                },
763                3 => {
764                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.any_info)?;
765                },
766                4 => {
767                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.tags)?;
768                },
769                5 => {
770                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.tensorflow_version)?;
771                },
772                6 => {
773                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.tensorflow_git_version)?;
774                },
775                7 => {
776                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
777                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
778                    }
779                    let tmp = is.read_bool()?;
780                    self.stripped_default_attrs = tmp;
781                },
782                8 => {
783                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(wire_type, is, &mut self.function_aliases)?;
784                },
785                _ => {
786                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
787                },
788            };
789        }
790        ::std::result::Result::Ok(())
791    }
792
793    // Compute sizes of nested messages
794    #[allow(unused_variables)]
795    fn compute_size(&self) -> u32 {
796        let mut my_size = 0;
797        if !self.meta_graph_version.is_empty() {
798            my_size += ::protobuf::rt::string_size(1, &self.meta_graph_version);
799        }
800        if let Some(ref v) = self.stripped_op_list.as_ref() {
801            let len = v.compute_size();
802            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
803        }
804        if let Some(ref v) = self.any_info.as_ref() {
805            let len = v.compute_size();
806            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
807        }
808        for value in &self.tags {
809            my_size += ::protobuf::rt::string_size(4, &value);
810        };
811        if !self.tensorflow_version.is_empty() {
812            my_size += ::protobuf::rt::string_size(5, &self.tensorflow_version);
813        }
814        if !self.tensorflow_git_version.is_empty() {
815            my_size += ::protobuf::rt::string_size(6, &self.tensorflow_git_version);
816        }
817        if self.stripped_default_attrs != false {
818            my_size += 2;
819        }
820        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(8, &self.function_aliases);
821        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
822        self.cached_size.set(my_size);
823        my_size
824    }
825
826    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
827        if !self.meta_graph_version.is_empty() {
828            os.write_string(1, &self.meta_graph_version)?;
829        }
830        if let Some(ref v) = self.stripped_op_list.as_ref() {
831            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
832            os.write_raw_varint32(v.get_cached_size())?;
833            v.write_to_with_cached_sizes(os)?;
834        }
835        if let Some(ref v) = self.any_info.as_ref() {
836            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
837            os.write_raw_varint32(v.get_cached_size())?;
838            v.write_to_with_cached_sizes(os)?;
839        }
840        for v in &self.tags {
841            os.write_string(4, &v)?;
842        };
843        if !self.tensorflow_version.is_empty() {
844            os.write_string(5, &self.tensorflow_version)?;
845        }
846        if !self.tensorflow_git_version.is_empty() {
847            os.write_string(6, &self.tensorflow_git_version)?;
848        }
849        if self.stripped_default_attrs != false {
850            os.write_bool(7, self.stripped_default_attrs)?;
851        }
852        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(8, &self.function_aliases, os)?;
853        os.write_unknown_fields(self.get_unknown_fields())?;
854        ::std::result::Result::Ok(())
855    }
856
857    fn get_cached_size(&self) -> u32 {
858        self.cached_size.get()
859    }
860
861    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
862        &self.unknown_fields
863    }
864
865    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
866        &mut self.unknown_fields
867    }
868
869    fn as_any(&self) -> &dyn (::std::any::Any) {
870        self as &dyn (::std::any::Any)
871    }
872    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
873        self as &mut dyn (::std::any::Any)
874    }
875    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
876        self
877    }
878
879    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
880        Self::descriptor_static()
881    }
882
883    fn new() -> MetaGraphDef_MetaInfoDef {
884        MetaGraphDef_MetaInfoDef::new()
885    }
886
887    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
888        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
889        unsafe {
890            descriptor.get(|| {
891                let mut fields = ::std::vec::Vec::new();
892                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
893                    "meta_graph_version",
894                    |m: &MetaGraphDef_MetaInfoDef| { &m.meta_graph_version },
895                    |m: &mut MetaGraphDef_MetaInfoDef| { &mut m.meta_graph_version },
896                ));
897                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::op_def::OpList>>(
898                    "stripped_op_list",
899                    |m: &MetaGraphDef_MetaInfoDef| { &m.stripped_op_list },
900                    |m: &mut MetaGraphDef_MetaInfoDef| { &mut m.stripped_op_list },
901                ));
902                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Any>>(
903                    "any_info",
904                    |m: &MetaGraphDef_MetaInfoDef| { &m.any_info },
905                    |m: &mut MetaGraphDef_MetaInfoDef| { &mut m.any_info },
906                ));
907                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
908                    "tags",
909                    |m: &MetaGraphDef_MetaInfoDef| { &m.tags },
910                    |m: &mut MetaGraphDef_MetaInfoDef| { &mut m.tags },
911                ));
912                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
913                    "tensorflow_version",
914                    |m: &MetaGraphDef_MetaInfoDef| { &m.tensorflow_version },
915                    |m: &mut MetaGraphDef_MetaInfoDef| { &mut m.tensorflow_version },
916                ));
917                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
918                    "tensorflow_git_version",
919                    |m: &MetaGraphDef_MetaInfoDef| { &m.tensorflow_git_version },
920                    |m: &mut MetaGraphDef_MetaInfoDef| { &mut m.tensorflow_git_version },
921                ));
922                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
923                    "stripped_default_attrs",
924                    |m: &MetaGraphDef_MetaInfoDef| { &m.stripped_default_attrs },
925                    |m: &mut MetaGraphDef_MetaInfoDef| { &mut m.stripped_default_attrs },
926                ));
927                fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeString>(
928                    "function_aliases",
929                    |m: &MetaGraphDef_MetaInfoDef| { &m.function_aliases },
930                    |m: &mut MetaGraphDef_MetaInfoDef| { &mut m.function_aliases },
931                ));
932                ::protobuf::reflect::MessageDescriptor::new_pb_name::<MetaGraphDef_MetaInfoDef>(
933                    "MetaGraphDef.MetaInfoDef",
934                    fields,
935                    file_descriptor_proto()
936                )
937            })
938        }
939    }
940
941    fn default_instance() -> &'static MetaGraphDef_MetaInfoDef {
942        static mut instance: ::protobuf::lazy::Lazy<MetaGraphDef_MetaInfoDef> = ::protobuf::lazy::Lazy::INIT;
943        unsafe {
944            instance.get(MetaGraphDef_MetaInfoDef::new)
945        }
946    }
947}
948
949impl ::protobuf::Clear for MetaGraphDef_MetaInfoDef {
950    fn clear(&mut self) {
951        self.meta_graph_version.clear();
952        self.stripped_op_list.clear();
953        self.any_info.clear();
954        self.tags.clear();
955        self.tensorflow_version.clear();
956        self.tensorflow_git_version.clear();
957        self.stripped_default_attrs = false;
958        self.function_aliases.clear();
959        self.unknown_fields.clear();
960    }
961}
962
963impl ::std::fmt::Debug for MetaGraphDef_MetaInfoDef {
964    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
965        ::protobuf::text_format::fmt(self, f)
966    }
967}
968
969impl ::protobuf::reflect::ProtobufValue for MetaGraphDef_MetaInfoDef {
970    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
971        ::protobuf::reflect::ReflectValueRef::Message(self)
972    }
973}
974
975#[derive(PartialEq,Clone,Default)]
976pub struct CollectionDef {
977    // message oneof groups
978    pub kind: ::std::option::Option<CollectionDef_oneof_kind>,
979    // special fields
980    pub unknown_fields: ::protobuf::UnknownFields,
981    pub cached_size: ::protobuf::CachedSize,
982}
983
984impl<'a> ::std::default::Default for &'a CollectionDef {
985    fn default() -> &'a CollectionDef {
986        <CollectionDef as ::protobuf::Message>::default_instance()
987    }
988}
989
990#[derive(Clone,PartialEq,Debug)]
991pub enum CollectionDef_oneof_kind {
992    node_list(CollectionDef_NodeList),
993    bytes_list(CollectionDef_BytesList),
994    int64_list(CollectionDef_Int64List),
995    float_list(CollectionDef_FloatList),
996    any_list(CollectionDef_AnyList),
997}
998
999impl CollectionDef {
1000    pub fn new() -> CollectionDef {
1001        ::std::default::Default::default()
1002    }
1003
1004    // .tensorflow.CollectionDef.NodeList node_list = 1;
1005
1006
1007    pub fn get_node_list(&self) -> &CollectionDef_NodeList {
1008        match self.kind {
1009            ::std::option::Option::Some(CollectionDef_oneof_kind::node_list(ref v)) => v,
1010            _ => CollectionDef_NodeList::default_instance(),
1011        }
1012    }
1013    pub fn clear_node_list(&mut self) {
1014        self.kind = ::std::option::Option::None;
1015    }
1016
1017    pub fn has_node_list(&self) -> bool {
1018        match self.kind {
1019            ::std::option::Option::Some(CollectionDef_oneof_kind::node_list(..)) => true,
1020            _ => false,
1021        }
1022    }
1023
1024    // Param is passed by value, moved
1025    pub fn set_node_list(&mut self, v: CollectionDef_NodeList) {
1026        self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::node_list(v))
1027    }
1028
1029    // Mutable pointer to the field.
1030    pub fn mut_node_list(&mut self) -> &mut CollectionDef_NodeList {
1031        if let ::std::option::Option::Some(CollectionDef_oneof_kind::node_list(_)) = self.kind {
1032        } else {
1033            self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::node_list(CollectionDef_NodeList::new()));
1034        }
1035        match self.kind {
1036            ::std::option::Option::Some(CollectionDef_oneof_kind::node_list(ref mut v)) => v,
1037            _ => panic!(),
1038        }
1039    }
1040
1041    // Take field
1042    pub fn take_node_list(&mut self) -> CollectionDef_NodeList {
1043        if self.has_node_list() {
1044            match self.kind.take() {
1045                ::std::option::Option::Some(CollectionDef_oneof_kind::node_list(v)) => v,
1046                _ => panic!(),
1047            }
1048        } else {
1049            CollectionDef_NodeList::new()
1050        }
1051    }
1052
1053    // .tensorflow.CollectionDef.BytesList bytes_list = 2;
1054
1055
1056    pub fn get_bytes_list(&self) -> &CollectionDef_BytesList {
1057        match self.kind {
1058            ::std::option::Option::Some(CollectionDef_oneof_kind::bytes_list(ref v)) => v,
1059            _ => CollectionDef_BytesList::default_instance(),
1060        }
1061    }
1062    pub fn clear_bytes_list(&mut self) {
1063        self.kind = ::std::option::Option::None;
1064    }
1065
1066    pub fn has_bytes_list(&self) -> bool {
1067        match self.kind {
1068            ::std::option::Option::Some(CollectionDef_oneof_kind::bytes_list(..)) => true,
1069            _ => false,
1070        }
1071    }
1072
1073    // Param is passed by value, moved
1074    pub fn set_bytes_list(&mut self, v: CollectionDef_BytesList) {
1075        self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::bytes_list(v))
1076    }
1077
1078    // Mutable pointer to the field.
1079    pub fn mut_bytes_list(&mut self) -> &mut CollectionDef_BytesList {
1080        if let ::std::option::Option::Some(CollectionDef_oneof_kind::bytes_list(_)) = self.kind {
1081        } else {
1082            self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::bytes_list(CollectionDef_BytesList::new()));
1083        }
1084        match self.kind {
1085            ::std::option::Option::Some(CollectionDef_oneof_kind::bytes_list(ref mut v)) => v,
1086            _ => panic!(),
1087        }
1088    }
1089
1090    // Take field
1091    pub fn take_bytes_list(&mut self) -> CollectionDef_BytesList {
1092        if self.has_bytes_list() {
1093            match self.kind.take() {
1094                ::std::option::Option::Some(CollectionDef_oneof_kind::bytes_list(v)) => v,
1095                _ => panic!(),
1096            }
1097        } else {
1098            CollectionDef_BytesList::new()
1099        }
1100    }
1101
1102    // .tensorflow.CollectionDef.Int64List int64_list = 3;
1103
1104
1105    pub fn get_int64_list(&self) -> &CollectionDef_Int64List {
1106        match self.kind {
1107            ::std::option::Option::Some(CollectionDef_oneof_kind::int64_list(ref v)) => v,
1108            _ => CollectionDef_Int64List::default_instance(),
1109        }
1110    }
1111    pub fn clear_int64_list(&mut self) {
1112        self.kind = ::std::option::Option::None;
1113    }
1114
1115    pub fn has_int64_list(&self) -> bool {
1116        match self.kind {
1117            ::std::option::Option::Some(CollectionDef_oneof_kind::int64_list(..)) => true,
1118            _ => false,
1119        }
1120    }
1121
1122    // Param is passed by value, moved
1123    pub fn set_int64_list(&mut self, v: CollectionDef_Int64List) {
1124        self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::int64_list(v))
1125    }
1126
1127    // Mutable pointer to the field.
1128    pub fn mut_int64_list(&mut self) -> &mut CollectionDef_Int64List {
1129        if let ::std::option::Option::Some(CollectionDef_oneof_kind::int64_list(_)) = self.kind {
1130        } else {
1131            self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::int64_list(CollectionDef_Int64List::new()));
1132        }
1133        match self.kind {
1134            ::std::option::Option::Some(CollectionDef_oneof_kind::int64_list(ref mut v)) => v,
1135            _ => panic!(),
1136        }
1137    }
1138
1139    // Take field
1140    pub fn take_int64_list(&mut self) -> CollectionDef_Int64List {
1141        if self.has_int64_list() {
1142            match self.kind.take() {
1143                ::std::option::Option::Some(CollectionDef_oneof_kind::int64_list(v)) => v,
1144                _ => panic!(),
1145            }
1146        } else {
1147            CollectionDef_Int64List::new()
1148        }
1149    }
1150
1151    // .tensorflow.CollectionDef.FloatList float_list = 4;
1152
1153
1154    pub fn get_float_list(&self) -> &CollectionDef_FloatList {
1155        match self.kind {
1156            ::std::option::Option::Some(CollectionDef_oneof_kind::float_list(ref v)) => v,
1157            _ => CollectionDef_FloatList::default_instance(),
1158        }
1159    }
1160    pub fn clear_float_list(&mut self) {
1161        self.kind = ::std::option::Option::None;
1162    }
1163
1164    pub fn has_float_list(&self) -> bool {
1165        match self.kind {
1166            ::std::option::Option::Some(CollectionDef_oneof_kind::float_list(..)) => true,
1167            _ => false,
1168        }
1169    }
1170
1171    // Param is passed by value, moved
1172    pub fn set_float_list(&mut self, v: CollectionDef_FloatList) {
1173        self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::float_list(v))
1174    }
1175
1176    // Mutable pointer to the field.
1177    pub fn mut_float_list(&mut self) -> &mut CollectionDef_FloatList {
1178        if let ::std::option::Option::Some(CollectionDef_oneof_kind::float_list(_)) = self.kind {
1179        } else {
1180            self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::float_list(CollectionDef_FloatList::new()));
1181        }
1182        match self.kind {
1183            ::std::option::Option::Some(CollectionDef_oneof_kind::float_list(ref mut v)) => v,
1184            _ => panic!(),
1185        }
1186    }
1187
1188    // Take field
1189    pub fn take_float_list(&mut self) -> CollectionDef_FloatList {
1190        if self.has_float_list() {
1191            match self.kind.take() {
1192                ::std::option::Option::Some(CollectionDef_oneof_kind::float_list(v)) => v,
1193                _ => panic!(),
1194            }
1195        } else {
1196            CollectionDef_FloatList::new()
1197        }
1198    }
1199
1200    // .tensorflow.CollectionDef.AnyList any_list = 5;
1201
1202
1203    pub fn get_any_list(&self) -> &CollectionDef_AnyList {
1204        match self.kind {
1205            ::std::option::Option::Some(CollectionDef_oneof_kind::any_list(ref v)) => v,
1206            _ => CollectionDef_AnyList::default_instance(),
1207        }
1208    }
1209    pub fn clear_any_list(&mut self) {
1210        self.kind = ::std::option::Option::None;
1211    }
1212
1213    pub fn has_any_list(&self) -> bool {
1214        match self.kind {
1215            ::std::option::Option::Some(CollectionDef_oneof_kind::any_list(..)) => true,
1216            _ => false,
1217        }
1218    }
1219
1220    // Param is passed by value, moved
1221    pub fn set_any_list(&mut self, v: CollectionDef_AnyList) {
1222        self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::any_list(v))
1223    }
1224
1225    // Mutable pointer to the field.
1226    pub fn mut_any_list(&mut self) -> &mut CollectionDef_AnyList {
1227        if let ::std::option::Option::Some(CollectionDef_oneof_kind::any_list(_)) = self.kind {
1228        } else {
1229            self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::any_list(CollectionDef_AnyList::new()));
1230        }
1231        match self.kind {
1232            ::std::option::Option::Some(CollectionDef_oneof_kind::any_list(ref mut v)) => v,
1233            _ => panic!(),
1234        }
1235    }
1236
1237    // Take field
1238    pub fn take_any_list(&mut self) -> CollectionDef_AnyList {
1239        if self.has_any_list() {
1240            match self.kind.take() {
1241                ::std::option::Option::Some(CollectionDef_oneof_kind::any_list(v)) => v,
1242                _ => panic!(),
1243            }
1244        } else {
1245            CollectionDef_AnyList::new()
1246        }
1247    }
1248}
1249
1250impl ::protobuf::Message for CollectionDef {
1251    fn is_initialized(&self) -> bool {
1252        if let Some(CollectionDef_oneof_kind::node_list(ref v)) = self.kind {
1253            if !v.is_initialized() {
1254                return false;
1255            }
1256        }
1257        if let Some(CollectionDef_oneof_kind::bytes_list(ref v)) = self.kind {
1258            if !v.is_initialized() {
1259                return false;
1260            }
1261        }
1262        if let Some(CollectionDef_oneof_kind::int64_list(ref v)) = self.kind {
1263            if !v.is_initialized() {
1264                return false;
1265            }
1266        }
1267        if let Some(CollectionDef_oneof_kind::float_list(ref v)) = self.kind {
1268            if !v.is_initialized() {
1269                return false;
1270            }
1271        }
1272        if let Some(CollectionDef_oneof_kind::any_list(ref v)) = self.kind {
1273            if !v.is_initialized() {
1274                return false;
1275            }
1276        }
1277        true
1278    }
1279
1280    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1281        while !is.eof()? {
1282            let (field_number, wire_type) = is.read_tag_unpack()?;
1283            match field_number {
1284                1 => {
1285                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
1286                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1287                    }
1288                    self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::node_list(is.read_message()?));
1289                },
1290                2 => {
1291                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
1292                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1293                    }
1294                    self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::bytes_list(is.read_message()?));
1295                },
1296                3 => {
1297                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
1298                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1299                    }
1300                    self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::int64_list(is.read_message()?));
1301                },
1302                4 => {
1303                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
1304                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1305                    }
1306                    self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::float_list(is.read_message()?));
1307                },
1308                5 => {
1309                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
1310                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1311                    }
1312                    self.kind = ::std::option::Option::Some(CollectionDef_oneof_kind::any_list(is.read_message()?));
1313                },
1314                _ => {
1315                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1316                },
1317            };
1318        }
1319        ::std::result::Result::Ok(())
1320    }
1321
1322    // Compute sizes of nested messages
1323    #[allow(unused_variables)]
1324    fn compute_size(&self) -> u32 {
1325        let mut my_size = 0;
1326        if let ::std::option::Option::Some(ref v) = self.kind {
1327            match v {
1328                &CollectionDef_oneof_kind::node_list(ref v) => {
1329                    let len = v.compute_size();
1330                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1331                },
1332                &CollectionDef_oneof_kind::bytes_list(ref v) => {
1333                    let len = v.compute_size();
1334                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1335                },
1336                &CollectionDef_oneof_kind::int64_list(ref v) => {
1337                    let len = v.compute_size();
1338                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1339                },
1340                &CollectionDef_oneof_kind::float_list(ref v) => {
1341                    let len = v.compute_size();
1342                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1343                },
1344                &CollectionDef_oneof_kind::any_list(ref v) => {
1345                    let len = v.compute_size();
1346                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1347                },
1348            };
1349        }
1350        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1351        self.cached_size.set(my_size);
1352        my_size
1353    }
1354
1355    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1356        if let ::std::option::Option::Some(ref v) = self.kind {
1357            match v {
1358                &CollectionDef_oneof_kind::node_list(ref v) => {
1359                    os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1360                    os.write_raw_varint32(v.get_cached_size())?;
1361                    v.write_to_with_cached_sizes(os)?;
1362                },
1363                &CollectionDef_oneof_kind::bytes_list(ref v) => {
1364                    os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1365                    os.write_raw_varint32(v.get_cached_size())?;
1366                    v.write_to_with_cached_sizes(os)?;
1367                },
1368                &CollectionDef_oneof_kind::int64_list(ref v) => {
1369                    os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1370                    os.write_raw_varint32(v.get_cached_size())?;
1371                    v.write_to_with_cached_sizes(os)?;
1372                },
1373                &CollectionDef_oneof_kind::float_list(ref v) => {
1374                    os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1375                    os.write_raw_varint32(v.get_cached_size())?;
1376                    v.write_to_with_cached_sizes(os)?;
1377                },
1378                &CollectionDef_oneof_kind::any_list(ref v) => {
1379                    os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1380                    os.write_raw_varint32(v.get_cached_size())?;
1381                    v.write_to_with_cached_sizes(os)?;
1382                },
1383            };
1384        }
1385        os.write_unknown_fields(self.get_unknown_fields())?;
1386        ::std::result::Result::Ok(())
1387    }
1388
1389    fn get_cached_size(&self) -> u32 {
1390        self.cached_size.get()
1391    }
1392
1393    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1394        &self.unknown_fields
1395    }
1396
1397    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1398        &mut self.unknown_fields
1399    }
1400
1401    fn as_any(&self) -> &dyn (::std::any::Any) {
1402        self as &dyn (::std::any::Any)
1403    }
1404    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1405        self as &mut dyn (::std::any::Any)
1406    }
1407    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1408        self
1409    }
1410
1411    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1412        Self::descriptor_static()
1413    }
1414
1415    fn new() -> CollectionDef {
1416        CollectionDef::new()
1417    }
1418
1419    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1420        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1421        unsafe {
1422            descriptor.get(|| {
1423                let mut fields = ::std::vec::Vec::new();
1424                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, CollectionDef_NodeList>(
1425                    "node_list",
1426                    CollectionDef::has_node_list,
1427                    CollectionDef::get_node_list,
1428                ));
1429                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, CollectionDef_BytesList>(
1430                    "bytes_list",
1431                    CollectionDef::has_bytes_list,
1432                    CollectionDef::get_bytes_list,
1433                ));
1434                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, CollectionDef_Int64List>(
1435                    "int64_list",
1436                    CollectionDef::has_int64_list,
1437                    CollectionDef::get_int64_list,
1438                ));
1439                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, CollectionDef_FloatList>(
1440                    "float_list",
1441                    CollectionDef::has_float_list,
1442                    CollectionDef::get_float_list,
1443                ));
1444                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, CollectionDef_AnyList>(
1445                    "any_list",
1446                    CollectionDef::has_any_list,
1447                    CollectionDef::get_any_list,
1448                ));
1449                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CollectionDef>(
1450                    "CollectionDef",
1451                    fields,
1452                    file_descriptor_proto()
1453                )
1454            })
1455        }
1456    }
1457
1458    fn default_instance() -> &'static CollectionDef {
1459        static mut instance: ::protobuf::lazy::Lazy<CollectionDef> = ::protobuf::lazy::Lazy::INIT;
1460        unsafe {
1461            instance.get(CollectionDef::new)
1462        }
1463    }
1464}
1465
1466impl ::protobuf::Clear for CollectionDef {
1467    fn clear(&mut self) {
1468        self.kind = ::std::option::Option::None;
1469        self.kind = ::std::option::Option::None;
1470        self.kind = ::std::option::Option::None;
1471        self.kind = ::std::option::Option::None;
1472        self.kind = ::std::option::Option::None;
1473        self.unknown_fields.clear();
1474    }
1475}
1476
1477impl ::std::fmt::Debug for CollectionDef {
1478    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1479        ::protobuf::text_format::fmt(self, f)
1480    }
1481}
1482
1483impl ::protobuf::reflect::ProtobufValue for CollectionDef {
1484    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1485        ::protobuf::reflect::ReflectValueRef::Message(self)
1486    }
1487}
1488
1489#[derive(PartialEq,Clone,Default)]
1490pub struct CollectionDef_NodeList {
1491    // message fields
1492    pub value: ::protobuf::RepeatedField<::std::string::String>,
1493    // special fields
1494    pub unknown_fields: ::protobuf::UnknownFields,
1495    pub cached_size: ::protobuf::CachedSize,
1496}
1497
1498impl<'a> ::std::default::Default for &'a CollectionDef_NodeList {
1499    fn default() -> &'a CollectionDef_NodeList {
1500        <CollectionDef_NodeList as ::protobuf::Message>::default_instance()
1501    }
1502}
1503
1504impl CollectionDef_NodeList {
1505    pub fn new() -> CollectionDef_NodeList {
1506        ::std::default::Default::default()
1507    }
1508
1509    // repeated string value = 1;
1510
1511
1512    pub fn get_value(&self) -> &[::std::string::String] {
1513        &self.value
1514    }
1515    pub fn clear_value(&mut self) {
1516        self.value.clear();
1517    }
1518
1519    // Param is passed by value, moved
1520    pub fn set_value(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
1521        self.value = v;
1522    }
1523
1524    // Mutable pointer to the field.
1525    pub fn mut_value(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
1526        &mut self.value
1527    }
1528
1529    // Take field
1530    pub fn take_value(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
1531        ::std::mem::replace(&mut self.value, ::protobuf::RepeatedField::new())
1532    }
1533}
1534
1535impl ::protobuf::Message for CollectionDef_NodeList {
1536    fn is_initialized(&self) -> bool {
1537        true
1538    }
1539
1540    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1541        while !is.eof()? {
1542            let (field_number, wire_type) = is.read_tag_unpack()?;
1543            match field_number {
1544                1 => {
1545                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.value)?;
1546                },
1547                _ => {
1548                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1549                },
1550            };
1551        }
1552        ::std::result::Result::Ok(())
1553    }
1554
1555    // Compute sizes of nested messages
1556    #[allow(unused_variables)]
1557    fn compute_size(&self) -> u32 {
1558        let mut my_size = 0;
1559        for value in &self.value {
1560            my_size += ::protobuf::rt::string_size(1, &value);
1561        };
1562        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1563        self.cached_size.set(my_size);
1564        my_size
1565    }
1566
1567    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1568        for v in &self.value {
1569            os.write_string(1, &v)?;
1570        };
1571        os.write_unknown_fields(self.get_unknown_fields())?;
1572        ::std::result::Result::Ok(())
1573    }
1574
1575    fn get_cached_size(&self) -> u32 {
1576        self.cached_size.get()
1577    }
1578
1579    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1580        &self.unknown_fields
1581    }
1582
1583    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1584        &mut self.unknown_fields
1585    }
1586
1587    fn as_any(&self) -> &dyn (::std::any::Any) {
1588        self as &dyn (::std::any::Any)
1589    }
1590    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1591        self as &mut dyn (::std::any::Any)
1592    }
1593    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1594        self
1595    }
1596
1597    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1598        Self::descriptor_static()
1599    }
1600
1601    fn new() -> CollectionDef_NodeList {
1602        CollectionDef_NodeList::new()
1603    }
1604
1605    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1606        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1607        unsafe {
1608            descriptor.get(|| {
1609                let mut fields = ::std::vec::Vec::new();
1610                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1611                    "value",
1612                    |m: &CollectionDef_NodeList| { &m.value },
1613                    |m: &mut CollectionDef_NodeList| { &mut m.value },
1614                ));
1615                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CollectionDef_NodeList>(
1616                    "CollectionDef.NodeList",
1617                    fields,
1618                    file_descriptor_proto()
1619                )
1620            })
1621        }
1622    }
1623
1624    fn default_instance() -> &'static CollectionDef_NodeList {
1625        static mut instance: ::protobuf::lazy::Lazy<CollectionDef_NodeList> = ::protobuf::lazy::Lazy::INIT;
1626        unsafe {
1627            instance.get(CollectionDef_NodeList::new)
1628        }
1629    }
1630}
1631
1632impl ::protobuf::Clear for CollectionDef_NodeList {
1633    fn clear(&mut self) {
1634        self.value.clear();
1635        self.unknown_fields.clear();
1636    }
1637}
1638
1639impl ::std::fmt::Debug for CollectionDef_NodeList {
1640    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1641        ::protobuf::text_format::fmt(self, f)
1642    }
1643}
1644
1645impl ::protobuf::reflect::ProtobufValue for CollectionDef_NodeList {
1646    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1647        ::protobuf::reflect::ReflectValueRef::Message(self)
1648    }
1649}
1650
1651#[derive(PartialEq,Clone,Default)]
1652pub struct CollectionDef_BytesList {
1653    // message fields
1654    pub value: ::protobuf::RepeatedField<::std::vec::Vec<u8>>,
1655    // special fields
1656    pub unknown_fields: ::protobuf::UnknownFields,
1657    pub cached_size: ::protobuf::CachedSize,
1658}
1659
1660impl<'a> ::std::default::Default for &'a CollectionDef_BytesList {
1661    fn default() -> &'a CollectionDef_BytesList {
1662        <CollectionDef_BytesList as ::protobuf::Message>::default_instance()
1663    }
1664}
1665
1666impl CollectionDef_BytesList {
1667    pub fn new() -> CollectionDef_BytesList {
1668        ::std::default::Default::default()
1669    }
1670
1671    // repeated bytes value = 1;
1672
1673
1674    pub fn get_value(&self) -> &[::std::vec::Vec<u8>] {
1675        &self.value
1676    }
1677    pub fn clear_value(&mut self) {
1678        self.value.clear();
1679    }
1680
1681    // Param is passed by value, moved
1682    pub fn set_value(&mut self, v: ::protobuf::RepeatedField<::std::vec::Vec<u8>>) {
1683        self.value = v;
1684    }
1685
1686    // Mutable pointer to the field.
1687    pub fn mut_value(&mut self) -> &mut ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
1688        &mut self.value
1689    }
1690
1691    // Take field
1692    pub fn take_value(&mut self) -> ::protobuf::RepeatedField<::std::vec::Vec<u8>> {
1693        ::std::mem::replace(&mut self.value, ::protobuf::RepeatedField::new())
1694    }
1695}
1696
1697impl ::protobuf::Message for CollectionDef_BytesList {
1698    fn is_initialized(&self) -> bool {
1699        true
1700    }
1701
1702    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1703        while !is.eof()? {
1704            let (field_number, wire_type) = is.read_tag_unpack()?;
1705            match field_number {
1706                1 => {
1707                    ::protobuf::rt::read_repeated_bytes_into(wire_type, is, &mut self.value)?;
1708                },
1709                _ => {
1710                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1711                },
1712            };
1713        }
1714        ::std::result::Result::Ok(())
1715    }
1716
1717    // Compute sizes of nested messages
1718    #[allow(unused_variables)]
1719    fn compute_size(&self) -> u32 {
1720        let mut my_size = 0;
1721        for value in &self.value {
1722            my_size += ::protobuf::rt::bytes_size(1, &value);
1723        };
1724        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1725        self.cached_size.set(my_size);
1726        my_size
1727    }
1728
1729    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1730        for v in &self.value {
1731            os.write_bytes(1, &v)?;
1732        };
1733        os.write_unknown_fields(self.get_unknown_fields())?;
1734        ::std::result::Result::Ok(())
1735    }
1736
1737    fn get_cached_size(&self) -> u32 {
1738        self.cached_size.get()
1739    }
1740
1741    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1742        &self.unknown_fields
1743    }
1744
1745    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1746        &mut self.unknown_fields
1747    }
1748
1749    fn as_any(&self) -> &dyn (::std::any::Any) {
1750        self as &dyn (::std::any::Any)
1751    }
1752    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1753        self as &mut dyn (::std::any::Any)
1754    }
1755    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1756        self
1757    }
1758
1759    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1760        Self::descriptor_static()
1761    }
1762
1763    fn new() -> CollectionDef_BytesList {
1764        CollectionDef_BytesList::new()
1765    }
1766
1767    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1768        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1769        unsafe {
1770            descriptor.get(|| {
1771                let mut fields = ::std::vec::Vec::new();
1772                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeBytes>(
1773                    "value",
1774                    |m: &CollectionDef_BytesList| { &m.value },
1775                    |m: &mut CollectionDef_BytesList| { &mut m.value },
1776                ));
1777                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CollectionDef_BytesList>(
1778                    "CollectionDef.BytesList",
1779                    fields,
1780                    file_descriptor_proto()
1781                )
1782            })
1783        }
1784    }
1785
1786    fn default_instance() -> &'static CollectionDef_BytesList {
1787        static mut instance: ::protobuf::lazy::Lazy<CollectionDef_BytesList> = ::protobuf::lazy::Lazy::INIT;
1788        unsafe {
1789            instance.get(CollectionDef_BytesList::new)
1790        }
1791    }
1792}
1793
1794impl ::protobuf::Clear for CollectionDef_BytesList {
1795    fn clear(&mut self) {
1796        self.value.clear();
1797        self.unknown_fields.clear();
1798    }
1799}
1800
1801impl ::std::fmt::Debug for CollectionDef_BytesList {
1802    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1803        ::protobuf::text_format::fmt(self, f)
1804    }
1805}
1806
1807impl ::protobuf::reflect::ProtobufValue for CollectionDef_BytesList {
1808    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1809        ::protobuf::reflect::ReflectValueRef::Message(self)
1810    }
1811}
1812
1813#[derive(PartialEq,Clone,Default)]
1814pub struct CollectionDef_Int64List {
1815    // message fields
1816    pub value: ::std::vec::Vec<i64>,
1817    // special fields
1818    pub unknown_fields: ::protobuf::UnknownFields,
1819    pub cached_size: ::protobuf::CachedSize,
1820}
1821
1822impl<'a> ::std::default::Default for &'a CollectionDef_Int64List {
1823    fn default() -> &'a CollectionDef_Int64List {
1824        <CollectionDef_Int64List as ::protobuf::Message>::default_instance()
1825    }
1826}
1827
1828impl CollectionDef_Int64List {
1829    pub fn new() -> CollectionDef_Int64List {
1830        ::std::default::Default::default()
1831    }
1832
1833    // repeated int64 value = 1;
1834
1835
1836    pub fn get_value(&self) -> &[i64] {
1837        &self.value
1838    }
1839    pub fn clear_value(&mut self) {
1840        self.value.clear();
1841    }
1842
1843    // Param is passed by value, moved
1844    pub fn set_value(&mut self, v: ::std::vec::Vec<i64>) {
1845        self.value = v;
1846    }
1847
1848    // Mutable pointer to the field.
1849    pub fn mut_value(&mut self) -> &mut ::std::vec::Vec<i64> {
1850        &mut self.value
1851    }
1852
1853    // Take field
1854    pub fn take_value(&mut self) -> ::std::vec::Vec<i64> {
1855        ::std::mem::replace(&mut self.value, ::std::vec::Vec::new())
1856    }
1857}
1858
1859impl ::protobuf::Message for CollectionDef_Int64List {
1860    fn is_initialized(&self) -> bool {
1861        true
1862    }
1863
1864    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1865        while !is.eof()? {
1866            let (field_number, wire_type) = is.read_tag_unpack()?;
1867            match field_number {
1868                1 => {
1869                    ::protobuf::rt::read_repeated_int64_into(wire_type, is, &mut self.value)?;
1870                },
1871                _ => {
1872                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1873                },
1874            };
1875        }
1876        ::std::result::Result::Ok(())
1877    }
1878
1879    // Compute sizes of nested messages
1880    #[allow(unused_variables)]
1881    fn compute_size(&self) -> u32 {
1882        let mut my_size = 0;
1883        if !self.value.is_empty() {
1884            my_size += ::protobuf::rt::vec_packed_varint_size(1, &self.value);
1885        }
1886        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1887        self.cached_size.set(my_size);
1888        my_size
1889    }
1890
1891    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1892        if !self.value.is_empty() {
1893            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1894            // TODO: Data size is computed again, it should be cached
1895            os.write_raw_varint32(::protobuf::rt::vec_packed_varint_data_size(&self.value))?;
1896            for v in &self.value {
1897                os.write_int64_no_tag(*v)?;
1898            };
1899        }
1900        os.write_unknown_fields(self.get_unknown_fields())?;
1901        ::std::result::Result::Ok(())
1902    }
1903
1904    fn get_cached_size(&self) -> u32 {
1905        self.cached_size.get()
1906    }
1907
1908    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1909        &self.unknown_fields
1910    }
1911
1912    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1913        &mut self.unknown_fields
1914    }
1915
1916    fn as_any(&self) -> &dyn (::std::any::Any) {
1917        self as &dyn (::std::any::Any)
1918    }
1919    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1920        self as &mut dyn (::std::any::Any)
1921    }
1922    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1923        self
1924    }
1925
1926    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1927        Self::descriptor_static()
1928    }
1929
1930    fn new() -> CollectionDef_Int64List {
1931        CollectionDef_Int64List::new()
1932    }
1933
1934    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1935        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1936        unsafe {
1937            descriptor.get(|| {
1938                let mut fields = ::std::vec::Vec::new();
1939                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1940                    "value",
1941                    |m: &CollectionDef_Int64List| { &m.value },
1942                    |m: &mut CollectionDef_Int64List| { &mut m.value },
1943                ));
1944                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CollectionDef_Int64List>(
1945                    "CollectionDef.Int64List",
1946                    fields,
1947                    file_descriptor_proto()
1948                )
1949            })
1950        }
1951    }
1952
1953    fn default_instance() -> &'static CollectionDef_Int64List {
1954        static mut instance: ::protobuf::lazy::Lazy<CollectionDef_Int64List> = ::protobuf::lazy::Lazy::INIT;
1955        unsafe {
1956            instance.get(CollectionDef_Int64List::new)
1957        }
1958    }
1959}
1960
1961impl ::protobuf::Clear for CollectionDef_Int64List {
1962    fn clear(&mut self) {
1963        self.value.clear();
1964        self.unknown_fields.clear();
1965    }
1966}
1967
1968impl ::std::fmt::Debug for CollectionDef_Int64List {
1969    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1970        ::protobuf::text_format::fmt(self, f)
1971    }
1972}
1973
1974impl ::protobuf::reflect::ProtobufValue for CollectionDef_Int64List {
1975    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1976        ::protobuf::reflect::ReflectValueRef::Message(self)
1977    }
1978}
1979
1980#[derive(PartialEq,Clone,Default)]
1981pub struct CollectionDef_FloatList {
1982    // message fields
1983    pub value: ::std::vec::Vec<f32>,
1984    // special fields
1985    pub unknown_fields: ::protobuf::UnknownFields,
1986    pub cached_size: ::protobuf::CachedSize,
1987}
1988
1989impl<'a> ::std::default::Default for &'a CollectionDef_FloatList {
1990    fn default() -> &'a CollectionDef_FloatList {
1991        <CollectionDef_FloatList as ::protobuf::Message>::default_instance()
1992    }
1993}
1994
1995impl CollectionDef_FloatList {
1996    pub fn new() -> CollectionDef_FloatList {
1997        ::std::default::Default::default()
1998    }
1999
2000    // repeated float value = 1;
2001
2002
2003    pub fn get_value(&self) -> &[f32] {
2004        &self.value
2005    }
2006    pub fn clear_value(&mut self) {
2007        self.value.clear();
2008    }
2009
2010    // Param is passed by value, moved
2011    pub fn set_value(&mut self, v: ::std::vec::Vec<f32>) {
2012        self.value = v;
2013    }
2014
2015    // Mutable pointer to the field.
2016    pub fn mut_value(&mut self) -> &mut ::std::vec::Vec<f32> {
2017        &mut self.value
2018    }
2019
2020    // Take field
2021    pub fn take_value(&mut self) -> ::std::vec::Vec<f32> {
2022        ::std::mem::replace(&mut self.value, ::std::vec::Vec::new())
2023    }
2024}
2025
2026impl ::protobuf::Message for CollectionDef_FloatList {
2027    fn is_initialized(&self) -> bool {
2028        true
2029    }
2030
2031    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2032        while !is.eof()? {
2033            let (field_number, wire_type) = is.read_tag_unpack()?;
2034            match field_number {
2035                1 => {
2036                    ::protobuf::rt::read_repeated_float_into(wire_type, is, &mut self.value)?;
2037                },
2038                _ => {
2039                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2040                },
2041            };
2042        }
2043        ::std::result::Result::Ok(())
2044    }
2045
2046    // Compute sizes of nested messages
2047    #[allow(unused_variables)]
2048    fn compute_size(&self) -> u32 {
2049        let mut my_size = 0;
2050        if !self.value.is_empty() {
2051            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size((self.value.len() * 4) as u32) + (self.value.len() * 4) as u32;
2052        }
2053        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2054        self.cached_size.set(my_size);
2055        my_size
2056    }
2057
2058    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2059        if !self.value.is_empty() {
2060            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2061            // TODO: Data size is computed again, it should be cached
2062            os.write_raw_varint32((self.value.len() * 4) as u32)?;
2063            for v in &self.value {
2064                os.write_float_no_tag(*v)?;
2065            };
2066        }
2067        os.write_unknown_fields(self.get_unknown_fields())?;
2068        ::std::result::Result::Ok(())
2069    }
2070
2071    fn get_cached_size(&self) -> u32 {
2072        self.cached_size.get()
2073    }
2074
2075    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2076        &self.unknown_fields
2077    }
2078
2079    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2080        &mut self.unknown_fields
2081    }
2082
2083    fn as_any(&self) -> &dyn (::std::any::Any) {
2084        self as &dyn (::std::any::Any)
2085    }
2086    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2087        self as &mut dyn (::std::any::Any)
2088    }
2089    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2090        self
2091    }
2092
2093    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2094        Self::descriptor_static()
2095    }
2096
2097    fn new() -> CollectionDef_FloatList {
2098        CollectionDef_FloatList::new()
2099    }
2100
2101    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2102        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2103        unsafe {
2104            descriptor.get(|| {
2105                let mut fields = ::std::vec::Vec::new();
2106                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
2107                    "value",
2108                    |m: &CollectionDef_FloatList| { &m.value },
2109                    |m: &mut CollectionDef_FloatList| { &mut m.value },
2110                ));
2111                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CollectionDef_FloatList>(
2112                    "CollectionDef.FloatList",
2113                    fields,
2114                    file_descriptor_proto()
2115                )
2116            })
2117        }
2118    }
2119
2120    fn default_instance() -> &'static CollectionDef_FloatList {
2121        static mut instance: ::protobuf::lazy::Lazy<CollectionDef_FloatList> = ::protobuf::lazy::Lazy::INIT;
2122        unsafe {
2123            instance.get(CollectionDef_FloatList::new)
2124        }
2125    }
2126}
2127
2128impl ::protobuf::Clear for CollectionDef_FloatList {
2129    fn clear(&mut self) {
2130        self.value.clear();
2131        self.unknown_fields.clear();
2132    }
2133}
2134
2135impl ::std::fmt::Debug for CollectionDef_FloatList {
2136    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2137        ::protobuf::text_format::fmt(self, f)
2138    }
2139}
2140
2141impl ::protobuf::reflect::ProtobufValue for CollectionDef_FloatList {
2142    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2143        ::protobuf::reflect::ReflectValueRef::Message(self)
2144    }
2145}
2146
2147#[derive(PartialEq,Clone,Default)]
2148pub struct CollectionDef_AnyList {
2149    // message fields
2150    pub value: ::protobuf::RepeatedField<::protobuf::well_known_types::Any>,
2151    // special fields
2152    pub unknown_fields: ::protobuf::UnknownFields,
2153    pub cached_size: ::protobuf::CachedSize,
2154}
2155
2156impl<'a> ::std::default::Default for &'a CollectionDef_AnyList {
2157    fn default() -> &'a CollectionDef_AnyList {
2158        <CollectionDef_AnyList as ::protobuf::Message>::default_instance()
2159    }
2160}
2161
2162impl CollectionDef_AnyList {
2163    pub fn new() -> CollectionDef_AnyList {
2164        ::std::default::Default::default()
2165    }
2166
2167    // repeated .google.protobuf.Any value = 1;
2168
2169
2170    pub fn get_value(&self) -> &[::protobuf::well_known_types::Any] {
2171        &self.value
2172    }
2173    pub fn clear_value(&mut self) {
2174        self.value.clear();
2175    }
2176
2177    // Param is passed by value, moved
2178    pub fn set_value(&mut self, v: ::protobuf::RepeatedField<::protobuf::well_known_types::Any>) {
2179        self.value = v;
2180    }
2181
2182    // Mutable pointer to the field.
2183    pub fn mut_value(&mut self) -> &mut ::protobuf::RepeatedField<::protobuf::well_known_types::Any> {
2184        &mut self.value
2185    }
2186
2187    // Take field
2188    pub fn take_value(&mut self) -> ::protobuf::RepeatedField<::protobuf::well_known_types::Any> {
2189        ::std::mem::replace(&mut self.value, ::protobuf::RepeatedField::new())
2190    }
2191}
2192
2193impl ::protobuf::Message for CollectionDef_AnyList {
2194    fn is_initialized(&self) -> bool {
2195        for v in &self.value {
2196            if !v.is_initialized() {
2197                return false;
2198            }
2199        };
2200        true
2201    }
2202
2203    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2204        while !is.eof()? {
2205            let (field_number, wire_type) = is.read_tag_unpack()?;
2206            match field_number {
2207                1 => {
2208                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.value)?;
2209                },
2210                _ => {
2211                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2212                },
2213            };
2214        }
2215        ::std::result::Result::Ok(())
2216    }
2217
2218    // Compute sizes of nested messages
2219    #[allow(unused_variables)]
2220    fn compute_size(&self) -> u32 {
2221        let mut my_size = 0;
2222        for value in &self.value {
2223            let len = value.compute_size();
2224            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2225        };
2226        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2227        self.cached_size.set(my_size);
2228        my_size
2229    }
2230
2231    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2232        for v in &self.value {
2233            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2234            os.write_raw_varint32(v.get_cached_size())?;
2235            v.write_to_with_cached_sizes(os)?;
2236        };
2237        os.write_unknown_fields(self.get_unknown_fields())?;
2238        ::std::result::Result::Ok(())
2239    }
2240
2241    fn get_cached_size(&self) -> u32 {
2242        self.cached_size.get()
2243    }
2244
2245    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2246        &self.unknown_fields
2247    }
2248
2249    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2250        &mut self.unknown_fields
2251    }
2252
2253    fn as_any(&self) -> &dyn (::std::any::Any) {
2254        self as &dyn (::std::any::Any)
2255    }
2256    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2257        self as &mut dyn (::std::any::Any)
2258    }
2259    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2260        self
2261    }
2262
2263    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2264        Self::descriptor_static()
2265    }
2266
2267    fn new() -> CollectionDef_AnyList {
2268        CollectionDef_AnyList::new()
2269    }
2270
2271    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2272        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2273        unsafe {
2274            descriptor.get(|| {
2275                let mut fields = ::std::vec::Vec::new();
2276                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<::protobuf::well_known_types::Any>>(
2277                    "value",
2278                    |m: &CollectionDef_AnyList| { &m.value },
2279                    |m: &mut CollectionDef_AnyList| { &mut m.value },
2280                ));
2281                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CollectionDef_AnyList>(
2282                    "CollectionDef.AnyList",
2283                    fields,
2284                    file_descriptor_proto()
2285                )
2286            })
2287        }
2288    }
2289
2290    fn default_instance() -> &'static CollectionDef_AnyList {
2291        static mut instance: ::protobuf::lazy::Lazy<CollectionDef_AnyList> = ::protobuf::lazy::Lazy::INIT;
2292        unsafe {
2293            instance.get(CollectionDef_AnyList::new)
2294        }
2295    }
2296}
2297
2298impl ::protobuf::Clear for CollectionDef_AnyList {
2299    fn clear(&mut self) {
2300        self.value.clear();
2301        self.unknown_fields.clear();
2302    }
2303}
2304
2305impl ::std::fmt::Debug for CollectionDef_AnyList {
2306    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2307        ::protobuf::text_format::fmt(self, f)
2308    }
2309}
2310
2311impl ::protobuf::reflect::ProtobufValue for CollectionDef_AnyList {
2312    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2313        ::protobuf::reflect::ReflectValueRef::Message(self)
2314    }
2315}
2316
2317#[derive(PartialEq,Clone,Default)]
2318pub struct TensorInfo {
2319    // message fields
2320    pub dtype: super::types::DataType,
2321    pub tensor_shape: ::protobuf::SingularPtrField<super::tensor_shape::TensorShapeProto>,
2322    // message oneof groups
2323    pub encoding: ::std::option::Option<TensorInfo_oneof_encoding>,
2324    // special fields
2325    pub unknown_fields: ::protobuf::UnknownFields,
2326    pub cached_size: ::protobuf::CachedSize,
2327}
2328
2329impl<'a> ::std::default::Default for &'a TensorInfo {
2330    fn default() -> &'a TensorInfo {
2331        <TensorInfo as ::protobuf::Message>::default_instance()
2332    }
2333}
2334
2335#[derive(Clone,PartialEq,Debug)]
2336pub enum TensorInfo_oneof_encoding {
2337    name(::std::string::String),
2338    coo_sparse(TensorInfo_CooSparse),
2339    composite_tensor(TensorInfo_CompositeTensor),
2340}
2341
2342impl TensorInfo {
2343    pub fn new() -> TensorInfo {
2344        ::std::default::Default::default()
2345    }
2346
2347    // string name = 1;
2348
2349
2350    pub fn get_name(&self) -> &str {
2351        match self.encoding {
2352            ::std::option::Option::Some(TensorInfo_oneof_encoding::name(ref v)) => v,
2353            _ => "",
2354        }
2355    }
2356    pub fn clear_name(&mut self) {
2357        self.encoding = ::std::option::Option::None;
2358    }
2359
2360    pub fn has_name(&self) -> bool {
2361        match self.encoding {
2362            ::std::option::Option::Some(TensorInfo_oneof_encoding::name(..)) => true,
2363            _ => false,
2364        }
2365    }
2366
2367    // Param is passed by value, moved
2368    pub fn set_name(&mut self, v: ::std::string::String) {
2369        self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::name(v))
2370    }
2371
2372    // Mutable pointer to the field.
2373    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2374        if let ::std::option::Option::Some(TensorInfo_oneof_encoding::name(_)) = self.encoding {
2375        } else {
2376            self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::name(::std::string::String::new()));
2377        }
2378        match self.encoding {
2379            ::std::option::Option::Some(TensorInfo_oneof_encoding::name(ref mut v)) => v,
2380            _ => panic!(),
2381        }
2382    }
2383
2384    // Take field
2385    pub fn take_name(&mut self) -> ::std::string::String {
2386        if self.has_name() {
2387            match self.encoding.take() {
2388                ::std::option::Option::Some(TensorInfo_oneof_encoding::name(v)) => v,
2389                _ => panic!(),
2390            }
2391        } else {
2392            ::std::string::String::new()
2393        }
2394    }
2395
2396    // .tensorflow.TensorInfo.CooSparse coo_sparse = 4;
2397
2398
2399    pub fn get_coo_sparse(&self) -> &TensorInfo_CooSparse {
2400        match self.encoding {
2401            ::std::option::Option::Some(TensorInfo_oneof_encoding::coo_sparse(ref v)) => v,
2402            _ => TensorInfo_CooSparse::default_instance(),
2403        }
2404    }
2405    pub fn clear_coo_sparse(&mut self) {
2406        self.encoding = ::std::option::Option::None;
2407    }
2408
2409    pub fn has_coo_sparse(&self) -> bool {
2410        match self.encoding {
2411            ::std::option::Option::Some(TensorInfo_oneof_encoding::coo_sparse(..)) => true,
2412            _ => false,
2413        }
2414    }
2415
2416    // Param is passed by value, moved
2417    pub fn set_coo_sparse(&mut self, v: TensorInfo_CooSparse) {
2418        self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::coo_sparse(v))
2419    }
2420
2421    // Mutable pointer to the field.
2422    pub fn mut_coo_sparse(&mut self) -> &mut TensorInfo_CooSparse {
2423        if let ::std::option::Option::Some(TensorInfo_oneof_encoding::coo_sparse(_)) = self.encoding {
2424        } else {
2425            self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::coo_sparse(TensorInfo_CooSparse::new()));
2426        }
2427        match self.encoding {
2428            ::std::option::Option::Some(TensorInfo_oneof_encoding::coo_sparse(ref mut v)) => v,
2429            _ => panic!(),
2430        }
2431    }
2432
2433    // Take field
2434    pub fn take_coo_sparse(&mut self) -> TensorInfo_CooSparse {
2435        if self.has_coo_sparse() {
2436            match self.encoding.take() {
2437                ::std::option::Option::Some(TensorInfo_oneof_encoding::coo_sparse(v)) => v,
2438                _ => panic!(),
2439            }
2440        } else {
2441            TensorInfo_CooSparse::new()
2442        }
2443    }
2444
2445    // .tensorflow.TensorInfo.CompositeTensor composite_tensor = 5;
2446
2447
2448    pub fn get_composite_tensor(&self) -> &TensorInfo_CompositeTensor {
2449        match self.encoding {
2450            ::std::option::Option::Some(TensorInfo_oneof_encoding::composite_tensor(ref v)) => v,
2451            _ => TensorInfo_CompositeTensor::default_instance(),
2452        }
2453    }
2454    pub fn clear_composite_tensor(&mut self) {
2455        self.encoding = ::std::option::Option::None;
2456    }
2457
2458    pub fn has_composite_tensor(&self) -> bool {
2459        match self.encoding {
2460            ::std::option::Option::Some(TensorInfo_oneof_encoding::composite_tensor(..)) => true,
2461            _ => false,
2462        }
2463    }
2464
2465    // Param is passed by value, moved
2466    pub fn set_composite_tensor(&mut self, v: TensorInfo_CompositeTensor) {
2467        self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::composite_tensor(v))
2468    }
2469
2470    // Mutable pointer to the field.
2471    pub fn mut_composite_tensor(&mut self) -> &mut TensorInfo_CompositeTensor {
2472        if let ::std::option::Option::Some(TensorInfo_oneof_encoding::composite_tensor(_)) = self.encoding {
2473        } else {
2474            self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::composite_tensor(TensorInfo_CompositeTensor::new()));
2475        }
2476        match self.encoding {
2477            ::std::option::Option::Some(TensorInfo_oneof_encoding::composite_tensor(ref mut v)) => v,
2478            _ => panic!(),
2479        }
2480    }
2481
2482    // Take field
2483    pub fn take_composite_tensor(&mut self) -> TensorInfo_CompositeTensor {
2484        if self.has_composite_tensor() {
2485            match self.encoding.take() {
2486                ::std::option::Option::Some(TensorInfo_oneof_encoding::composite_tensor(v)) => v,
2487                _ => panic!(),
2488            }
2489        } else {
2490            TensorInfo_CompositeTensor::new()
2491        }
2492    }
2493
2494    // .tensorflow.DataType dtype = 2;
2495
2496
2497    pub fn get_dtype(&self) -> super::types::DataType {
2498        self.dtype
2499    }
2500    pub fn clear_dtype(&mut self) {
2501        self.dtype = super::types::DataType::DT_INVALID;
2502    }
2503
2504    // Param is passed by value, moved
2505    pub fn set_dtype(&mut self, v: super::types::DataType) {
2506        self.dtype = v;
2507    }
2508
2509    // .tensorflow.TensorShapeProto tensor_shape = 3;
2510
2511
2512    pub fn get_tensor_shape(&self) -> &super::tensor_shape::TensorShapeProto {
2513        self.tensor_shape.as_ref().unwrap_or_else(|| super::tensor_shape::TensorShapeProto::default_instance())
2514    }
2515    pub fn clear_tensor_shape(&mut self) {
2516        self.tensor_shape.clear();
2517    }
2518
2519    pub fn has_tensor_shape(&self) -> bool {
2520        self.tensor_shape.is_some()
2521    }
2522
2523    // Param is passed by value, moved
2524    pub fn set_tensor_shape(&mut self, v: super::tensor_shape::TensorShapeProto) {
2525        self.tensor_shape = ::protobuf::SingularPtrField::some(v);
2526    }
2527
2528    // Mutable pointer to the field.
2529    // If field is not initialized, it is initialized with default value first.
2530    pub fn mut_tensor_shape(&mut self) -> &mut super::tensor_shape::TensorShapeProto {
2531        if self.tensor_shape.is_none() {
2532            self.tensor_shape.set_default();
2533        }
2534        self.tensor_shape.as_mut().unwrap()
2535    }
2536
2537    // Take field
2538    pub fn take_tensor_shape(&mut self) -> super::tensor_shape::TensorShapeProto {
2539        self.tensor_shape.take().unwrap_or_else(|| super::tensor_shape::TensorShapeProto::new())
2540    }
2541}
2542
2543impl ::protobuf::Message for TensorInfo {
2544    fn is_initialized(&self) -> bool {
2545        if let Some(TensorInfo_oneof_encoding::coo_sparse(ref v)) = self.encoding {
2546            if !v.is_initialized() {
2547                return false;
2548            }
2549        }
2550        if let Some(TensorInfo_oneof_encoding::composite_tensor(ref v)) = self.encoding {
2551            if !v.is_initialized() {
2552                return false;
2553            }
2554        }
2555        for v in &self.tensor_shape {
2556            if !v.is_initialized() {
2557                return false;
2558            }
2559        };
2560        true
2561    }
2562
2563    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2564        while !is.eof()? {
2565            let (field_number, wire_type) = is.read_tag_unpack()?;
2566            match field_number {
2567                1 => {
2568                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
2569                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2570                    }
2571                    self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::name(is.read_string()?));
2572                },
2573                4 => {
2574                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
2575                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2576                    }
2577                    self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::coo_sparse(is.read_message()?));
2578                },
2579                5 => {
2580                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
2581                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2582                    }
2583                    self.encoding = ::std::option::Option::Some(TensorInfo_oneof_encoding::composite_tensor(is.read_message()?));
2584                },
2585                2 => {
2586                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.dtype, 2, &mut self.unknown_fields)?
2587                },
2588                3 => {
2589                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.tensor_shape)?;
2590                },
2591                _ => {
2592                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2593                },
2594            };
2595        }
2596        ::std::result::Result::Ok(())
2597    }
2598
2599    // Compute sizes of nested messages
2600    #[allow(unused_variables)]
2601    fn compute_size(&self) -> u32 {
2602        let mut my_size = 0;
2603        if self.dtype != super::types::DataType::DT_INVALID {
2604            my_size += ::protobuf::rt::enum_size(2, self.dtype);
2605        }
2606        if let Some(ref v) = self.tensor_shape.as_ref() {
2607            let len = v.compute_size();
2608            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2609        }
2610        if let ::std::option::Option::Some(ref v) = self.encoding {
2611            match v {
2612                &TensorInfo_oneof_encoding::name(ref v) => {
2613                    my_size += ::protobuf::rt::string_size(1, &v);
2614                },
2615                &TensorInfo_oneof_encoding::coo_sparse(ref v) => {
2616                    let len = v.compute_size();
2617                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2618                },
2619                &TensorInfo_oneof_encoding::composite_tensor(ref v) => {
2620                    let len = v.compute_size();
2621                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2622                },
2623            };
2624        }
2625        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2626        self.cached_size.set(my_size);
2627        my_size
2628    }
2629
2630    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2631        if self.dtype != super::types::DataType::DT_INVALID {
2632            os.write_enum(2, self.dtype.value())?;
2633        }
2634        if let Some(ref v) = self.tensor_shape.as_ref() {
2635            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2636            os.write_raw_varint32(v.get_cached_size())?;
2637            v.write_to_with_cached_sizes(os)?;
2638        }
2639        if let ::std::option::Option::Some(ref v) = self.encoding {
2640            match v {
2641                &TensorInfo_oneof_encoding::name(ref v) => {
2642                    os.write_string(1, v)?;
2643                },
2644                &TensorInfo_oneof_encoding::coo_sparse(ref v) => {
2645                    os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2646                    os.write_raw_varint32(v.get_cached_size())?;
2647                    v.write_to_with_cached_sizes(os)?;
2648                },
2649                &TensorInfo_oneof_encoding::composite_tensor(ref v) => {
2650                    os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2651                    os.write_raw_varint32(v.get_cached_size())?;
2652                    v.write_to_with_cached_sizes(os)?;
2653                },
2654            };
2655        }
2656        os.write_unknown_fields(self.get_unknown_fields())?;
2657        ::std::result::Result::Ok(())
2658    }
2659
2660    fn get_cached_size(&self) -> u32 {
2661        self.cached_size.get()
2662    }
2663
2664    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2665        &self.unknown_fields
2666    }
2667
2668    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2669        &mut self.unknown_fields
2670    }
2671
2672    fn as_any(&self) -> &dyn (::std::any::Any) {
2673        self as &dyn (::std::any::Any)
2674    }
2675    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2676        self as &mut dyn (::std::any::Any)
2677    }
2678    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2679        self
2680    }
2681
2682    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2683        Self::descriptor_static()
2684    }
2685
2686    fn new() -> TensorInfo {
2687        TensorInfo::new()
2688    }
2689
2690    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2691        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2692        unsafe {
2693            descriptor.get(|| {
2694                let mut fields = ::std::vec::Vec::new();
2695                fields.push(::protobuf::reflect::accessor::make_singular_string_accessor::<_>(
2696                    "name",
2697                    TensorInfo::has_name,
2698                    TensorInfo::get_name,
2699                ));
2700                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, TensorInfo_CooSparse>(
2701                    "coo_sparse",
2702                    TensorInfo::has_coo_sparse,
2703                    TensorInfo::get_coo_sparse,
2704                ));
2705                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, TensorInfo_CompositeTensor>(
2706                    "composite_tensor",
2707                    TensorInfo::has_composite_tensor,
2708                    TensorInfo::get_composite_tensor,
2709                ));
2710                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::types::DataType>>(
2711                    "dtype",
2712                    |m: &TensorInfo| { &m.dtype },
2713                    |m: &mut TensorInfo| { &mut m.dtype },
2714                ));
2715                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::tensor_shape::TensorShapeProto>>(
2716                    "tensor_shape",
2717                    |m: &TensorInfo| { &m.tensor_shape },
2718                    |m: &mut TensorInfo| { &mut m.tensor_shape },
2719                ));
2720                ::protobuf::reflect::MessageDescriptor::new_pb_name::<TensorInfo>(
2721                    "TensorInfo",
2722                    fields,
2723                    file_descriptor_proto()
2724                )
2725            })
2726        }
2727    }
2728
2729    fn default_instance() -> &'static TensorInfo {
2730        static mut instance: ::protobuf::lazy::Lazy<TensorInfo> = ::protobuf::lazy::Lazy::INIT;
2731        unsafe {
2732            instance.get(TensorInfo::new)
2733        }
2734    }
2735}
2736
2737impl ::protobuf::Clear for TensorInfo {
2738    fn clear(&mut self) {
2739        self.encoding = ::std::option::Option::None;
2740        self.encoding = ::std::option::Option::None;
2741        self.encoding = ::std::option::Option::None;
2742        self.dtype = super::types::DataType::DT_INVALID;
2743        self.tensor_shape.clear();
2744        self.unknown_fields.clear();
2745    }
2746}
2747
2748impl ::std::fmt::Debug for TensorInfo {
2749    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2750        ::protobuf::text_format::fmt(self, f)
2751    }
2752}
2753
2754impl ::protobuf::reflect::ProtobufValue for TensorInfo {
2755    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2756        ::protobuf::reflect::ReflectValueRef::Message(self)
2757    }
2758}
2759
2760#[derive(PartialEq,Clone,Default)]
2761pub struct TensorInfo_CooSparse {
2762    // message fields
2763    pub values_tensor_name: ::std::string::String,
2764    pub indices_tensor_name: ::std::string::String,
2765    pub dense_shape_tensor_name: ::std::string::String,
2766    // special fields
2767    pub unknown_fields: ::protobuf::UnknownFields,
2768    pub cached_size: ::protobuf::CachedSize,
2769}
2770
2771impl<'a> ::std::default::Default for &'a TensorInfo_CooSparse {
2772    fn default() -> &'a TensorInfo_CooSparse {
2773        <TensorInfo_CooSparse as ::protobuf::Message>::default_instance()
2774    }
2775}
2776
2777impl TensorInfo_CooSparse {
2778    pub fn new() -> TensorInfo_CooSparse {
2779        ::std::default::Default::default()
2780    }
2781
2782    // string values_tensor_name = 1;
2783
2784
2785    pub fn get_values_tensor_name(&self) -> &str {
2786        &self.values_tensor_name
2787    }
2788    pub fn clear_values_tensor_name(&mut self) {
2789        self.values_tensor_name.clear();
2790    }
2791
2792    // Param is passed by value, moved
2793    pub fn set_values_tensor_name(&mut self, v: ::std::string::String) {
2794        self.values_tensor_name = v;
2795    }
2796
2797    // Mutable pointer to the field.
2798    // If field is not initialized, it is initialized with default value first.
2799    pub fn mut_values_tensor_name(&mut self) -> &mut ::std::string::String {
2800        &mut self.values_tensor_name
2801    }
2802
2803    // Take field
2804    pub fn take_values_tensor_name(&mut self) -> ::std::string::String {
2805        ::std::mem::replace(&mut self.values_tensor_name, ::std::string::String::new())
2806    }
2807
2808    // string indices_tensor_name = 2;
2809
2810
2811    pub fn get_indices_tensor_name(&self) -> &str {
2812        &self.indices_tensor_name
2813    }
2814    pub fn clear_indices_tensor_name(&mut self) {
2815        self.indices_tensor_name.clear();
2816    }
2817
2818    // Param is passed by value, moved
2819    pub fn set_indices_tensor_name(&mut self, v: ::std::string::String) {
2820        self.indices_tensor_name = v;
2821    }
2822
2823    // Mutable pointer to the field.
2824    // If field is not initialized, it is initialized with default value first.
2825    pub fn mut_indices_tensor_name(&mut self) -> &mut ::std::string::String {
2826        &mut self.indices_tensor_name
2827    }
2828
2829    // Take field
2830    pub fn take_indices_tensor_name(&mut self) -> ::std::string::String {
2831        ::std::mem::replace(&mut self.indices_tensor_name, ::std::string::String::new())
2832    }
2833
2834    // string dense_shape_tensor_name = 3;
2835
2836
2837    pub fn get_dense_shape_tensor_name(&self) -> &str {
2838        &self.dense_shape_tensor_name
2839    }
2840    pub fn clear_dense_shape_tensor_name(&mut self) {
2841        self.dense_shape_tensor_name.clear();
2842    }
2843
2844    // Param is passed by value, moved
2845    pub fn set_dense_shape_tensor_name(&mut self, v: ::std::string::String) {
2846        self.dense_shape_tensor_name = v;
2847    }
2848
2849    // Mutable pointer to the field.
2850    // If field is not initialized, it is initialized with default value first.
2851    pub fn mut_dense_shape_tensor_name(&mut self) -> &mut ::std::string::String {
2852        &mut self.dense_shape_tensor_name
2853    }
2854
2855    // Take field
2856    pub fn take_dense_shape_tensor_name(&mut self) -> ::std::string::String {
2857        ::std::mem::replace(&mut self.dense_shape_tensor_name, ::std::string::String::new())
2858    }
2859}
2860
2861impl ::protobuf::Message for TensorInfo_CooSparse {
2862    fn is_initialized(&self) -> bool {
2863        true
2864    }
2865
2866    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2867        while !is.eof()? {
2868            let (field_number, wire_type) = is.read_tag_unpack()?;
2869            match field_number {
2870                1 => {
2871                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.values_tensor_name)?;
2872                },
2873                2 => {
2874                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.indices_tensor_name)?;
2875                },
2876                3 => {
2877                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.dense_shape_tensor_name)?;
2878                },
2879                _ => {
2880                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2881                },
2882            };
2883        }
2884        ::std::result::Result::Ok(())
2885    }
2886
2887    // Compute sizes of nested messages
2888    #[allow(unused_variables)]
2889    fn compute_size(&self) -> u32 {
2890        let mut my_size = 0;
2891        if !self.values_tensor_name.is_empty() {
2892            my_size += ::protobuf::rt::string_size(1, &self.values_tensor_name);
2893        }
2894        if !self.indices_tensor_name.is_empty() {
2895            my_size += ::protobuf::rt::string_size(2, &self.indices_tensor_name);
2896        }
2897        if !self.dense_shape_tensor_name.is_empty() {
2898            my_size += ::protobuf::rt::string_size(3, &self.dense_shape_tensor_name);
2899        }
2900        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2901        self.cached_size.set(my_size);
2902        my_size
2903    }
2904
2905    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2906        if !self.values_tensor_name.is_empty() {
2907            os.write_string(1, &self.values_tensor_name)?;
2908        }
2909        if !self.indices_tensor_name.is_empty() {
2910            os.write_string(2, &self.indices_tensor_name)?;
2911        }
2912        if !self.dense_shape_tensor_name.is_empty() {
2913            os.write_string(3, &self.dense_shape_tensor_name)?;
2914        }
2915        os.write_unknown_fields(self.get_unknown_fields())?;
2916        ::std::result::Result::Ok(())
2917    }
2918
2919    fn get_cached_size(&self) -> u32 {
2920        self.cached_size.get()
2921    }
2922
2923    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2924        &self.unknown_fields
2925    }
2926
2927    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2928        &mut self.unknown_fields
2929    }
2930
2931    fn as_any(&self) -> &dyn (::std::any::Any) {
2932        self as &dyn (::std::any::Any)
2933    }
2934    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2935        self as &mut dyn (::std::any::Any)
2936    }
2937    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2938        self
2939    }
2940
2941    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2942        Self::descriptor_static()
2943    }
2944
2945    fn new() -> TensorInfo_CooSparse {
2946        TensorInfo_CooSparse::new()
2947    }
2948
2949    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2950        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2951        unsafe {
2952            descriptor.get(|| {
2953                let mut fields = ::std::vec::Vec::new();
2954                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2955                    "values_tensor_name",
2956                    |m: &TensorInfo_CooSparse| { &m.values_tensor_name },
2957                    |m: &mut TensorInfo_CooSparse| { &mut m.values_tensor_name },
2958                ));
2959                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2960                    "indices_tensor_name",
2961                    |m: &TensorInfo_CooSparse| { &m.indices_tensor_name },
2962                    |m: &mut TensorInfo_CooSparse| { &mut m.indices_tensor_name },
2963                ));
2964                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2965                    "dense_shape_tensor_name",
2966                    |m: &TensorInfo_CooSparse| { &m.dense_shape_tensor_name },
2967                    |m: &mut TensorInfo_CooSparse| { &mut m.dense_shape_tensor_name },
2968                ));
2969                ::protobuf::reflect::MessageDescriptor::new_pb_name::<TensorInfo_CooSparse>(
2970                    "TensorInfo.CooSparse",
2971                    fields,
2972                    file_descriptor_proto()
2973                )
2974            })
2975        }
2976    }
2977
2978    fn default_instance() -> &'static TensorInfo_CooSparse {
2979        static mut instance: ::protobuf::lazy::Lazy<TensorInfo_CooSparse> = ::protobuf::lazy::Lazy::INIT;
2980        unsafe {
2981            instance.get(TensorInfo_CooSparse::new)
2982        }
2983    }
2984}
2985
2986impl ::protobuf::Clear for TensorInfo_CooSparse {
2987    fn clear(&mut self) {
2988        self.values_tensor_name.clear();
2989        self.indices_tensor_name.clear();
2990        self.dense_shape_tensor_name.clear();
2991        self.unknown_fields.clear();
2992    }
2993}
2994
2995impl ::std::fmt::Debug for TensorInfo_CooSparse {
2996    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2997        ::protobuf::text_format::fmt(self, f)
2998    }
2999}
3000
3001impl ::protobuf::reflect::ProtobufValue for TensorInfo_CooSparse {
3002    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3003        ::protobuf::reflect::ReflectValueRef::Message(self)
3004    }
3005}
3006
3007#[derive(PartialEq,Clone,Default)]
3008pub struct TensorInfo_CompositeTensor {
3009    // message fields
3010    pub type_spec: ::protobuf::SingularPtrField<super::struct_pb::TypeSpecProto>,
3011    pub components: ::protobuf::RepeatedField<TensorInfo>,
3012    // special fields
3013    pub unknown_fields: ::protobuf::UnknownFields,
3014    pub cached_size: ::protobuf::CachedSize,
3015}
3016
3017impl<'a> ::std::default::Default for &'a TensorInfo_CompositeTensor {
3018    fn default() -> &'a TensorInfo_CompositeTensor {
3019        <TensorInfo_CompositeTensor as ::protobuf::Message>::default_instance()
3020    }
3021}
3022
3023impl TensorInfo_CompositeTensor {
3024    pub fn new() -> TensorInfo_CompositeTensor {
3025        ::std::default::Default::default()
3026    }
3027
3028    // .tensorflow.TypeSpecProto type_spec = 1;
3029
3030
3031    pub fn get_type_spec(&self) -> &super::struct_pb::TypeSpecProto {
3032        self.type_spec.as_ref().unwrap_or_else(|| super::struct_pb::TypeSpecProto::default_instance())
3033    }
3034    pub fn clear_type_spec(&mut self) {
3035        self.type_spec.clear();
3036    }
3037
3038    pub fn has_type_spec(&self) -> bool {
3039        self.type_spec.is_some()
3040    }
3041
3042    // Param is passed by value, moved
3043    pub fn set_type_spec(&mut self, v: super::struct_pb::TypeSpecProto) {
3044        self.type_spec = ::protobuf::SingularPtrField::some(v);
3045    }
3046
3047    // Mutable pointer to the field.
3048    // If field is not initialized, it is initialized with default value first.
3049    pub fn mut_type_spec(&mut self) -> &mut super::struct_pb::TypeSpecProto {
3050        if self.type_spec.is_none() {
3051            self.type_spec.set_default();
3052        }
3053        self.type_spec.as_mut().unwrap()
3054    }
3055
3056    // Take field
3057    pub fn take_type_spec(&mut self) -> super::struct_pb::TypeSpecProto {
3058        self.type_spec.take().unwrap_or_else(|| super::struct_pb::TypeSpecProto::new())
3059    }
3060
3061    // repeated .tensorflow.TensorInfo components = 2;
3062
3063
3064    pub fn get_components(&self) -> &[TensorInfo] {
3065        &self.components
3066    }
3067    pub fn clear_components(&mut self) {
3068        self.components.clear();
3069    }
3070
3071    // Param is passed by value, moved
3072    pub fn set_components(&mut self, v: ::protobuf::RepeatedField<TensorInfo>) {
3073        self.components = v;
3074    }
3075
3076    // Mutable pointer to the field.
3077    pub fn mut_components(&mut self) -> &mut ::protobuf::RepeatedField<TensorInfo> {
3078        &mut self.components
3079    }
3080
3081    // Take field
3082    pub fn take_components(&mut self) -> ::protobuf::RepeatedField<TensorInfo> {
3083        ::std::mem::replace(&mut self.components, ::protobuf::RepeatedField::new())
3084    }
3085}
3086
3087impl ::protobuf::Message for TensorInfo_CompositeTensor {
3088    fn is_initialized(&self) -> bool {
3089        for v in &self.type_spec {
3090            if !v.is_initialized() {
3091                return false;
3092            }
3093        };
3094        for v in &self.components {
3095            if !v.is_initialized() {
3096                return false;
3097            }
3098        };
3099        true
3100    }
3101
3102    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3103        while !is.eof()? {
3104            let (field_number, wire_type) = is.read_tag_unpack()?;
3105            match field_number {
3106                1 => {
3107                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.type_spec)?;
3108                },
3109                2 => {
3110                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.components)?;
3111                },
3112                _ => {
3113                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3114                },
3115            };
3116        }
3117        ::std::result::Result::Ok(())
3118    }
3119
3120    // Compute sizes of nested messages
3121    #[allow(unused_variables)]
3122    fn compute_size(&self) -> u32 {
3123        let mut my_size = 0;
3124        if let Some(ref v) = self.type_spec.as_ref() {
3125            let len = v.compute_size();
3126            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3127        }
3128        for value in &self.components {
3129            let len = value.compute_size();
3130            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3131        };
3132        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3133        self.cached_size.set(my_size);
3134        my_size
3135    }
3136
3137    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3138        if let Some(ref v) = self.type_spec.as_ref() {
3139            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3140            os.write_raw_varint32(v.get_cached_size())?;
3141            v.write_to_with_cached_sizes(os)?;
3142        }
3143        for v in &self.components {
3144            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3145            os.write_raw_varint32(v.get_cached_size())?;
3146            v.write_to_with_cached_sizes(os)?;
3147        };
3148        os.write_unknown_fields(self.get_unknown_fields())?;
3149        ::std::result::Result::Ok(())
3150    }
3151
3152    fn get_cached_size(&self) -> u32 {
3153        self.cached_size.get()
3154    }
3155
3156    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3157        &self.unknown_fields
3158    }
3159
3160    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3161        &mut self.unknown_fields
3162    }
3163
3164    fn as_any(&self) -> &dyn (::std::any::Any) {
3165        self as &dyn (::std::any::Any)
3166    }
3167    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3168        self as &mut dyn (::std::any::Any)
3169    }
3170    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3171        self
3172    }
3173
3174    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3175        Self::descriptor_static()
3176    }
3177
3178    fn new() -> TensorInfo_CompositeTensor {
3179        TensorInfo_CompositeTensor::new()
3180    }
3181
3182    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3183        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
3184        unsafe {
3185            descriptor.get(|| {
3186                let mut fields = ::std::vec::Vec::new();
3187                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::struct_pb::TypeSpecProto>>(
3188                    "type_spec",
3189                    |m: &TensorInfo_CompositeTensor| { &m.type_spec },
3190                    |m: &mut TensorInfo_CompositeTensor| { &mut m.type_spec },
3191                ));
3192                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(
3193                    "components",
3194                    |m: &TensorInfo_CompositeTensor| { &m.components },
3195                    |m: &mut TensorInfo_CompositeTensor| { &mut m.components },
3196                ));
3197                ::protobuf::reflect::MessageDescriptor::new_pb_name::<TensorInfo_CompositeTensor>(
3198                    "TensorInfo.CompositeTensor",
3199                    fields,
3200                    file_descriptor_proto()
3201                )
3202            })
3203        }
3204    }
3205
3206    fn default_instance() -> &'static TensorInfo_CompositeTensor {
3207        static mut instance: ::protobuf::lazy::Lazy<TensorInfo_CompositeTensor> = ::protobuf::lazy::Lazy::INIT;
3208        unsafe {
3209            instance.get(TensorInfo_CompositeTensor::new)
3210        }
3211    }
3212}
3213
3214impl ::protobuf::Clear for TensorInfo_CompositeTensor {
3215    fn clear(&mut self) {
3216        self.type_spec.clear();
3217        self.components.clear();
3218        self.unknown_fields.clear();
3219    }
3220}
3221
3222impl ::std::fmt::Debug for TensorInfo_CompositeTensor {
3223    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3224        ::protobuf::text_format::fmt(self, f)
3225    }
3226}
3227
3228impl ::protobuf::reflect::ProtobufValue for TensorInfo_CompositeTensor {
3229    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3230        ::protobuf::reflect::ReflectValueRef::Message(self)
3231    }
3232}
3233
3234#[derive(PartialEq,Clone,Default)]
3235pub struct SignatureDef {
3236    // message fields
3237    pub inputs: ::std::collections::HashMap<::std::string::String, TensorInfo>,
3238    pub outputs: ::std::collections::HashMap<::std::string::String, TensorInfo>,
3239    pub method_name: ::std::string::String,
3240    // special fields
3241    pub unknown_fields: ::protobuf::UnknownFields,
3242    pub cached_size: ::protobuf::CachedSize,
3243}
3244
3245impl<'a> ::std::default::Default for &'a SignatureDef {
3246    fn default() -> &'a SignatureDef {
3247        <SignatureDef as ::protobuf::Message>::default_instance()
3248    }
3249}
3250
3251impl SignatureDef {
3252    pub fn new() -> SignatureDef {
3253        ::std::default::Default::default()
3254    }
3255
3256    // repeated .tensorflow.SignatureDef.InputsEntry inputs = 1;
3257
3258
3259    pub fn get_inputs(&self) -> &::std::collections::HashMap<::std::string::String, TensorInfo> {
3260        &self.inputs
3261    }
3262    pub fn clear_inputs(&mut self) {
3263        self.inputs.clear();
3264    }
3265
3266    // Param is passed by value, moved
3267    pub fn set_inputs(&mut self, v: ::std::collections::HashMap<::std::string::String, TensorInfo>) {
3268        self.inputs = v;
3269    }
3270
3271    // Mutable pointer to the field.
3272    pub fn mut_inputs(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, TensorInfo> {
3273        &mut self.inputs
3274    }
3275
3276    // Take field
3277    pub fn take_inputs(&mut self) -> ::std::collections::HashMap<::std::string::String, TensorInfo> {
3278        ::std::mem::replace(&mut self.inputs, ::std::collections::HashMap::new())
3279    }
3280
3281    // repeated .tensorflow.SignatureDef.OutputsEntry outputs = 2;
3282
3283
3284    pub fn get_outputs(&self) -> &::std::collections::HashMap<::std::string::String, TensorInfo> {
3285        &self.outputs
3286    }
3287    pub fn clear_outputs(&mut self) {
3288        self.outputs.clear();
3289    }
3290
3291    // Param is passed by value, moved
3292    pub fn set_outputs(&mut self, v: ::std::collections::HashMap<::std::string::String, TensorInfo>) {
3293        self.outputs = v;
3294    }
3295
3296    // Mutable pointer to the field.
3297    pub fn mut_outputs(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, TensorInfo> {
3298        &mut self.outputs
3299    }
3300
3301    // Take field
3302    pub fn take_outputs(&mut self) -> ::std::collections::HashMap<::std::string::String, TensorInfo> {
3303        ::std::mem::replace(&mut self.outputs, ::std::collections::HashMap::new())
3304    }
3305
3306    // string method_name = 3;
3307
3308
3309    pub fn get_method_name(&self) -> &str {
3310        &self.method_name
3311    }
3312    pub fn clear_method_name(&mut self) {
3313        self.method_name.clear();
3314    }
3315
3316    // Param is passed by value, moved
3317    pub fn set_method_name(&mut self, v: ::std::string::String) {
3318        self.method_name = v;
3319    }
3320
3321    // Mutable pointer to the field.
3322    // If field is not initialized, it is initialized with default value first.
3323    pub fn mut_method_name(&mut self) -> &mut ::std::string::String {
3324        &mut self.method_name
3325    }
3326
3327    // Take field
3328    pub fn take_method_name(&mut self) -> ::std::string::String {
3329        ::std::mem::replace(&mut self.method_name, ::std::string::String::new())
3330    }
3331}
3332
3333impl ::protobuf::Message for SignatureDef {
3334    fn is_initialized(&self) -> bool {
3335        true
3336    }
3337
3338    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3339        while !is.eof()? {
3340            let (field_number, wire_type) = is.read_tag_unpack()?;
3341            match field_number {
3342                1 => {
3343                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(wire_type, is, &mut self.inputs)?;
3344                },
3345                2 => {
3346                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(wire_type, is, &mut self.outputs)?;
3347                },
3348                3 => {
3349                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.method_name)?;
3350                },
3351                _ => {
3352                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3353                },
3354            };
3355        }
3356        ::std::result::Result::Ok(())
3357    }
3358
3359    // Compute sizes of nested messages
3360    #[allow(unused_variables)]
3361    fn compute_size(&self) -> u32 {
3362        let mut my_size = 0;
3363        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(1, &self.inputs);
3364        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(2, &self.outputs);
3365        if !self.method_name.is_empty() {
3366            my_size += ::protobuf::rt::string_size(3, &self.method_name);
3367        }
3368        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3369        self.cached_size.set(my_size);
3370        my_size
3371    }
3372
3373    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3374        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(1, &self.inputs, os)?;
3375        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(2, &self.outputs, os)?;
3376        if !self.method_name.is_empty() {
3377            os.write_string(3, &self.method_name)?;
3378        }
3379        os.write_unknown_fields(self.get_unknown_fields())?;
3380        ::std::result::Result::Ok(())
3381    }
3382
3383    fn get_cached_size(&self) -> u32 {
3384        self.cached_size.get()
3385    }
3386
3387    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3388        &self.unknown_fields
3389    }
3390
3391    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3392        &mut self.unknown_fields
3393    }
3394
3395    fn as_any(&self) -> &dyn (::std::any::Any) {
3396        self as &dyn (::std::any::Any)
3397    }
3398    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3399        self as &mut dyn (::std::any::Any)
3400    }
3401    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3402        self
3403    }
3404
3405    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3406        Self::descriptor_static()
3407    }
3408
3409    fn new() -> SignatureDef {
3410        SignatureDef::new()
3411    }
3412
3413    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3414        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
3415        unsafe {
3416            descriptor.get(|| {
3417                let mut fields = ::std::vec::Vec::new();
3418                fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(
3419                    "inputs",
3420                    |m: &SignatureDef| { &m.inputs },
3421                    |m: &mut SignatureDef| { &mut m.inputs },
3422                ));
3423                fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(
3424                    "outputs",
3425                    |m: &SignatureDef| { &m.outputs },
3426                    |m: &mut SignatureDef| { &mut m.outputs },
3427                ));
3428                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3429                    "method_name",
3430                    |m: &SignatureDef| { &m.method_name },
3431                    |m: &mut SignatureDef| { &mut m.method_name },
3432                ));
3433                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SignatureDef>(
3434                    "SignatureDef",
3435                    fields,
3436                    file_descriptor_proto()
3437                )
3438            })
3439        }
3440    }
3441
3442    fn default_instance() -> &'static SignatureDef {
3443        static mut instance: ::protobuf::lazy::Lazy<SignatureDef> = ::protobuf::lazy::Lazy::INIT;
3444        unsafe {
3445            instance.get(SignatureDef::new)
3446        }
3447    }
3448}
3449
3450impl ::protobuf::Clear for SignatureDef {
3451    fn clear(&mut self) {
3452        self.inputs.clear();
3453        self.outputs.clear();
3454        self.method_name.clear();
3455        self.unknown_fields.clear();
3456    }
3457}
3458
3459impl ::std::fmt::Debug for SignatureDef {
3460    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3461        ::protobuf::text_format::fmt(self, f)
3462    }
3463}
3464
3465impl ::protobuf::reflect::ProtobufValue for SignatureDef {
3466    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3467        ::protobuf::reflect::ReflectValueRef::Message(self)
3468    }
3469}
3470
3471#[derive(PartialEq,Clone,Default)]
3472pub struct AssetFileDef {
3473    // message fields
3474    pub tensor_info: ::protobuf::SingularPtrField<TensorInfo>,
3475    pub filename: ::std::string::String,
3476    // special fields
3477    pub unknown_fields: ::protobuf::UnknownFields,
3478    pub cached_size: ::protobuf::CachedSize,
3479}
3480
3481impl<'a> ::std::default::Default for &'a AssetFileDef {
3482    fn default() -> &'a AssetFileDef {
3483        <AssetFileDef as ::protobuf::Message>::default_instance()
3484    }
3485}
3486
3487impl AssetFileDef {
3488    pub fn new() -> AssetFileDef {
3489        ::std::default::Default::default()
3490    }
3491
3492    // .tensorflow.TensorInfo tensor_info = 1;
3493
3494
3495    pub fn get_tensor_info(&self) -> &TensorInfo {
3496        self.tensor_info.as_ref().unwrap_or_else(|| TensorInfo::default_instance())
3497    }
3498    pub fn clear_tensor_info(&mut self) {
3499        self.tensor_info.clear();
3500    }
3501
3502    pub fn has_tensor_info(&self) -> bool {
3503        self.tensor_info.is_some()
3504    }
3505
3506    // Param is passed by value, moved
3507    pub fn set_tensor_info(&mut self, v: TensorInfo) {
3508        self.tensor_info = ::protobuf::SingularPtrField::some(v);
3509    }
3510
3511    // Mutable pointer to the field.
3512    // If field is not initialized, it is initialized with default value first.
3513    pub fn mut_tensor_info(&mut self) -> &mut TensorInfo {
3514        if self.tensor_info.is_none() {
3515            self.tensor_info.set_default();
3516        }
3517        self.tensor_info.as_mut().unwrap()
3518    }
3519
3520    // Take field
3521    pub fn take_tensor_info(&mut self) -> TensorInfo {
3522        self.tensor_info.take().unwrap_or_else(|| TensorInfo::new())
3523    }
3524
3525    // string filename = 2;
3526
3527
3528    pub fn get_filename(&self) -> &str {
3529        &self.filename
3530    }
3531    pub fn clear_filename(&mut self) {
3532        self.filename.clear();
3533    }
3534
3535    // Param is passed by value, moved
3536    pub fn set_filename(&mut self, v: ::std::string::String) {
3537        self.filename = v;
3538    }
3539
3540    // Mutable pointer to the field.
3541    // If field is not initialized, it is initialized with default value first.
3542    pub fn mut_filename(&mut self) -> &mut ::std::string::String {
3543        &mut self.filename
3544    }
3545
3546    // Take field
3547    pub fn take_filename(&mut self) -> ::std::string::String {
3548        ::std::mem::replace(&mut self.filename, ::std::string::String::new())
3549    }
3550}
3551
3552impl ::protobuf::Message for AssetFileDef {
3553    fn is_initialized(&self) -> bool {
3554        for v in &self.tensor_info {
3555            if !v.is_initialized() {
3556                return false;
3557            }
3558        };
3559        true
3560    }
3561
3562    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3563        while !is.eof()? {
3564            let (field_number, wire_type) = is.read_tag_unpack()?;
3565            match field_number {
3566                1 => {
3567                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.tensor_info)?;
3568                },
3569                2 => {
3570                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.filename)?;
3571                },
3572                _ => {
3573                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3574                },
3575            };
3576        }
3577        ::std::result::Result::Ok(())
3578    }
3579
3580    // Compute sizes of nested messages
3581    #[allow(unused_variables)]
3582    fn compute_size(&self) -> u32 {
3583        let mut my_size = 0;
3584        if let Some(ref v) = self.tensor_info.as_ref() {
3585            let len = v.compute_size();
3586            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
3587        }
3588        if !self.filename.is_empty() {
3589            my_size += ::protobuf::rt::string_size(2, &self.filename);
3590        }
3591        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3592        self.cached_size.set(my_size);
3593        my_size
3594    }
3595
3596    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3597        if let Some(ref v) = self.tensor_info.as_ref() {
3598            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
3599            os.write_raw_varint32(v.get_cached_size())?;
3600            v.write_to_with_cached_sizes(os)?;
3601        }
3602        if !self.filename.is_empty() {
3603            os.write_string(2, &self.filename)?;
3604        }
3605        os.write_unknown_fields(self.get_unknown_fields())?;
3606        ::std::result::Result::Ok(())
3607    }
3608
3609    fn get_cached_size(&self) -> u32 {
3610        self.cached_size.get()
3611    }
3612
3613    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3614        &self.unknown_fields
3615    }
3616
3617    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3618        &mut self.unknown_fields
3619    }
3620
3621    fn as_any(&self) -> &dyn (::std::any::Any) {
3622        self as &dyn (::std::any::Any)
3623    }
3624    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3625        self as &mut dyn (::std::any::Any)
3626    }
3627    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3628        self
3629    }
3630
3631    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3632        Self::descriptor_static()
3633    }
3634
3635    fn new() -> AssetFileDef {
3636        AssetFileDef::new()
3637    }
3638
3639    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3640        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
3641        unsafe {
3642            descriptor.get(|| {
3643                let mut fields = ::std::vec::Vec::new();
3644                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<TensorInfo>>(
3645                    "tensor_info",
3646                    |m: &AssetFileDef| { &m.tensor_info },
3647                    |m: &mut AssetFileDef| { &mut m.tensor_info },
3648                ));
3649                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3650                    "filename",
3651                    |m: &AssetFileDef| { &m.filename },
3652                    |m: &mut AssetFileDef| { &mut m.filename },
3653                ));
3654                ::protobuf::reflect::MessageDescriptor::new_pb_name::<AssetFileDef>(
3655                    "AssetFileDef",
3656                    fields,
3657                    file_descriptor_proto()
3658                )
3659            })
3660        }
3661    }
3662
3663    fn default_instance() -> &'static AssetFileDef {
3664        static mut instance: ::protobuf::lazy::Lazy<AssetFileDef> = ::protobuf::lazy::Lazy::INIT;
3665        unsafe {
3666            instance.get(AssetFileDef::new)
3667        }
3668    }
3669}
3670
3671impl ::protobuf::Clear for AssetFileDef {
3672    fn clear(&mut self) {
3673        self.tensor_info.clear();
3674        self.filename.clear();
3675        self.unknown_fields.clear();
3676    }
3677}
3678
3679impl ::std::fmt::Debug for AssetFileDef {
3680    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3681        ::protobuf::text_format::fmt(self, f)
3682    }
3683}
3684
3685impl ::protobuf::reflect::ProtobufValue for AssetFileDef {
3686    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3687        ::protobuf::reflect::ReflectValueRef::Message(self)
3688    }
3689}
3690
3691static file_descriptor_proto_data: &'static [u8] = b"\
3692    \n)tensorflow/core/protobuf/meta_graph.proto\x12\ntensorflow\x1a\x19goog\
3693    le/protobuf/any.proto\x1a%tensorflow/core/framework/graph.proto\x1a&tens\
3694    orflow/core/framework/op_def.proto\x1a,tensorflow/core/framework/tensor_\
3695    shape.proto\x1a%tensorflow/core/framework/types.proto\x1a1tensorflow/cor\
3696    e/protobuf/saved_object_graph.proto\x1a$tensorflow/core/protobuf/saver.p\
3697    roto\x1a%tensorflow/core/protobuf/struct.proto\"\xa9\t\n\x0cMetaGraphDef\
3698    \x12H\n\rmeta_info_def\x18\x01\x20\x01(\x0b2$.tensorflow.MetaGraphDef.Me\
3699    taInfoDefR\x0bmetaInfoDef\x121\n\tgraph_def\x18\x02\x20\x01(\x0b2\x14.te\
3700    nsorflow.GraphDefR\x08graphDef\x121\n\tsaver_def\x18\x03\x20\x01(\x0b2\
3701    \x14.tensorflow.SaverDefR\x08saverDef\x12R\n\x0ecollection_def\x18\x04\
3702    \x20\x03(\x0b2+.tensorflow.MetaGraphDef.CollectionDefEntryR\rcollectionD\
3703    ef\x12O\n\rsignature_def\x18\x05\x20\x03(\x0b2*.tensorflow.MetaGraphDef.\
3704    SignatureDefEntryR\x0csignatureDef\x12>\n\x0easset_file_def\x18\x06\x20\
3705    \x03(\x0b2\x18.tensorflow.AssetFileDefR\x0cassetFileDef\x12F\n\x10object\
3706    _graph_def\x18\x07\x20\x01(\x0b2\x1c.tensorflow.SavedObjectGraphR\x0eobj\
3707    ectGraphDef\x1a\x83\x04\n\x0bMetaInfoDef\x12,\n\x12meta_graph_version\
3708    \x18\x01\x20\x01(\tR\x10metaGraphVersion\x12<\n\x10stripped_op_list\x18\
3709    \x02\x20\x01(\x0b2\x12.tensorflow.OpListR\x0estrippedOpList\x12/\n\x08an\
3710    y_info\x18\x03\x20\x01(\x0b2\x14.google.protobuf.AnyR\x07anyInfo\x12\x12\
3711    \n\x04tags\x18\x04\x20\x03(\tR\x04tags\x12-\n\x12tensorflow_version\x18\
3712    \x05\x20\x01(\tR\x11tensorflowVersion\x124\n\x16tensorflow_git_version\
3713    \x18\x06\x20\x01(\tR\x14tensorflowGitVersion\x124\n\x16stripped_default_\
3714    attrs\x18\x07\x20\x01(\x08R\x14strippedDefaultAttrs\x12d\n\x10function_a\
3715    liases\x18\x08\x20\x03(\x0b29.tensorflow.MetaGraphDef.MetaInfoDef.Functi\
3716    onAliasesEntryR\x0ffunctionAliases\x1aB\n\x14FunctionAliasesEntry\x12\
3717    \x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\x20\
3718    \x01(\tR\x05value:\x028\x01\x1a[\n\x12CollectionDefEntry\x12\x10\n\x03ke\
3719    y\x18\x01\x20\x01(\tR\x03key\x12/\n\x05value\x18\x02\x20\x01(\x0b2\x19.t\
3720    ensorflow.CollectionDefR\x05value:\x028\x01\x1aY\n\x11SignatureDefEntry\
3721    \x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12.\n\x05value\x18\x02\x20\
3722    \x01(\x0b2\x18.tensorflow.SignatureDefR\x05value:\x028\x01\"\xb6\x04\n\r\
3723    CollectionDef\x12A\n\tnode_list\x18\x01\x20\x01(\x0b2\".tensorflow.Colle\
3724    ctionDef.NodeListH\0R\x08nodeList\x12D\n\nbytes_list\x18\x02\x20\x01(\
3725    \x0b2#.tensorflow.CollectionDef.BytesListH\0R\tbytesList\x12D\n\nint64_l\
3726    ist\x18\x03\x20\x01(\x0b2#.tensorflow.CollectionDef.Int64ListH\0R\tint64\
3727    List\x12D\n\nfloat_list\x18\x04\x20\x01(\x0b2#.tensorflow.CollectionDef.\
3728    FloatListH\0R\tfloatList\x12>\n\x08any_list\x18\x05\x20\x01(\x0b2!.tenso\
3729    rflow.CollectionDef.AnyListH\0R\x07anyList\x1a\x20\n\x08NodeList\x12\x14\
3730    \n\x05value\x18\x01\x20\x03(\tR\x05value\x1a!\n\tBytesList\x12\x14\n\x05\
3731    value\x18\x01\x20\x03(\x0cR\x05value\x1a%\n\tInt64List\x12\x18\n\x05valu\
3732    e\x18\x01\x20\x03(\x03R\x05valueB\x02\x10\x01\x1a%\n\tFloatList\x12\x18\
3733    \n\x05value\x18\x01\x20\x03(\x02R\x05valueB\x02\x10\x01\x1a5\n\x07AnyLis\
3734    t\x12*\n\x05value\x18\x01\x20\x03(\x0b2\x14.google.protobuf.AnyR\x05valu\
3735    eB\x06\n\x04kind\"\xda\x04\n\nTensorInfo\x12\x14\n\x04name\x18\x01\x20\
3736    \x01(\tH\0R\x04name\x12A\n\ncoo_sparse\x18\x04\x20\x01(\x0b2\x20.tensorf\
3737    low.TensorInfo.CooSparseH\0R\tcooSparse\x12S\n\x10composite_tensor\x18\
3738    \x05\x20\x01(\x0b2&.tensorflow.TensorInfo.CompositeTensorH\0R\x0fcomposi\
3739    teTensor\x12*\n\x05dtype\x18\x02\x20\x01(\x0e2\x14.tensorflow.DataTypeR\
3740    \x05dtype\x12?\n\x0ctensor_shape\x18\x03\x20\x01(\x0b2\x1c.tensorflow.Te\
3741    nsorShapeProtoR\x0btensorShape\x1a\xa0\x01\n\tCooSparse\x12,\n\x12values\
3742    _tensor_name\x18\x01\x20\x01(\tR\x10valuesTensorName\x12.\n\x13indices_t\
3743    ensor_name\x18\x02\x20\x01(\tR\x11indicesTensorName\x125\n\x17dense_shap\
3744    e_tensor_name\x18\x03\x20\x01(\tR\x14denseShapeTensorName\x1a\x81\x01\n\
3745    \x0fCompositeTensor\x126\n\ttype_spec\x18\x01\x20\x01(\x0b2\x19.tensorfl\
3746    ow.TypeSpecProtoR\x08typeSpec\x126\n\ncomponents\x18\x02\x20\x03(\x0b2\
3747    \x16.tensorflow.TensorInfoR\ncomponentsB\n\n\x08encoding\"\xd5\x02\n\x0c\
3748    SignatureDef\x12<\n\x06inputs\x18\x01\x20\x03(\x0b2$.tensorflow.Signatur\
3749    eDef.InputsEntryR\x06inputs\x12?\n\x07outputs\x18\x02\x20\x03(\x0b2%.ten\
3750    sorflow.SignatureDef.OutputsEntryR\x07outputs\x12\x1f\n\x0bmethod_name\
3751    \x18\x03\x20\x01(\tR\nmethodName\x1aQ\n\x0bInputsEntry\x12\x10\n\x03key\
3752    \x18\x01\x20\x01(\tR\x03key\x12,\n\x05value\x18\x02\x20\x01(\x0b2\x16.te\
3753    nsorflow.TensorInfoR\x05value:\x028\x01\x1aR\n\x0cOutputsEntry\x12\x10\n\
3754    \x03key\x18\x01\x20\x01(\tR\x03key\x12,\n\x05value\x18\x02\x20\x01(\x0b2\
3755    \x16.tensorflow.TensorInfoR\x05value:\x028\x01\"c\n\x0cAssetFileDef\x127\
3756    \n\x0btensor_info\x18\x01\x20\x01(\x0b2\x16.tensorflow.TensorInfoR\ntens\
3757    orInfo\x12\x1a\n\x08filename\x18\x02\x20\x01(\tR\x08filenameBz\n\x18org.\
3758    tensorflow.frameworkB\x0fMetaGraphProtosP\x01ZHgithub.com/tensorflow/ten\
3759    sorflow/tensorflow/go/core/core_protos_go_proto\xf8\x01\x01J\xa8[\n\x07\
3760    \x12\x05\0\0\xd5\x02\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\
3761    \x12\x03\x02\0\x13\n\t\n\x02\x03\0\x12\x03\x04\0#\n\t\n\x02\x03\x01\x12\
3762    \x03\x05\0/\n\t\n\x02\x03\x02\x12\x03\x06\00\n\t\n\x02\x03\x03\x12\x03\
3763    \x07\06\n\t\n\x02\x03\x04\x12\x03\x08\0/\n\t\n\x02\x03\x05\x12\x03\t\0;\
3764    \n\t\n\x02\x03\x06\x12\x03\n\0.\n\t\n\x02\x03\x07\x12\x03\x0b\0/\n\x08\n\
3765    \x01\x08\x12\x03\r\0\x1f\n\t\n\x02\x08\x1f\x12\x03\r\0\x1f\n\x08\n\x01\
3766    \x08\x12\x03\x0e\00\n\t\n\x02\x08\x08\x12\x03\x0e\00\n\x08\n\x01\x08\x12\
3767    \x03\x0f\0\"\n\t\n\x02\x08\n\x12\x03\x0f\0\"\n\x08\n\x01\x08\x12\x03\x10\
3768    \01\n\t\n\x02\x08\x01\x12\x03\x10\01\n\x08\n\x01\x08\x12\x03\x11\0_\n\t\
3769    \n\x02\x08\x0b\x12\x03\x11\0_\n\x8a\x04\n\x02\x04\0\x12\x04!\0_\x01\x1a\
3770    \xfd\x03\x20NOTE:\x20This\x20protocol\x20buffer\x20is\x20evolving,\x20an\
3771    d\x20will\x20go\x20through\x20revisions\x20in\x20the\n\x20coming\x20mont\
3772    hs.\n\n\x20Protocol\x20buffer\x20containing\x20the\x20following\x20which\
3773    \x20are\x20necessary\x20to\x20restart\n\x20training,\x20run\x20inference\
3774    .\x20It\x20can\x20be\x20used\x20to\x20serialize/de-serialize\x20memory\n\
3775    \x20objects\x20necessary\x20for\x20running\x20computation\x20in\x20a\x20\
3776    graph\x20when\x20crossing\x20the\n\x20process\x20boundary.\x20It\x20can\
3777    \x20be\x20used\x20for\x20long\x20term\x20storage\x20of\x20graphs,\n\x20c\
3778    ross-language\x20execution\x20of\x20graphs,\x20etc.\n\x20\x20\x20MetaInf\
3779    oDef\n\x20\x20\x20GraphDef\n\x20\x20\x20SaverDef\n\x20\x20\x20Collection\
3780    Def\n\x20\x20\x20TensorInfo\n\x20\x20\x20SignatureDef\n\n\n\n\x03\x04\0\
3781    \x01\x12\x03!\x08\x14\n\xa5\x01\n\x04\x04\0\x03\0\x12\x04$\x02I\x03\x1a\
3782    \x96\x01\x20Meta\x20information\x20regarding\x20the\x20graph\x20to\x20be\
3783    \x20exported.\x20\x20To\x20be\x20used\x20by\x20users\n\x20of\x20this\x20\
3784    protocol\x20buffer\x20to\x20encode\x20information\x20regarding\x20their\
3785    \x20meta\x20graph.\n\n\x0c\n\x05\x04\0\x03\0\x01\x12\x03$\n\x15\n\x86\
3786    \x01\n\x06\x04\0\x03\0\x02\0\x12\x03'\x04\"\x1aw\x20User\x20specified\
3787    \x20Version\x20string.\x20Can\x20be\x20the\x20name\x20of\x20the\x20model\
3788    \x20and\x20revision,\n\x20steps\x20this\x20model\x20has\x20been\x20train\
3789    ed\x20to,\x20etc.\n\n\x0e\n\x07\x04\0\x03\0\x02\0\x05\x12\x03'\x04\n\n\
3790    \x0e\n\x07\x04\0\x03\0\x02\0\x01\x12\x03'\x0b\x1d\n\x0e\n\x07\x04\0\x03\
3791    \0\x02\0\x03\x12\x03'\x20!\n\x8b\x01\n\x06\x04\0\x03\0\x02\x01\x12\x03+\
3792    \x04\x20\x1a|\x20A\x20copy\x20of\x20the\x20OpDefs\x20used\x20by\x20the\
3793    \x20producer\x20of\x20this\x20graph_def.\n\x20Descriptions\x20and\x20Ops\
3794    \x20not\x20used\x20in\x20graph_def\x20are\x20stripped\x20out.\n\n\x0e\n\
3795    \x07\x04\0\x03\0\x02\x01\x06\x12\x03+\x04\n\n\x0e\n\x07\x04\0\x03\0\x02\
3796    \x01\x01\x12\x03+\x0b\x1b\n\x0e\n\x07\x04\0\x03\0\x02\x01\x03\x12\x03+\
3797    \x1e\x1f\nw\n\x06\x04\0\x03\0\x02\x02\x12\x03/\x04%\x1ah\x20A\x20seriali\
3798    zed\x20protobuf.\x20Can\x20be\x20the\x20time\x20this\x20meta\x20graph\
3799    \x20is\x20created,\x20or\n\x20modified,\x20or\x20name\x20of\x20the\x20mo\
3800    del.\n\n\x0e\n\x07\x04\0\x03\0\x02\x02\x06\x12\x03/\x04\x17\n\x0e\n\x07\
3801    \x04\0\x03\0\x02\x02\x01\x12\x03/\x18\x20\n\x0e\n\x07\x04\0\x03\0\x02\
3802    \x02\x03\x12\x03/#$\n\xba\x02\n\x06\x04\0\x03\0\x02\x03\x12\x037\x04\x1d\
3803    \x1a\xaa\x02\x20User\x20supplied\x20tag(s)\x20on\x20the\x20meta_graph\
3804    \x20and\x20included\x20graph_def.\n\n\x20MetaGraphDefs\x20should\x20be\
3805    \x20tagged\x20with\x20their\x20capabilities\x20or\x20use-cases.\n\x20Exa\
3806    mples:\x20\"train\",\x20\"serve\",\x20\"gpu\",\x20\"tpu\",\x20etc.\n\x20\
3807    These\x20tags\x20enable\x20loaders\x20to\x20access\x20the\x20MetaGraph(s\
3808    )\x20appropriate\x20for\x20a\n\x20specific\x20use-case\x20or\x20runtime\
3809    \x20environment.\n\n\x0e\n\x07\x04\0\x03\0\x02\x03\x04\x12\x037\x04\x0c\
3810    \n\x0e\n\x07\x04\0\x03\0\x02\x03\x05\x12\x037\r\x13\n\x0e\n\x07\x04\0\
3811    \x03\0\x02\x03\x01\x12\x037\x14\x18\n\x0e\n\x07\x04\0\x03\0\x02\x03\x03\
3812    \x12\x037\x1b\x1c\n\xb3\x01\n\x06\x04\0\x03\0\x02\x04\x12\x03<\x04\"\x1a\
3813    \xa3\x01\x20The\x20__version__\x20string\x20of\x20the\x20tensorflow\x20b\
3814    uild\x20used\x20to\x20write\x20this\x20graph.\n\x20This\x20will\x20be\
3815    \x20populated\x20by\x20the\x20framework,\x20which\x20will\x20overwrite\
3816    \x20any\x20user\n\x20supplied\x20value.\n\n\x0e\n\x07\x04\0\x03\0\x02\
3817    \x04\x05\x12\x03<\x04\n\n\x0e\n\x07\x04\0\x03\0\x02\x04\x01\x12\x03<\x0b\
3818    \x1d\n\x0e\n\x07\x04\0\x03\0\x02\x04\x03\x12\x03<\x20!\n\xb7\x01\n\x06\
3819    \x04\0\x03\0\x02\x05\x12\x03A\x04&\x1a\xa7\x01\x20The\x20__git_version__\
3820    \x20string\x20of\x20the\x20tensorflow\x20build\x20used\x20to\x20write\
3821    \x20this\n\x20graph.\x20This\x20will\x20be\x20populated\x20by\x20the\x20\
3822    framework,\x20which\x20will\x20overwrite\x20any\n\x20user\x20supplied\
3823    \x20value.\n\n\x0e\n\x07\x04\0\x03\0\x02\x05\x05\x12\x03A\x04\n\n\x0e\n\
3824    \x07\x04\0\x03\0\x02\x05\x01\x12\x03A\x0b!\n\x0e\n\x07\x04\0\x03\0\x02\
3825    \x05\x03\x12\x03A$%\nt\n\x06\x04\0\x03\0\x02\x06\x12\x03E\x04$\x1ae\x20A\
3826    \x20flag\x20to\x20denote\x20whether\x20default-valued\x20attrs\x20have\
3827    \x20been\x20stripped\x20from\n\x20the\x20nodes\x20in\x20this\x20graph_de\
3828    f.\n\n\x0e\n\x07\x04\0\x03\0\x02\x06\x05\x12\x03E\x04\x08\n\x0e\n\x07\
3829    \x04\0\x03\0\x02\x06\x01\x12\x03E\t\x1f\n\x0e\n\x07\x04\0\x03\0\x02\x06\
3830    \x03\x12\x03E\"#\n5\n\x06\x04\0\x03\0\x02\x07\x12\x03H\x04-\x1a&\x20Func\
3831    tionDef\x20name\x20to\x20aliases\x20mapping.\n\n\x0e\n\x07\x04\0\x03\0\
3832    \x02\x07\x06\x12\x03H\x04\x17\n\x0e\n\x07\x04\0\x03\0\x02\x07\x01\x12\
3833    \x03H\x18(\n\x0e\n\x07\x04\0\x03\0\x02\x07\x03\x12\x03H+,\n\x0b\n\x04\
3834    \x04\0\x02\0\x12\x03J\x02\x20\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03J\x02\r\
3835    \n\x0c\n\x05\x04\0\x02\0\x01\x12\x03J\x0e\x1b\n\x0c\n\x05\x04\0\x02\0\
3836    \x03\x12\x03J\x1e\x1f\n\x18\n\x04\x04\0\x02\x01\x12\x03M\x02\x19\x1a\x0b\
3837    \x20GraphDef.\n\n\x0c\n\x05\x04\0\x02\x01\x06\x12\x03M\x02\n\n\x0c\n\x05\
3838    \x04\0\x02\x01\x01\x12\x03M\x0b\x14\n\x0c\n\x05\x04\0\x02\x01\x03\x12\
3839    \x03M\x17\x18\n\x18\n\x04\x04\0\x02\x02\x12\x03P\x02\x19\x1a\x0b\x20Save\
3840    rDef.\n\n\x0c\n\x05\x04\0\x02\x02\x06\x12\x03P\x02\n\n\x0c\n\x05\x04\0\
3841    \x02\x02\x01\x12\x03P\x0b\x14\n\x0c\n\x05\x04\0\x02\x02\x03\x12\x03P\x17\
3842    \x18\no\n\x04\x04\0\x02\x03\x12\x03T\x020\x1ab\x20collection_def:\x20Map\
3843    \x20from\x20collection\x20name\x20to\x20collections.\n\x20See\x20Collect\
3844    ionDef\x20section\x20for\x20details.\n\n\x0c\n\x05\x04\0\x02\x03\x06\x12\
3845    \x03T\x02\x1c\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x03T\x1d+\n\x0c\n\x05\
3846    \x04\0\x02\x03\x03\x12\x03T./\nc\n\x04\x04\0\x02\x04\x12\x03X\x02.\x1aV\
3847    \x20signature_def:\x20Map\x20from\x20user\x20supplied\x20key\x20for\x20a\
3848    \x20signature\x20to\x20a\x20single\n\x20SignatureDef.\n\n\x0c\n\x05\x04\
3849    \0\x02\x04\x06\x12\x03X\x02\x1b\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x03X\
3850    \x1c)\n\x0c\n\x05\x04\0\x02\x04\x03\x12\x03X,-\n@\n\x04\x04\0\x02\x05\
3851    \x12\x03[\x02+\x1a3\x20Asset\x20file\x20def\x20to\x20be\x20used\x20with\
3852    \x20the\x20defined\x20graph.\n\n\x0c\n\x05\x04\0\x02\x05\x04\x12\x03[\
3853    \x02\n\n\x0c\n\x05\x04\0\x02\x05\x06\x12\x03[\x0b\x17\n\x0c\n\x05\x04\0\
3854    \x02\x05\x01\x12\x03[\x18&\n\x0c\n\x05\x04\0\x02\x05\x03\x12\x03[)*\nW\n\
3855    \x04\x04\0\x02\x06\x12\x03^\x02(\x1aJ\x20Extra\x20information\x20about\
3856    \x20the\x20structure\x20of\x20functions\x20and\x20stateful\x20objects.\n\
3857    \n\x0c\n\x05\x04\0\x02\x06\x06\x12\x03^\x02\x12\n\x0c\n\x05\x04\0\x02\
3858    \x06\x01\x12\x03^\x13#\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x03^&'\n\xdf\
3859    \x0f\n\x02\x04\x01\x12\x06\x9f\x01\0\xd5\x01\x01\x1a\xd0\x0f\x20Collecti\
3860    onDef\x20should\x20cover\x20most\x20collections.\n\x20To\x20add\x20a\x20\
3861    user-defined\x20collection,\x20do\x20one\x20of\x20the\x20following:\n\
3862    \x201.\x20For\x20simple\x20data\x20types,\x20such\x20as\x20string,\x20in\
3863    t,\x20float:\n\x20\x20\x20\x20\x20\x20tf.add_to_collection(\"your_collec\
3864    tion_name\",\x20your_simple_value)\n\x20\x20\x20\x20strings\x20will\x20b\
3865    e\x20stored\x20as\x20bytes_list.\n\n\x202.\x20For\x20Protobuf\x20types,\
3866    \x20there\x20are\x20three\x20ways\x20to\x20add\x20them:\n\x20\x20\x20\
3867    \x201)\x20tf.add_to_collection(\"your_collection_name\",\n\x20\x20\x20\
3868    \x20\x20\x20\x20\x20\x20your_proto.SerializeToString())\n\n\x20\x20\x20\
3869    \x20\x20\x20\x20collection_def\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\
3870    \x20key:\x20\"user_defined_bytes_collection\"\n\x20\x20\x20\x20\x20\x20\
3871    \x20\x20\x20value\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20byte\
3872    s_list\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20value:\
3873    \x20\"queue_name:\x20\\\"test_queue\\\"\\n\"\n\x20\x20\x20\x20\x20\x20\
3874    \x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\
3875    \x20\x20\x20\x20\x20}\n\n\x20\x20or\n\n\x20\x20\x20\x202)\x20tf.add_to_c\
3876    ollection(\"your_collection_name\",\x20str(your_proto))\n\n\x20\x20\x20\
3877    \x20\x20\x20\x20collection_def\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\
3878    \x20key:\x20\"user_defined_string_collection\"\n\x20\x20\x20\x20\x20\x20\
3879    \x20\x20\x20value\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20bytes_li\
3880    st\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20value:\x20\
3881    \"\\n\\ntest_queue\"\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\n\
3882    \x20\x20\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20\x20\x20}\n\n\
3883    \x20\x20or\n\n\x20\x20\x20\x203)\x20any_buf\x20=\x20any_pb2.Any()\n\x20\
3884    \x20\x20\x20\x20\x20\x20tf.add_to_collection(\"your_collection_name\",\n\
3885    \x20\x20\x20\x20\x20\x20\x20\x20\x20any_buf.Pack(your_proto))\n\n\x20\
3886    \x20\x20\x20\x20\x20\x20collection_def\x20{\n\x20\x20\x20\x20\x20\x20\
3887    \x20\x20\x20key:\x20\"user_defined_any_collection\"\n\x20\x20\x20\x20\
3888    \x20\x20\x20\x20\x20value\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3889    \x20any_list\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20v\
3890    alue\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20t\
3891    ype_url:\x20\"type.googleapis.com/tensorflow.QueueRunnerDef\"\n\x20\x20\
3892    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20value:\x20\"\\n\\nte\
3893    st_queue\"\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\n\x20\
3894    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20\x20\x20\
3895    \x20\x20}\n\x20\x20\x20\x20\x20\x20\x20}\n\n\x203.\x20For\x20Python\x20o\
3896    bjects,\x20implement\x20to_proto()\x20and\x20from_proto(),\x20and\x20reg\
3897    ister\n\x20\x20\x20\x20them\x20in\x20the\x20following\x20manner:\n\x20\
3898    \x20\x20\x20ops.register_proto_function(\"your_collection_name\",\n\x20\
3899    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3900    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20proto_type,\n\x20\
3901    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3902    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20to_proto=YourPythonO\
3903    bject.to_proto,\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3904    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3905    \x20from_proto=YourPythonObject.from_proto)\n\x20\x20\x20\x20These\x20fu\
3906    nctions\x20will\x20be\x20invoked\x20to\x20serialize\x20and\x20de-seriali\
3907    ze\x20the\n\x20\x20\x20\x20collection.\x20For\x20example,\n\x20\x20\x20\
3908    \x20ops.register_proto_function(ops.GraphKeys.GLOBAL_VARIABLES,\n\x20\
3909    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3910    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20proto_type=variable_\
3911    pb2.VariableDef,\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3912    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3913    \x20to_proto=Variable.to_proto,\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3914    \x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3915    \x20\x20\x20\x20\x20from_proto=Variable.from_proto)\n\n\x0b\n\x03\x04\
3916    \x01\x01\x12\x04\x9f\x01\x08\x15\n\x98\x02\n\x04\x04\x01\x03\0\x12\x06\
3917    \xaa\x01\x02\xac\x01\x03\x1a\x87\x02\x20NodeList\x20is\x20used\x20for\
3918    \x20collecting\x20nodes\x20in\x20graph.\x20For\x20example\n\x20collectio\
3919    n_def\x20{\n\x20\x20\x20key:\x20\"summaries\"\n\x20\x20\x20value\x20{\n\
3920    \x20\x20\x20\x20\x20node_list\x20{\n\x20\x20\x20\x20\x20\x20\x20value:\
3921    \x20\"input_producer/ScalarSummary:0\"\n\x20\x20\x20\x20\x20\x20\x20valu\
3922    e:\x20\"shuffle_batch/ScalarSummary:0\"\n\x20\x20\x20\x20\x20\x20\x20val\
3923    ue:\x20\"ImageSummary:0\"\n\x20\x20\x20\x20\x20}\n\x20\x20\x20}\n\n\r\n\
3924    \x05\x04\x01\x03\0\x01\x12\x04\xaa\x01\n\x12\n\x0e\n\x06\x04\x01\x03\0\
3925    \x02\0\x12\x04\xab\x01\x04\x1e\n\x0f\n\x07\x04\x01\x03\0\x02\0\x04\x12\
3926    \x04\xab\x01\x04\x0c\n\x0f\n\x07\x04\x01\x03\0\x02\0\x05\x12\x04\xab\x01\
3927    \r\x13\n\x0f\n\x07\x04\x01\x03\0\x02\0\x01\x12\x04\xab\x01\x14\x19\n\x0f\
3928    \n\x07\x04\x01\x03\0\x02\0\x03\x12\x04\xab\x01\x1c\x1d\n\x96\x03\n\x04\
3929    \x04\x01\x03\x01\x12\x06\xbb\x01\x02\xbd\x01\x03\x1a\x85\x03\x20BytesLis\
3930    t\x20is\x20used\x20for\x20collecting\x20strings\x20and\x20serialized\x20\
3931    protobufs.\x20For\n\x20example:\n\x20collection_def\x20{\n\x20\x20\x20ke\
3932    y:\x20\"trainable_variables\"\n\x20\x20\x20value\x20{\n\x20\x20\x20\x20\
3933    \x20bytes_list\x20{\n\x20\x20\x20\x20\x20\x20\x20value:\x20\"\\n\\017con\
3934    v1/weights:0\\022\\024conv1/weights/Assign\n\x20\x20\x20\x20\x20\x20\x20\
3935    \x20\x20\x20\x20\x20\x20\x20\\032\\024conv1/weights/read:0\"\n\x20\x20\
3936    \x20\x20\x20\x20\x20value:\x20\"\\n\\016conv1/biases:0\\022\\023conv1/bi\
3937    ases/Assign\\032\n\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
3938    \x20\\023conv1/biases/read:0\"\n\x20\x20\x20\x20\x20}\n\x20\x20\x20}\n\
3939    \x20}\n\n\r\n\x05\x04\x01\x03\x01\x01\x12\x04\xbb\x01\n\x13\n\x0e\n\x06\
3940    \x04\x01\x03\x01\x02\0\x12\x04\xbc\x01\x04\x1d\n\x0f\n\x07\x04\x01\x03\
3941    \x01\x02\0\x04\x12\x04\xbc\x01\x04\x0c\n\x0f\n\x07\x04\x01\x03\x01\x02\0\
3942    \x05\x12\x04\xbc\x01\r\x12\n\x0f\n\x07\x04\x01\x03\x01\x02\0\x01\x12\x04\
3943    \xbc\x01\x13\x18\n\x0f\n\x07\x04\x01\x03\x01\x02\0\x03\x12\x04\xbc\x01\
3944    \x1b\x1c\nN\n\x04\x04\x01\x03\x02\x12\x06\xc0\x01\x02\xc2\x01\x03\x1a>\
3945    \x20Int64List\x20is\x20used\x20for\x20collecting\x20int,\x20int64\x20and\
3946    \x20long\x20values.\n\n\r\n\x05\x04\x01\x03\x02\x01\x12\x04\xc0\x01\n\
3947    \x13\n\x0e\n\x06\x04\x01\x03\x02\x02\0\x12\x04\xc1\x01\x04-\n\x0f\n\x07\
3948    \x04\x01\x03\x02\x02\0\x04\x12\x04\xc1\x01\x04\x0c\n\x0f\n\x07\x04\x01\
3949    \x03\x02\x02\0\x05\x12\x04\xc1\x01\r\x12\n\x0f\n\x07\x04\x01\x03\x02\x02\
3950    \0\x01\x12\x04\xc1\x01\x13\x18\n\x0f\n\x07\x04\x01\x03\x02\x02\0\x03\x12\
3951    \x04\xc1\x01\x1b\x1c\n\x0f\n\x07\x04\x01\x03\x02\x02\0\x08\x12\x04\xc1\
3952    \x01\x1d,\n\x10\n\x08\x04\x01\x03\x02\x02\0\x08\x02\x12\x04\xc1\x01\x1e+\
3953    \n@\n\x04\x04\x01\x03\x03\x12\x06\xc5\x01\x02\xc7\x01\x03\x1a0\x20FloatL\
3954    ist\x20is\x20used\x20for\x20collecting\x20float\x20values.\n\n\r\n\x05\
3955    \x04\x01\x03\x03\x01\x12\x04\xc5\x01\n\x13\n\x0e\n\x06\x04\x01\x03\x03\
3956    \x02\0\x12\x04\xc6\x01\x04-\n\x0f\n\x07\x04\x01\x03\x03\x02\0\x04\x12\
3957    \x04\xc6\x01\x04\x0c\n\x0f\n\x07\x04\x01\x03\x03\x02\0\x05\x12\x04\xc6\
3958    \x01\r\x12\n\x0f\n\x07\x04\x01\x03\x03\x02\0\x01\x12\x04\xc6\x01\x13\x18\
3959    \n\x0f\n\x07\x04\x01\x03\x03\x02\0\x03\x12\x04\xc6\x01\x1b\x1c\n\x0f\n\
3960    \x07\x04\x01\x03\x03\x02\0\x08\x12\x04\xc6\x01\x1d,\n\x10\n\x08\x04\x01\
3961    \x03\x03\x02\0\x08\x02\x12\x04\xc6\x01\x1e+\n<\n\x04\x04\x01\x03\x04\x12\
3962    \x06\xca\x01\x02\xcc\x01\x03\x1a,\x20AnyList\x20is\x20used\x20for\x20col\
3963    lecting\x20Any\x20protos.\n\n\r\n\x05\x04\x01\x03\x04\x01\x12\x04\xca\
3964    \x01\n\x11\n\x0e\n\x06\x04\x01\x03\x04\x02\0\x12\x04\xcb\x01\x04+\n\x0f\
3965    \n\x07\x04\x01\x03\x04\x02\0\x04\x12\x04\xcb\x01\x04\x0c\n\x0f\n\x07\x04\
3966    \x01\x03\x04\x02\0\x06\x12\x04\xcb\x01\r\x20\n\x0f\n\x07\x04\x01\x03\x04\
3967    \x02\0\x01\x12\x04\xcb\x01!&\n\x0f\n\x07\x04\x01\x03\x04\x02\0\x03\x12\
3968    \x04\xcb\x01)*\n\x0e\n\x04\x04\x01\x08\0\x12\x06\xce\x01\x02\xd4\x01\x03\
3969    \n\r\n\x05\x04\x01\x08\0\x01\x12\x04\xce\x01\x08\x0c\n\x0c\n\x04\x04\x01\
3970    \x02\0\x12\x04\xcf\x01\x04\x1b\n\r\n\x05\x04\x01\x02\0\x06\x12\x04\xcf\
3971    \x01\x04\x0c\n\r\n\x05\x04\x01\x02\0\x01\x12\x04\xcf\x01\r\x16\n\r\n\x05\
3972    \x04\x01\x02\0\x03\x12\x04\xcf\x01\x19\x1a\n\x0c\n\x04\x04\x01\x02\x01\
3973    \x12\x04\xd0\x01\x04\x1d\n\r\n\x05\x04\x01\x02\x01\x06\x12\x04\xd0\x01\
3974    \x04\r\n\r\n\x05\x04\x01\x02\x01\x01\x12\x04\xd0\x01\x0e\x18\n\r\n\x05\
3975    \x04\x01\x02\x01\x03\x12\x04\xd0\x01\x1b\x1c\n\x0c\n\x04\x04\x01\x02\x02\
3976    \x12\x04\xd1\x01\x04\x1d\n\r\n\x05\x04\x01\x02\x02\x06\x12\x04\xd1\x01\
3977    \x04\r\n\r\n\x05\x04\x01\x02\x02\x01\x12\x04\xd1\x01\x0e\x18\n\r\n\x05\
3978    \x04\x01\x02\x02\x03\x12\x04\xd1\x01\x1b\x1c\n\x0c\n\x04\x04\x01\x02\x03\
3979    \x12\x04\xd2\x01\x04\x1d\n\r\n\x05\x04\x01\x02\x03\x06\x12\x04\xd2\x01\
3980    \x04\r\n\r\n\x05\x04\x01\x02\x03\x01\x12\x04\xd2\x01\x0e\x18\n\r\n\x05\
3981    \x04\x01\x02\x03\x03\x12\x04\xd2\x01\x1b\x1c\n\x0c\n\x04\x04\x01\x02\x04\
3982    \x12\x04\xd3\x01\x04\x19\n\r\n\x05\x04\x01\x02\x04\x06\x12\x04\xd3\x01\
3983    \x04\x0b\n\r\n\x05\x04\x01\x02\x04\x01\x12\x04\xd3\x01\x0c\x14\n\r\n\x05\
3984    \x04\x01\x02\x04\x03\x12\x04\xd3\x01\x17\x18\nN\n\x02\x04\x02\x12\x06\
3985    \xd8\x01\0\x81\x02\x01\x1a@\x20Information\x20about\x20a\x20Tensor\x20ne\
3986    cessary\x20for\x20feeding\x20or\x20retrieval.\n\n\x0b\n\x03\x04\x02\x01\
3987    \x12\x04\xd8\x01\x08\x12\nf\n\x04\x04\x02\x03\0\x12\x06\xdb\x01\x02\xe6\
3988    \x01\x03\x1aV\x20For\x20sparse\x20tensors,\x20The\x20COO\x20encoding\x20\
3989    stores\x20a\x20triple\x20of\x20values,\x20indices,\n\x20and\x20shape.\n\
3990    \n\r\n\x05\x04\x02\x03\0\x01\x12\x04\xdb\x01\n\x13\n\x9a\x01\n\x06\x04\
3991    \x02\x03\0\x02\0\x12\x04\xde\x01\x04\"\x1a\x89\x01\x20The\x20shape\x20of\
3992    \x20the\x20values\x20Tensor\x20is\x20[?].\x20\x20Its\x20dtype\x20must\
3993    \x20be\x20the\x20dtype\x20of\n\x20the\x20SparseTensor\x20as\x20a\x20whol\
3994    e,\x20given\x20in\x20the\x20enclosing\x20TensorInfo.\n\n\x0f\n\x07\x04\
3995    \x02\x03\0\x02\0\x05\x12\x04\xde\x01\x04\n\n\x0f\n\x07\x04\x02\x03\0\x02\
3996    \0\x01\x12\x04\xde\x01\x0b\x1d\n\x0f\n\x07\x04\x02\x03\0\x02\0\x03\x12\
3997    \x04\xde\x01\x20!\nL\n\x06\x04\x02\x03\0\x02\x01\x12\x04\xe1\x01\x04#\
3998    \x1a<\x20The\x20indices\x20Tensor\x20must\x20have\x20dtype\x20int64\x20a\
3999    nd\x20shape\x20[?,\x20?].\n\n\x0f\n\x07\x04\x02\x03\0\x02\x01\x05\x12\
4000    \x04\xe1\x01\x04\n\n\x0f\n\x07\x04\x02\x03\0\x02\x01\x01\x12\x04\xe1\x01\
4001    \x0b\x1e\n\x0f\n\x07\x04\x02\x03\0\x02\x01\x03\x12\x04\xe1\x01!\"\n\xa1\
4002    \x01\n\x06\x04\x02\x03\0\x02\x02\x12\x04\xe5\x01\x04'\x1a\x90\x01\x20The\
4003    \x20dynamic\x20logical\x20shape\x20represented\x20by\x20the\x20SparseTen\
4004    sor\x20is\x20recorded\x20in\n\x20the\x20Tensor\x20referenced\x20here.\
4005    \x20\x20It\x20must\x20have\x20dtype\x20int64\x20and\x20shape\x20[?].\n\n\
4006    \x0f\n\x07\x04\x02\x03\0\x02\x02\x05\x12\x04\xe5\x01\x04\n\n\x0f\n\x07\
4007    \x04\x02\x03\0\x02\x02\x01\x12\x04\xe5\x01\x0b\"\n\x0f\n\x07\x04\x02\x03\
4008    \0\x02\x02\x03\x12\x04\xe5\x01%&\n9\n\x04\x04\x02\x03\x01\x12\x06\xe9\
4009    \x01\x02\xef\x01\x03\x1a)\x20Generic\x20encoding\x20for\x20composite\x20\
4010    tensors.\n\n\r\n\x05\x04\x02\x03\x01\x01\x12\x04\xe9\x01\n\x19\nC\n\x06\
4011    \x04\x02\x03\x01\x02\0\x12\x04\xeb\x01\x04\x20\x1a3\x20The\x20serialized\
4012    \x20TypeSpec\x20for\x20the\x20composite\x20tensor.\n\n\x0f\n\x07\x04\x02\
4013    \x03\x01\x02\0\x06\x12\x04\xeb\x01\x04\x11\n\x0f\n\x07\x04\x02\x03\x01\
4014    \x02\0\x01\x12\x04\xeb\x01\x12\x1b\n\x0f\n\x07\x04\x02\x03\x01\x02\0\x03\
4015    \x12\x04\xeb\x01\x1e\x1f\nC\n\x06\x04\x02\x03\x01\x02\x01\x12\x04\xee\
4016    \x01\x04'\x1a3\x20A\x20TensorInfo\x20for\x20each\x20flattened\x20compone\
4017    nt\x20tensor.\n\n\x0f\n\x07\x04\x02\x03\x01\x02\x01\x04\x12\x04\xee\x01\
4018    \x04\x0c\n\x0f\n\x07\x04\x02\x03\x01\x02\x01\x06\x12\x04\xee\x01\r\x17\n\
4019    \x0f\n\x07\x04\x02\x03\x01\x02\x01\x01\x12\x04\xee\x01\x18\"\n\x0f\n\x07\
4020    \x04\x02\x03\x01\x02\x01\x03\x12\x04\xee\x01%&\n\x0e\n\x04\x04\x02\x08\0\
4021    \x12\x06\xf1\x01\x02\xfb\x01\x03\n\r\n\x05\x04\x02\x08\0\x01\x12\x04\xf1\
4022    \x01\x08\x10\nI\n\x04\x04\x02\x02\0\x12\x04\xf3\x01\x04\x14\x1a;\x20For\
4023    \x20dense\x20`Tensor`s,\x20the\x20name\x20of\x20the\x20tensor\x20in\x20t\
4024    he\x20graph.\n\n\r\n\x05\x04\x02\x02\0\x05\x12\x04\xf3\x01\x04\n\n\r\n\
4025    \x05\x04\x02\x02\0\x01\x12\x04\xf3\x01\x0b\x0f\n\r\n\x05\x04\x02\x02\0\
4026    \x03\x12\x04\xf3\x01\x12\x13\n\xee\x01\n\x04\x04\x02\x02\x01\x12\x04\xf8\
4027    \x01\x04\x1d\x1a\xdf\x01\x20There\x20are\x20many\x20possible\x20encoding\
4028    s\x20of\x20sparse\x20matrices\n\x20(https://en.wikipedia.org/wiki/Sparse\
4029    _matrix).\x20\x20Currently,\x20TensorFlow\n\x20uses\x20only\x20the\x20CO\
4030    O\x20encoding.\x20\x20This\x20is\x20supported\x20and\x20documented\x20in\
4031    \x20the\n\x20SparseTensor\x20Python\x20class.\n\n\r\n\x05\x04\x02\x02\
4032    \x01\x06\x12\x04\xf8\x01\x04\r\n\r\n\x05\x04\x02\x02\x01\x01\x12\x04\xf8\
4033    \x01\x0e\x18\n\r\n\x05\x04\x02\x02\x01\x03\x12\x04\xf8\x01\x1b\x1c\n6\n\
4034    \x04\x04\x02\x02\x02\x12\x04\xfa\x01\x04)\x1a(\x20Generic\x20encoding\
4035    \x20for\x20CompositeTensors.\n\n\r\n\x05\x04\x02\x02\x02\x06\x12\x04\xfa\
4036    \x01\x04\x13\n\r\n\x05\x04\x02\x02\x02\x01\x12\x04\xfa\x01\x14$\n\r\n\
4037    \x05\x04\x02\x02\x02\x03\x12\x04\xfa\x01'(\n\x0c\n\x04\x04\x02\x02\x03\
4038    \x12\x04\xfc\x01\x02\x15\n\r\n\x05\x04\x02\x02\x03\x06\x12\x04\xfc\x01\
4039    \x02\n\n\r\n\x05\x04\x02\x02\x03\x01\x12\x04\xfc\x01\x0b\x10\n\r\n\x05\
4040    \x04\x02\x02\x03\x03\x12\x04\xfc\x01\x13\x14\n\xdf\x01\n\x04\x04\x02\x02\
4041    \x04\x12\x04\x80\x02\x02$\x1a\xd0\x01\x20The\x20static\x20shape\x20shoul\
4042    d\x20be\x20recorded\x20here,\x20to\x20the\x20extent\x20that\x20it\x20can\
4043    \n\x20be\x20known\x20in\x20advance.\x20\x20In\x20the\x20case\x20of\x20a\
4044    \x20SparseTensor,\x20this\x20field\x20describes\n\x20the\x20logical\x20s\
4045    hape\x20of\x20the\x20represented\x20tensor\x20(aka\x20dense_shape).\n\n\
4046    \r\n\x05\x04\x02\x02\x04\x06\x12\x04\x80\x02\x02\x12\n\r\n\x05\x04\x02\
4047    \x02\x04\x01\x12\x04\x80\x02\x13\x1f\n\r\n\x05\x04\x02\x02\x04\x03\x12\
4048    \x04\x80\x02\"#\n\xbe\n\n\x02\x04\x03\x12\x06\xbc\x02\0\xca\x02\x01\x1a\
4049    \xaf\n\x20SignatureDef\x20defines\x20the\x20signature\x20of\x20a\x20comp\
4050    utation\x20supported\x20by\x20a\x20TensorFlow\n\x20graph.\n\n\x20For\x20\
4051    example,\x20a\x20model\x20with\x20two\x20loss\x20computations,\x20sharin\
4052    g\x20a\x20single\x20input,\n\x20might\x20have\x20the\x20following\x20sig\
4053    nature_def\x20map.\n\n\x20Note\x20that\x20across\x20the\x20two\x20Signat\
4054    ureDefs\x20\"loss_A\"\x20and\x20\"loss_B\",\x20the\x20input\x20key,\n\
4055    \x20output\x20key,\x20and\x20method_name\x20are\x20identical,\x20and\x20\
4056    will\x20be\x20used\x20by\x20system(s)\x20that\n\x20implement\x20or\x20re\
4057    ly\x20upon\x20this\x20particular\x20loss\x20method.\x20The\x20output\x20\
4058    tensor\x20names\n\x20differ,\x20demonstrating\x20how\x20different\x20out\
4059    puts\x20can\x20exist\x20for\x20the\x20same\x20method.\n\n\x20signature_d\
4060    ef\x20{\n\x20\x20\x20key:\x20\"loss_A\"\n\x20\x20\x20value\x20{\n\x20\
4061    \x20\x20\x20\x20inputs\x20{\n\x20\x20\x20\x20\x20\x20\x20key:\x20\"input\
4062    \"\n\x20\x20\x20\x20\x20\x20\x20value\x20{\n\x20\x20\x20\x20\x20\x20\x20\
4063    \x20\x20name:\x20\"input:0\"\n\x20\x20\x20\x20\x20\x20\x20\x20\x20dtype:\
4064    \x20DT_STRING\n\x20\x20\x20\x20\x20\x20\x20\x20\x20tensor_shape:\x20...\
4065    \n\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\
4066    \x20outputs\x20{\n\x20\x20\x20\x20\x20\x20\x20key:\x20\"loss_output\"\n\
4067    \x20\x20\x20\x20\x20\x20\x20value\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\
4068    \x20name:\x20\"loss_output_A:0\"\n\x20\x20\x20\x20\x20\x20\x20\x20\x20dt\
4069    ype:\x20DT_FLOAT\n\x20\x20\x20\x20\x20\x20\x20\x20\x20tensor_shape:\x20.\
4070    ..\n\x20\x20\x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20}\n\x20\x20\x20}\
4071    \n\x20\x20\x20...\n\x20\x20\x20method_name:\x20\"some/package/compute_lo\
4072    ss\"\n\x20}\n\x20signature_def\x20{\n\x20\x20\x20key:\x20\"loss_B\"\n\
4073    \x20\x20\x20value\x20{\n\x20\x20\x20\x20\x20inputs\x20{\n\x20\x20\x20\
4074    \x20\x20\x20\x20key:\x20\"input\"\n\x20\x20\x20\x20\x20\x20\x20value\x20\
4075    {\n\x20\x20\x20\x20\x20\x20\x20\x20\x20name:\x20\"input:0\"\n\x20\x20\
4076    \x20\x20\x20\x20\x20\x20\x20dtype:\x20DT_STRING\n\x20\x20\x20\x20\x20\
4077    \x20\x20\x20\x20tensor_shape:\x20...\n\x20\x20\x20\x20\x20\x20\x20}\n\
4078    \x20\x20\x20\x20\x20}\n\x20\x20\x20\x20\x20outputs\x20{\n\x20\x20\x20\
4079    \x20\x20\x20\x20key:\x20\"loss_output\"\n\x20\x20\x20\x20\x20\x20\x20val\
4080    ue\x20{\n\x20\x20\x20\x20\x20\x20\x20\x20\x20name:\x20\"loss_output_B:0\
4081    \"\n\x20\x20\x20\x20\x20\x20\x20\x20\x20dtype:\x20DT_FLOAT\n\x20\x20\x20\
4082    \x20\x20\x20\x20\x20\x20tensor_shape:\x20...\n\x20\x20\x20\x20\x20\x20\
4083    \x20}\n\x20\x20\x20\x20\x20}\n\x20\x20\x20}\n\x20\x20\x20...\n\x20\x20\
4084    \x20method_name:\x20\"some/package/compute_loss\"\n\x20}\n\n\x0b\n\x03\
4085    \x04\x03\x01\x12\x04\xbc\x02\x08\x14\n'\n\x04\x04\x03\x02\0\x12\x04\xbe\
4086    \x02\x02%\x1a\x19\x20Named\x20input\x20parameters.\n\n\r\n\x05\x04\x03\
4087    \x02\0\x06\x12\x04\xbe\x02\x02\x19\n\r\n\x05\x04\x03\x02\0\x01\x12\x04\
4088    \xbe\x02\x1a\x20\n\r\n\x05\x04\x03\x02\0\x03\x12\x04\xbe\x02#$\n(\n\x04\
4089    \x04\x03\x02\x01\x12\x04\xc0\x02\x02&\x1a\x1a\x20Named\x20output\x20para\
4090    meters.\n\n\r\n\x05\x04\x03\x02\x01\x06\x12\x04\xc0\x02\x02\x19\n\r\n\
4091    \x05\x04\x03\x02\x01\x01\x12\x04\xc0\x02\x1a!\n\r\n\x05\x04\x03\x02\x01\
4092    \x03\x12\x04\xc0\x02$%\n\x91\x04\n\x04\x04\x03\x02\x02\x12\x04\xc9\x02\
4093    \x02\x19\x1a\x82\x04\x20Extensible\x20method_name\x20information\x20enab\
4094    ling\x20third-party\x20users\x20to\x20mark\x20a\n\x20SignatureDef\x20as\
4095    \x20supporting\x20a\x20particular\x20method.\x20This\x20enables\x20produ\
4096    cers\x20and\n\x20consumers\x20of\x20SignatureDefs,\x20e.g.\x20a\x20model\
4097    \x20definition\x20library\x20and\x20a\x20serving\n\x20library\x20to\x20h\
4098    ave\x20a\x20clear\x20hand-off\x20regarding\x20the\x20semantics\x20of\x20\
4099    a\x20computation.\n\n\x20Note\x20that\x20multiple\x20SignatureDefs\x20in\
4100    \x20a\x20single\x20MetaGraphDef\x20may\x20have\x20the\x20same\n\x20metho\
4101    d_name.\x20This\x20is\x20commonly\x20used\x20to\x20support\x20multi-head\
4102    ed\x20computation,\n\x20where\x20a\x20single\x20graph\x20computation\x20\
4103    may\x20return\x20multiple\x20results.\n\n\r\n\x05\x04\x03\x02\x02\x05\
4104    \x12\x04\xc9\x02\x02\x08\n\r\n\x05\x04\x03\x02\x02\x01\x12\x04\xc9\x02\t\
4105    \x14\n\r\n\x05\x04\x03\x02\x02\x03\x12\x04\xc9\x02\x17\x18\nb\n\x02\x04\
4106    \x04\x12\x06\xce\x02\0\xd5\x02\x01\x1aT\x20An\x20asset\x20file\x20def\
4107    \x20for\x20a\x20single\x20file\x20or\x20a\x20set\x20of\x20sharded\x20fil\
4108    es\x20with\x20the\x20same\n\x20name.\n\n\x0b\n\x03\x04\x04\x01\x12\x04\
4109    \xce\x02\x08\x14\n9\n\x04\x04\x04\x02\0\x12\x04\xd0\x02\x02\x1d\x1a+\x20\
4110    The\x20tensor\x20to\x20bind\x20the\x20asset\x20filename\x20to.\n\n\r\n\
4111    \x05\x04\x04\x02\0\x06\x12\x04\xd0\x02\x02\x0c\n\r\n\x05\x04\x04\x02\0\
4112    \x01\x12\x04\xd0\x02\r\x18\n\r\n\x05\x04\x04\x02\0\x03\x12\x04\xd0\x02\
4113    \x1b\x1c\n\xbd\x01\n\x04\x04\x04\x02\x01\x12\x04\xd4\x02\x02\x16\x1a\xae\
4114    \x01\x20The\x20filename\x20within\x20an\x20assets\x20directory.\x20Note:\
4115    \x20does\x20not\x20include\x20the\x20path\n\x20prefix,\x20i.e.\x20direct\
4116    ories.\x20For\x20an\x20asset\x20at\x20/tmp/path/vocab.txt,\x20the\x20fil\
4117    ename\n\x20would\x20be\x20\"vocab.txt\".\n\n\r\n\x05\x04\x04\x02\x01\x05\
4118    \x12\x04\xd4\x02\x02\x08\n\r\n\x05\x04\x04\x02\x01\x01\x12\x04\xd4\x02\t\
4119    \x11\n\r\n\x05\x04\x04\x02\x01\x03\x12\x04\xd4\x02\x14\x15b\x06proto3\
4120";
4121
4122static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;
4123
4124fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
4125    ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
4126}
4127
4128pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
4129    unsafe {
4130        file_descriptor_proto_lazy.get(|| {
4131            parse_descriptor_proto()
4132        })
4133    }
4134}