tensorflow_serving_client/
saved_object_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/saved_object_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 SavedObjectGraph {
31    // message fields
32    pub nodes: ::protobuf::RepeatedField<SavedObject>,
33    pub concrete_functions: ::std::collections::HashMap<::std::string::String, SavedConcreteFunction>,
34    // special fields
35    pub unknown_fields: ::protobuf::UnknownFields,
36    pub cached_size: ::protobuf::CachedSize,
37}
38
39impl<'a> ::std::default::Default for &'a SavedObjectGraph {
40    fn default() -> &'a SavedObjectGraph {
41        <SavedObjectGraph as ::protobuf::Message>::default_instance()
42    }
43}
44
45impl SavedObjectGraph {
46    pub fn new() -> SavedObjectGraph {
47        ::std::default::Default::default()
48    }
49
50    // repeated .tensorflow.SavedObject nodes = 1;
51
52
53    pub fn get_nodes(&self) -> &[SavedObject] {
54        &self.nodes
55    }
56    pub fn clear_nodes(&mut self) {
57        self.nodes.clear();
58    }
59
60    // Param is passed by value, moved
61    pub fn set_nodes(&mut self, v: ::protobuf::RepeatedField<SavedObject>) {
62        self.nodes = v;
63    }
64
65    // Mutable pointer to the field.
66    pub fn mut_nodes(&mut self) -> &mut ::protobuf::RepeatedField<SavedObject> {
67        &mut self.nodes
68    }
69
70    // Take field
71    pub fn take_nodes(&mut self) -> ::protobuf::RepeatedField<SavedObject> {
72        ::std::mem::replace(&mut self.nodes, ::protobuf::RepeatedField::new())
73    }
74
75    // repeated .tensorflow.SavedObjectGraph.ConcreteFunctionsEntry concrete_functions = 2;
76
77
78    pub fn get_concrete_functions(&self) -> &::std::collections::HashMap<::std::string::String, SavedConcreteFunction> {
79        &self.concrete_functions
80    }
81    pub fn clear_concrete_functions(&mut self) {
82        self.concrete_functions.clear();
83    }
84
85    // Param is passed by value, moved
86    pub fn set_concrete_functions(&mut self, v: ::std::collections::HashMap<::std::string::String, SavedConcreteFunction>) {
87        self.concrete_functions = v;
88    }
89
90    // Mutable pointer to the field.
91    pub fn mut_concrete_functions(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, SavedConcreteFunction> {
92        &mut self.concrete_functions
93    }
94
95    // Take field
96    pub fn take_concrete_functions(&mut self) -> ::std::collections::HashMap<::std::string::String, SavedConcreteFunction> {
97        ::std::mem::replace(&mut self.concrete_functions, ::std::collections::HashMap::new())
98    }
99}
100
101impl ::protobuf::Message for SavedObjectGraph {
102    fn is_initialized(&self) -> bool {
103        for v in &self.nodes {
104            if !v.is_initialized() {
105                return false;
106            }
107        };
108        true
109    }
110
111    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
112        while !is.eof()? {
113            let (field_number, wire_type) = is.read_tag_unpack()?;
114            match field_number {
115                1 => {
116                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.nodes)?;
117                },
118                2 => {
119                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SavedConcreteFunction>>(wire_type, is, &mut self.concrete_functions)?;
120                },
121                _ => {
122                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
123                },
124            };
125        }
126        ::std::result::Result::Ok(())
127    }
128
129    // Compute sizes of nested messages
130    #[allow(unused_variables)]
131    fn compute_size(&self) -> u32 {
132        let mut my_size = 0;
133        for value in &self.nodes {
134            let len = value.compute_size();
135            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
136        };
137        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SavedConcreteFunction>>(2, &self.concrete_functions);
138        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
139        self.cached_size.set(my_size);
140        my_size
141    }
142
143    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
144        for v in &self.nodes {
145            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
146            os.write_raw_varint32(v.get_cached_size())?;
147            v.write_to_with_cached_sizes(os)?;
148        };
149        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SavedConcreteFunction>>(2, &self.concrete_functions, os)?;
150        os.write_unknown_fields(self.get_unknown_fields())?;
151        ::std::result::Result::Ok(())
152    }
153
154    fn get_cached_size(&self) -> u32 {
155        self.cached_size.get()
156    }
157
158    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
159        &self.unknown_fields
160    }
161
162    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
163        &mut self.unknown_fields
164    }
165
166    fn as_any(&self) -> &dyn (::std::any::Any) {
167        self as &dyn (::std::any::Any)
168    }
169    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
170        self as &mut dyn (::std::any::Any)
171    }
172    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
173        self
174    }
175
176    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
177        Self::descriptor_static()
178    }
179
180    fn new() -> SavedObjectGraph {
181        SavedObjectGraph::new()
182    }
183
184    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
185        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
186        unsafe {
187            descriptor.get(|| {
188                let mut fields = ::std::vec::Vec::new();
189                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<SavedObject>>(
190                    "nodes",
191                    |m: &SavedObjectGraph| { &m.nodes },
192                    |m: &mut SavedObjectGraph| { &mut m.nodes },
193                ));
194                fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SavedConcreteFunction>>(
195                    "concrete_functions",
196                    |m: &SavedObjectGraph| { &m.concrete_functions },
197                    |m: &mut SavedObjectGraph| { &mut m.concrete_functions },
198                ));
199                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedObjectGraph>(
200                    "SavedObjectGraph",
201                    fields,
202                    file_descriptor_proto()
203                )
204            })
205        }
206    }
207
208    fn default_instance() -> &'static SavedObjectGraph {
209        static mut instance: ::protobuf::lazy::Lazy<SavedObjectGraph> = ::protobuf::lazy::Lazy::INIT;
210        unsafe {
211            instance.get(SavedObjectGraph::new)
212        }
213    }
214}
215
216impl ::protobuf::Clear for SavedObjectGraph {
217    fn clear(&mut self) {
218        self.nodes.clear();
219        self.concrete_functions.clear();
220        self.unknown_fields.clear();
221    }
222}
223
224impl ::std::fmt::Debug for SavedObjectGraph {
225    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
226        ::protobuf::text_format::fmt(self, f)
227    }
228}
229
230impl ::protobuf::reflect::ProtobufValue for SavedObjectGraph {
231    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
232        ::protobuf::reflect::ReflectValueRef::Message(self)
233    }
234}
235
236#[derive(PartialEq,Clone,Default)]
237pub struct SavedObject {
238    // message fields
239    pub children: ::protobuf::RepeatedField<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_ObjectReference>,
240    pub slot_variables: ::protobuf::RepeatedField<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_SlotVariableReference>,
241    pub saveable_objects: ::std::collections::HashMap<::std::string::String, SaveableObject>,
242    // message oneof groups
243    pub kind: ::std::option::Option<SavedObject_oneof_kind>,
244    // special fields
245    pub unknown_fields: ::protobuf::UnknownFields,
246    pub cached_size: ::protobuf::CachedSize,
247}
248
249impl<'a> ::std::default::Default for &'a SavedObject {
250    fn default() -> &'a SavedObject {
251        <SavedObject as ::protobuf::Message>::default_instance()
252    }
253}
254
255#[derive(Clone,PartialEq,Debug)]
256pub enum SavedObject_oneof_kind {
257    user_object(SavedUserObject),
258    asset(SavedAsset),
259    function(SavedFunction),
260    variable(SavedVariable),
261    bare_concrete_function(SavedBareConcreteFunction),
262    constant(SavedConstant),
263    resource(SavedResource),
264}
265
266impl SavedObject {
267    pub fn new() -> SavedObject {
268        ::std::default::Default::default()
269    }
270
271    // repeated .tensorflow.TrackableObjectGraph.TrackableObject.ObjectReference children = 1;
272
273
274    pub fn get_children(&self) -> &[super::trackable_object_graph::TrackableObjectGraph_TrackableObject_ObjectReference] {
275        &self.children
276    }
277    pub fn clear_children(&mut self) {
278        self.children.clear();
279    }
280
281    // Param is passed by value, moved
282    pub fn set_children(&mut self, v: ::protobuf::RepeatedField<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_ObjectReference>) {
283        self.children = v;
284    }
285
286    // Mutable pointer to the field.
287    pub fn mut_children(&mut self) -> &mut ::protobuf::RepeatedField<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_ObjectReference> {
288        &mut self.children
289    }
290
291    // Take field
292    pub fn take_children(&mut self) -> ::protobuf::RepeatedField<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_ObjectReference> {
293        ::std::mem::replace(&mut self.children, ::protobuf::RepeatedField::new())
294    }
295
296    // repeated .tensorflow.TrackableObjectGraph.TrackableObject.SlotVariableReference slot_variables = 3;
297
298
299    pub fn get_slot_variables(&self) -> &[super::trackable_object_graph::TrackableObjectGraph_TrackableObject_SlotVariableReference] {
300        &self.slot_variables
301    }
302    pub fn clear_slot_variables(&mut self) {
303        self.slot_variables.clear();
304    }
305
306    // Param is passed by value, moved
307    pub fn set_slot_variables(&mut self, v: ::protobuf::RepeatedField<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_SlotVariableReference>) {
308        self.slot_variables = v;
309    }
310
311    // Mutable pointer to the field.
312    pub fn mut_slot_variables(&mut self) -> &mut ::protobuf::RepeatedField<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_SlotVariableReference> {
313        &mut self.slot_variables
314    }
315
316    // Take field
317    pub fn take_slot_variables(&mut self) -> ::protobuf::RepeatedField<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_SlotVariableReference> {
318        ::std::mem::replace(&mut self.slot_variables, ::protobuf::RepeatedField::new())
319    }
320
321    // .tensorflow.SavedUserObject user_object = 4;
322
323
324    pub fn get_user_object(&self) -> &SavedUserObject {
325        match self.kind {
326            ::std::option::Option::Some(SavedObject_oneof_kind::user_object(ref v)) => v,
327            _ => SavedUserObject::default_instance(),
328        }
329    }
330    pub fn clear_user_object(&mut self) {
331        self.kind = ::std::option::Option::None;
332    }
333
334    pub fn has_user_object(&self) -> bool {
335        match self.kind {
336            ::std::option::Option::Some(SavedObject_oneof_kind::user_object(..)) => true,
337            _ => false,
338        }
339    }
340
341    // Param is passed by value, moved
342    pub fn set_user_object(&mut self, v: SavedUserObject) {
343        self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::user_object(v))
344    }
345
346    // Mutable pointer to the field.
347    pub fn mut_user_object(&mut self) -> &mut SavedUserObject {
348        if let ::std::option::Option::Some(SavedObject_oneof_kind::user_object(_)) = self.kind {
349        } else {
350            self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::user_object(SavedUserObject::new()));
351        }
352        match self.kind {
353            ::std::option::Option::Some(SavedObject_oneof_kind::user_object(ref mut v)) => v,
354            _ => panic!(),
355        }
356    }
357
358    // Take field
359    pub fn take_user_object(&mut self) -> SavedUserObject {
360        if self.has_user_object() {
361            match self.kind.take() {
362                ::std::option::Option::Some(SavedObject_oneof_kind::user_object(v)) => v,
363                _ => panic!(),
364            }
365        } else {
366            SavedUserObject::new()
367        }
368    }
369
370    // .tensorflow.SavedAsset asset = 5;
371
372
373    pub fn get_asset(&self) -> &SavedAsset {
374        match self.kind {
375            ::std::option::Option::Some(SavedObject_oneof_kind::asset(ref v)) => v,
376            _ => SavedAsset::default_instance(),
377        }
378    }
379    pub fn clear_asset(&mut self) {
380        self.kind = ::std::option::Option::None;
381    }
382
383    pub fn has_asset(&self) -> bool {
384        match self.kind {
385            ::std::option::Option::Some(SavedObject_oneof_kind::asset(..)) => true,
386            _ => false,
387        }
388    }
389
390    // Param is passed by value, moved
391    pub fn set_asset(&mut self, v: SavedAsset) {
392        self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::asset(v))
393    }
394
395    // Mutable pointer to the field.
396    pub fn mut_asset(&mut self) -> &mut SavedAsset {
397        if let ::std::option::Option::Some(SavedObject_oneof_kind::asset(_)) = self.kind {
398        } else {
399            self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::asset(SavedAsset::new()));
400        }
401        match self.kind {
402            ::std::option::Option::Some(SavedObject_oneof_kind::asset(ref mut v)) => v,
403            _ => panic!(),
404        }
405    }
406
407    // Take field
408    pub fn take_asset(&mut self) -> SavedAsset {
409        if self.has_asset() {
410            match self.kind.take() {
411                ::std::option::Option::Some(SavedObject_oneof_kind::asset(v)) => v,
412                _ => panic!(),
413            }
414        } else {
415            SavedAsset::new()
416        }
417    }
418
419    // .tensorflow.SavedFunction function = 6;
420
421
422    pub fn get_function(&self) -> &SavedFunction {
423        match self.kind {
424            ::std::option::Option::Some(SavedObject_oneof_kind::function(ref v)) => v,
425            _ => SavedFunction::default_instance(),
426        }
427    }
428    pub fn clear_function(&mut self) {
429        self.kind = ::std::option::Option::None;
430    }
431
432    pub fn has_function(&self) -> bool {
433        match self.kind {
434            ::std::option::Option::Some(SavedObject_oneof_kind::function(..)) => true,
435            _ => false,
436        }
437    }
438
439    // Param is passed by value, moved
440    pub fn set_function(&mut self, v: SavedFunction) {
441        self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::function(v))
442    }
443
444    // Mutable pointer to the field.
445    pub fn mut_function(&mut self) -> &mut SavedFunction {
446        if let ::std::option::Option::Some(SavedObject_oneof_kind::function(_)) = self.kind {
447        } else {
448            self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::function(SavedFunction::new()));
449        }
450        match self.kind {
451            ::std::option::Option::Some(SavedObject_oneof_kind::function(ref mut v)) => v,
452            _ => panic!(),
453        }
454    }
455
456    // Take field
457    pub fn take_function(&mut self) -> SavedFunction {
458        if self.has_function() {
459            match self.kind.take() {
460                ::std::option::Option::Some(SavedObject_oneof_kind::function(v)) => v,
461                _ => panic!(),
462            }
463        } else {
464            SavedFunction::new()
465        }
466    }
467
468    // .tensorflow.SavedVariable variable = 7;
469
470
471    pub fn get_variable(&self) -> &SavedVariable {
472        match self.kind {
473            ::std::option::Option::Some(SavedObject_oneof_kind::variable(ref v)) => v,
474            _ => SavedVariable::default_instance(),
475        }
476    }
477    pub fn clear_variable(&mut self) {
478        self.kind = ::std::option::Option::None;
479    }
480
481    pub fn has_variable(&self) -> bool {
482        match self.kind {
483            ::std::option::Option::Some(SavedObject_oneof_kind::variable(..)) => true,
484            _ => false,
485        }
486    }
487
488    // Param is passed by value, moved
489    pub fn set_variable(&mut self, v: SavedVariable) {
490        self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::variable(v))
491    }
492
493    // Mutable pointer to the field.
494    pub fn mut_variable(&mut self) -> &mut SavedVariable {
495        if let ::std::option::Option::Some(SavedObject_oneof_kind::variable(_)) = self.kind {
496        } else {
497            self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::variable(SavedVariable::new()));
498        }
499        match self.kind {
500            ::std::option::Option::Some(SavedObject_oneof_kind::variable(ref mut v)) => v,
501            _ => panic!(),
502        }
503    }
504
505    // Take field
506    pub fn take_variable(&mut self) -> SavedVariable {
507        if self.has_variable() {
508            match self.kind.take() {
509                ::std::option::Option::Some(SavedObject_oneof_kind::variable(v)) => v,
510                _ => panic!(),
511            }
512        } else {
513            SavedVariable::new()
514        }
515    }
516
517    // .tensorflow.SavedBareConcreteFunction bare_concrete_function = 8;
518
519
520    pub fn get_bare_concrete_function(&self) -> &SavedBareConcreteFunction {
521        match self.kind {
522            ::std::option::Option::Some(SavedObject_oneof_kind::bare_concrete_function(ref v)) => v,
523            _ => SavedBareConcreteFunction::default_instance(),
524        }
525    }
526    pub fn clear_bare_concrete_function(&mut self) {
527        self.kind = ::std::option::Option::None;
528    }
529
530    pub fn has_bare_concrete_function(&self) -> bool {
531        match self.kind {
532            ::std::option::Option::Some(SavedObject_oneof_kind::bare_concrete_function(..)) => true,
533            _ => false,
534        }
535    }
536
537    // Param is passed by value, moved
538    pub fn set_bare_concrete_function(&mut self, v: SavedBareConcreteFunction) {
539        self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::bare_concrete_function(v))
540    }
541
542    // Mutable pointer to the field.
543    pub fn mut_bare_concrete_function(&mut self) -> &mut SavedBareConcreteFunction {
544        if let ::std::option::Option::Some(SavedObject_oneof_kind::bare_concrete_function(_)) = self.kind {
545        } else {
546            self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::bare_concrete_function(SavedBareConcreteFunction::new()));
547        }
548        match self.kind {
549            ::std::option::Option::Some(SavedObject_oneof_kind::bare_concrete_function(ref mut v)) => v,
550            _ => panic!(),
551        }
552    }
553
554    // Take field
555    pub fn take_bare_concrete_function(&mut self) -> SavedBareConcreteFunction {
556        if self.has_bare_concrete_function() {
557            match self.kind.take() {
558                ::std::option::Option::Some(SavedObject_oneof_kind::bare_concrete_function(v)) => v,
559                _ => panic!(),
560            }
561        } else {
562            SavedBareConcreteFunction::new()
563        }
564    }
565
566    // .tensorflow.SavedConstant constant = 9;
567
568
569    pub fn get_constant(&self) -> &SavedConstant {
570        match self.kind {
571            ::std::option::Option::Some(SavedObject_oneof_kind::constant(ref v)) => v,
572            _ => SavedConstant::default_instance(),
573        }
574    }
575    pub fn clear_constant(&mut self) {
576        self.kind = ::std::option::Option::None;
577    }
578
579    pub fn has_constant(&self) -> bool {
580        match self.kind {
581            ::std::option::Option::Some(SavedObject_oneof_kind::constant(..)) => true,
582            _ => false,
583        }
584    }
585
586    // Param is passed by value, moved
587    pub fn set_constant(&mut self, v: SavedConstant) {
588        self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::constant(v))
589    }
590
591    // Mutable pointer to the field.
592    pub fn mut_constant(&mut self) -> &mut SavedConstant {
593        if let ::std::option::Option::Some(SavedObject_oneof_kind::constant(_)) = self.kind {
594        } else {
595            self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::constant(SavedConstant::new()));
596        }
597        match self.kind {
598            ::std::option::Option::Some(SavedObject_oneof_kind::constant(ref mut v)) => v,
599            _ => panic!(),
600        }
601    }
602
603    // Take field
604    pub fn take_constant(&mut self) -> SavedConstant {
605        if self.has_constant() {
606            match self.kind.take() {
607                ::std::option::Option::Some(SavedObject_oneof_kind::constant(v)) => v,
608                _ => panic!(),
609            }
610        } else {
611            SavedConstant::new()
612        }
613    }
614
615    // .tensorflow.SavedResource resource = 10;
616
617
618    pub fn get_resource(&self) -> &SavedResource {
619        match self.kind {
620            ::std::option::Option::Some(SavedObject_oneof_kind::resource(ref v)) => v,
621            _ => SavedResource::default_instance(),
622        }
623    }
624    pub fn clear_resource(&mut self) {
625        self.kind = ::std::option::Option::None;
626    }
627
628    pub fn has_resource(&self) -> bool {
629        match self.kind {
630            ::std::option::Option::Some(SavedObject_oneof_kind::resource(..)) => true,
631            _ => false,
632        }
633    }
634
635    // Param is passed by value, moved
636    pub fn set_resource(&mut self, v: SavedResource) {
637        self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::resource(v))
638    }
639
640    // Mutable pointer to the field.
641    pub fn mut_resource(&mut self) -> &mut SavedResource {
642        if let ::std::option::Option::Some(SavedObject_oneof_kind::resource(_)) = self.kind {
643        } else {
644            self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::resource(SavedResource::new()));
645        }
646        match self.kind {
647            ::std::option::Option::Some(SavedObject_oneof_kind::resource(ref mut v)) => v,
648            _ => panic!(),
649        }
650    }
651
652    // Take field
653    pub fn take_resource(&mut self) -> SavedResource {
654        if self.has_resource() {
655            match self.kind.take() {
656                ::std::option::Option::Some(SavedObject_oneof_kind::resource(v)) => v,
657                _ => panic!(),
658            }
659        } else {
660            SavedResource::new()
661        }
662    }
663
664    // repeated .tensorflow.SavedObject.SaveableObjectsEntry saveable_objects = 11;
665
666
667    pub fn get_saveable_objects(&self) -> &::std::collections::HashMap<::std::string::String, SaveableObject> {
668        &self.saveable_objects
669    }
670    pub fn clear_saveable_objects(&mut self) {
671        self.saveable_objects.clear();
672    }
673
674    // Param is passed by value, moved
675    pub fn set_saveable_objects(&mut self, v: ::std::collections::HashMap<::std::string::String, SaveableObject>) {
676        self.saveable_objects = v;
677    }
678
679    // Mutable pointer to the field.
680    pub fn mut_saveable_objects(&mut self) -> &mut ::std::collections::HashMap<::std::string::String, SaveableObject> {
681        &mut self.saveable_objects
682    }
683
684    // Take field
685    pub fn take_saveable_objects(&mut self) -> ::std::collections::HashMap<::std::string::String, SaveableObject> {
686        ::std::mem::replace(&mut self.saveable_objects, ::std::collections::HashMap::new())
687    }
688}
689
690impl ::protobuf::Message for SavedObject {
691    fn is_initialized(&self) -> bool {
692        for v in &self.children {
693            if !v.is_initialized() {
694                return false;
695            }
696        };
697        for v in &self.slot_variables {
698            if !v.is_initialized() {
699                return false;
700            }
701        };
702        if let Some(SavedObject_oneof_kind::user_object(ref v)) = self.kind {
703            if !v.is_initialized() {
704                return false;
705            }
706        }
707        if let Some(SavedObject_oneof_kind::asset(ref v)) = self.kind {
708            if !v.is_initialized() {
709                return false;
710            }
711        }
712        if let Some(SavedObject_oneof_kind::function(ref v)) = self.kind {
713            if !v.is_initialized() {
714                return false;
715            }
716        }
717        if let Some(SavedObject_oneof_kind::variable(ref v)) = self.kind {
718            if !v.is_initialized() {
719                return false;
720            }
721        }
722        if let Some(SavedObject_oneof_kind::bare_concrete_function(ref v)) = self.kind {
723            if !v.is_initialized() {
724                return false;
725            }
726        }
727        if let Some(SavedObject_oneof_kind::constant(ref v)) = self.kind {
728            if !v.is_initialized() {
729                return false;
730            }
731        }
732        if let Some(SavedObject_oneof_kind::resource(ref v)) = self.kind {
733            if !v.is_initialized() {
734                return false;
735            }
736        }
737        true
738    }
739
740    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
741        while !is.eof()? {
742            let (field_number, wire_type) = is.read_tag_unpack()?;
743            match field_number {
744                1 => {
745                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.children)?;
746                },
747                3 => {
748                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.slot_variables)?;
749                },
750                4 => {
751                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
752                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
753                    }
754                    self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::user_object(is.read_message()?));
755                },
756                5 => {
757                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
758                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
759                    }
760                    self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::asset(is.read_message()?));
761                },
762                6 => {
763                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
764                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
765                    }
766                    self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::function(is.read_message()?));
767                },
768                7 => {
769                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
770                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
771                    }
772                    self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::variable(is.read_message()?));
773                },
774                8 => {
775                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
776                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
777                    }
778                    self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::bare_concrete_function(is.read_message()?));
779                },
780                9 => {
781                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
782                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
783                    }
784                    self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::constant(is.read_message()?));
785                },
786                10 => {
787                    if wire_type != ::protobuf::wire_format::WireTypeLengthDelimited {
788                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
789                    }
790                    self.kind = ::std::option::Option::Some(SavedObject_oneof_kind::resource(is.read_message()?));
791                },
792                11 => {
793                    ::protobuf::rt::read_map_into::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SaveableObject>>(wire_type, is, &mut self.saveable_objects)?;
794                },
795                _ => {
796                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
797                },
798            };
799        }
800        ::std::result::Result::Ok(())
801    }
802
803    // Compute sizes of nested messages
804    #[allow(unused_variables)]
805    fn compute_size(&self) -> u32 {
806        let mut my_size = 0;
807        for value in &self.children {
808            let len = value.compute_size();
809            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
810        };
811        for value in &self.slot_variables {
812            let len = value.compute_size();
813            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
814        };
815        my_size += ::protobuf::rt::compute_map_size::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SaveableObject>>(11, &self.saveable_objects);
816        if let ::std::option::Option::Some(ref v) = self.kind {
817            match v {
818                &SavedObject_oneof_kind::user_object(ref v) => {
819                    let len = v.compute_size();
820                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
821                },
822                &SavedObject_oneof_kind::asset(ref v) => {
823                    let len = v.compute_size();
824                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
825                },
826                &SavedObject_oneof_kind::function(ref v) => {
827                    let len = v.compute_size();
828                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
829                },
830                &SavedObject_oneof_kind::variable(ref v) => {
831                    let len = v.compute_size();
832                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
833                },
834                &SavedObject_oneof_kind::bare_concrete_function(ref v) => {
835                    let len = v.compute_size();
836                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
837                },
838                &SavedObject_oneof_kind::constant(ref v) => {
839                    let len = v.compute_size();
840                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
841                },
842                &SavedObject_oneof_kind::resource(ref v) => {
843                    let len = v.compute_size();
844                    my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
845                },
846            };
847        }
848        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
849        self.cached_size.set(my_size);
850        my_size
851    }
852
853    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
854        for v in &self.children {
855            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
856            os.write_raw_varint32(v.get_cached_size())?;
857            v.write_to_with_cached_sizes(os)?;
858        };
859        for v in &self.slot_variables {
860            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
861            os.write_raw_varint32(v.get_cached_size())?;
862            v.write_to_with_cached_sizes(os)?;
863        };
864        ::protobuf::rt::write_map_with_cached_sizes::<::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SaveableObject>>(11, &self.saveable_objects, os)?;
865        if let ::std::option::Option::Some(ref v) = self.kind {
866            match v {
867                &SavedObject_oneof_kind::user_object(ref v) => {
868                    os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
869                    os.write_raw_varint32(v.get_cached_size())?;
870                    v.write_to_with_cached_sizes(os)?;
871                },
872                &SavedObject_oneof_kind::asset(ref v) => {
873                    os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
874                    os.write_raw_varint32(v.get_cached_size())?;
875                    v.write_to_with_cached_sizes(os)?;
876                },
877                &SavedObject_oneof_kind::function(ref v) => {
878                    os.write_tag(6, ::protobuf::wire_format::WireTypeLengthDelimited)?;
879                    os.write_raw_varint32(v.get_cached_size())?;
880                    v.write_to_with_cached_sizes(os)?;
881                },
882                &SavedObject_oneof_kind::variable(ref v) => {
883                    os.write_tag(7, ::protobuf::wire_format::WireTypeLengthDelimited)?;
884                    os.write_raw_varint32(v.get_cached_size())?;
885                    v.write_to_with_cached_sizes(os)?;
886                },
887                &SavedObject_oneof_kind::bare_concrete_function(ref v) => {
888                    os.write_tag(8, ::protobuf::wire_format::WireTypeLengthDelimited)?;
889                    os.write_raw_varint32(v.get_cached_size())?;
890                    v.write_to_with_cached_sizes(os)?;
891                },
892                &SavedObject_oneof_kind::constant(ref v) => {
893                    os.write_tag(9, ::protobuf::wire_format::WireTypeLengthDelimited)?;
894                    os.write_raw_varint32(v.get_cached_size())?;
895                    v.write_to_with_cached_sizes(os)?;
896                },
897                &SavedObject_oneof_kind::resource(ref v) => {
898                    os.write_tag(10, ::protobuf::wire_format::WireTypeLengthDelimited)?;
899                    os.write_raw_varint32(v.get_cached_size())?;
900                    v.write_to_with_cached_sizes(os)?;
901                },
902            };
903        }
904        os.write_unknown_fields(self.get_unknown_fields())?;
905        ::std::result::Result::Ok(())
906    }
907
908    fn get_cached_size(&self) -> u32 {
909        self.cached_size.get()
910    }
911
912    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
913        &self.unknown_fields
914    }
915
916    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
917        &mut self.unknown_fields
918    }
919
920    fn as_any(&self) -> &dyn (::std::any::Any) {
921        self as &dyn (::std::any::Any)
922    }
923    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
924        self as &mut dyn (::std::any::Any)
925    }
926    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
927        self
928    }
929
930    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
931        Self::descriptor_static()
932    }
933
934    fn new() -> SavedObject {
935        SavedObject::new()
936    }
937
938    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
939        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
940        unsafe {
941            descriptor.get(|| {
942                let mut fields = ::std::vec::Vec::new();
943                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_ObjectReference>>(
944                    "children",
945                    |m: &SavedObject| { &m.children },
946                    |m: &mut SavedObject| { &mut m.children },
947                ));
948                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::trackable_object_graph::TrackableObjectGraph_TrackableObject_SlotVariableReference>>(
949                    "slot_variables",
950                    |m: &SavedObject| { &m.slot_variables },
951                    |m: &mut SavedObject| { &mut m.slot_variables },
952                ));
953                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SavedUserObject>(
954                    "user_object",
955                    SavedObject::has_user_object,
956                    SavedObject::get_user_object,
957                ));
958                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SavedAsset>(
959                    "asset",
960                    SavedObject::has_asset,
961                    SavedObject::get_asset,
962                ));
963                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SavedFunction>(
964                    "function",
965                    SavedObject::has_function,
966                    SavedObject::get_function,
967                ));
968                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SavedVariable>(
969                    "variable",
970                    SavedObject::has_variable,
971                    SavedObject::get_variable,
972                ));
973                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SavedBareConcreteFunction>(
974                    "bare_concrete_function",
975                    SavedObject::has_bare_concrete_function,
976                    SavedObject::get_bare_concrete_function,
977                ));
978                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SavedConstant>(
979                    "constant",
980                    SavedObject::has_constant,
981                    SavedObject::get_constant,
982                ));
983                fields.push(::protobuf::reflect::accessor::make_singular_message_accessor::<_, SavedResource>(
984                    "resource",
985                    SavedObject::has_resource,
986                    SavedObject::get_resource,
987                ));
988                fields.push(::protobuf::reflect::accessor::make_map_accessor::<_, ::protobuf::types::ProtobufTypeString, ::protobuf::types::ProtobufTypeMessage<SaveableObject>>(
989                    "saveable_objects",
990                    |m: &SavedObject| { &m.saveable_objects },
991                    |m: &mut SavedObject| { &mut m.saveable_objects },
992                ));
993                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedObject>(
994                    "SavedObject",
995                    fields,
996                    file_descriptor_proto()
997                )
998            })
999        }
1000    }
1001
1002    fn default_instance() -> &'static SavedObject {
1003        static mut instance: ::protobuf::lazy::Lazy<SavedObject> = ::protobuf::lazy::Lazy::INIT;
1004        unsafe {
1005            instance.get(SavedObject::new)
1006        }
1007    }
1008}
1009
1010impl ::protobuf::Clear for SavedObject {
1011    fn clear(&mut self) {
1012        self.children.clear();
1013        self.slot_variables.clear();
1014        self.kind = ::std::option::Option::None;
1015        self.kind = ::std::option::Option::None;
1016        self.kind = ::std::option::Option::None;
1017        self.kind = ::std::option::Option::None;
1018        self.kind = ::std::option::Option::None;
1019        self.kind = ::std::option::Option::None;
1020        self.kind = ::std::option::Option::None;
1021        self.saveable_objects.clear();
1022        self.unknown_fields.clear();
1023    }
1024}
1025
1026impl ::std::fmt::Debug for SavedObject {
1027    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1028        ::protobuf::text_format::fmt(self, f)
1029    }
1030}
1031
1032impl ::protobuf::reflect::ProtobufValue for SavedObject {
1033    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1034        ::protobuf::reflect::ReflectValueRef::Message(self)
1035    }
1036}
1037
1038#[derive(PartialEq,Clone,Default)]
1039pub struct SavedUserObject {
1040    // message fields
1041    pub identifier: ::std::string::String,
1042    pub version: ::protobuf::SingularPtrField<super::versions::VersionDef>,
1043    pub metadata: ::std::string::String,
1044    // special fields
1045    pub unknown_fields: ::protobuf::UnknownFields,
1046    pub cached_size: ::protobuf::CachedSize,
1047}
1048
1049impl<'a> ::std::default::Default for &'a SavedUserObject {
1050    fn default() -> &'a SavedUserObject {
1051        <SavedUserObject as ::protobuf::Message>::default_instance()
1052    }
1053}
1054
1055impl SavedUserObject {
1056    pub fn new() -> SavedUserObject {
1057        ::std::default::Default::default()
1058    }
1059
1060    // string identifier = 1;
1061
1062
1063    pub fn get_identifier(&self) -> &str {
1064        &self.identifier
1065    }
1066    pub fn clear_identifier(&mut self) {
1067        self.identifier.clear();
1068    }
1069
1070    // Param is passed by value, moved
1071    pub fn set_identifier(&mut self, v: ::std::string::String) {
1072        self.identifier = v;
1073    }
1074
1075    // Mutable pointer to the field.
1076    // If field is not initialized, it is initialized with default value first.
1077    pub fn mut_identifier(&mut self) -> &mut ::std::string::String {
1078        &mut self.identifier
1079    }
1080
1081    // Take field
1082    pub fn take_identifier(&mut self) -> ::std::string::String {
1083        ::std::mem::replace(&mut self.identifier, ::std::string::String::new())
1084    }
1085
1086    // .tensorflow.VersionDef version = 2;
1087
1088
1089    pub fn get_version(&self) -> &super::versions::VersionDef {
1090        self.version.as_ref().unwrap_or_else(|| super::versions::VersionDef::default_instance())
1091    }
1092    pub fn clear_version(&mut self) {
1093        self.version.clear();
1094    }
1095
1096    pub fn has_version(&self) -> bool {
1097        self.version.is_some()
1098    }
1099
1100    // Param is passed by value, moved
1101    pub fn set_version(&mut self, v: super::versions::VersionDef) {
1102        self.version = ::protobuf::SingularPtrField::some(v);
1103    }
1104
1105    // Mutable pointer to the field.
1106    // If field is not initialized, it is initialized with default value first.
1107    pub fn mut_version(&mut self) -> &mut super::versions::VersionDef {
1108        if self.version.is_none() {
1109            self.version.set_default();
1110        }
1111        self.version.as_mut().unwrap()
1112    }
1113
1114    // Take field
1115    pub fn take_version(&mut self) -> super::versions::VersionDef {
1116        self.version.take().unwrap_or_else(|| super::versions::VersionDef::new())
1117    }
1118
1119    // string metadata = 3;
1120
1121
1122    pub fn get_metadata(&self) -> &str {
1123        &self.metadata
1124    }
1125    pub fn clear_metadata(&mut self) {
1126        self.metadata.clear();
1127    }
1128
1129    // Param is passed by value, moved
1130    pub fn set_metadata(&mut self, v: ::std::string::String) {
1131        self.metadata = v;
1132    }
1133
1134    // Mutable pointer to the field.
1135    // If field is not initialized, it is initialized with default value first.
1136    pub fn mut_metadata(&mut self) -> &mut ::std::string::String {
1137        &mut self.metadata
1138    }
1139
1140    // Take field
1141    pub fn take_metadata(&mut self) -> ::std::string::String {
1142        ::std::mem::replace(&mut self.metadata, ::std::string::String::new())
1143    }
1144}
1145
1146impl ::protobuf::Message for SavedUserObject {
1147    fn is_initialized(&self) -> bool {
1148        for v in &self.version {
1149            if !v.is_initialized() {
1150                return false;
1151            }
1152        };
1153        true
1154    }
1155
1156    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1157        while !is.eof()? {
1158            let (field_number, wire_type) = is.read_tag_unpack()?;
1159            match field_number {
1160                1 => {
1161                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.identifier)?;
1162                },
1163                2 => {
1164                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.version)?;
1165                },
1166                3 => {
1167                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.metadata)?;
1168                },
1169                _ => {
1170                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1171                },
1172            };
1173        }
1174        ::std::result::Result::Ok(())
1175    }
1176
1177    // Compute sizes of nested messages
1178    #[allow(unused_variables)]
1179    fn compute_size(&self) -> u32 {
1180        let mut my_size = 0;
1181        if !self.identifier.is_empty() {
1182            my_size += ::protobuf::rt::string_size(1, &self.identifier);
1183        }
1184        if let Some(ref v) = self.version.as_ref() {
1185            let len = v.compute_size();
1186            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1187        }
1188        if !self.metadata.is_empty() {
1189            my_size += ::protobuf::rt::string_size(3, &self.metadata);
1190        }
1191        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1192        self.cached_size.set(my_size);
1193        my_size
1194    }
1195
1196    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1197        if !self.identifier.is_empty() {
1198            os.write_string(1, &self.identifier)?;
1199        }
1200        if let Some(ref v) = self.version.as_ref() {
1201            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1202            os.write_raw_varint32(v.get_cached_size())?;
1203            v.write_to_with_cached_sizes(os)?;
1204        }
1205        if !self.metadata.is_empty() {
1206            os.write_string(3, &self.metadata)?;
1207        }
1208        os.write_unknown_fields(self.get_unknown_fields())?;
1209        ::std::result::Result::Ok(())
1210    }
1211
1212    fn get_cached_size(&self) -> u32 {
1213        self.cached_size.get()
1214    }
1215
1216    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1217        &self.unknown_fields
1218    }
1219
1220    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1221        &mut self.unknown_fields
1222    }
1223
1224    fn as_any(&self) -> &dyn (::std::any::Any) {
1225        self as &dyn (::std::any::Any)
1226    }
1227    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1228        self as &mut dyn (::std::any::Any)
1229    }
1230    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1231        self
1232    }
1233
1234    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1235        Self::descriptor_static()
1236    }
1237
1238    fn new() -> SavedUserObject {
1239        SavedUserObject::new()
1240    }
1241
1242    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1243        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1244        unsafe {
1245            descriptor.get(|| {
1246                let mut fields = ::std::vec::Vec::new();
1247                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1248                    "identifier",
1249                    |m: &SavedUserObject| { &m.identifier },
1250                    |m: &mut SavedUserObject| { &mut m.identifier },
1251                ));
1252                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::versions::VersionDef>>(
1253                    "version",
1254                    |m: &SavedUserObject| { &m.version },
1255                    |m: &mut SavedUserObject| { &mut m.version },
1256                ));
1257                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1258                    "metadata",
1259                    |m: &SavedUserObject| { &m.metadata },
1260                    |m: &mut SavedUserObject| { &mut m.metadata },
1261                ));
1262                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedUserObject>(
1263                    "SavedUserObject",
1264                    fields,
1265                    file_descriptor_proto()
1266                )
1267            })
1268        }
1269    }
1270
1271    fn default_instance() -> &'static SavedUserObject {
1272        static mut instance: ::protobuf::lazy::Lazy<SavedUserObject> = ::protobuf::lazy::Lazy::INIT;
1273        unsafe {
1274            instance.get(SavedUserObject::new)
1275        }
1276    }
1277}
1278
1279impl ::protobuf::Clear for SavedUserObject {
1280    fn clear(&mut self) {
1281        self.identifier.clear();
1282        self.version.clear();
1283        self.metadata.clear();
1284        self.unknown_fields.clear();
1285    }
1286}
1287
1288impl ::std::fmt::Debug for SavedUserObject {
1289    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1290        ::protobuf::text_format::fmt(self, f)
1291    }
1292}
1293
1294impl ::protobuf::reflect::ProtobufValue for SavedUserObject {
1295    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1296        ::protobuf::reflect::ReflectValueRef::Message(self)
1297    }
1298}
1299
1300#[derive(PartialEq,Clone,Default)]
1301pub struct SavedAsset {
1302    // message fields
1303    pub asset_file_def_index: i32,
1304    // special fields
1305    pub unknown_fields: ::protobuf::UnknownFields,
1306    pub cached_size: ::protobuf::CachedSize,
1307}
1308
1309impl<'a> ::std::default::Default for &'a SavedAsset {
1310    fn default() -> &'a SavedAsset {
1311        <SavedAsset as ::protobuf::Message>::default_instance()
1312    }
1313}
1314
1315impl SavedAsset {
1316    pub fn new() -> SavedAsset {
1317        ::std::default::Default::default()
1318    }
1319
1320    // int32 asset_file_def_index = 1;
1321
1322
1323    pub fn get_asset_file_def_index(&self) -> i32 {
1324        self.asset_file_def_index
1325    }
1326    pub fn clear_asset_file_def_index(&mut self) {
1327        self.asset_file_def_index = 0;
1328    }
1329
1330    // Param is passed by value, moved
1331    pub fn set_asset_file_def_index(&mut self, v: i32) {
1332        self.asset_file_def_index = v;
1333    }
1334}
1335
1336impl ::protobuf::Message for SavedAsset {
1337    fn is_initialized(&self) -> bool {
1338        true
1339    }
1340
1341    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1342        while !is.eof()? {
1343            let (field_number, wire_type) = is.read_tag_unpack()?;
1344            match field_number {
1345                1 => {
1346                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1347                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1348                    }
1349                    let tmp = is.read_int32()?;
1350                    self.asset_file_def_index = tmp;
1351                },
1352                _ => {
1353                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1354                },
1355            };
1356        }
1357        ::std::result::Result::Ok(())
1358    }
1359
1360    // Compute sizes of nested messages
1361    #[allow(unused_variables)]
1362    fn compute_size(&self) -> u32 {
1363        let mut my_size = 0;
1364        if self.asset_file_def_index != 0 {
1365            my_size += ::protobuf::rt::value_size(1, self.asset_file_def_index, ::protobuf::wire_format::WireTypeVarint);
1366        }
1367        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1368        self.cached_size.set(my_size);
1369        my_size
1370    }
1371
1372    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1373        if self.asset_file_def_index != 0 {
1374            os.write_int32(1, self.asset_file_def_index)?;
1375        }
1376        os.write_unknown_fields(self.get_unknown_fields())?;
1377        ::std::result::Result::Ok(())
1378    }
1379
1380    fn get_cached_size(&self) -> u32 {
1381        self.cached_size.get()
1382    }
1383
1384    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1385        &self.unknown_fields
1386    }
1387
1388    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1389        &mut self.unknown_fields
1390    }
1391
1392    fn as_any(&self) -> &dyn (::std::any::Any) {
1393        self as &dyn (::std::any::Any)
1394    }
1395    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1396        self as &mut dyn (::std::any::Any)
1397    }
1398    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1399        self
1400    }
1401
1402    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1403        Self::descriptor_static()
1404    }
1405
1406    fn new() -> SavedAsset {
1407        SavedAsset::new()
1408    }
1409
1410    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1411        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1412        unsafe {
1413            descriptor.get(|| {
1414                let mut fields = ::std::vec::Vec::new();
1415                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1416                    "asset_file_def_index",
1417                    |m: &SavedAsset| { &m.asset_file_def_index },
1418                    |m: &mut SavedAsset| { &mut m.asset_file_def_index },
1419                ));
1420                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedAsset>(
1421                    "SavedAsset",
1422                    fields,
1423                    file_descriptor_proto()
1424                )
1425            })
1426        }
1427    }
1428
1429    fn default_instance() -> &'static SavedAsset {
1430        static mut instance: ::protobuf::lazy::Lazy<SavedAsset> = ::protobuf::lazy::Lazy::INIT;
1431        unsafe {
1432            instance.get(SavedAsset::new)
1433        }
1434    }
1435}
1436
1437impl ::protobuf::Clear for SavedAsset {
1438    fn clear(&mut self) {
1439        self.asset_file_def_index = 0;
1440        self.unknown_fields.clear();
1441    }
1442}
1443
1444impl ::std::fmt::Debug for SavedAsset {
1445    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1446        ::protobuf::text_format::fmt(self, f)
1447    }
1448}
1449
1450impl ::protobuf::reflect::ProtobufValue for SavedAsset {
1451    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1452        ::protobuf::reflect::ReflectValueRef::Message(self)
1453    }
1454}
1455
1456#[derive(PartialEq,Clone,Default)]
1457pub struct SavedFunction {
1458    // message fields
1459    pub concrete_functions: ::protobuf::RepeatedField<::std::string::String>,
1460    pub function_spec: ::protobuf::SingularPtrField<FunctionSpec>,
1461    // special fields
1462    pub unknown_fields: ::protobuf::UnknownFields,
1463    pub cached_size: ::protobuf::CachedSize,
1464}
1465
1466impl<'a> ::std::default::Default for &'a SavedFunction {
1467    fn default() -> &'a SavedFunction {
1468        <SavedFunction as ::protobuf::Message>::default_instance()
1469    }
1470}
1471
1472impl SavedFunction {
1473    pub fn new() -> SavedFunction {
1474        ::std::default::Default::default()
1475    }
1476
1477    // repeated string concrete_functions = 1;
1478
1479
1480    pub fn get_concrete_functions(&self) -> &[::std::string::String] {
1481        &self.concrete_functions
1482    }
1483    pub fn clear_concrete_functions(&mut self) {
1484        self.concrete_functions.clear();
1485    }
1486
1487    // Param is passed by value, moved
1488    pub fn set_concrete_functions(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
1489        self.concrete_functions = v;
1490    }
1491
1492    // Mutable pointer to the field.
1493    pub fn mut_concrete_functions(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
1494        &mut self.concrete_functions
1495    }
1496
1497    // Take field
1498    pub fn take_concrete_functions(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
1499        ::std::mem::replace(&mut self.concrete_functions, ::protobuf::RepeatedField::new())
1500    }
1501
1502    // .tensorflow.FunctionSpec function_spec = 2;
1503
1504
1505    pub fn get_function_spec(&self) -> &FunctionSpec {
1506        self.function_spec.as_ref().unwrap_or_else(|| FunctionSpec::default_instance())
1507    }
1508    pub fn clear_function_spec(&mut self) {
1509        self.function_spec.clear();
1510    }
1511
1512    pub fn has_function_spec(&self) -> bool {
1513        self.function_spec.is_some()
1514    }
1515
1516    // Param is passed by value, moved
1517    pub fn set_function_spec(&mut self, v: FunctionSpec) {
1518        self.function_spec = ::protobuf::SingularPtrField::some(v);
1519    }
1520
1521    // Mutable pointer to the field.
1522    // If field is not initialized, it is initialized with default value first.
1523    pub fn mut_function_spec(&mut self) -> &mut FunctionSpec {
1524        if self.function_spec.is_none() {
1525            self.function_spec.set_default();
1526        }
1527        self.function_spec.as_mut().unwrap()
1528    }
1529
1530    // Take field
1531    pub fn take_function_spec(&mut self) -> FunctionSpec {
1532        self.function_spec.take().unwrap_or_else(|| FunctionSpec::new())
1533    }
1534}
1535
1536impl ::protobuf::Message for SavedFunction {
1537    fn is_initialized(&self) -> bool {
1538        for v in &self.function_spec {
1539            if !v.is_initialized() {
1540                return false;
1541            }
1542        };
1543        true
1544    }
1545
1546    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1547        while !is.eof()? {
1548            let (field_number, wire_type) = is.read_tag_unpack()?;
1549            match field_number {
1550                1 => {
1551                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.concrete_functions)?;
1552                },
1553                2 => {
1554                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.function_spec)?;
1555                },
1556                _ => {
1557                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1558                },
1559            };
1560        }
1561        ::std::result::Result::Ok(())
1562    }
1563
1564    // Compute sizes of nested messages
1565    #[allow(unused_variables)]
1566    fn compute_size(&self) -> u32 {
1567        let mut my_size = 0;
1568        for value in &self.concrete_functions {
1569            my_size += ::protobuf::rt::string_size(1, &value);
1570        };
1571        if let Some(ref v) = self.function_spec.as_ref() {
1572            let len = v.compute_size();
1573            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1574        }
1575        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1576        self.cached_size.set(my_size);
1577        my_size
1578    }
1579
1580    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1581        for v in &self.concrete_functions {
1582            os.write_string(1, &v)?;
1583        };
1584        if let Some(ref v) = self.function_spec.as_ref() {
1585            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1586            os.write_raw_varint32(v.get_cached_size())?;
1587            v.write_to_with_cached_sizes(os)?;
1588        }
1589        os.write_unknown_fields(self.get_unknown_fields())?;
1590        ::std::result::Result::Ok(())
1591    }
1592
1593    fn get_cached_size(&self) -> u32 {
1594        self.cached_size.get()
1595    }
1596
1597    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1598        &self.unknown_fields
1599    }
1600
1601    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1602        &mut self.unknown_fields
1603    }
1604
1605    fn as_any(&self) -> &dyn (::std::any::Any) {
1606        self as &dyn (::std::any::Any)
1607    }
1608    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1609        self as &mut dyn (::std::any::Any)
1610    }
1611    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1612        self
1613    }
1614
1615    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1616        Self::descriptor_static()
1617    }
1618
1619    fn new() -> SavedFunction {
1620        SavedFunction::new()
1621    }
1622
1623    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1624        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1625        unsafe {
1626            descriptor.get(|| {
1627                let mut fields = ::std::vec::Vec::new();
1628                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1629                    "concrete_functions",
1630                    |m: &SavedFunction| { &m.concrete_functions },
1631                    |m: &mut SavedFunction| { &mut m.concrete_functions },
1632                ));
1633                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<FunctionSpec>>(
1634                    "function_spec",
1635                    |m: &SavedFunction| { &m.function_spec },
1636                    |m: &mut SavedFunction| { &mut m.function_spec },
1637                ));
1638                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedFunction>(
1639                    "SavedFunction",
1640                    fields,
1641                    file_descriptor_proto()
1642                )
1643            })
1644        }
1645    }
1646
1647    fn default_instance() -> &'static SavedFunction {
1648        static mut instance: ::protobuf::lazy::Lazy<SavedFunction> = ::protobuf::lazy::Lazy::INIT;
1649        unsafe {
1650            instance.get(SavedFunction::new)
1651        }
1652    }
1653}
1654
1655impl ::protobuf::Clear for SavedFunction {
1656    fn clear(&mut self) {
1657        self.concrete_functions.clear();
1658        self.function_spec.clear();
1659        self.unknown_fields.clear();
1660    }
1661}
1662
1663impl ::std::fmt::Debug for SavedFunction {
1664    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1665        ::protobuf::text_format::fmt(self, f)
1666    }
1667}
1668
1669impl ::protobuf::reflect::ProtobufValue for SavedFunction {
1670    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1671        ::protobuf::reflect::ReflectValueRef::Message(self)
1672    }
1673}
1674
1675#[derive(PartialEq,Clone,Default)]
1676pub struct SavedConcreteFunction {
1677    // message fields
1678    pub bound_inputs: ::std::vec::Vec<i32>,
1679    pub canonicalized_input_signature: ::protobuf::SingularPtrField<super::struct_pb::StructuredValue>,
1680    pub output_signature: ::protobuf::SingularPtrField<super::struct_pb::StructuredValue>,
1681    // special fields
1682    pub unknown_fields: ::protobuf::UnknownFields,
1683    pub cached_size: ::protobuf::CachedSize,
1684}
1685
1686impl<'a> ::std::default::Default for &'a SavedConcreteFunction {
1687    fn default() -> &'a SavedConcreteFunction {
1688        <SavedConcreteFunction as ::protobuf::Message>::default_instance()
1689    }
1690}
1691
1692impl SavedConcreteFunction {
1693    pub fn new() -> SavedConcreteFunction {
1694        ::std::default::Default::default()
1695    }
1696
1697    // repeated int32 bound_inputs = 2;
1698
1699
1700    pub fn get_bound_inputs(&self) -> &[i32] {
1701        &self.bound_inputs
1702    }
1703    pub fn clear_bound_inputs(&mut self) {
1704        self.bound_inputs.clear();
1705    }
1706
1707    // Param is passed by value, moved
1708    pub fn set_bound_inputs(&mut self, v: ::std::vec::Vec<i32>) {
1709        self.bound_inputs = v;
1710    }
1711
1712    // Mutable pointer to the field.
1713    pub fn mut_bound_inputs(&mut self) -> &mut ::std::vec::Vec<i32> {
1714        &mut self.bound_inputs
1715    }
1716
1717    // Take field
1718    pub fn take_bound_inputs(&mut self) -> ::std::vec::Vec<i32> {
1719        ::std::mem::replace(&mut self.bound_inputs, ::std::vec::Vec::new())
1720    }
1721
1722    // .tensorflow.StructuredValue canonicalized_input_signature = 3;
1723
1724
1725    pub fn get_canonicalized_input_signature(&self) -> &super::struct_pb::StructuredValue {
1726        self.canonicalized_input_signature.as_ref().unwrap_or_else(|| super::struct_pb::StructuredValue::default_instance())
1727    }
1728    pub fn clear_canonicalized_input_signature(&mut self) {
1729        self.canonicalized_input_signature.clear();
1730    }
1731
1732    pub fn has_canonicalized_input_signature(&self) -> bool {
1733        self.canonicalized_input_signature.is_some()
1734    }
1735
1736    // Param is passed by value, moved
1737    pub fn set_canonicalized_input_signature(&mut self, v: super::struct_pb::StructuredValue) {
1738        self.canonicalized_input_signature = ::protobuf::SingularPtrField::some(v);
1739    }
1740
1741    // Mutable pointer to the field.
1742    // If field is not initialized, it is initialized with default value first.
1743    pub fn mut_canonicalized_input_signature(&mut self) -> &mut super::struct_pb::StructuredValue {
1744        if self.canonicalized_input_signature.is_none() {
1745            self.canonicalized_input_signature.set_default();
1746        }
1747        self.canonicalized_input_signature.as_mut().unwrap()
1748    }
1749
1750    // Take field
1751    pub fn take_canonicalized_input_signature(&mut self) -> super::struct_pb::StructuredValue {
1752        self.canonicalized_input_signature.take().unwrap_or_else(|| super::struct_pb::StructuredValue::new())
1753    }
1754
1755    // .tensorflow.StructuredValue output_signature = 4;
1756
1757
1758    pub fn get_output_signature(&self) -> &super::struct_pb::StructuredValue {
1759        self.output_signature.as_ref().unwrap_or_else(|| super::struct_pb::StructuredValue::default_instance())
1760    }
1761    pub fn clear_output_signature(&mut self) {
1762        self.output_signature.clear();
1763    }
1764
1765    pub fn has_output_signature(&self) -> bool {
1766        self.output_signature.is_some()
1767    }
1768
1769    // Param is passed by value, moved
1770    pub fn set_output_signature(&mut self, v: super::struct_pb::StructuredValue) {
1771        self.output_signature = ::protobuf::SingularPtrField::some(v);
1772    }
1773
1774    // Mutable pointer to the field.
1775    // If field is not initialized, it is initialized with default value first.
1776    pub fn mut_output_signature(&mut self) -> &mut super::struct_pb::StructuredValue {
1777        if self.output_signature.is_none() {
1778            self.output_signature.set_default();
1779        }
1780        self.output_signature.as_mut().unwrap()
1781    }
1782
1783    // Take field
1784    pub fn take_output_signature(&mut self) -> super::struct_pb::StructuredValue {
1785        self.output_signature.take().unwrap_or_else(|| super::struct_pb::StructuredValue::new())
1786    }
1787}
1788
1789impl ::protobuf::Message for SavedConcreteFunction {
1790    fn is_initialized(&self) -> bool {
1791        for v in &self.canonicalized_input_signature {
1792            if !v.is_initialized() {
1793                return false;
1794            }
1795        };
1796        for v in &self.output_signature {
1797            if !v.is_initialized() {
1798                return false;
1799            }
1800        };
1801        true
1802    }
1803
1804    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1805        while !is.eof()? {
1806            let (field_number, wire_type) = is.read_tag_unpack()?;
1807            match field_number {
1808                2 => {
1809                    ::protobuf::rt::read_repeated_int32_into(wire_type, is, &mut self.bound_inputs)?;
1810                },
1811                3 => {
1812                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.canonicalized_input_signature)?;
1813                },
1814                4 => {
1815                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.output_signature)?;
1816                },
1817                _ => {
1818                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1819                },
1820            };
1821        }
1822        ::std::result::Result::Ok(())
1823    }
1824
1825    // Compute sizes of nested messages
1826    #[allow(unused_variables)]
1827    fn compute_size(&self) -> u32 {
1828        let mut my_size = 0;
1829        for value in &self.bound_inputs {
1830            my_size += ::protobuf::rt::value_size(2, *value, ::protobuf::wire_format::WireTypeVarint);
1831        };
1832        if let Some(ref v) = self.canonicalized_input_signature.as_ref() {
1833            let len = v.compute_size();
1834            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1835        }
1836        if let Some(ref v) = self.output_signature.as_ref() {
1837            let len = v.compute_size();
1838            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1839        }
1840        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1841        self.cached_size.set(my_size);
1842        my_size
1843    }
1844
1845    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1846        for v in &self.bound_inputs {
1847            os.write_int32(2, *v)?;
1848        };
1849        if let Some(ref v) = self.canonicalized_input_signature.as_ref() {
1850            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1851            os.write_raw_varint32(v.get_cached_size())?;
1852            v.write_to_with_cached_sizes(os)?;
1853        }
1854        if let Some(ref v) = self.output_signature.as_ref() {
1855            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1856            os.write_raw_varint32(v.get_cached_size())?;
1857            v.write_to_with_cached_sizes(os)?;
1858        }
1859        os.write_unknown_fields(self.get_unknown_fields())?;
1860        ::std::result::Result::Ok(())
1861    }
1862
1863    fn get_cached_size(&self) -> u32 {
1864        self.cached_size.get()
1865    }
1866
1867    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1868        &self.unknown_fields
1869    }
1870
1871    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1872        &mut self.unknown_fields
1873    }
1874
1875    fn as_any(&self) -> &dyn (::std::any::Any) {
1876        self as &dyn (::std::any::Any)
1877    }
1878    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1879        self as &mut dyn (::std::any::Any)
1880    }
1881    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1882        self
1883    }
1884
1885    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1886        Self::descriptor_static()
1887    }
1888
1889    fn new() -> SavedConcreteFunction {
1890        SavedConcreteFunction::new()
1891    }
1892
1893    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1894        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1895        unsafe {
1896            descriptor.get(|| {
1897                let mut fields = ::std::vec::Vec::new();
1898                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1899                    "bound_inputs",
1900                    |m: &SavedConcreteFunction| { &m.bound_inputs },
1901                    |m: &mut SavedConcreteFunction| { &mut m.bound_inputs },
1902                ));
1903                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::struct_pb::StructuredValue>>(
1904                    "canonicalized_input_signature",
1905                    |m: &SavedConcreteFunction| { &m.canonicalized_input_signature },
1906                    |m: &mut SavedConcreteFunction| { &mut m.canonicalized_input_signature },
1907                ));
1908                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::struct_pb::StructuredValue>>(
1909                    "output_signature",
1910                    |m: &SavedConcreteFunction| { &m.output_signature },
1911                    |m: &mut SavedConcreteFunction| { &mut m.output_signature },
1912                ));
1913                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedConcreteFunction>(
1914                    "SavedConcreteFunction",
1915                    fields,
1916                    file_descriptor_proto()
1917                )
1918            })
1919        }
1920    }
1921
1922    fn default_instance() -> &'static SavedConcreteFunction {
1923        static mut instance: ::protobuf::lazy::Lazy<SavedConcreteFunction> = ::protobuf::lazy::Lazy::INIT;
1924        unsafe {
1925            instance.get(SavedConcreteFunction::new)
1926        }
1927    }
1928}
1929
1930impl ::protobuf::Clear for SavedConcreteFunction {
1931    fn clear(&mut self) {
1932        self.bound_inputs.clear();
1933        self.canonicalized_input_signature.clear();
1934        self.output_signature.clear();
1935        self.unknown_fields.clear();
1936    }
1937}
1938
1939impl ::std::fmt::Debug for SavedConcreteFunction {
1940    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1941        ::protobuf::text_format::fmt(self, f)
1942    }
1943}
1944
1945impl ::protobuf::reflect::ProtobufValue for SavedConcreteFunction {
1946    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1947        ::protobuf::reflect::ReflectValueRef::Message(self)
1948    }
1949}
1950
1951#[derive(PartialEq,Clone,Default)]
1952pub struct SavedBareConcreteFunction {
1953    // message fields
1954    pub concrete_function_name: ::std::string::String,
1955    pub argument_keywords: ::protobuf::RepeatedField<::std::string::String>,
1956    pub allowed_positional_arguments: i64,
1957    // special fields
1958    pub unknown_fields: ::protobuf::UnknownFields,
1959    pub cached_size: ::protobuf::CachedSize,
1960}
1961
1962impl<'a> ::std::default::Default for &'a SavedBareConcreteFunction {
1963    fn default() -> &'a SavedBareConcreteFunction {
1964        <SavedBareConcreteFunction as ::protobuf::Message>::default_instance()
1965    }
1966}
1967
1968impl SavedBareConcreteFunction {
1969    pub fn new() -> SavedBareConcreteFunction {
1970        ::std::default::Default::default()
1971    }
1972
1973    // string concrete_function_name = 1;
1974
1975
1976    pub fn get_concrete_function_name(&self) -> &str {
1977        &self.concrete_function_name
1978    }
1979    pub fn clear_concrete_function_name(&mut self) {
1980        self.concrete_function_name.clear();
1981    }
1982
1983    // Param is passed by value, moved
1984    pub fn set_concrete_function_name(&mut self, v: ::std::string::String) {
1985        self.concrete_function_name = v;
1986    }
1987
1988    // Mutable pointer to the field.
1989    // If field is not initialized, it is initialized with default value first.
1990    pub fn mut_concrete_function_name(&mut self) -> &mut ::std::string::String {
1991        &mut self.concrete_function_name
1992    }
1993
1994    // Take field
1995    pub fn take_concrete_function_name(&mut self) -> ::std::string::String {
1996        ::std::mem::replace(&mut self.concrete_function_name, ::std::string::String::new())
1997    }
1998
1999    // repeated string argument_keywords = 2;
2000
2001
2002    pub fn get_argument_keywords(&self) -> &[::std::string::String] {
2003        &self.argument_keywords
2004    }
2005    pub fn clear_argument_keywords(&mut self) {
2006        self.argument_keywords.clear();
2007    }
2008
2009    // Param is passed by value, moved
2010    pub fn set_argument_keywords(&mut self, v: ::protobuf::RepeatedField<::std::string::String>) {
2011        self.argument_keywords = v;
2012    }
2013
2014    // Mutable pointer to the field.
2015    pub fn mut_argument_keywords(&mut self) -> &mut ::protobuf::RepeatedField<::std::string::String> {
2016        &mut self.argument_keywords
2017    }
2018
2019    // Take field
2020    pub fn take_argument_keywords(&mut self) -> ::protobuf::RepeatedField<::std::string::String> {
2021        ::std::mem::replace(&mut self.argument_keywords, ::protobuf::RepeatedField::new())
2022    }
2023
2024    // int64 allowed_positional_arguments = 3;
2025
2026
2027    pub fn get_allowed_positional_arguments(&self) -> i64 {
2028        self.allowed_positional_arguments
2029    }
2030    pub fn clear_allowed_positional_arguments(&mut self) {
2031        self.allowed_positional_arguments = 0;
2032    }
2033
2034    // Param is passed by value, moved
2035    pub fn set_allowed_positional_arguments(&mut self, v: i64) {
2036        self.allowed_positional_arguments = v;
2037    }
2038}
2039
2040impl ::protobuf::Message for SavedBareConcreteFunction {
2041    fn is_initialized(&self) -> bool {
2042        true
2043    }
2044
2045    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2046        while !is.eof()? {
2047            let (field_number, wire_type) = is.read_tag_unpack()?;
2048            match field_number {
2049                1 => {
2050                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.concrete_function_name)?;
2051                },
2052                2 => {
2053                    ::protobuf::rt::read_repeated_string_into(wire_type, is, &mut self.argument_keywords)?;
2054                },
2055                3 => {
2056                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2057                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2058                    }
2059                    let tmp = is.read_int64()?;
2060                    self.allowed_positional_arguments = tmp;
2061                },
2062                _ => {
2063                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2064                },
2065            };
2066        }
2067        ::std::result::Result::Ok(())
2068    }
2069
2070    // Compute sizes of nested messages
2071    #[allow(unused_variables)]
2072    fn compute_size(&self) -> u32 {
2073        let mut my_size = 0;
2074        if !self.concrete_function_name.is_empty() {
2075            my_size += ::protobuf::rt::string_size(1, &self.concrete_function_name);
2076        }
2077        for value in &self.argument_keywords {
2078            my_size += ::protobuf::rt::string_size(2, &value);
2079        };
2080        if self.allowed_positional_arguments != 0 {
2081            my_size += ::protobuf::rt::value_size(3, self.allowed_positional_arguments, ::protobuf::wire_format::WireTypeVarint);
2082        }
2083        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2084        self.cached_size.set(my_size);
2085        my_size
2086    }
2087
2088    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2089        if !self.concrete_function_name.is_empty() {
2090            os.write_string(1, &self.concrete_function_name)?;
2091        }
2092        for v in &self.argument_keywords {
2093            os.write_string(2, &v)?;
2094        };
2095        if self.allowed_positional_arguments != 0 {
2096            os.write_int64(3, self.allowed_positional_arguments)?;
2097        }
2098        os.write_unknown_fields(self.get_unknown_fields())?;
2099        ::std::result::Result::Ok(())
2100    }
2101
2102    fn get_cached_size(&self) -> u32 {
2103        self.cached_size.get()
2104    }
2105
2106    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2107        &self.unknown_fields
2108    }
2109
2110    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2111        &mut self.unknown_fields
2112    }
2113
2114    fn as_any(&self) -> &dyn (::std::any::Any) {
2115        self as &dyn (::std::any::Any)
2116    }
2117    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2118        self as &mut dyn (::std::any::Any)
2119    }
2120    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2121        self
2122    }
2123
2124    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2125        Self::descriptor_static()
2126    }
2127
2128    fn new() -> SavedBareConcreteFunction {
2129        SavedBareConcreteFunction::new()
2130    }
2131
2132    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2133        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2134        unsafe {
2135            descriptor.get(|| {
2136                let mut fields = ::std::vec::Vec::new();
2137                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2138                    "concrete_function_name",
2139                    |m: &SavedBareConcreteFunction| { &m.concrete_function_name },
2140                    |m: &mut SavedBareConcreteFunction| { &mut m.concrete_function_name },
2141                ));
2142                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2143                    "argument_keywords",
2144                    |m: &SavedBareConcreteFunction| { &m.argument_keywords },
2145                    |m: &mut SavedBareConcreteFunction| { &mut m.argument_keywords },
2146                ));
2147                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
2148                    "allowed_positional_arguments",
2149                    |m: &SavedBareConcreteFunction| { &m.allowed_positional_arguments },
2150                    |m: &mut SavedBareConcreteFunction| { &mut m.allowed_positional_arguments },
2151                ));
2152                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedBareConcreteFunction>(
2153                    "SavedBareConcreteFunction",
2154                    fields,
2155                    file_descriptor_proto()
2156                )
2157            })
2158        }
2159    }
2160
2161    fn default_instance() -> &'static SavedBareConcreteFunction {
2162        static mut instance: ::protobuf::lazy::Lazy<SavedBareConcreteFunction> = ::protobuf::lazy::Lazy::INIT;
2163        unsafe {
2164            instance.get(SavedBareConcreteFunction::new)
2165        }
2166    }
2167}
2168
2169impl ::protobuf::Clear for SavedBareConcreteFunction {
2170    fn clear(&mut self) {
2171        self.concrete_function_name.clear();
2172        self.argument_keywords.clear();
2173        self.allowed_positional_arguments = 0;
2174        self.unknown_fields.clear();
2175    }
2176}
2177
2178impl ::std::fmt::Debug for SavedBareConcreteFunction {
2179    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2180        ::protobuf::text_format::fmt(self, f)
2181    }
2182}
2183
2184impl ::protobuf::reflect::ProtobufValue for SavedBareConcreteFunction {
2185    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2186        ::protobuf::reflect::ReflectValueRef::Message(self)
2187    }
2188}
2189
2190#[derive(PartialEq,Clone,Default)]
2191pub struct SavedConstant {
2192    // message fields
2193    pub operation: ::std::string::String,
2194    // special fields
2195    pub unknown_fields: ::protobuf::UnknownFields,
2196    pub cached_size: ::protobuf::CachedSize,
2197}
2198
2199impl<'a> ::std::default::Default for &'a SavedConstant {
2200    fn default() -> &'a SavedConstant {
2201        <SavedConstant as ::protobuf::Message>::default_instance()
2202    }
2203}
2204
2205impl SavedConstant {
2206    pub fn new() -> SavedConstant {
2207        ::std::default::Default::default()
2208    }
2209
2210    // string operation = 1;
2211
2212
2213    pub fn get_operation(&self) -> &str {
2214        &self.operation
2215    }
2216    pub fn clear_operation(&mut self) {
2217        self.operation.clear();
2218    }
2219
2220    // Param is passed by value, moved
2221    pub fn set_operation(&mut self, v: ::std::string::String) {
2222        self.operation = v;
2223    }
2224
2225    // Mutable pointer to the field.
2226    // If field is not initialized, it is initialized with default value first.
2227    pub fn mut_operation(&mut self) -> &mut ::std::string::String {
2228        &mut self.operation
2229    }
2230
2231    // Take field
2232    pub fn take_operation(&mut self) -> ::std::string::String {
2233        ::std::mem::replace(&mut self.operation, ::std::string::String::new())
2234    }
2235}
2236
2237impl ::protobuf::Message for SavedConstant {
2238    fn is_initialized(&self) -> bool {
2239        true
2240    }
2241
2242    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2243        while !is.eof()? {
2244            let (field_number, wire_type) = is.read_tag_unpack()?;
2245            match field_number {
2246                1 => {
2247                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.operation)?;
2248                },
2249                _ => {
2250                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2251                },
2252            };
2253        }
2254        ::std::result::Result::Ok(())
2255    }
2256
2257    // Compute sizes of nested messages
2258    #[allow(unused_variables)]
2259    fn compute_size(&self) -> u32 {
2260        let mut my_size = 0;
2261        if !self.operation.is_empty() {
2262            my_size += ::protobuf::rt::string_size(1, &self.operation);
2263        }
2264        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2265        self.cached_size.set(my_size);
2266        my_size
2267    }
2268
2269    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2270        if !self.operation.is_empty() {
2271            os.write_string(1, &self.operation)?;
2272        }
2273        os.write_unknown_fields(self.get_unknown_fields())?;
2274        ::std::result::Result::Ok(())
2275    }
2276
2277    fn get_cached_size(&self) -> u32 {
2278        self.cached_size.get()
2279    }
2280
2281    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2282        &self.unknown_fields
2283    }
2284
2285    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2286        &mut self.unknown_fields
2287    }
2288
2289    fn as_any(&self) -> &dyn (::std::any::Any) {
2290        self as &dyn (::std::any::Any)
2291    }
2292    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2293        self as &mut dyn (::std::any::Any)
2294    }
2295    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2296        self
2297    }
2298
2299    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2300        Self::descriptor_static()
2301    }
2302
2303    fn new() -> SavedConstant {
2304        SavedConstant::new()
2305    }
2306
2307    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2308        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2309        unsafe {
2310            descriptor.get(|| {
2311                let mut fields = ::std::vec::Vec::new();
2312                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2313                    "operation",
2314                    |m: &SavedConstant| { &m.operation },
2315                    |m: &mut SavedConstant| { &mut m.operation },
2316                ));
2317                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedConstant>(
2318                    "SavedConstant",
2319                    fields,
2320                    file_descriptor_proto()
2321                )
2322            })
2323        }
2324    }
2325
2326    fn default_instance() -> &'static SavedConstant {
2327        static mut instance: ::protobuf::lazy::Lazy<SavedConstant> = ::protobuf::lazy::Lazy::INIT;
2328        unsafe {
2329            instance.get(SavedConstant::new)
2330        }
2331    }
2332}
2333
2334impl ::protobuf::Clear for SavedConstant {
2335    fn clear(&mut self) {
2336        self.operation.clear();
2337        self.unknown_fields.clear();
2338    }
2339}
2340
2341impl ::std::fmt::Debug for SavedConstant {
2342    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2343        ::protobuf::text_format::fmt(self, f)
2344    }
2345}
2346
2347impl ::protobuf::reflect::ProtobufValue for SavedConstant {
2348    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2349        ::protobuf::reflect::ReflectValueRef::Message(self)
2350    }
2351}
2352
2353#[derive(PartialEq,Clone,Default)]
2354pub struct SavedVariable {
2355    // message fields
2356    pub dtype: super::types::DataType,
2357    pub shape: ::protobuf::SingularPtrField<super::tensor_shape::TensorShapeProto>,
2358    pub trainable: bool,
2359    pub synchronization: super::variable::VariableSynchronization,
2360    pub aggregation: super::variable::VariableAggregation,
2361    pub name: ::std::string::String,
2362    // special fields
2363    pub unknown_fields: ::protobuf::UnknownFields,
2364    pub cached_size: ::protobuf::CachedSize,
2365}
2366
2367impl<'a> ::std::default::Default for &'a SavedVariable {
2368    fn default() -> &'a SavedVariable {
2369        <SavedVariable as ::protobuf::Message>::default_instance()
2370    }
2371}
2372
2373impl SavedVariable {
2374    pub fn new() -> SavedVariable {
2375        ::std::default::Default::default()
2376    }
2377
2378    // .tensorflow.DataType dtype = 1;
2379
2380
2381    pub fn get_dtype(&self) -> super::types::DataType {
2382        self.dtype
2383    }
2384    pub fn clear_dtype(&mut self) {
2385        self.dtype = super::types::DataType::DT_INVALID;
2386    }
2387
2388    // Param is passed by value, moved
2389    pub fn set_dtype(&mut self, v: super::types::DataType) {
2390        self.dtype = v;
2391    }
2392
2393    // .tensorflow.TensorShapeProto shape = 2;
2394
2395
2396    pub fn get_shape(&self) -> &super::tensor_shape::TensorShapeProto {
2397        self.shape.as_ref().unwrap_or_else(|| super::tensor_shape::TensorShapeProto::default_instance())
2398    }
2399    pub fn clear_shape(&mut self) {
2400        self.shape.clear();
2401    }
2402
2403    pub fn has_shape(&self) -> bool {
2404        self.shape.is_some()
2405    }
2406
2407    // Param is passed by value, moved
2408    pub fn set_shape(&mut self, v: super::tensor_shape::TensorShapeProto) {
2409        self.shape = ::protobuf::SingularPtrField::some(v);
2410    }
2411
2412    // Mutable pointer to the field.
2413    // If field is not initialized, it is initialized with default value first.
2414    pub fn mut_shape(&mut self) -> &mut super::tensor_shape::TensorShapeProto {
2415        if self.shape.is_none() {
2416            self.shape.set_default();
2417        }
2418        self.shape.as_mut().unwrap()
2419    }
2420
2421    // Take field
2422    pub fn take_shape(&mut self) -> super::tensor_shape::TensorShapeProto {
2423        self.shape.take().unwrap_or_else(|| super::tensor_shape::TensorShapeProto::new())
2424    }
2425
2426    // bool trainable = 3;
2427
2428
2429    pub fn get_trainable(&self) -> bool {
2430        self.trainable
2431    }
2432    pub fn clear_trainable(&mut self) {
2433        self.trainable = false;
2434    }
2435
2436    // Param is passed by value, moved
2437    pub fn set_trainable(&mut self, v: bool) {
2438        self.trainable = v;
2439    }
2440
2441    // .tensorflow.VariableSynchronization synchronization = 4;
2442
2443
2444    pub fn get_synchronization(&self) -> super::variable::VariableSynchronization {
2445        self.synchronization
2446    }
2447    pub fn clear_synchronization(&mut self) {
2448        self.synchronization = super::variable::VariableSynchronization::VARIABLE_SYNCHRONIZATION_AUTO;
2449    }
2450
2451    // Param is passed by value, moved
2452    pub fn set_synchronization(&mut self, v: super::variable::VariableSynchronization) {
2453        self.synchronization = v;
2454    }
2455
2456    // .tensorflow.VariableAggregation aggregation = 5;
2457
2458
2459    pub fn get_aggregation(&self) -> super::variable::VariableAggregation {
2460        self.aggregation
2461    }
2462    pub fn clear_aggregation(&mut self) {
2463        self.aggregation = super::variable::VariableAggregation::VARIABLE_AGGREGATION_NONE;
2464    }
2465
2466    // Param is passed by value, moved
2467    pub fn set_aggregation(&mut self, v: super::variable::VariableAggregation) {
2468        self.aggregation = v;
2469    }
2470
2471    // string name = 6;
2472
2473
2474    pub fn get_name(&self) -> &str {
2475        &self.name
2476    }
2477    pub fn clear_name(&mut self) {
2478        self.name.clear();
2479    }
2480
2481    // Param is passed by value, moved
2482    pub fn set_name(&mut self, v: ::std::string::String) {
2483        self.name = v;
2484    }
2485
2486    // Mutable pointer to the field.
2487    // If field is not initialized, it is initialized with default value first.
2488    pub fn mut_name(&mut self) -> &mut ::std::string::String {
2489        &mut self.name
2490    }
2491
2492    // Take field
2493    pub fn take_name(&mut self) -> ::std::string::String {
2494        ::std::mem::replace(&mut self.name, ::std::string::String::new())
2495    }
2496}
2497
2498impl ::protobuf::Message for SavedVariable {
2499    fn is_initialized(&self) -> bool {
2500        for v in &self.shape {
2501            if !v.is_initialized() {
2502                return false;
2503            }
2504        };
2505        true
2506    }
2507
2508    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2509        while !is.eof()? {
2510            let (field_number, wire_type) = is.read_tag_unpack()?;
2511            match field_number {
2512                1 => {
2513                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.dtype, 1, &mut self.unknown_fields)?
2514                },
2515                2 => {
2516                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.shape)?;
2517                },
2518                3 => {
2519                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2520                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2521                    }
2522                    let tmp = is.read_bool()?;
2523                    self.trainable = tmp;
2524                },
2525                4 => {
2526                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.synchronization, 4, &mut self.unknown_fields)?
2527                },
2528                5 => {
2529                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.aggregation, 5, &mut self.unknown_fields)?
2530                },
2531                6 => {
2532                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
2533                },
2534                _ => {
2535                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2536                },
2537            };
2538        }
2539        ::std::result::Result::Ok(())
2540    }
2541
2542    // Compute sizes of nested messages
2543    #[allow(unused_variables)]
2544    fn compute_size(&self) -> u32 {
2545        let mut my_size = 0;
2546        if self.dtype != super::types::DataType::DT_INVALID {
2547            my_size += ::protobuf::rt::enum_size(1, self.dtype);
2548        }
2549        if let Some(ref v) = self.shape.as_ref() {
2550            let len = v.compute_size();
2551            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2552        }
2553        if self.trainable != false {
2554            my_size += 2;
2555        }
2556        if self.synchronization != super::variable::VariableSynchronization::VARIABLE_SYNCHRONIZATION_AUTO {
2557            my_size += ::protobuf::rt::enum_size(4, self.synchronization);
2558        }
2559        if self.aggregation != super::variable::VariableAggregation::VARIABLE_AGGREGATION_NONE {
2560            my_size += ::protobuf::rt::enum_size(5, self.aggregation);
2561        }
2562        if !self.name.is_empty() {
2563            my_size += ::protobuf::rt::string_size(6, &self.name);
2564        }
2565        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2566        self.cached_size.set(my_size);
2567        my_size
2568    }
2569
2570    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2571        if self.dtype != super::types::DataType::DT_INVALID {
2572            os.write_enum(1, self.dtype.value())?;
2573        }
2574        if let Some(ref v) = self.shape.as_ref() {
2575            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2576            os.write_raw_varint32(v.get_cached_size())?;
2577            v.write_to_with_cached_sizes(os)?;
2578        }
2579        if self.trainable != false {
2580            os.write_bool(3, self.trainable)?;
2581        }
2582        if self.synchronization != super::variable::VariableSynchronization::VARIABLE_SYNCHRONIZATION_AUTO {
2583            os.write_enum(4, self.synchronization.value())?;
2584        }
2585        if self.aggregation != super::variable::VariableAggregation::VARIABLE_AGGREGATION_NONE {
2586            os.write_enum(5, self.aggregation.value())?;
2587        }
2588        if !self.name.is_empty() {
2589            os.write_string(6, &self.name)?;
2590        }
2591        os.write_unknown_fields(self.get_unknown_fields())?;
2592        ::std::result::Result::Ok(())
2593    }
2594
2595    fn get_cached_size(&self) -> u32 {
2596        self.cached_size.get()
2597    }
2598
2599    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2600        &self.unknown_fields
2601    }
2602
2603    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2604        &mut self.unknown_fields
2605    }
2606
2607    fn as_any(&self) -> &dyn (::std::any::Any) {
2608        self as &dyn (::std::any::Any)
2609    }
2610    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2611        self as &mut dyn (::std::any::Any)
2612    }
2613    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2614        self
2615    }
2616
2617    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2618        Self::descriptor_static()
2619    }
2620
2621    fn new() -> SavedVariable {
2622        SavedVariable::new()
2623    }
2624
2625    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2626        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2627        unsafe {
2628            descriptor.get(|| {
2629                let mut fields = ::std::vec::Vec::new();
2630                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::types::DataType>>(
2631                    "dtype",
2632                    |m: &SavedVariable| { &m.dtype },
2633                    |m: &mut SavedVariable| { &mut m.dtype },
2634                ));
2635                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::tensor_shape::TensorShapeProto>>(
2636                    "shape",
2637                    |m: &SavedVariable| { &m.shape },
2638                    |m: &mut SavedVariable| { &mut m.shape },
2639                ));
2640                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
2641                    "trainable",
2642                    |m: &SavedVariable| { &m.trainable },
2643                    |m: &mut SavedVariable| { &mut m.trainable },
2644                ));
2645                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::variable::VariableSynchronization>>(
2646                    "synchronization",
2647                    |m: &SavedVariable| { &m.synchronization },
2648                    |m: &mut SavedVariable| { &mut m.synchronization },
2649                ));
2650                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::variable::VariableAggregation>>(
2651                    "aggregation",
2652                    |m: &SavedVariable| { &m.aggregation },
2653                    |m: &mut SavedVariable| { &mut m.aggregation },
2654                ));
2655                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
2656                    "name",
2657                    |m: &SavedVariable| { &m.name },
2658                    |m: &mut SavedVariable| { &mut m.name },
2659                ));
2660                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedVariable>(
2661                    "SavedVariable",
2662                    fields,
2663                    file_descriptor_proto()
2664                )
2665            })
2666        }
2667    }
2668
2669    fn default_instance() -> &'static SavedVariable {
2670        static mut instance: ::protobuf::lazy::Lazy<SavedVariable> = ::protobuf::lazy::Lazy::INIT;
2671        unsafe {
2672            instance.get(SavedVariable::new)
2673        }
2674    }
2675}
2676
2677impl ::protobuf::Clear for SavedVariable {
2678    fn clear(&mut self) {
2679        self.dtype = super::types::DataType::DT_INVALID;
2680        self.shape.clear();
2681        self.trainable = false;
2682        self.synchronization = super::variable::VariableSynchronization::VARIABLE_SYNCHRONIZATION_AUTO;
2683        self.aggregation = super::variable::VariableAggregation::VARIABLE_AGGREGATION_NONE;
2684        self.name.clear();
2685        self.unknown_fields.clear();
2686    }
2687}
2688
2689impl ::std::fmt::Debug for SavedVariable {
2690    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2691        ::protobuf::text_format::fmt(self, f)
2692    }
2693}
2694
2695impl ::protobuf::reflect::ProtobufValue for SavedVariable {
2696    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2697        ::protobuf::reflect::ReflectValueRef::Message(self)
2698    }
2699}
2700
2701#[derive(PartialEq,Clone,Default)]
2702pub struct FunctionSpec {
2703    // message fields
2704    pub fullargspec: ::protobuf::SingularPtrField<super::struct_pb::StructuredValue>,
2705    pub is_method: bool,
2706    pub input_signature: ::protobuf::SingularPtrField<super::struct_pb::StructuredValue>,
2707    // special fields
2708    pub unknown_fields: ::protobuf::UnknownFields,
2709    pub cached_size: ::protobuf::CachedSize,
2710}
2711
2712impl<'a> ::std::default::Default for &'a FunctionSpec {
2713    fn default() -> &'a FunctionSpec {
2714        <FunctionSpec as ::protobuf::Message>::default_instance()
2715    }
2716}
2717
2718impl FunctionSpec {
2719    pub fn new() -> FunctionSpec {
2720        ::std::default::Default::default()
2721    }
2722
2723    // .tensorflow.StructuredValue fullargspec = 1;
2724
2725
2726    pub fn get_fullargspec(&self) -> &super::struct_pb::StructuredValue {
2727        self.fullargspec.as_ref().unwrap_or_else(|| super::struct_pb::StructuredValue::default_instance())
2728    }
2729    pub fn clear_fullargspec(&mut self) {
2730        self.fullargspec.clear();
2731    }
2732
2733    pub fn has_fullargspec(&self) -> bool {
2734        self.fullargspec.is_some()
2735    }
2736
2737    // Param is passed by value, moved
2738    pub fn set_fullargspec(&mut self, v: super::struct_pb::StructuredValue) {
2739        self.fullargspec = ::protobuf::SingularPtrField::some(v);
2740    }
2741
2742    // Mutable pointer to the field.
2743    // If field is not initialized, it is initialized with default value first.
2744    pub fn mut_fullargspec(&mut self) -> &mut super::struct_pb::StructuredValue {
2745        if self.fullargspec.is_none() {
2746            self.fullargspec.set_default();
2747        }
2748        self.fullargspec.as_mut().unwrap()
2749    }
2750
2751    // Take field
2752    pub fn take_fullargspec(&mut self) -> super::struct_pb::StructuredValue {
2753        self.fullargspec.take().unwrap_or_else(|| super::struct_pb::StructuredValue::new())
2754    }
2755
2756    // bool is_method = 2;
2757
2758
2759    pub fn get_is_method(&self) -> bool {
2760        self.is_method
2761    }
2762    pub fn clear_is_method(&mut self) {
2763        self.is_method = false;
2764    }
2765
2766    // Param is passed by value, moved
2767    pub fn set_is_method(&mut self, v: bool) {
2768        self.is_method = v;
2769    }
2770
2771    // .tensorflow.StructuredValue input_signature = 5;
2772
2773
2774    pub fn get_input_signature(&self) -> &super::struct_pb::StructuredValue {
2775        self.input_signature.as_ref().unwrap_or_else(|| super::struct_pb::StructuredValue::default_instance())
2776    }
2777    pub fn clear_input_signature(&mut self) {
2778        self.input_signature.clear();
2779    }
2780
2781    pub fn has_input_signature(&self) -> bool {
2782        self.input_signature.is_some()
2783    }
2784
2785    // Param is passed by value, moved
2786    pub fn set_input_signature(&mut self, v: super::struct_pb::StructuredValue) {
2787        self.input_signature = ::protobuf::SingularPtrField::some(v);
2788    }
2789
2790    // Mutable pointer to the field.
2791    // If field is not initialized, it is initialized with default value first.
2792    pub fn mut_input_signature(&mut self) -> &mut super::struct_pb::StructuredValue {
2793        if self.input_signature.is_none() {
2794            self.input_signature.set_default();
2795        }
2796        self.input_signature.as_mut().unwrap()
2797    }
2798
2799    // Take field
2800    pub fn take_input_signature(&mut self) -> super::struct_pb::StructuredValue {
2801        self.input_signature.take().unwrap_or_else(|| super::struct_pb::StructuredValue::new())
2802    }
2803}
2804
2805impl ::protobuf::Message for FunctionSpec {
2806    fn is_initialized(&self) -> bool {
2807        for v in &self.fullargspec {
2808            if !v.is_initialized() {
2809                return false;
2810            }
2811        };
2812        for v in &self.input_signature {
2813            if !v.is_initialized() {
2814                return false;
2815            }
2816        };
2817        true
2818    }
2819
2820    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2821        while !is.eof()? {
2822            let (field_number, wire_type) = is.read_tag_unpack()?;
2823            match field_number {
2824                1 => {
2825                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.fullargspec)?;
2826                },
2827                2 => {
2828                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
2829                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
2830                    }
2831                    let tmp = is.read_bool()?;
2832                    self.is_method = tmp;
2833                },
2834                5 => {
2835                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.input_signature)?;
2836                },
2837                _ => {
2838                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
2839                },
2840            };
2841        }
2842        ::std::result::Result::Ok(())
2843    }
2844
2845    // Compute sizes of nested messages
2846    #[allow(unused_variables)]
2847    fn compute_size(&self) -> u32 {
2848        let mut my_size = 0;
2849        if let Some(ref v) = self.fullargspec.as_ref() {
2850            let len = v.compute_size();
2851            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2852        }
2853        if self.is_method != false {
2854            my_size += 2;
2855        }
2856        if let Some(ref v) = self.input_signature.as_ref() {
2857            let len = v.compute_size();
2858            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
2859        }
2860        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
2861        self.cached_size.set(my_size);
2862        my_size
2863    }
2864
2865    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
2866        if let Some(ref v) = self.fullargspec.as_ref() {
2867            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2868            os.write_raw_varint32(v.get_cached_size())?;
2869            v.write_to_with_cached_sizes(os)?;
2870        }
2871        if self.is_method != false {
2872            os.write_bool(2, self.is_method)?;
2873        }
2874        if let Some(ref v) = self.input_signature.as_ref() {
2875            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
2876            os.write_raw_varint32(v.get_cached_size())?;
2877            v.write_to_with_cached_sizes(os)?;
2878        }
2879        os.write_unknown_fields(self.get_unknown_fields())?;
2880        ::std::result::Result::Ok(())
2881    }
2882
2883    fn get_cached_size(&self) -> u32 {
2884        self.cached_size.get()
2885    }
2886
2887    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
2888        &self.unknown_fields
2889    }
2890
2891    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
2892        &mut self.unknown_fields
2893    }
2894
2895    fn as_any(&self) -> &dyn (::std::any::Any) {
2896        self as &dyn (::std::any::Any)
2897    }
2898    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
2899        self as &mut dyn (::std::any::Any)
2900    }
2901    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
2902        self
2903    }
2904
2905    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
2906        Self::descriptor_static()
2907    }
2908
2909    fn new() -> FunctionSpec {
2910        FunctionSpec::new()
2911    }
2912
2913    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
2914        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
2915        unsafe {
2916            descriptor.get(|| {
2917                let mut fields = ::std::vec::Vec::new();
2918                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::struct_pb::StructuredValue>>(
2919                    "fullargspec",
2920                    |m: &FunctionSpec| { &m.fullargspec },
2921                    |m: &mut FunctionSpec| { &mut m.fullargspec },
2922                ));
2923                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
2924                    "is_method",
2925                    |m: &FunctionSpec| { &m.is_method },
2926                    |m: &mut FunctionSpec| { &mut m.is_method },
2927                ));
2928                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::struct_pb::StructuredValue>>(
2929                    "input_signature",
2930                    |m: &FunctionSpec| { &m.input_signature },
2931                    |m: &mut FunctionSpec| { &mut m.input_signature },
2932                ));
2933                ::protobuf::reflect::MessageDescriptor::new_pb_name::<FunctionSpec>(
2934                    "FunctionSpec",
2935                    fields,
2936                    file_descriptor_proto()
2937                )
2938            })
2939        }
2940    }
2941
2942    fn default_instance() -> &'static FunctionSpec {
2943        static mut instance: ::protobuf::lazy::Lazy<FunctionSpec> = ::protobuf::lazy::Lazy::INIT;
2944        unsafe {
2945            instance.get(FunctionSpec::new)
2946        }
2947    }
2948}
2949
2950impl ::protobuf::Clear for FunctionSpec {
2951    fn clear(&mut self) {
2952        self.fullargspec.clear();
2953        self.is_method = false;
2954        self.input_signature.clear();
2955        self.unknown_fields.clear();
2956    }
2957}
2958
2959impl ::std::fmt::Debug for FunctionSpec {
2960    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
2961        ::protobuf::text_format::fmt(self, f)
2962    }
2963}
2964
2965impl ::protobuf::reflect::ProtobufValue for FunctionSpec {
2966    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
2967        ::protobuf::reflect::ReflectValueRef::Message(self)
2968    }
2969}
2970
2971#[derive(PartialEq,Clone,Default)]
2972pub struct SavedResource {
2973    // message fields
2974    pub device: ::std::string::String,
2975    // special fields
2976    pub unknown_fields: ::protobuf::UnknownFields,
2977    pub cached_size: ::protobuf::CachedSize,
2978}
2979
2980impl<'a> ::std::default::Default for &'a SavedResource {
2981    fn default() -> &'a SavedResource {
2982        <SavedResource as ::protobuf::Message>::default_instance()
2983    }
2984}
2985
2986impl SavedResource {
2987    pub fn new() -> SavedResource {
2988        ::std::default::Default::default()
2989    }
2990
2991    // string device = 1;
2992
2993
2994    pub fn get_device(&self) -> &str {
2995        &self.device
2996    }
2997    pub fn clear_device(&mut self) {
2998        self.device.clear();
2999    }
3000
3001    // Param is passed by value, moved
3002    pub fn set_device(&mut self, v: ::std::string::String) {
3003        self.device = v;
3004    }
3005
3006    // Mutable pointer to the field.
3007    // If field is not initialized, it is initialized with default value first.
3008    pub fn mut_device(&mut self) -> &mut ::std::string::String {
3009        &mut self.device
3010    }
3011
3012    // Take field
3013    pub fn take_device(&mut self) -> ::std::string::String {
3014        ::std::mem::replace(&mut self.device, ::std::string::String::new())
3015    }
3016}
3017
3018impl ::protobuf::Message for SavedResource {
3019    fn is_initialized(&self) -> bool {
3020        true
3021    }
3022
3023    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3024        while !is.eof()? {
3025            let (field_number, wire_type) = is.read_tag_unpack()?;
3026            match field_number {
3027                1 => {
3028                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.device)?;
3029                },
3030                _ => {
3031                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3032                },
3033            };
3034        }
3035        ::std::result::Result::Ok(())
3036    }
3037
3038    // Compute sizes of nested messages
3039    #[allow(unused_variables)]
3040    fn compute_size(&self) -> u32 {
3041        let mut my_size = 0;
3042        if !self.device.is_empty() {
3043            my_size += ::protobuf::rt::string_size(1, &self.device);
3044        }
3045        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3046        self.cached_size.set(my_size);
3047        my_size
3048    }
3049
3050    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3051        if !self.device.is_empty() {
3052            os.write_string(1, &self.device)?;
3053        }
3054        os.write_unknown_fields(self.get_unknown_fields())?;
3055        ::std::result::Result::Ok(())
3056    }
3057
3058    fn get_cached_size(&self) -> u32 {
3059        self.cached_size.get()
3060    }
3061
3062    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3063        &self.unknown_fields
3064    }
3065
3066    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3067        &mut self.unknown_fields
3068    }
3069
3070    fn as_any(&self) -> &dyn (::std::any::Any) {
3071        self as &dyn (::std::any::Any)
3072    }
3073    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3074        self as &mut dyn (::std::any::Any)
3075    }
3076    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3077        self
3078    }
3079
3080    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3081        Self::descriptor_static()
3082    }
3083
3084    fn new() -> SavedResource {
3085        SavedResource::new()
3086    }
3087
3088    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3089        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
3090        unsafe {
3091            descriptor.get(|| {
3092                let mut fields = ::std::vec::Vec::new();
3093                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
3094                    "device",
3095                    |m: &SavedResource| { &m.device },
3096                    |m: &mut SavedResource| { &mut m.device },
3097                ));
3098                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SavedResource>(
3099                    "SavedResource",
3100                    fields,
3101                    file_descriptor_proto()
3102                )
3103            })
3104        }
3105    }
3106
3107    fn default_instance() -> &'static SavedResource {
3108        static mut instance: ::protobuf::lazy::Lazy<SavedResource> = ::protobuf::lazy::Lazy::INIT;
3109        unsafe {
3110            instance.get(SavedResource::new)
3111        }
3112    }
3113}
3114
3115impl ::protobuf::Clear for SavedResource {
3116    fn clear(&mut self) {
3117        self.device.clear();
3118        self.unknown_fields.clear();
3119    }
3120}
3121
3122impl ::std::fmt::Debug for SavedResource {
3123    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3124        ::protobuf::text_format::fmt(self, f)
3125    }
3126}
3127
3128impl ::protobuf::reflect::ProtobufValue for SavedResource {
3129    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3130        ::protobuf::reflect::ReflectValueRef::Message(self)
3131    }
3132}
3133
3134#[derive(PartialEq,Clone,Default)]
3135pub struct SaveableObject {
3136    // message fields
3137    pub save_function: i32,
3138    pub restore_function: i32,
3139    // special fields
3140    pub unknown_fields: ::protobuf::UnknownFields,
3141    pub cached_size: ::protobuf::CachedSize,
3142}
3143
3144impl<'a> ::std::default::Default for &'a SaveableObject {
3145    fn default() -> &'a SaveableObject {
3146        <SaveableObject as ::protobuf::Message>::default_instance()
3147    }
3148}
3149
3150impl SaveableObject {
3151    pub fn new() -> SaveableObject {
3152        ::std::default::Default::default()
3153    }
3154
3155    // int32 save_function = 2;
3156
3157
3158    pub fn get_save_function(&self) -> i32 {
3159        self.save_function
3160    }
3161    pub fn clear_save_function(&mut self) {
3162        self.save_function = 0;
3163    }
3164
3165    // Param is passed by value, moved
3166    pub fn set_save_function(&mut self, v: i32) {
3167        self.save_function = v;
3168    }
3169
3170    // int32 restore_function = 3;
3171
3172
3173    pub fn get_restore_function(&self) -> i32 {
3174        self.restore_function
3175    }
3176    pub fn clear_restore_function(&mut self) {
3177        self.restore_function = 0;
3178    }
3179
3180    // Param is passed by value, moved
3181    pub fn set_restore_function(&mut self, v: i32) {
3182        self.restore_function = v;
3183    }
3184}
3185
3186impl ::protobuf::Message for SaveableObject {
3187    fn is_initialized(&self) -> bool {
3188        true
3189    }
3190
3191    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3192        while !is.eof()? {
3193            let (field_number, wire_type) = is.read_tag_unpack()?;
3194            match field_number {
3195                2 => {
3196                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3197                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3198                    }
3199                    let tmp = is.read_int32()?;
3200                    self.save_function = tmp;
3201                },
3202                3 => {
3203                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
3204                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
3205                    }
3206                    let tmp = is.read_int32()?;
3207                    self.restore_function = tmp;
3208                },
3209                _ => {
3210                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
3211                },
3212            };
3213        }
3214        ::std::result::Result::Ok(())
3215    }
3216
3217    // Compute sizes of nested messages
3218    #[allow(unused_variables)]
3219    fn compute_size(&self) -> u32 {
3220        let mut my_size = 0;
3221        if self.save_function != 0 {
3222            my_size += ::protobuf::rt::value_size(2, self.save_function, ::protobuf::wire_format::WireTypeVarint);
3223        }
3224        if self.restore_function != 0 {
3225            my_size += ::protobuf::rt::value_size(3, self.restore_function, ::protobuf::wire_format::WireTypeVarint);
3226        }
3227        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
3228        self.cached_size.set(my_size);
3229        my_size
3230    }
3231
3232    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
3233        if self.save_function != 0 {
3234            os.write_int32(2, self.save_function)?;
3235        }
3236        if self.restore_function != 0 {
3237            os.write_int32(3, self.restore_function)?;
3238        }
3239        os.write_unknown_fields(self.get_unknown_fields())?;
3240        ::std::result::Result::Ok(())
3241    }
3242
3243    fn get_cached_size(&self) -> u32 {
3244        self.cached_size.get()
3245    }
3246
3247    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
3248        &self.unknown_fields
3249    }
3250
3251    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
3252        &mut self.unknown_fields
3253    }
3254
3255    fn as_any(&self) -> &dyn (::std::any::Any) {
3256        self as &dyn (::std::any::Any)
3257    }
3258    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
3259        self as &mut dyn (::std::any::Any)
3260    }
3261    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
3262        self
3263    }
3264
3265    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
3266        Self::descriptor_static()
3267    }
3268
3269    fn new() -> SaveableObject {
3270        SaveableObject::new()
3271    }
3272
3273    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
3274        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
3275        unsafe {
3276            descriptor.get(|| {
3277                let mut fields = ::std::vec::Vec::new();
3278                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
3279                    "save_function",
3280                    |m: &SaveableObject| { &m.save_function },
3281                    |m: &mut SaveableObject| { &mut m.save_function },
3282                ));
3283                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
3284                    "restore_function",
3285                    |m: &SaveableObject| { &m.restore_function },
3286                    |m: &mut SaveableObject| { &mut m.restore_function },
3287                ));
3288                ::protobuf::reflect::MessageDescriptor::new_pb_name::<SaveableObject>(
3289                    "SaveableObject",
3290                    fields,
3291                    file_descriptor_proto()
3292                )
3293            })
3294        }
3295    }
3296
3297    fn default_instance() -> &'static SaveableObject {
3298        static mut instance: ::protobuf::lazy::Lazy<SaveableObject> = ::protobuf::lazy::Lazy::INIT;
3299        unsafe {
3300            instance.get(SaveableObject::new)
3301        }
3302    }
3303}
3304
3305impl ::protobuf::Clear for SaveableObject {
3306    fn clear(&mut self) {
3307        self.save_function = 0;
3308        self.restore_function = 0;
3309        self.unknown_fields.clear();
3310    }
3311}
3312
3313impl ::std::fmt::Debug for SaveableObject {
3314    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
3315        ::protobuf::text_format::fmt(self, f)
3316    }
3317}
3318
3319impl ::protobuf::reflect::ProtobufValue for SaveableObject {
3320    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
3321        ::protobuf::reflect::ReflectValueRef::Message(self)
3322    }
3323}
3324
3325static file_descriptor_proto_data: &'static [u8] = b"\
3326    \n1tensorflow/core/protobuf/saved_object_graph.proto\x12\ntensorflow\x1a\
3327    ,tensorflow/core/framework/tensor_shape.proto\x1a%tensorflow/core/framew\
3328    ork/types.proto\x1a(tensorflow/core/framework/variable.proto\x1a(tensorf\
3329    low/core/framework/versions.proto\x1a%tensorflow/core/protobuf/struct.pr\
3330    oto\x1a5tensorflow/core/protobuf/trackable_object_graph.proto\"\x8e\x02\
3331    \n\x10SavedObjectGraph\x12-\n\x05nodes\x18\x01\x20\x03(\x0b2\x17.tensorf\
3332    low.SavedObjectR\x05nodes\x12b\n\x12concrete_functions\x18\x02\x20\x03(\
3333    \x0b23.tensorflow.SavedObjectGraph.ConcreteFunctionsEntryR\x11concreteFu\
3334    nctions\x1ag\n\x16ConcreteFunctionsEntry\x12\x10\n\x03key\x18\x01\x20\
3335    \x01(\tR\x03key\x127\n\x05value\x18\x02\x20\x01(\x0b2!.tensorflow.SavedC\
3336    oncreteFunctionR\x05value:\x028\x01\"\xe0\x06\n\x0bSavedObject\x12\\\n\
3337    \x08children\x18\x01\x20\x03(\x0b2@.tensorflow.TrackableObjectGraph.Trac\
3338    kableObject.ObjectReferenceR\x08children\x12m\n\x0eslot_variables\x18\
3339    \x03\x20\x03(\x0b2F.tensorflow.TrackableObjectGraph.TrackableObject.Slot\
3340    VariableReferenceR\rslotVariables\x12>\n\x0buser_object\x18\x04\x20\x01(\
3341    \x0b2\x1b.tensorflow.SavedUserObjectH\0R\nuserObject\x12.\n\x05asset\x18\
3342    \x05\x20\x01(\x0b2\x16.tensorflow.SavedAssetH\0R\x05asset\x127\n\x08func\
3343    tion\x18\x06\x20\x01(\x0b2\x19.tensorflow.SavedFunctionH\0R\x08function\
3344    \x127\n\x08variable\x18\x07\x20\x01(\x0b2\x19.tensorflow.SavedVariableH\
3345    \0R\x08variable\x12]\n\x16bare_concrete_function\x18\x08\x20\x01(\x0b2%.\
3346    tensorflow.SavedBareConcreteFunctionH\0R\x14bareConcreteFunction\x127\n\
3347    \x08constant\x18\t\x20\x01(\x0b2\x19.tensorflow.SavedConstantH\0R\x08con\
3348    stant\x127\n\x08resource\x18\n\x20\x01(\x0b2\x19.tensorflow.SavedResourc\
3349    eH\0R\x08resource\x12W\n\x10saveable_objects\x18\x0b\x20\x03(\x0b2,.tens\
3350    orflow.SavedObject.SaveableObjectsEntryR\x0fsaveableObjects\x1a^\n\x14Sa\
3351    veableObjectsEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x120\n\
3352    \x05value\x18\x02\x20\x01(\x0b2\x1a.tensorflow.SaveableObjectR\x05value:\
3353    \x028\x01B\x06\n\x04kindJ\x04\x08\x02\x10\x03R\nattributes\"\x7f\n\x0fSa\
3354    vedUserObject\x12\x1e\n\nidentifier\x18\x01\x20\x01(\tR\nidentifier\x120\
3355    \n\x07version\x18\x02\x20\x01(\x0b2\x16.tensorflow.VersionDefR\x07versio\
3356    n\x12\x1a\n\x08metadata\x18\x03\x20\x01(\tR\x08metadata\"=\n\nSavedAsset\
3357    \x12/\n\x14asset_file_def_index\x18\x01\x20\x01(\x05R\x11assetFileDefInd\
3358    ex\"}\n\rSavedFunction\x12-\n\x12concrete_functions\x18\x01\x20\x03(\tR\
3359    \x11concreteFunctions\x12=\n\rfunction_spec\x18\x02\x20\x01(\x0b2\x18.te\
3360    nsorflow.FunctionSpecR\x0cfunctionSpec\"\xe3\x01\n\x15SavedConcreteFunct\
3361    ion\x12!\n\x0cbound_inputs\x18\x02\x20\x03(\x05R\x0bboundInputs\x12_\n\
3362    \x1dcanonicalized_input_signature\x18\x03\x20\x01(\x0b2\x1b.tensorflow.S\
3363    tructuredValueR\x1bcanonicalizedInputSignature\x12F\n\x10output_signatur\
3364    e\x18\x04\x20\x01(\x0b2\x1b.tensorflow.StructuredValueR\x0foutputSignatu\
3365    re\"\xc0\x01\n\x19SavedBareConcreteFunction\x124\n\x16concrete_function_\
3366    name\x18\x01\x20\x01(\tR\x14concreteFunctionName\x12+\n\x11argument_keyw\
3367    ords\x18\x02\x20\x03(\tR\x10argumentKeywords\x12@\n\x1callowed_positiona\
3368    l_arguments\x18\x03\x20\x01(\x03R\x1aallowedPositionalArguments\"-\n\rSa\
3369    vedConstant\x12\x1c\n\toperation\x18\x01\x20\x01(\tR\toperation\"\xb3\
3370    \x02\n\rSavedVariable\x12*\n\x05dtype\x18\x01\x20\x01(\x0e2\x14.tensorfl\
3371    ow.DataTypeR\x05dtype\x122\n\x05shape\x18\x02\x20\x01(\x0b2\x1c.tensorfl\
3372    ow.TensorShapeProtoR\x05shape\x12\x1c\n\ttrainable\x18\x03\x20\x01(\x08R\
3373    \ttrainable\x12M\n\x0fsynchronization\x18\x04\x20\x01(\x0e2#.tensorflow.\
3374    VariableSynchronizationR\x0fsynchronization\x12A\n\x0baggregation\x18\
3375    \x05\x20\x01(\x0e2\x1f.tensorflow.VariableAggregationR\x0baggregation\
3376    \x12\x12\n\x04name\x18\x06\x20\x01(\tR\x04name\"\xbc\x01\n\x0cFunctionSp\
3377    ec\x12=\n\x0bfullargspec\x18\x01\x20\x01(\x0b2\x1b.tensorflow.Structured\
3378    ValueR\x0bfullargspec\x12\x1b\n\tis_method\x18\x02\x20\x01(\x08R\x08isMe\
3379    thod\x12D\n\x0finput_signature\x18\x05\x20\x01(\x0b2\x1b.tensorflow.Stru\
3380    cturedValueR\x0einputSignatureJ\x04\x08\x03\x10\x04J\x04\x08\x04\x10\x05\
3381    \"'\n\rSavedResource\x12\x16\n\x06device\x18\x01\x20\x01(\tR\x06device\"\
3382    `\n\x0eSaveableObject\x12#\n\rsave_function\x18\x02\x20\x01(\x05R\x0csav\
3383    eFunction\x12)\n\x10restore_function\x18\x03\x20\x01(\x05R\x0frestoreFun\
3384    ctionBMZHgithub.com/tensorflow/tensorflow/tensorflow/go/core/core_protos\
3385    _go_proto\xf8\x01\x01J\xc64\n\x07\x12\x05\0\0\xab\x01\x01\n\x08\n\x01\
3386    \x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x02\0\x13\n\t\n\x02\x03\0\
3387    \x12\x03\x04\06\n\t\n\x02\x03\x01\x12\x03\x05\0/\n\t\n\x02\x03\x02\x12\
3388    \x03\x06\02\n\t\n\x02\x03\x03\x12\x03\x07\02\n\t\n\x02\x03\x04\x12\x03\
3389    \x08\0/\n\t\n\x02\x03\x05\x12\x03\t\0?\n\x08\n\x01\x08\x12\x03\x0b\0\x1f\
3390    \n\t\n\x02\x08\x1f\x12\x03\x0b\0\x1f\n\x08\n\x01\x08\x12\x03\x0c\0_\n\t\
3391    \n\x02\x08\x0b\x12\x03\x0c\0_\n\xea\x03\n\x02\x04\0\x12\x04\x17\0!\x012\
3392    \xcb\x01\x20A\x20SavedObjectGraph\x20is\x20part\x20of\x20object-based\
3393    \x20SavedModels\x20in\x20TF\x202.0.\x20It\n\x20describes\x20the\x20direc\
3394    ted\x20graph\x20of\x20Python\x20objects\x20(or\x20equivalent\x20in\x20ot\
3395    her\n\x20languages)\x20that\x20make\x20up\x20a\x20model,\x20with\x20node\
3396    s[0]\x20at\x20the\x20root.\n2\x8f\x02\x20SavedObjectGraph\x20shares\x20s\
3397    ome\x20structure\x20with\x20TrackableObjectGraph,\x20but\n\x20SavedObjec\
3398    tGraph\x20belongs\x20to\x20the\x20MetaGraph\x20and\x20contains\x20pointe\
3399    rs\x20to\x20functions\n\x20and\x20type\x20information,\x20while\x20Track\
3400    ableObjectGraph\x20lives\x20in\x20the\x20checkpoint\n\x20and\x20contains\
3401    \x20pointers\x20only\x20to\x20variable\x20values.\n\n\n\n\x03\x04\0\x01\
3402    \x12\x03\x17\x08\x18\n\xa1\x01\n\x04\x04\0\x02\0\x12\x03\x1c\x02!\x1a\
3403    \x93\x01\x20Flattened\x20list\x20of\x20objects\x20in\x20the\x20object\
3404    \x20graph.\n\n\x20The\x20position\x20of\x20the\x20object\x20in\x20this\
3405    \x20list\x20indicates\x20its\x20id.\n\x20Nodes[0]\x20is\x20considered\
3406    \x20the\x20root\x20node.\n\n\x0c\n\x05\x04\0\x02\0\x04\x12\x03\x1c\x02\n\
3407    \n\x0c\n\x05\x04\0\x02\0\x06\x12\x03\x1c\x0b\x16\n\x0c\n\x05\x04\0\x02\0\
3408    \x01\x12\x03\x1c\x17\x1c\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03\x1c\x1f\x20\
3409    \n\x95\x01\n\x04\x04\0\x02\x01\x12\x03\x20\x02<\x1a\x87\x01\x20Informati\
3410    on\x20about\x20captures\x20and\x20output\x20structures\x20in\x20concrete\
3411    \x20functions.\n\x20Referenced\x20from\x20SavedBareConcreteFunction\x20a\
3412    nd\x20SavedFunction.\n\n\x0c\n\x05\x04\0\x02\x01\x06\x12\x03\x20\x02$\n\
3413    \x0c\n\x05\x04\0\x02\x01\x01\x12\x03\x20%7\n\x0c\n\x05\x04\0\x02\x01\x03\
3414    \x12\x03\x20:;\n\n\n\x02\x04\x01\x12\x04#\0A\x01\n\n\n\x03\x04\x01\x01\
3415    \x12\x03#\x08\x13\n\x92\x01\n\x04\x04\x01\x02\0\x12\x03(\x02M\x1a\x84\
3416    \x01\x20Objects\x20which\x20this\x20object\x20depends\x20on:\x20named\
3417    \x20edges\x20in\x20the\x20dependency\n\x20graph.\n\n\x20Note:\x20current\
3418    ly\x20only\x20valid\x20if\x20kind\x20==\x20\"user_object\".\n\n\x0c\n\
3419    \x05\x04\x01\x02\0\x04\x12\x03(\x02\n\n\x0c\n\x05\x04\x01\x02\0\x06\x12\
3420    \x03(\x0b?\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03(@H\n\x0c\n\x05\x04\x01\
3421    \x02\0\x03\x12\x03(KL\nI\n\x03\x04\x01\n\x12\x03+\x02\x18\x1a=\x20Remove\
3422    d\x20when\x20forking\x20SavedObject\x20from\x20TrackableObjectGraph.\n\n\
3423    \x0b\n\x04\x04\x01\n\0\x12\x03+\x0b\x17\n\n\n\x03\x04\x01\t\x12\x03,\x02\
3424    \r\n\x0b\n\x04\x04\x01\t\0\x12\x03,\x0b\x0c\n\x0c\n\x05\x04\x01\t\0\x01\
3425    \x12\x03,\x0b\x0c\n\x0c\n\x05\x04\x01\t\0\x02\x12\x03,\x0b\x0c\n\xef\x01\
3426    \n\x04\x04\x01\x02\x01\x12\x043\x024\x19\x1a\xe0\x01\x20Slot\x20variable\
3427    s\x20owned\x20by\x20this\x20object.\x20This\x20describes\x20the\x20three\
3428    -way\n\x20(optimizer,\x20variable,\x20slot\x20variable)\x20relationship;\
3429    \x20none\x20of\x20the\x20three\n\x20depend\x20on\x20the\x20others\x20dir\
3430    ectly.\n\n\x20Note:\x20currently\x20only\x20valid\x20if\x20kind\x20==\
3431    \x20\"user_object\".\n\n\x0c\n\x05\x04\x01\x02\x01\x04\x12\x033\x02\n\n\
3432    \x0c\n\x05\x04\x01\x02\x01\x06\x12\x033\x0bE\n\x0c\n\x05\x04\x01\x02\x01\
3433    \x01\x12\x034\x06\x14\n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x034\x17\x18\n\
3434    \x0c\n\x04\x04\x01\x08\0\x12\x046\x02>\x03\n\x0c\n\x05\x04\x01\x08\0\x01\
3435    \x12\x036\x08\x0c\n\x0b\n\x04\x04\x01\x02\x02\x12\x037\x04$\n\x0c\n\x05\
3436    \x04\x01\x02\x02\x06\x12\x037\x04\x13\n\x0c\n\x05\x04\x01\x02\x02\x01\
3437    \x12\x037\x14\x1f\n\x0c\n\x05\x04\x01\x02\x02\x03\x12\x037\"#\n\x0b\n\
3438    \x04\x04\x01\x02\x03\x12\x038\x04\x19\n\x0c\n\x05\x04\x01\x02\x03\x06\
3439    \x12\x038\x04\x0e\n\x0c\n\x05\x04\x01\x02\x03\x01\x12\x038\x0f\x14\n\x0c\
3440    \n\x05\x04\x01\x02\x03\x03\x12\x038\x17\x18\n\x0b\n\x04\x04\x01\x02\x04\
3441    \x12\x039\x04\x1f\n\x0c\n\x05\x04\x01\x02\x04\x06\x12\x039\x04\x11\n\x0c\
3442    \n\x05\x04\x01\x02\x04\x01\x12\x039\x12\x1a\n\x0c\n\x05\x04\x01\x02\x04\
3443    \x03\x12\x039\x1d\x1e\n\x0b\n\x04\x04\x01\x02\x05\x12\x03:\x04\x1f\n\x0c\
3444    \n\x05\x04\x01\x02\x05\x06\x12\x03:\x04\x11\n\x0c\n\x05\x04\x01\x02\x05\
3445    \x01\x12\x03:\x12\x1a\n\x0c\n\x05\x04\x01\x02\x05\x03\x12\x03:\x1d\x1e\n\
3446    \x0b\n\x04\x04\x01\x02\x06\x12\x03;\x049\n\x0c\n\x05\x04\x01\x02\x06\x06\
3447    \x12\x03;\x04\x1d\n\x0c\n\x05\x04\x01\x02\x06\x01\x12\x03;\x1e4\n\x0c\n\
3448    \x05\x04\x01\x02\x06\x03\x12\x03;78\n\x0b\n\x04\x04\x01\x02\x07\x12\x03<\
3449    \x04\x1f\n\x0c\n\x05\x04\x01\x02\x07\x06\x12\x03<\x04\x11\n\x0c\n\x05\
3450    \x04\x01\x02\x07\x01\x12\x03<\x12\x1a\n\x0c\n\x05\x04\x01\x02\x07\x03\
3451    \x12\x03<\x1d\x1e\n\x0b\n\x04\x04\x01\x02\x08\x12\x03=\x04\x20\n\x0c\n\
3452    \x05\x04\x01\x02\x08\x06\x12\x03=\x04\x11\n\x0c\n\x05\x04\x01\x02\x08\
3453    \x01\x12\x03=\x12\x1a\n\x0c\n\x05\x04\x01\x02\x08\x03\x12\x03=\x1d\x1f\n\
3454    \x0b\n\x04\x04\x01\x02\t\x12\x03@\x024\n\x0c\n\x05\x04\x01\x02\t\x06\x12\
3455    \x03@\x02\x1d\n\x0c\n\x05\x04\x01\x02\t\x01\x12\x03@\x1e.\n\x0c\n\x05\
3456    \x04\x01\x02\t\x03\x12\x03@13\n\xc7\x02\n\x02\x04\x02\x12\x04I\0P\x01\
3457    \x1a\xba\x02\x20A\x20SavedUserObject\x20is\x20an\x20object\x20(in\x20the\
3458    \x20object-oriented\x20language\x20of\x20the\n\x20TensorFlow\x20program)\
3459    \x20of\x20some\x20user-\x20or\x20framework-defined\x20class\x20other\x20\
3460    than\n\x20those\x20handled\x20specifically\x20by\x20the\x20other\x20kind\
3461    s\x20of\x20SavedObjects.\n\n\x20This\x20object\x20cannot\x20be\x20evalua\
3462    ted\x20as\x20a\x20tensor,\x20and\x20therefore\x20cannot\x20be\x20bound\n\
3463    \x20to\x20an\x20input\x20of\x20a\x20function.\n\n\n\n\x03\x04\x02\x01\
3464    \x12\x03I\x08\x17\nW\n\x04\x04\x02\x02\0\x12\x03K\x02\x18\x1aJ\x20Corres\
3465    ponds\x20to\x20a\x20registration\x20of\x20the\x20type\x20to\x20use\x20in\
3466    \x20the\x20loading\x20program.\n\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03K\
3467    \x02\x08\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03K\t\x13\n\x0c\n\x05\x04\
3468    \x02\x02\0\x03\x12\x03K\x16\x17\nM\n\x04\x04\x02\x02\x01\x12\x03M\x02\
3469    \x19\x1a@\x20Version\x20information\x20from\x20the\x20producer\x20of\x20\
3470    this\x20SavedUserObject.\n\n\x0c\n\x05\x04\x02\x02\x01\x06\x12\x03M\x02\
3471    \x0c\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03M\r\x14\n\x0c\n\x05\x04\x02\
3472    \x02\x01\x03\x12\x03M\x17\x18\n/\n\x04\x04\x02\x02\x02\x12\x03O\x02\x16\
3473    \x1a\"\x20Initialization-related\x20metadata.\n\n\x0c\n\x05\x04\x02\x02\
3474    \x02\x05\x12\x03O\x02\x08\n\x0c\n\x05\x04\x02\x02\x02\x01\x12\x03O\t\x11\
3475    \n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03O\x14\x15\n\x8b\x02\n\x02\x04\
3476    \x03\x12\x04W\0]\x01\x1a\xfe\x01\x20A\x20SavedAsset\x20points\x20to\x20a\
3477    n\x20asset\x20in\x20the\x20MetaGraph.\n\n\x20When\x20bound\x20to\x20a\
3478    \x20function\x20this\x20object\x20evaluates\x20to\x20a\x20tensor\x20with\
3479    \x20the\x20absolute\n\x20filename.\x20Users\x20should\x20not\x20depend\
3480    \x20on\x20a\x20particular\x20part\x20of\x20the\x20filename\x20to\n\x20re\
3481    main\x20stable\x20(e.g.\x20basename\x20could\x20be\x20changed).\n\n\n\n\
3482    \x03\x04\x03\x01\x12\x03W\x08\x12\n\xca\x01\n\x04\x04\x03\x02\0\x12\x03\
3483    \\\x02!\x1a\xbc\x01\x20Index\x20into\x20`MetaGraphDef.asset_file_def[]`\
3484    \x20that\x20describes\x20the\x20Asset.\n\n\x20Only\x20the\x20field\x20`A\
3485    ssetFileDef.filename`\x20is\x20used.\x20Other\x20fields,\x20such\x20as\n\
3486    \x20`AssetFileDef.tensor_info`,\x20MUST\x20be\x20ignored.\n\n\x0c\n\x05\
3487    \x04\x03\x02\0\x05\x12\x03\\\x02\x07\n\x0c\n\x05\x04\x03\x02\0\x01\x12\
3488    \x03\\\x08\x1c\n\x0c\n\x05\x04\x03\x02\0\x03\x12\x03\\\x1f\x20\nV\n\x02\
3489    \x04\x04\x12\x04`\0c\x01\x1aJ\x20A\x20function\x20with\x20multiple\x20si\
3490    gnatures,\x20possibly\x20with\x20non-Tensor\x20arguments.\n\n\n\n\x03\
3491    \x04\x04\x01\x12\x03`\x08\x15\n\x0b\n\x04\x04\x04\x02\0\x12\x03a\x02)\n\
3492    \x0c\n\x05\x04\x04\x02\0\x04\x12\x03a\x02\n\n\x0c\n\x05\x04\x04\x02\0\
3493    \x05\x12\x03a\x0b\x11\n\x0c\n\x05\x04\x04\x02\0\x01\x12\x03a\x12$\n\x0c\
3494    \n\x05\x04\x04\x02\0\x03\x12\x03a'(\n\x0b\n\x04\x04\x04\x02\x01\x12\x03b\
3495    \x02!\n\x0c\n\x05\x04\x04\x02\x01\x06\x12\x03b\x02\x0e\n\x0c\n\x05\x04\
3496    \x04\x02\x01\x01\x12\x03b\x0f\x1c\n\x0c\n\x05\x04\x04\x02\x01\x03\x12\
3497    \x03b\x1f\x20\n\x8b\x01\n\x02\x04\x05\x12\x04g\0t\x01\x1a\x7f\x20Stores\
3498    \x20low-level\x20information\x20about\x20a\x20concrete\x20function.\x20R\
3499    eferenced\x20in\x20either\n\x20a\x20SavedFunction\x20or\x20a\x20SavedBar\
3500    eConcreteFunction.\n\n\n\n\x03\x04\x05\x01\x12\x03g\x08\x1d\n\xfe\x01\n\
3501    \x04\x04\x05\x02\0\x12\x03l\x02\"\x1a\xf0\x01\x20Bound\x20inputs\x20to\
3502    \x20the\x20function.\x20The\x20SavedObjects\x20identified\x20by\x20the\
3503    \x20node\x20ids\n\x20given\x20here\x20are\x20appended\x20as\x20extra\x20\
3504    inputs\x20to\x20the\x20caller-supplied\x20inputs.\n\x20The\x20only\x20ty\
3505    pes\x20of\x20SavedObjects\x20valid\x20here\x20are\x20SavedVariable,\x20S\
3506    avedResource\n\x20and\x20SavedAsset.\n\n\x0c\n\x05\x04\x05\x02\0\x04\x12\
3507    \x03l\x02\n\n\x0c\n\x05\x04\x05\x02\0\x05\x12\x03l\x0b\x10\n\x0c\n\x05\
3508    \x04\x05\x02\0\x01\x12\x03l\x11\x1d\n\x0c\n\x05\x04\x05\x02\0\x03\x12\
3509    \x03l\x20!\n_\n\x04\x04\x05\x02\x01\x12\x03o\x024\x1aR\x20Input\x20in\
3510    \x20canonicalized\x20form\x20that\x20was\x20received\x20to\x20create\x20\
3511    this\x20concrete\n\x20function.\n\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\
3512    \x03o\x02\x11\n\x0c\n\x05\x04\x05\x02\x01\x01\x12\x03o\x12/\n\x0c\n\x05\
3513    \x04\x05\x02\x01\x03\x12\x03o23\n\xe0\x01\n\x04\x04\x05\x02\x02\x12\x03s\
3514    \x02'\x1a\xd2\x01\x20Output\x20that\x20was\x20the\x20return\x20value\x20\
3515    of\x20this\x20function\x20after\x20replacing\x20all\n\x20Tensors\x20with\
3516    \x20TensorSpecs.\x20This\x20can\x20be\x20an\x20arbitrary\x20nested\x20fu\
3517    nction\x20and\x20will\n\x20be\x20used\x20to\x20reconstruct\x20the\x20ful\
3518    l\x20structure\x20from\x20pure\x20tensors.\n\n\x0c\n\x05\x04\x05\x02\x02\
3519    \x06\x12\x03s\x02\x11\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03s\x12\"\n\
3520    \x0c\n\x05\x04\x05\x02\x02\x03\x12\x03s%&\n\n\n\x02\x04\x06\x12\x04v\0~\
3521    \x01\n\n\n\x03\x04\x06\x01\x12\x03v\x08!\n2\n\x04\x04\x06\x02\0\x12\x03x\
3522    \x02$\x1a%\x20Identifies\x20a\x20SavedConcreteFunction.\n\n\x0c\n\x05\
3523    \x04\x06\x02\0\x05\x12\x03x\x02\x08\n\x0c\n\x05\x04\x06\x02\0\x01\x12\
3524    \x03x\t\x1f\n\x0c\n\x05\x04\x06\x02\0\x03\x12\x03x\"#\nE\n\x04\x04\x06\
3525    \x02\x01\x12\x03{\x02(\x1a8\x20A\x20sequence\x20of\x20unique\x20strings,\
3526    \x20one\x20per\x20Tensor\x20argument.\n\n\x0c\n\x05\x04\x06\x02\x01\x04\
3527    \x12\x03{\x02\n\n\x0c\n\x05\x04\x06\x02\x01\x05\x12\x03{\x0b\x11\n\x0c\n\
3528    \x05\x04\x06\x02\x01\x01\x12\x03{\x12#\n\x0c\n\x05\x04\x06\x02\x01\x03\
3529    \x12\x03{&'\nU\n\x04\x04\x06\x02\x02\x12\x03}\x02)\x1aH\x20The\x20prefix\
3530    \x20of\x20`argument_keywords`\x20which\x20may\x20be\x20identified\x20by\
3531    \x20position.\n\n\x0c\n\x05\x04\x06\x02\x02\x05\x12\x03}\x02\x07\n\x0c\n\
3532    \x05\x04\x06\x02\x02\x01\x12\x03}\x08$\n\x0c\n\x05\x04\x06\x02\x02\x03\
3533    \x12\x03}'(\n\x0c\n\x02\x04\x07\x12\x06\x80\x01\0\x83\x01\x01\n\x0b\n\
3534    \x03\x04\x07\x01\x12\x04\x80\x01\x08\x15\nX\n\x04\x04\x07\x02\0\x12\x04\
3535    \x82\x01\x02\x17\x1aJ\x20An\x20Operation\x20name\x20for\x20a\x20Constant\
3536    Op\x20in\x20this\x20SavedObjectGraph's\x20MetaGraph.\n\n\r\n\x05\x04\x07\
3537    \x02\0\x05\x12\x04\x82\x01\x02\x08\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\
3538    \x82\x01\t\x12\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\x82\x01\x15\x16\ng\n\
3539    \x02\x04\x08\x12\x06\x87\x01\0\x8e\x01\x01\x1aY\x20Represents\x20a\x20Va\
3540    riable\x20that\x20is\x20initialized\x20by\x20loading\x20the\x20contents\
3541    \x20from\x20the\n\x20checkpoint.\n\n\x0b\n\x03\x04\x08\x01\x12\x04\x87\
3542    \x01\x08\x15\n\x0c\n\x04\x04\x08\x02\0\x12\x04\x88\x01\x02\x15\n\r\n\x05\
3543    \x04\x08\x02\0\x06\x12\x04\x88\x01\x02\n\n\r\n\x05\x04\x08\x02\0\x01\x12\
3544    \x04\x88\x01\x0b\x10\n\r\n\x05\x04\x08\x02\0\x03\x12\x04\x88\x01\x13\x14\
3545    \n\x0c\n\x04\x04\x08\x02\x01\x12\x04\x89\x01\x02\x1d\n\r\n\x05\x04\x08\
3546    \x02\x01\x06\x12\x04\x89\x01\x02\x12\n\r\n\x05\x04\x08\x02\x01\x01\x12\
3547    \x04\x89\x01\x13\x18\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\x89\x01\x1b\
3548    \x1c\n\x0c\n\x04\x04\x08\x02\x02\x12\x04\x8a\x01\x02\x15\n\r\n\x05\x04\
3549    \x08\x02\x02\x05\x12\x04\x8a\x01\x02\x06\n\r\n\x05\x04\x08\x02\x02\x01\
3550    \x12\x04\x8a\x01\x07\x10\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\x8a\x01\
3551    \x13\x14\n\x0c\n\x04\x04\x08\x02\x03\x12\x04\x8b\x01\x02.\n\r\n\x05\x04\
3552    \x08\x02\x03\x06\x12\x04\x8b\x01\x02\x19\n\r\n\x05\x04\x08\x02\x03\x01\
3553    \x12\x04\x8b\x01\x1a)\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\x8b\x01,-\n\
3554    \x0c\n\x04\x04\x08\x02\x04\x12\x04\x8c\x01\x02&\n\r\n\x05\x04\x08\x02\
3555    \x04\x06\x12\x04\x8c\x01\x02\x15\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\
3556    \x8c\x01\x16!\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\x8c\x01$%\n\x0c\n\
3557    \x04\x04\x08\x02\x05\x12\x04\x8d\x01\x02\x12\n\r\n\x05\x04\x08\x02\x05\
3558    \x05\x12\x04\x8d\x01\x02\x08\n\r\n\x05\x04\x08\x02\x05\x01\x12\x04\x8d\
3559    \x01\t\r\n\r\n\x05\x04\x08\x02\x05\x03\x12\x04\x8d\x01\x10\x11\n\x8b\x01\
3560    \n\x02\x04\t\x12\x06\x92\x01\0\x9b\x01\x01\x1a}\x20Represents\x20`Functi\
3561    onSpec`\x20used\x20in\x20`Function`.\x20This\x20represents\x20a\n\x20fun\
3562    ction\x20that\x20has\x20been\x20wrapped\x20as\x20a\x20TensorFlow\x20`Fun\
3563    ction`.\n\n\x0b\n\x03\x04\t\x01\x12\x04\x92\x01\x08\x14\n<\n\x04\x04\t\
3564    \x02\0\x12\x04\x94\x01\x02\"\x1a.\x20Full\x20arg\x20spec\x20from\x20insp\
3565    ect.getfullargspec().\n\n\r\n\x05\x04\t\x02\0\x06\x12\x04\x94\x01\x02\
3566    \x11\n\r\n\x05\x04\t\x02\0\x01\x12\x04\x94\x01\x12\x1d\n\r\n\x05\x04\t\
3567    \x02\0\x03\x12\x04\x94\x01\x20!\n7\n\x04\x04\t\x02\x01\x12\x04\x96\x01\
3568    \x02\x15\x1a)\x20Whether\x20this\x20represents\x20a\x20class\x20method.\
3569    \n\n\r\n\x05\x04\t\x02\x01\x05\x12\x04\x96\x01\x02\x06\n\r\n\x05\x04\t\
3570    \x02\x01\x01\x12\x04\x96\x01\x07\x10\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\
3571    \x96\x01\x13\x14\n2\n\x04\x04\t\x02\x02\x12\x04\x98\x01\x02&\x1a$\x20The\
3572    \x20input\x20signature,\x20if\x20specified.\n\n\r\n\x05\x04\t\x02\x02\
3573    \x06\x12\x04\x98\x01\x02\x11\n\r\n\x05\x04\t\x02\x02\x01\x12\x04\x98\x01\
3574    \x12!\n\r\n\x05\x04\t\x02\x02\x03\x12\x04\x98\x01$%\n\x0b\n\x03\x04\t\t\
3575    \x12\x04\x9a\x01\x02\x10\n\x0c\n\x04\x04\t\t\0\x12\x04\x9a\x01\x0b\x0c\n\
3576    \r\n\x05\x04\t\t\0\x01\x12\x04\x9a\x01\x0b\x0c\n\r\n\x05\x04\t\t\0\x02\
3577    \x12\x04\x9a\x01\x0b\x0c\n\x0c\n\x04\x04\t\t\x01\x12\x04\x9a\x01\x0e\x0f\
3578    \n\r\n\x05\x04\t\t\x01\x01\x12\x04\x9a\x01\x0e\x0f\n\r\n\x05\x04\t\t\x01\
3579    \x02\x12\x04\x9a\x01\x0e\x0f\n\xc1\x01\n\x02\x04\n\x12\x06\xa0\x01\0\xa5\
3580    \x01\x01\x1a\xb2\x01\x20A\x20SavedResource\x20represents\x20a\x20TF\x20o\
3581    bject\x20that\x20holds\x20state\x20during\x20its\x20lifetime.\n\x20An\
3582    \x20object\x20of\x20this\x20type\x20can\x20have\x20a\x20reference\x20to\
3583    \x20a:\n\x20create_resource()\x20and\x20an\x20initialize()\x20function.\
3584    \n\n\x0b\n\x03\x04\n\x01\x12\x04\xa0\x01\x08\x15\n\xad\x01\n\x04\x04\n\
3585    \x02\0\x12\x04\xa4\x01\x02\x14\x1a\x9e\x01\x20A\x20device\x20specificati\
3586    on\x20indicating\x20a\x20required\x20placement\x20for\x20the\x20resource\
3587    \n\x20creation\x20function,\x20e.g.\x20\"CPU\".\x20An\x20empty\x20string\
3588    \x20allows\x20the\x20user\x20to\x20select\x20a\n\x20device.\n\n\r\n\x05\
3589    \x04\n\x02\0\x05\x12\x04\xa4\x01\x02\x08\n\r\n\x05\x04\n\x02\0\x01\x12\
3590    \x04\xa4\x01\t\x0f\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xa4\x01\x12\x13\n\
3591    \x0c\n\x02\x04\x0b\x12\x06\xa7\x01\0\xab\x01\x01\n\x0b\n\x03\x04\x0b\x01\
3592    \x12\x04\xa7\x01\x08\x16\nX\n\x04\x04\x0b\x02\0\x12\x04\xa9\x01\x02\x1a\
3593    \x1aJ\x20Node\x20ids\x20of\x20concrete\x20functions\x20for\x20saving\x20\
3594    and\x20loading\x20from\x20a\x20checkpoint.\n\n\r\n\x05\x04\x0b\x02\0\x05\
3595    \x12\x04\xa9\x01\x02\x07\n\r\n\x05\x04\x0b\x02\0\x01\x12\x04\xa9\x01\x08\
3596    \x15\n\r\n\x05\x04\x0b\x02\0\x03\x12\x04\xa9\x01\x18\x19\n\x0c\n\x04\x04\
3597    \x0b\x02\x01\x12\x04\xaa\x01\x02\x1d\n\r\n\x05\x04\x0b\x02\x01\x05\x12\
3598    \x04\xaa\x01\x02\x07\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xaa\x01\x08\
3599    \x18\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xaa\x01\x1b\x1cb\x06proto3\
3600";
3601
3602static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;
3603
3604fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
3605    ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
3606}
3607
3608pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
3609    unsafe {
3610        file_descriptor_proto_lazy.get(|| {
3611            parse_descriptor_proto()
3612        })
3613    }
3614}