tensorflow_serving_client/
cost_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/framework/cost_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 CostGraphDef {
31    // message fields
32    pub node: ::protobuf::RepeatedField<CostGraphDef_Node>,
33    pub cost: ::protobuf::RepeatedField<CostGraphDef_AggregatedCost>,
34    // special fields
35    pub unknown_fields: ::protobuf::UnknownFields,
36    pub cached_size: ::protobuf::CachedSize,
37}
38
39impl<'a> ::std::default::Default for &'a CostGraphDef {
40    fn default() -> &'a CostGraphDef {
41        <CostGraphDef as ::protobuf::Message>::default_instance()
42    }
43}
44
45impl CostGraphDef {
46    pub fn new() -> CostGraphDef {
47        ::std::default::Default::default()
48    }
49
50    // repeated .tensorflow.CostGraphDef.Node node = 1;
51
52
53    pub fn get_node(&self) -> &[CostGraphDef_Node] {
54        &self.node
55    }
56    pub fn clear_node(&mut self) {
57        self.node.clear();
58    }
59
60    // Param is passed by value, moved
61    pub fn set_node(&mut self, v: ::protobuf::RepeatedField<CostGraphDef_Node>) {
62        self.node = v;
63    }
64
65    // Mutable pointer to the field.
66    pub fn mut_node(&mut self) -> &mut ::protobuf::RepeatedField<CostGraphDef_Node> {
67        &mut self.node
68    }
69
70    // Take field
71    pub fn take_node(&mut self) -> ::protobuf::RepeatedField<CostGraphDef_Node> {
72        ::std::mem::replace(&mut self.node, ::protobuf::RepeatedField::new())
73    }
74
75    // repeated .tensorflow.CostGraphDef.AggregatedCost cost = 2;
76
77
78    pub fn get_cost(&self) -> &[CostGraphDef_AggregatedCost] {
79        &self.cost
80    }
81    pub fn clear_cost(&mut self) {
82        self.cost.clear();
83    }
84
85    // Param is passed by value, moved
86    pub fn set_cost(&mut self, v: ::protobuf::RepeatedField<CostGraphDef_AggregatedCost>) {
87        self.cost = v;
88    }
89
90    // Mutable pointer to the field.
91    pub fn mut_cost(&mut self) -> &mut ::protobuf::RepeatedField<CostGraphDef_AggregatedCost> {
92        &mut self.cost
93    }
94
95    // Take field
96    pub fn take_cost(&mut self) -> ::protobuf::RepeatedField<CostGraphDef_AggregatedCost> {
97        ::std::mem::replace(&mut self.cost, ::protobuf::RepeatedField::new())
98    }
99}
100
101impl ::protobuf::Message for CostGraphDef {
102    fn is_initialized(&self) -> bool {
103        for v in &self.node {
104            if !v.is_initialized() {
105                return false;
106            }
107        };
108        for v in &self.cost {
109            if !v.is_initialized() {
110                return false;
111            }
112        };
113        true
114    }
115
116    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
117        while !is.eof()? {
118            let (field_number, wire_type) = is.read_tag_unpack()?;
119            match field_number {
120                1 => {
121                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.node)?;
122                },
123                2 => {
124                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.cost)?;
125                },
126                _ => {
127                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
128                },
129            };
130        }
131        ::std::result::Result::Ok(())
132    }
133
134    // Compute sizes of nested messages
135    #[allow(unused_variables)]
136    fn compute_size(&self) -> u32 {
137        let mut my_size = 0;
138        for value in &self.node {
139            let len = value.compute_size();
140            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
141        };
142        for value in &self.cost {
143            let len = value.compute_size();
144            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
145        };
146        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
147        self.cached_size.set(my_size);
148        my_size
149    }
150
151    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
152        for v in &self.node {
153            os.write_tag(1, ::protobuf::wire_format::WireTypeLengthDelimited)?;
154            os.write_raw_varint32(v.get_cached_size())?;
155            v.write_to_with_cached_sizes(os)?;
156        };
157        for v in &self.cost {
158            os.write_tag(2, ::protobuf::wire_format::WireTypeLengthDelimited)?;
159            os.write_raw_varint32(v.get_cached_size())?;
160            v.write_to_with_cached_sizes(os)?;
161        };
162        os.write_unknown_fields(self.get_unknown_fields())?;
163        ::std::result::Result::Ok(())
164    }
165
166    fn get_cached_size(&self) -> u32 {
167        self.cached_size.get()
168    }
169
170    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
171        &self.unknown_fields
172    }
173
174    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
175        &mut self.unknown_fields
176    }
177
178    fn as_any(&self) -> &dyn (::std::any::Any) {
179        self as &dyn (::std::any::Any)
180    }
181    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
182        self as &mut dyn (::std::any::Any)
183    }
184    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
185        self
186    }
187
188    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
189        Self::descriptor_static()
190    }
191
192    fn new() -> CostGraphDef {
193        CostGraphDef::new()
194    }
195
196    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
197        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
198        unsafe {
199            descriptor.get(|| {
200                let mut fields = ::std::vec::Vec::new();
201                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CostGraphDef_Node>>(
202                    "node",
203                    |m: &CostGraphDef| { &m.node },
204                    |m: &mut CostGraphDef| { &mut m.node },
205                ));
206                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CostGraphDef_AggregatedCost>>(
207                    "cost",
208                    |m: &CostGraphDef| { &m.cost },
209                    |m: &mut CostGraphDef| { &mut m.cost },
210                ));
211                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CostGraphDef>(
212                    "CostGraphDef",
213                    fields,
214                    file_descriptor_proto()
215                )
216            })
217        }
218    }
219
220    fn default_instance() -> &'static CostGraphDef {
221        static mut instance: ::protobuf::lazy::Lazy<CostGraphDef> = ::protobuf::lazy::Lazy::INIT;
222        unsafe {
223            instance.get(CostGraphDef::new)
224        }
225    }
226}
227
228impl ::protobuf::Clear for CostGraphDef {
229    fn clear(&mut self) {
230        self.node.clear();
231        self.cost.clear();
232        self.unknown_fields.clear();
233    }
234}
235
236impl ::std::fmt::Debug for CostGraphDef {
237    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
238        ::protobuf::text_format::fmt(self, f)
239    }
240}
241
242impl ::protobuf::reflect::ProtobufValue for CostGraphDef {
243    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
244        ::protobuf::reflect::ReflectValueRef::Message(self)
245    }
246}
247
248#[derive(PartialEq,Clone,Default)]
249pub struct CostGraphDef_Node {
250    // message fields
251    pub name: ::std::string::String,
252    pub device: ::std::string::String,
253    pub id: i32,
254    pub input_info: ::protobuf::RepeatedField<CostGraphDef_Node_InputInfo>,
255    pub output_info: ::protobuf::RepeatedField<CostGraphDef_Node_OutputInfo>,
256    pub temporary_memory_size: i64,
257    pub persistent_memory_size: i64,
258    pub host_temp_memory_size: i64,
259    pub device_temp_memory_size: i64,
260    pub device_persistent_memory_size: i64,
261    pub compute_cost: i64,
262    pub compute_time: i64,
263    pub memory_time: i64,
264    pub is_final: bool,
265    pub control_input: ::std::vec::Vec<i32>,
266    pub inaccurate: bool,
267    // special fields
268    pub unknown_fields: ::protobuf::UnknownFields,
269    pub cached_size: ::protobuf::CachedSize,
270}
271
272impl<'a> ::std::default::Default for &'a CostGraphDef_Node {
273    fn default() -> &'a CostGraphDef_Node {
274        <CostGraphDef_Node as ::protobuf::Message>::default_instance()
275    }
276}
277
278impl CostGraphDef_Node {
279    pub fn new() -> CostGraphDef_Node {
280        ::std::default::Default::default()
281    }
282
283    // string name = 1;
284
285
286    pub fn get_name(&self) -> &str {
287        &self.name
288    }
289    pub fn clear_name(&mut self) {
290        self.name.clear();
291    }
292
293    // Param is passed by value, moved
294    pub fn set_name(&mut self, v: ::std::string::String) {
295        self.name = v;
296    }
297
298    // Mutable pointer to the field.
299    // If field is not initialized, it is initialized with default value first.
300    pub fn mut_name(&mut self) -> &mut ::std::string::String {
301        &mut self.name
302    }
303
304    // Take field
305    pub fn take_name(&mut self) -> ::std::string::String {
306        ::std::mem::replace(&mut self.name, ::std::string::String::new())
307    }
308
309    // string device = 2;
310
311
312    pub fn get_device(&self) -> &str {
313        &self.device
314    }
315    pub fn clear_device(&mut self) {
316        self.device.clear();
317    }
318
319    // Param is passed by value, moved
320    pub fn set_device(&mut self, v: ::std::string::String) {
321        self.device = v;
322    }
323
324    // Mutable pointer to the field.
325    // If field is not initialized, it is initialized with default value first.
326    pub fn mut_device(&mut self) -> &mut ::std::string::String {
327        &mut self.device
328    }
329
330    // Take field
331    pub fn take_device(&mut self) -> ::std::string::String {
332        ::std::mem::replace(&mut self.device, ::std::string::String::new())
333    }
334
335    // int32 id = 3;
336
337
338    pub fn get_id(&self) -> i32 {
339        self.id
340    }
341    pub fn clear_id(&mut self) {
342        self.id = 0;
343    }
344
345    // Param is passed by value, moved
346    pub fn set_id(&mut self, v: i32) {
347        self.id = v;
348    }
349
350    // repeated .tensorflow.CostGraphDef.Node.InputInfo input_info = 4;
351
352
353    pub fn get_input_info(&self) -> &[CostGraphDef_Node_InputInfo] {
354        &self.input_info
355    }
356    pub fn clear_input_info(&mut self) {
357        self.input_info.clear();
358    }
359
360    // Param is passed by value, moved
361    pub fn set_input_info(&mut self, v: ::protobuf::RepeatedField<CostGraphDef_Node_InputInfo>) {
362        self.input_info = v;
363    }
364
365    // Mutable pointer to the field.
366    pub fn mut_input_info(&mut self) -> &mut ::protobuf::RepeatedField<CostGraphDef_Node_InputInfo> {
367        &mut self.input_info
368    }
369
370    // Take field
371    pub fn take_input_info(&mut self) -> ::protobuf::RepeatedField<CostGraphDef_Node_InputInfo> {
372        ::std::mem::replace(&mut self.input_info, ::protobuf::RepeatedField::new())
373    }
374
375    // repeated .tensorflow.CostGraphDef.Node.OutputInfo output_info = 5;
376
377
378    pub fn get_output_info(&self) -> &[CostGraphDef_Node_OutputInfo] {
379        &self.output_info
380    }
381    pub fn clear_output_info(&mut self) {
382        self.output_info.clear();
383    }
384
385    // Param is passed by value, moved
386    pub fn set_output_info(&mut self, v: ::protobuf::RepeatedField<CostGraphDef_Node_OutputInfo>) {
387        self.output_info = v;
388    }
389
390    // Mutable pointer to the field.
391    pub fn mut_output_info(&mut self) -> &mut ::protobuf::RepeatedField<CostGraphDef_Node_OutputInfo> {
392        &mut self.output_info
393    }
394
395    // Take field
396    pub fn take_output_info(&mut self) -> ::protobuf::RepeatedField<CostGraphDef_Node_OutputInfo> {
397        ::std::mem::replace(&mut self.output_info, ::protobuf::RepeatedField::new())
398    }
399
400    // int64 temporary_memory_size = 6;
401
402
403    pub fn get_temporary_memory_size(&self) -> i64 {
404        self.temporary_memory_size
405    }
406    pub fn clear_temporary_memory_size(&mut self) {
407        self.temporary_memory_size = 0;
408    }
409
410    // Param is passed by value, moved
411    pub fn set_temporary_memory_size(&mut self, v: i64) {
412        self.temporary_memory_size = v;
413    }
414
415    // int64 persistent_memory_size = 12;
416
417
418    pub fn get_persistent_memory_size(&self) -> i64 {
419        self.persistent_memory_size
420    }
421    pub fn clear_persistent_memory_size(&mut self) {
422        self.persistent_memory_size = 0;
423    }
424
425    // Param is passed by value, moved
426    pub fn set_persistent_memory_size(&mut self, v: i64) {
427        self.persistent_memory_size = v;
428    }
429
430    // int64 host_temp_memory_size = 10;
431
432
433    pub fn get_host_temp_memory_size(&self) -> i64 {
434        self.host_temp_memory_size
435    }
436    pub fn clear_host_temp_memory_size(&mut self) {
437        self.host_temp_memory_size = 0;
438    }
439
440    // Param is passed by value, moved
441    pub fn set_host_temp_memory_size(&mut self, v: i64) {
442        self.host_temp_memory_size = v;
443    }
444
445    // int64 device_temp_memory_size = 11;
446
447
448    pub fn get_device_temp_memory_size(&self) -> i64 {
449        self.device_temp_memory_size
450    }
451    pub fn clear_device_temp_memory_size(&mut self) {
452        self.device_temp_memory_size = 0;
453    }
454
455    // Param is passed by value, moved
456    pub fn set_device_temp_memory_size(&mut self, v: i64) {
457        self.device_temp_memory_size = v;
458    }
459
460    // int64 device_persistent_memory_size = 16;
461
462
463    pub fn get_device_persistent_memory_size(&self) -> i64 {
464        self.device_persistent_memory_size
465    }
466    pub fn clear_device_persistent_memory_size(&mut self) {
467        self.device_persistent_memory_size = 0;
468    }
469
470    // Param is passed by value, moved
471    pub fn set_device_persistent_memory_size(&mut self, v: i64) {
472        self.device_persistent_memory_size = v;
473    }
474
475    // int64 compute_cost = 9;
476
477
478    pub fn get_compute_cost(&self) -> i64 {
479        self.compute_cost
480    }
481    pub fn clear_compute_cost(&mut self) {
482        self.compute_cost = 0;
483    }
484
485    // Param is passed by value, moved
486    pub fn set_compute_cost(&mut self, v: i64) {
487        self.compute_cost = v;
488    }
489
490    // int64 compute_time = 14;
491
492
493    pub fn get_compute_time(&self) -> i64 {
494        self.compute_time
495    }
496    pub fn clear_compute_time(&mut self) {
497        self.compute_time = 0;
498    }
499
500    // Param is passed by value, moved
501    pub fn set_compute_time(&mut self, v: i64) {
502        self.compute_time = v;
503    }
504
505    // int64 memory_time = 15;
506
507
508    pub fn get_memory_time(&self) -> i64 {
509        self.memory_time
510    }
511    pub fn clear_memory_time(&mut self) {
512        self.memory_time = 0;
513    }
514
515    // Param is passed by value, moved
516    pub fn set_memory_time(&mut self, v: i64) {
517        self.memory_time = v;
518    }
519
520    // bool is_final = 7;
521
522
523    pub fn get_is_final(&self) -> bool {
524        self.is_final
525    }
526    pub fn clear_is_final(&mut self) {
527        self.is_final = false;
528    }
529
530    // Param is passed by value, moved
531    pub fn set_is_final(&mut self, v: bool) {
532        self.is_final = v;
533    }
534
535    // repeated int32 control_input = 8;
536
537
538    pub fn get_control_input(&self) -> &[i32] {
539        &self.control_input
540    }
541    pub fn clear_control_input(&mut self) {
542        self.control_input.clear();
543    }
544
545    // Param is passed by value, moved
546    pub fn set_control_input(&mut self, v: ::std::vec::Vec<i32>) {
547        self.control_input = v;
548    }
549
550    // Mutable pointer to the field.
551    pub fn mut_control_input(&mut self) -> &mut ::std::vec::Vec<i32> {
552        &mut self.control_input
553    }
554
555    // Take field
556    pub fn take_control_input(&mut self) -> ::std::vec::Vec<i32> {
557        ::std::mem::replace(&mut self.control_input, ::std::vec::Vec::new())
558    }
559
560    // bool inaccurate = 17;
561
562
563    pub fn get_inaccurate(&self) -> bool {
564        self.inaccurate
565    }
566    pub fn clear_inaccurate(&mut self) {
567        self.inaccurate = false;
568    }
569
570    // Param is passed by value, moved
571    pub fn set_inaccurate(&mut self, v: bool) {
572        self.inaccurate = v;
573    }
574}
575
576impl ::protobuf::Message for CostGraphDef_Node {
577    fn is_initialized(&self) -> bool {
578        for v in &self.input_info {
579            if !v.is_initialized() {
580                return false;
581            }
582        };
583        for v in &self.output_info {
584            if !v.is_initialized() {
585                return false;
586            }
587        };
588        true
589    }
590
591    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
592        while !is.eof()? {
593            let (field_number, wire_type) = is.read_tag_unpack()?;
594            match field_number {
595                1 => {
596                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.name)?;
597                },
598                2 => {
599                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.device)?;
600                },
601                3 => {
602                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
603                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
604                    }
605                    let tmp = is.read_int32()?;
606                    self.id = tmp;
607                },
608                4 => {
609                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.input_info)?;
610                },
611                5 => {
612                    ::protobuf::rt::read_repeated_message_into(wire_type, is, &mut self.output_info)?;
613                },
614                6 => {
615                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
616                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
617                    }
618                    let tmp = is.read_int64()?;
619                    self.temporary_memory_size = tmp;
620                },
621                12 => {
622                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
623                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
624                    }
625                    let tmp = is.read_int64()?;
626                    self.persistent_memory_size = tmp;
627                },
628                10 => {
629                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
630                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
631                    }
632                    let tmp = is.read_int64()?;
633                    self.host_temp_memory_size = tmp;
634                },
635                11 => {
636                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
637                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
638                    }
639                    let tmp = is.read_int64()?;
640                    self.device_temp_memory_size = tmp;
641                },
642                16 => {
643                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
644                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
645                    }
646                    let tmp = is.read_int64()?;
647                    self.device_persistent_memory_size = tmp;
648                },
649                9 => {
650                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
651                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
652                    }
653                    let tmp = is.read_int64()?;
654                    self.compute_cost = tmp;
655                },
656                14 => {
657                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
658                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
659                    }
660                    let tmp = is.read_int64()?;
661                    self.compute_time = tmp;
662                },
663                15 => {
664                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
665                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
666                    }
667                    let tmp = is.read_int64()?;
668                    self.memory_time = tmp;
669                },
670                7 => {
671                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
672                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
673                    }
674                    let tmp = is.read_bool()?;
675                    self.is_final = tmp;
676                },
677                8 => {
678                    ::protobuf::rt::read_repeated_int32_into(wire_type, is, &mut self.control_input)?;
679                },
680                17 => {
681                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
682                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
683                    }
684                    let tmp = is.read_bool()?;
685                    self.inaccurate = tmp;
686                },
687                _ => {
688                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
689                },
690            };
691        }
692        ::std::result::Result::Ok(())
693    }
694
695    // Compute sizes of nested messages
696    #[allow(unused_variables)]
697    fn compute_size(&self) -> u32 {
698        let mut my_size = 0;
699        if !self.name.is_empty() {
700            my_size += ::protobuf::rt::string_size(1, &self.name);
701        }
702        if !self.device.is_empty() {
703            my_size += ::protobuf::rt::string_size(2, &self.device);
704        }
705        if self.id != 0 {
706            my_size += ::protobuf::rt::value_size(3, self.id, ::protobuf::wire_format::WireTypeVarint);
707        }
708        for value in &self.input_info {
709            let len = value.compute_size();
710            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
711        };
712        for value in &self.output_info {
713            let len = value.compute_size();
714            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
715        };
716        if self.temporary_memory_size != 0 {
717            my_size += ::protobuf::rt::value_size(6, self.temporary_memory_size, ::protobuf::wire_format::WireTypeVarint);
718        }
719        if self.persistent_memory_size != 0 {
720            my_size += ::protobuf::rt::value_size(12, self.persistent_memory_size, ::protobuf::wire_format::WireTypeVarint);
721        }
722        if self.host_temp_memory_size != 0 {
723            my_size += ::protobuf::rt::value_size(10, self.host_temp_memory_size, ::protobuf::wire_format::WireTypeVarint);
724        }
725        if self.device_temp_memory_size != 0 {
726            my_size += ::protobuf::rt::value_size(11, self.device_temp_memory_size, ::protobuf::wire_format::WireTypeVarint);
727        }
728        if self.device_persistent_memory_size != 0 {
729            my_size += ::protobuf::rt::value_size(16, self.device_persistent_memory_size, ::protobuf::wire_format::WireTypeVarint);
730        }
731        if self.compute_cost != 0 {
732            my_size += ::protobuf::rt::value_size(9, self.compute_cost, ::protobuf::wire_format::WireTypeVarint);
733        }
734        if self.compute_time != 0 {
735            my_size += ::protobuf::rt::value_size(14, self.compute_time, ::protobuf::wire_format::WireTypeVarint);
736        }
737        if self.memory_time != 0 {
738            my_size += ::protobuf::rt::value_size(15, self.memory_time, ::protobuf::wire_format::WireTypeVarint);
739        }
740        if self.is_final != false {
741            my_size += 2;
742        }
743        for value in &self.control_input {
744            my_size += ::protobuf::rt::value_size(8, *value, ::protobuf::wire_format::WireTypeVarint);
745        };
746        if self.inaccurate != false {
747            my_size += 3;
748        }
749        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
750        self.cached_size.set(my_size);
751        my_size
752    }
753
754    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
755        if !self.name.is_empty() {
756            os.write_string(1, &self.name)?;
757        }
758        if !self.device.is_empty() {
759            os.write_string(2, &self.device)?;
760        }
761        if self.id != 0 {
762            os.write_int32(3, self.id)?;
763        }
764        for v in &self.input_info {
765            os.write_tag(4, ::protobuf::wire_format::WireTypeLengthDelimited)?;
766            os.write_raw_varint32(v.get_cached_size())?;
767            v.write_to_with_cached_sizes(os)?;
768        };
769        for v in &self.output_info {
770            os.write_tag(5, ::protobuf::wire_format::WireTypeLengthDelimited)?;
771            os.write_raw_varint32(v.get_cached_size())?;
772            v.write_to_with_cached_sizes(os)?;
773        };
774        if self.temporary_memory_size != 0 {
775            os.write_int64(6, self.temporary_memory_size)?;
776        }
777        if self.persistent_memory_size != 0 {
778            os.write_int64(12, self.persistent_memory_size)?;
779        }
780        if self.host_temp_memory_size != 0 {
781            os.write_int64(10, self.host_temp_memory_size)?;
782        }
783        if self.device_temp_memory_size != 0 {
784            os.write_int64(11, self.device_temp_memory_size)?;
785        }
786        if self.device_persistent_memory_size != 0 {
787            os.write_int64(16, self.device_persistent_memory_size)?;
788        }
789        if self.compute_cost != 0 {
790            os.write_int64(9, self.compute_cost)?;
791        }
792        if self.compute_time != 0 {
793            os.write_int64(14, self.compute_time)?;
794        }
795        if self.memory_time != 0 {
796            os.write_int64(15, self.memory_time)?;
797        }
798        if self.is_final != false {
799            os.write_bool(7, self.is_final)?;
800        }
801        for v in &self.control_input {
802            os.write_int32(8, *v)?;
803        };
804        if self.inaccurate != false {
805            os.write_bool(17, self.inaccurate)?;
806        }
807        os.write_unknown_fields(self.get_unknown_fields())?;
808        ::std::result::Result::Ok(())
809    }
810
811    fn get_cached_size(&self) -> u32 {
812        self.cached_size.get()
813    }
814
815    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
816        &self.unknown_fields
817    }
818
819    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
820        &mut self.unknown_fields
821    }
822
823    fn as_any(&self) -> &dyn (::std::any::Any) {
824        self as &dyn (::std::any::Any)
825    }
826    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
827        self as &mut dyn (::std::any::Any)
828    }
829    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
830        self
831    }
832
833    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
834        Self::descriptor_static()
835    }
836
837    fn new() -> CostGraphDef_Node {
838        CostGraphDef_Node::new()
839    }
840
841    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
842        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
843        unsafe {
844            descriptor.get(|| {
845                let mut fields = ::std::vec::Vec::new();
846                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
847                    "name",
848                    |m: &CostGraphDef_Node| { &m.name },
849                    |m: &mut CostGraphDef_Node| { &mut m.name },
850                ));
851                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
852                    "device",
853                    |m: &CostGraphDef_Node| { &m.device },
854                    |m: &mut CostGraphDef_Node| { &mut m.device },
855                ));
856                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
857                    "id",
858                    |m: &CostGraphDef_Node| { &m.id },
859                    |m: &mut CostGraphDef_Node| { &mut m.id },
860                ));
861                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CostGraphDef_Node_InputInfo>>(
862                    "input_info",
863                    |m: &CostGraphDef_Node| { &m.input_info },
864                    |m: &mut CostGraphDef_Node| { &mut m.input_info },
865                ));
866                fields.push(::protobuf::reflect::accessor::make_repeated_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<CostGraphDef_Node_OutputInfo>>(
867                    "output_info",
868                    |m: &CostGraphDef_Node| { &m.output_info },
869                    |m: &mut CostGraphDef_Node| { &mut m.output_info },
870                ));
871                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
872                    "temporary_memory_size",
873                    |m: &CostGraphDef_Node| { &m.temporary_memory_size },
874                    |m: &mut CostGraphDef_Node| { &mut m.temporary_memory_size },
875                ));
876                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
877                    "persistent_memory_size",
878                    |m: &CostGraphDef_Node| { &m.persistent_memory_size },
879                    |m: &mut CostGraphDef_Node| { &mut m.persistent_memory_size },
880                ));
881                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
882                    "host_temp_memory_size",
883                    |m: &CostGraphDef_Node| { &m.host_temp_memory_size },
884                    |m: &mut CostGraphDef_Node| { &mut m.host_temp_memory_size },
885                ));
886                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
887                    "device_temp_memory_size",
888                    |m: &CostGraphDef_Node| { &m.device_temp_memory_size },
889                    |m: &mut CostGraphDef_Node| { &mut m.device_temp_memory_size },
890                ));
891                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
892                    "device_persistent_memory_size",
893                    |m: &CostGraphDef_Node| { &m.device_persistent_memory_size },
894                    |m: &mut CostGraphDef_Node| { &mut m.device_persistent_memory_size },
895                ));
896                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
897                    "compute_cost",
898                    |m: &CostGraphDef_Node| { &m.compute_cost },
899                    |m: &mut CostGraphDef_Node| { &mut m.compute_cost },
900                ));
901                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
902                    "compute_time",
903                    |m: &CostGraphDef_Node| { &m.compute_time },
904                    |m: &mut CostGraphDef_Node| { &mut m.compute_time },
905                ));
906                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
907                    "memory_time",
908                    |m: &CostGraphDef_Node| { &m.memory_time },
909                    |m: &mut CostGraphDef_Node| { &mut m.memory_time },
910                ));
911                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
912                    "is_final",
913                    |m: &CostGraphDef_Node| { &m.is_final },
914                    |m: &mut CostGraphDef_Node| { &mut m.is_final },
915                ));
916                fields.push(::protobuf::reflect::accessor::make_vec_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
917                    "control_input",
918                    |m: &CostGraphDef_Node| { &m.control_input },
919                    |m: &mut CostGraphDef_Node| { &mut m.control_input },
920                ));
921                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeBool>(
922                    "inaccurate",
923                    |m: &CostGraphDef_Node| { &m.inaccurate },
924                    |m: &mut CostGraphDef_Node| { &mut m.inaccurate },
925                ));
926                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CostGraphDef_Node>(
927                    "CostGraphDef.Node",
928                    fields,
929                    file_descriptor_proto()
930                )
931            })
932        }
933    }
934
935    fn default_instance() -> &'static CostGraphDef_Node {
936        static mut instance: ::protobuf::lazy::Lazy<CostGraphDef_Node> = ::protobuf::lazy::Lazy::INIT;
937        unsafe {
938            instance.get(CostGraphDef_Node::new)
939        }
940    }
941}
942
943impl ::protobuf::Clear for CostGraphDef_Node {
944    fn clear(&mut self) {
945        self.name.clear();
946        self.device.clear();
947        self.id = 0;
948        self.input_info.clear();
949        self.output_info.clear();
950        self.temporary_memory_size = 0;
951        self.persistent_memory_size = 0;
952        self.host_temp_memory_size = 0;
953        self.device_temp_memory_size = 0;
954        self.device_persistent_memory_size = 0;
955        self.compute_cost = 0;
956        self.compute_time = 0;
957        self.memory_time = 0;
958        self.is_final = false;
959        self.control_input.clear();
960        self.inaccurate = false;
961        self.unknown_fields.clear();
962    }
963}
964
965impl ::std::fmt::Debug for CostGraphDef_Node {
966    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
967        ::protobuf::text_format::fmt(self, f)
968    }
969}
970
971impl ::protobuf::reflect::ProtobufValue for CostGraphDef_Node {
972    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
973        ::protobuf::reflect::ReflectValueRef::Message(self)
974    }
975}
976
977#[derive(PartialEq,Clone,Default)]
978pub struct CostGraphDef_Node_InputInfo {
979    // message fields
980    pub preceding_node: i32,
981    pub preceding_port: i32,
982    // special fields
983    pub unknown_fields: ::protobuf::UnknownFields,
984    pub cached_size: ::protobuf::CachedSize,
985}
986
987impl<'a> ::std::default::Default for &'a CostGraphDef_Node_InputInfo {
988    fn default() -> &'a CostGraphDef_Node_InputInfo {
989        <CostGraphDef_Node_InputInfo as ::protobuf::Message>::default_instance()
990    }
991}
992
993impl CostGraphDef_Node_InputInfo {
994    pub fn new() -> CostGraphDef_Node_InputInfo {
995        ::std::default::Default::default()
996    }
997
998    // int32 preceding_node = 1;
999
1000
1001    pub fn get_preceding_node(&self) -> i32 {
1002        self.preceding_node
1003    }
1004    pub fn clear_preceding_node(&mut self) {
1005        self.preceding_node = 0;
1006    }
1007
1008    // Param is passed by value, moved
1009    pub fn set_preceding_node(&mut self, v: i32) {
1010        self.preceding_node = v;
1011    }
1012
1013    // int32 preceding_port = 2;
1014
1015
1016    pub fn get_preceding_port(&self) -> i32 {
1017        self.preceding_port
1018    }
1019    pub fn clear_preceding_port(&mut self) {
1020        self.preceding_port = 0;
1021    }
1022
1023    // Param is passed by value, moved
1024    pub fn set_preceding_port(&mut self, v: i32) {
1025        self.preceding_port = v;
1026    }
1027}
1028
1029impl ::protobuf::Message for CostGraphDef_Node_InputInfo {
1030    fn is_initialized(&self) -> bool {
1031        true
1032    }
1033
1034    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1035        while !is.eof()? {
1036            let (field_number, wire_type) = is.read_tag_unpack()?;
1037            match field_number {
1038                1 => {
1039                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1040                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1041                    }
1042                    let tmp = is.read_int32()?;
1043                    self.preceding_node = tmp;
1044                },
1045                2 => {
1046                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1047                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1048                    }
1049                    let tmp = is.read_int32()?;
1050                    self.preceding_port = tmp;
1051                },
1052                _ => {
1053                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1054                },
1055            };
1056        }
1057        ::std::result::Result::Ok(())
1058    }
1059
1060    // Compute sizes of nested messages
1061    #[allow(unused_variables)]
1062    fn compute_size(&self) -> u32 {
1063        let mut my_size = 0;
1064        if self.preceding_node != 0 {
1065            my_size += ::protobuf::rt::value_size(1, self.preceding_node, ::protobuf::wire_format::WireTypeVarint);
1066        }
1067        if self.preceding_port != 0 {
1068            my_size += ::protobuf::rt::value_size(2, self.preceding_port, ::protobuf::wire_format::WireTypeVarint);
1069        }
1070        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1071        self.cached_size.set(my_size);
1072        my_size
1073    }
1074
1075    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1076        if self.preceding_node != 0 {
1077            os.write_int32(1, self.preceding_node)?;
1078        }
1079        if self.preceding_port != 0 {
1080            os.write_int32(2, self.preceding_port)?;
1081        }
1082        os.write_unknown_fields(self.get_unknown_fields())?;
1083        ::std::result::Result::Ok(())
1084    }
1085
1086    fn get_cached_size(&self) -> u32 {
1087        self.cached_size.get()
1088    }
1089
1090    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1091        &self.unknown_fields
1092    }
1093
1094    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1095        &mut self.unknown_fields
1096    }
1097
1098    fn as_any(&self) -> &dyn (::std::any::Any) {
1099        self as &dyn (::std::any::Any)
1100    }
1101    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1102        self as &mut dyn (::std::any::Any)
1103    }
1104    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1105        self
1106    }
1107
1108    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1109        Self::descriptor_static()
1110    }
1111
1112    fn new() -> CostGraphDef_Node_InputInfo {
1113        CostGraphDef_Node_InputInfo::new()
1114    }
1115
1116    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1117        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1118        unsafe {
1119            descriptor.get(|| {
1120                let mut fields = ::std::vec::Vec::new();
1121                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1122                    "preceding_node",
1123                    |m: &CostGraphDef_Node_InputInfo| { &m.preceding_node },
1124                    |m: &mut CostGraphDef_Node_InputInfo| { &mut m.preceding_node },
1125                ));
1126                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt32>(
1127                    "preceding_port",
1128                    |m: &CostGraphDef_Node_InputInfo| { &m.preceding_port },
1129                    |m: &mut CostGraphDef_Node_InputInfo| { &mut m.preceding_port },
1130                ));
1131                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CostGraphDef_Node_InputInfo>(
1132                    "CostGraphDef.Node.InputInfo",
1133                    fields,
1134                    file_descriptor_proto()
1135                )
1136            })
1137        }
1138    }
1139
1140    fn default_instance() -> &'static CostGraphDef_Node_InputInfo {
1141        static mut instance: ::protobuf::lazy::Lazy<CostGraphDef_Node_InputInfo> = ::protobuf::lazy::Lazy::INIT;
1142        unsafe {
1143            instance.get(CostGraphDef_Node_InputInfo::new)
1144        }
1145    }
1146}
1147
1148impl ::protobuf::Clear for CostGraphDef_Node_InputInfo {
1149    fn clear(&mut self) {
1150        self.preceding_node = 0;
1151        self.preceding_port = 0;
1152        self.unknown_fields.clear();
1153    }
1154}
1155
1156impl ::std::fmt::Debug for CostGraphDef_Node_InputInfo {
1157    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1158        ::protobuf::text_format::fmt(self, f)
1159    }
1160}
1161
1162impl ::protobuf::reflect::ProtobufValue for CostGraphDef_Node_InputInfo {
1163    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1164        ::protobuf::reflect::ReflectValueRef::Message(self)
1165    }
1166}
1167
1168#[derive(PartialEq,Clone,Default)]
1169pub struct CostGraphDef_Node_OutputInfo {
1170    // message fields
1171    pub size: i64,
1172    pub alias_input_port: i64,
1173    pub shape: ::protobuf::SingularPtrField<super::tensor_shape::TensorShapeProto>,
1174    pub dtype: super::types::DataType,
1175    // special fields
1176    pub unknown_fields: ::protobuf::UnknownFields,
1177    pub cached_size: ::protobuf::CachedSize,
1178}
1179
1180impl<'a> ::std::default::Default for &'a CostGraphDef_Node_OutputInfo {
1181    fn default() -> &'a CostGraphDef_Node_OutputInfo {
1182        <CostGraphDef_Node_OutputInfo as ::protobuf::Message>::default_instance()
1183    }
1184}
1185
1186impl CostGraphDef_Node_OutputInfo {
1187    pub fn new() -> CostGraphDef_Node_OutputInfo {
1188        ::std::default::Default::default()
1189    }
1190
1191    // int64 size = 1;
1192
1193
1194    pub fn get_size(&self) -> i64 {
1195        self.size
1196    }
1197    pub fn clear_size(&mut self) {
1198        self.size = 0;
1199    }
1200
1201    // Param is passed by value, moved
1202    pub fn set_size(&mut self, v: i64) {
1203        self.size = v;
1204    }
1205
1206    // int64 alias_input_port = 2;
1207
1208
1209    pub fn get_alias_input_port(&self) -> i64 {
1210        self.alias_input_port
1211    }
1212    pub fn clear_alias_input_port(&mut self) {
1213        self.alias_input_port = 0;
1214    }
1215
1216    // Param is passed by value, moved
1217    pub fn set_alias_input_port(&mut self, v: i64) {
1218        self.alias_input_port = v;
1219    }
1220
1221    // .tensorflow.TensorShapeProto shape = 3;
1222
1223
1224    pub fn get_shape(&self) -> &super::tensor_shape::TensorShapeProto {
1225        self.shape.as_ref().unwrap_or_else(|| super::tensor_shape::TensorShapeProto::default_instance())
1226    }
1227    pub fn clear_shape(&mut self) {
1228        self.shape.clear();
1229    }
1230
1231    pub fn has_shape(&self) -> bool {
1232        self.shape.is_some()
1233    }
1234
1235    // Param is passed by value, moved
1236    pub fn set_shape(&mut self, v: super::tensor_shape::TensorShapeProto) {
1237        self.shape = ::protobuf::SingularPtrField::some(v);
1238    }
1239
1240    // Mutable pointer to the field.
1241    // If field is not initialized, it is initialized with default value first.
1242    pub fn mut_shape(&mut self) -> &mut super::tensor_shape::TensorShapeProto {
1243        if self.shape.is_none() {
1244            self.shape.set_default();
1245        }
1246        self.shape.as_mut().unwrap()
1247    }
1248
1249    // Take field
1250    pub fn take_shape(&mut self) -> super::tensor_shape::TensorShapeProto {
1251        self.shape.take().unwrap_or_else(|| super::tensor_shape::TensorShapeProto::new())
1252    }
1253
1254    // .tensorflow.DataType dtype = 4;
1255
1256
1257    pub fn get_dtype(&self) -> super::types::DataType {
1258        self.dtype
1259    }
1260    pub fn clear_dtype(&mut self) {
1261        self.dtype = super::types::DataType::DT_INVALID;
1262    }
1263
1264    // Param is passed by value, moved
1265    pub fn set_dtype(&mut self, v: super::types::DataType) {
1266        self.dtype = v;
1267    }
1268}
1269
1270impl ::protobuf::Message for CostGraphDef_Node_OutputInfo {
1271    fn is_initialized(&self) -> bool {
1272        for v in &self.shape {
1273            if !v.is_initialized() {
1274                return false;
1275            }
1276        };
1277        true
1278    }
1279
1280    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1281        while !is.eof()? {
1282            let (field_number, wire_type) = is.read_tag_unpack()?;
1283            match field_number {
1284                1 => {
1285                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1286                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1287                    }
1288                    let tmp = is.read_int64()?;
1289                    self.size = tmp;
1290                },
1291                2 => {
1292                    if wire_type != ::protobuf::wire_format::WireTypeVarint {
1293                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1294                    }
1295                    let tmp = is.read_int64()?;
1296                    self.alias_input_port = tmp;
1297                },
1298                3 => {
1299                    ::protobuf::rt::read_singular_message_into(wire_type, is, &mut self.shape)?;
1300                },
1301                4 => {
1302                    ::protobuf::rt::read_proto3_enum_with_unknown_fields_into(wire_type, is, &mut self.dtype, 4, &mut self.unknown_fields)?
1303                },
1304                _ => {
1305                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1306                },
1307            };
1308        }
1309        ::std::result::Result::Ok(())
1310    }
1311
1312    // Compute sizes of nested messages
1313    #[allow(unused_variables)]
1314    fn compute_size(&self) -> u32 {
1315        let mut my_size = 0;
1316        if self.size != 0 {
1317            my_size += ::protobuf::rt::value_size(1, self.size, ::protobuf::wire_format::WireTypeVarint);
1318        }
1319        if self.alias_input_port != 0 {
1320            my_size += ::protobuf::rt::value_size(2, self.alias_input_port, ::protobuf::wire_format::WireTypeVarint);
1321        }
1322        if let Some(ref v) = self.shape.as_ref() {
1323            let len = v.compute_size();
1324            my_size += 1 + ::protobuf::rt::compute_raw_varint32_size(len) + len;
1325        }
1326        if self.dtype != super::types::DataType::DT_INVALID {
1327            my_size += ::protobuf::rt::enum_size(4, self.dtype);
1328        }
1329        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1330        self.cached_size.set(my_size);
1331        my_size
1332    }
1333
1334    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1335        if self.size != 0 {
1336            os.write_int64(1, self.size)?;
1337        }
1338        if self.alias_input_port != 0 {
1339            os.write_int64(2, self.alias_input_port)?;
1340        }
1341        if let Some(ref v) = self.shape.as_ref() {
1342            os.write_tag(3, ::protobuf::wire_format::WireTypeLengthDelimited)?;
1343            os.write_raw_varint32(v.get_cached_size())?;
1344            v.write_to_with_cached_sizes(os)?;
1345        }
1346        if self.dtype != super::types::DataType::DT_INVALID {
1347            os.write_enum(4, self.dtype.value())?;
1348        }
1349        os.write_unknown_fields(self.get_unknown_fields())?;
1350        ::std::result::Result::Ok(())
1351    }
1352
1353    fn get_cached_size(&self) -> u32 {
1354        self.cached_size.get()
1355    }
1356
1357    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1358        &self.unknown_fields
1359    }
1360
1361    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1362        &mut self.unknown_fields
1363    }
1364
1365    fn as_any(&self) -> &dyn (::std::any::Any) {
1366        self as &dyn (::std::any::Any)
1367    }
1368    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1369        self as &mut dyn (::std::any::Any)
1370    }
1371    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1372        self
1373    }
1374
1375    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1376        Self::descriptor_static()
1377    }
1378
1379    fn new() -> CostGraphDef_Node_OutputInfo {
1380        CostGraphDef_Node_OutputInfo::new()
1381    }
1382
1383    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1384        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1385        unsafe {
1386            descriptor.get(|| {
1387                let mut fields = ::std::vec::Vec::new();
1388                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1389                    "size",
1390                    |m: &CostGraphDef_Node_OutputInfo| { &m.size },
1391                    |m: &mut CostGraphDef_Node_OutputInfo| { &mut m.size },
1392                ));
1393                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>(
1394                    "alias_input_port",
1395                    |m: &CostGraphDef_Node_OutputInfo| { &m.alias_input_port },
1396                    |m: &mut CostGraphDef_Node_OutputInfo| { &mut m.alias_input_port },
1397                ));
1398                fields.push(::protobuf::reflect::accessor::make_singular_ptr_field_accessor::<_, ::protobuf::types::ProtobufTypeMessage<super::tensor_shape::TensorShapeProto>>(
1399                    "shape",
1400                    |m: &CostGraphDef_Node_OutputInfo| { &m.shape },
1401                    |m: &mut CostGraphDef_Node_OutputInfo| { &mut m.shape },
1402                ));
1403                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeEnum<super::types::DataType>>(
1404                    "dtype",
1405                    |m: &CostGraphDef_Node_OutputInfo| { &m.dtype },
1406                    |m: &mut CostGraphDef_Node_OutputInfo| { &mut m.dtype },
1407                ));
1408                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CostGraphDef_Node_OutputInfo>(
1409                    "CostGraphDef.Node.OutputInfo",
1410                    fields,
1411                    file_descriptor_proto()
1412                )
1413            })
1414        }
1415    }
1416
1417    fn default_instance() -> &'static CostGraphDef_Node_OutputInfo {
1418        static mut instance: ::protobuf::lazy::Lazy<CostGraphDef_Node_OutputInfo> = ::protobuf::lazy::Lazy::INIT;
1419        unsafe {
1420            instance.get(CostGraphDef_Node_OutputInfo::new)
1421        }
1422    }
1423}
1424
1425impl ::protobuf::Clear for CostGraphDef_Node_OutputInfo {
1426    fn clear(&mut self) {
1427        self.size = 0;
1428        self.alias_input_port = 0;
1429        self.shape.clear();
1430        self.dtype = super::types::DataType::DT_INVALID;
1431        self.unknown_fields.clear();
1432    }
1433}
1434
1435impl ::std::fmt::Debug for CostGraphDef_Node_OutputInfo {
1436    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1437        ::protobuf::text_format::fmt(self, f)
1438    }
1439}
1440
1441impl ::protobuf::reflect::ProtobufValue for CostGraphDef_Node_OutputInfo {
1442    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1443        ::protobuf::reflect::ReflectValueRef::Message(self)
1444    }
1445}
1446
1447#[derive(PartialEq,Clone,Default)]
1448pub struct CostGraphDef_AggregatedCost {
1449    // message fields
1450    pub cost: f32,
1451    pub dimension: ::std::string::String,
1452    // special fields
1453    pub unknown_fields: ::protobuf::UnknownFields,
1454    pub cached_size: ::protobuf::CachedSize,
1455}
1456
1457impl<'a> ::std::default::Default for &'a CostGraphDef_AggregatedCost {
1458    fn default() -> &'a CostGraphDef_AggregatedCost {
1459        <CostGraphDef_AggregatedCost as ::protobuf::Message>::default_instance()
1460    }
1461}
1462
1463impl CostGraphDef_AggregatedCost {
1464    pub fn new() -> CostGraphDef_AggregatedCost {
1465        ::std::default::Default::default()
1466    }
1467
1468    // float cost = 1;
1469
1470
1471    pub fn get_cost(&self) -> f32 {
1472        self.cost
1473    }
1474    pub fn clear_cost(&mut self) {
1475        self.cost = 0.;
1476    }
1477
1478    // Param is passed by value, moved
1479    pub fn set_cost(&mut self, v: f32) {
1480        self.cost = v;
1481    }
1482
1483    // string dimension = 2;
1484
1485
1486    pub fn get_dimension(&self) -> &str {
1487        &self.dimension
1488    }
1489    pub fn clear_dimension(&mut self) {
1490        self.dimension.clear();
1491    }
1492
1493    // Param is passed by value, moved
1494    pub fn set_dimension(&mut self, v: ::std::string::String) {
1495        self.dimension = v;
1496    }
1497
1498    // Mutable pointer to the field.
1499    // If field is not initialized, it is initialized with default value first.
1500    pub fn mut_dimension(&mut self) -> &mut ::std::string::String {
1501        &mut self.dimension
1502    }
1503
1504    // Take field
1505    pub fn take_dimension(&mut self) -> ::std::string::String {
1506        ::std::mem::replace(&mut self.dimension, ::std::string::String::new())
1507    }
1508}
1509
1510impl ::protobuf::Message for CostGraphDef_AggregatedCost {
1511    fn is_initialized(&self) -> bool {
1512        true
1513    }
1514
1515    fn merge_from(&mut self, is: &mut ::protobuf::CodedInputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1516        while !is.eof()? {
1517            let (field_number, wire_type) = is.read_tag_unpack()?;
1518            match field_number {
1519                1 => {
1520                    if wire_type != ::protobuf::wire_format::WireTypeFixed32 {
1521                        return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type));
1522                    }
1523                    let tmp = is.read_float()?;
1524                    self.cost = tmp;
1525                },
1526                2 => {
1527                    ::protobuf::rt::read_singular_proto3_string_into(wire_type, is, &mut self.dimension)?;
1528                },
1529                _ => {
1530                    ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?;
1531                },
1532            };
1533        }
1534        ::std::result::Result::Ok(())
1535    }
1536
1537    // Compute sizes of nested messages
1538    #[allow(unused_variables)]
1539    fn compute_size(&self) -> u32 {
1540        let mut my_size = 0;
1541        if self.cost != 0. {
1542            my_size += 5;
1543        }
1544        if !self.dimension.is_empty() {
1545            my_size += ::protobuf::rt::string_size(2, &self.dimension);
1546        }
1547        my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields());
1548        self.cached_size.set(my_size);
1549        my_size
1550    }
1551
1552    fn write_to_with_cached_sizes(&self, os: &mut ::protobuf::CodedOutputStream<'_>) -> ::protobuf::ProtobufResult<()> {
1553        if self.cost != 0. {
1554            os.write_float(1, self.cost)?;
1555        }
1556        if !self.dimension.is_empty() {
1557            os.write_string(2, &self.dimension)?;
1558        }
1559        os.write_unknown_fields(self.get_unknown_fields())?;
1560        ::std::result::Result::Ok(())
1561    }
1562
1563    fn get_cached_size(&self) -> u32 {
1564        self.cached_size.get()
1565    }
1566
1567    fn get_unknown_fields(&self) -> &::protobuf::UnknownFields {
1568        &self.unknown_fields
1569    }
1570
1571    fn mut_unknown_fields(&mut self) -> &mut ::protobuf::UnknownFields {
1572        &mut self.unknown_fields
1573    }
1574
1575    fn as_any(&self) -> &dyn (::std::any::Any) {
1576        self as &dyn (::std::any::Any)
1577    }
1578    fn as_any_mut(&mut self) -> &mut dyn (::std::any::Any) {
1579        self as &mut dyn (::std::any::Any)
1580    }
1581    fn into_any(self: Box<Self>) -> ::std::boxed::Box<dyn (::std::any::Any)> {
1582        self
1583    }
1584
1585    fn descriptor(&self) -> &'static ::protobuf::reflect::MessageDescriptor {
1586        Self::descriptor_static()
1587    }
1588
1589    fn new() -> CostGraphDef_AggregatedCost {
1590        CostGraphDef_AggregatedCost::new()
1591    }
1592
1593    fn descriptor_static() -> &'static ::protobuf::reflect::MessageDescriptor {
1594        static mut descriptor: ::protobuf::lazy::Lazy<::protobuf::reflect::MessageDescriptor> = ::protobuf::lazy::Lazy::INIT;
1595        unsafe {
1596            descriptor.get(|| {
1597                let mut fields = ::std::vec::Vec::new();
1598                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeFloat>(
1599                    "cost",
1600                    |m: &CostGraphDef_AggregatedCost| { &m.cost },
1601                    |m: &mut CostGraphDef_AggregatedCost| { &mut m.cost },
1602                ));
1603                fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeString>(
1604                    "dimension",
1605                    |m: &CostGraphDef_AggregatedCost| { &m.dimension },
1606                    |m: &mut CostGraphDef_AggregatedCost| { &mut m.dimension },
1607                ));
1608                ::protobuf::reflect::MessageDescriptor::new_pb_name::<CostGraphDef_AggregatedCost>(
1609                    "CostGraphDef.AggregatedCost",
1610                    fields,
1611                    file_descriptor_proto()
1612                )
1613            })
1614        }
1615    }
1616
1617    fn default_instance() -> &'static CostGraphDef_AggregatedCost {
1618        static mut instance: ::protobuf::lazy::Lazy<CostGraphDef_AggregatedCost> = ::protobuf::lazy::Lazy::INIT;
1619        unsafe {
1620            instance.get(CostGraphDef_AggregatedCost::new)
1621        }
1622    }
1623}
1624
1625impl ::protobuf::Clear for CostGraphDef_AggregatedCost {
1626    fn clear(&mut self) {
1627        self.cost = 0.;
1628        self.dimension.clear();
1629        self.unknown_fields.clear();
1630    }
1631}
1632
1633impl ::std::fmt::Debug for CostGraphDef_AggregatedCost {
1634    fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
1635        ::protobuf::text_format::fmt(self, f)
1636    }
1637}
1638
1639impl ::protobuf::reflect::ProtobufValue for CostGraphDef_AggregatedCost {
1640    fn as_ref(&self) -> ::protobuf::reflect::ReflectValueRef {
1641        ::protobuf::reflect::ReflectValueRef::Message(self)
1642    }
1643}
1644
1645static file_descriptor_proto_data: &'static [u8] = b"\
1646    \n*tensorflow/core/framework/cost_graph.proto\x12\ntensorflow\x1a,tensor\
1647    flow/core/framework/tensor_shape.proto\x1a%tensorflow/core/framework/typ\
1648    es.proto\"\x8c\t\n\x0cCostGraphDef\x121\n\x04node\x18\x01\x20\x03(\x0b2\
1649    \x1d.tensorflow.CostGraphDef.NodeR\x04node\x12;\n\x04cost\x18\x02\x20\
1650    \x03(\x0b2'.tensorflow.CostGraphDef.AggregatedCostR\x04cost\x1a\xc7\x07\
1651    \n\x04Node\x12\x12\n\x04name\x18\x01\x20\x01(\tR\x04name\x12\x16\n\x06de\
1652    vice\x18\x02\x20\x01(\tR\x06device\x12\x0e\n\x02id\x18\x03\x20\x01(\x05R\
1653    \x02id\x12F\n\ninput_info\x18\x04\x20\x03(\x0b2'.tensorflow.CostGraphDef\
1654    .Node.InputInfoR\tinputInfo\x12I\n\x0boutput_info\x18\x05\x20\x03(\x0b2(\
1655    .tensorflow.CostGraphDef.Node.OutputInfoR\noutputInfo\x122\n\x15temporar\
1656    y_memory_size\x18\x06\x20\x01(\x03R\x13temporaryMemorySize\x124\n\x16per\
1657    sistent_memory_size\x18\x0c\x20\x01(\x03R\x14persistentMemorySize\x125\n\
1658    \x15host_temp_memory_size\x18\n\x20\x01(\x03R\x12hostTempMemorySizeB\x02\
1659    \x18\x01\x129\n\x17device_temp_memory_size\x18\x0b\x20\x01(\x03R\x14devi\
1660    ceTempMemorySizeB\x02\x18\x01\x12E\n\x1ddevice_persistent_memory_size\
1661    \x18\x10\x20\x01(\x03R\x1adevicePersistentMemorySizeB\x02\x18\x01\x12!\n\
1662    \x0ccompute_cost\x18\t\x20\x01(\x03R\x0bcomputeCost\x12!\n\x0ccompute_ti\
1663    me\x18\x0e\x20\x01(\x03R\x0bcomputeTime\x12\x1f\n\x0bmemory_time\x18\x0f\
1664    \x20\x01(\x03R\nmemoryTime\x12\x19\n\x08is_final\x18\x07\x20\x01(\x08R\
1665    \x07isFinal\x12#\n\rcontrol_input\x18\x08\x20\x03(\x05R\x0ccontrolInput\
1666    \x12\x1e\n\ninaccurate\x18\x11\x20\x01(\x08R\ninaccurate\x1aY\n\tInputIn\
1667    fo\x12%\n\x0epreceding_node\x18\x01\x20\x01(\x05R\rprecedingNode\x12%\n\
1668    \x0epreceding_port\x18\x02\x20\x01(\x05R\rprecedingPort\x1a\xaa\x01\n\nO\
1669    utputInfo\x12\x12\n\x04size\x18\x01\x20\x01(\x03R\x04size\x12(\n\x10alia\
1670    s_input_port\x18\x02\x20\x01(\x03R\x0ealiasInputPort\x122\n\x05shape\x18\
1671    \x03\x20\x01(\x0b2\x1c.tensorflow.TensorShapeProtoR\x05shape\x12*\n\x05d\
1672    type\x18\x04\x20\x01(\x0e2\x14.tensorflow.DataTypeR\x05dtype\x1aB\n\x0eA\
1673    ggregatedCost\x12\x12\n\x04cost\x18\x01\x20\x01(\x02R\x04cost\x12\x1c\n\
1674    \tdimension\x18\x02\x20\x01(\tR\tdimensionB\x83\x01\n\x18org.tensorflow.\
1675    frameworkB\x0fCostGraphProtosP\x01ZQgithub.com/tensorflow/tensorflow/ten\
1676    sorflow/go/core/framework/cost_graph_go_proto\xf8\x01\x01J\xf7\x1a\n\x06\
1677    \x12\x04\0\0X\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\
1678    \x03\x02\0\x13\n\t\n\x02\x03\0\x12\x03\x04\06\n\t\n\x02\x03\x01\x12\x03\
1679    \x05\0/\n\x08\n\x01\x08\x12\x03\x07\0\x1f\n\t\n\x02\x08\x1f\x12\x03\x07\
1680    \0\x1f\n\x08\n\x01\x08\x12\x03\x08\00\n\t\n\x02\x08\x08\x12\x03\x08\00\n\
1681    \x08\n\x01\x08\x12\x03\t\0\"\n\t\n\x02\x08\n\x12\x03\t\0\"\n\x08\n\x01\
1682    \x08\x12\x03\n\01\n\t\n\x02\x08\x01\x12\x03\n\01\n\x08\n\x01\x08\x12\x03\
1683    \x0b\0h\n\t\n\x02\x08\x0b\x12\x03\x0b\0h\n\n\n\x02\x04\0\x12\x04\r\0X\
1684    \x01\n\n\n\x03\x04\0\x01\x12\x03\r\x08\x14\n\x0c\n\x04\x04\0\x03\0\x12\
1685    \x04\x0e\x02L\x03\n\x0c\n\x05\x04\0\x03\0\x01\x12\x03\x0e\n\x0e\nA\n\x06\
1686    \x04\0\x03\0\x02\0\x12\x03\x10\x04\x14\x1a2\x20The\x20name\x20of\x20the\
1687    \x20node.\x20Names\x20are\x20globally\x20unique.\n\n\x0e\n\x07\x04\0\x03\
1688    \0\x02\0\x05\x12\x03\x10\x04\n\n\x0e\n\x07\x04\0\x03\0\x02\0\x01\x12\x03\
1689    \x10\x0b\x0f\n\x0e\n\x07\x04\0\x03\0\x02\0\x03\x12\x03\x10\x12\x13\n\x8a\
1690    \x01\n\x06\x04\0\x03\0\x02\x01\x12\x03\x14\x04\x16\x1a{\x20The\x20device\
1691    \x20of\x20the\x20node.\x20Can\x20be\x20empty\x20if\x20the\x20node\x20is\
1692    \x20mapped\x20to\x20the\n\x20default\x20partition\x20or\x20partitioning\
1693    \x20hasn't\x20been\x20run\x20yet.\n\n\x0e\n\x07\x04\0\x03\0\x02\x01\x05\
1694    \x12\x03\x14\x04\n\n\x0e\n\x07\x04\0\x03\0\x02\x01\x01\x12\x03\x14\x0b\
1695    \x11\n\x0e\n\x07\x04\0\x03\0\x02\x01\x03\x12\x03\x14\x14\x15\nQ\n\x06\
1696    \x04\0\x03\0\x02\x02\x12\x03\x17\x04\x11\x1aB\x20The\x20id\x20of\x20the\
1697    \x20node.\x20Node\x20ids\x20are\x20only\x20unique\x20inside\x20a\x20part\
1698    ition.\n\n\x0e\n\x07\x04\0\x03\0\x02\x02\x05\x12\x03\x17\x04\t\n\x0e\n\
1699    \x07\x04\0\x03\0\x02\x02\x01\x12\x03\x17\n\x0c\n\x0e\n\x07\x04\0\x03\0\
1700    \x02\x02\x03\x12\x03\x17\x0f\x10\n\xc1\x01\n\x06\x04\0\x03\0\x03\0\x12\
1701    \x04\x1c\x04\x1f\x05\x1a\xb0\x01\x20Inputs\x20of\x20this\x20node.\x20The\
1702    y\x20must\x20be\x20executed\x20before\x20this\x20node\x20can\x20be\n\x20\
1703    executed.\x20An\x20input\x20is\x20a\x20particular\x20output\x20of\x20ano\
1704    ther\x20node,\x20specified\n\x20by\x20the\x20node\x20id\x20and\x20the\
1705    \x20output\x20index.\n\n\x0e\n\x07\x04\0\x03\0\x03\0\x01\x12\x03\x1c\x0c\
1706    \x15\n\x0f\n\x08\x04\0\x03\0\x03\0\x02\0\x12\x03\x1d\x06\x1f\n\x10\n\t\
1707    \x04\0\x03\0\x03\0\x02\0\x05\x12\x03\x1d\x06\x0b\n\x10\n\t\x04\0\x03\0\
1708    \x03\0\x02\0\x01\x12\x03\x1d\x0c\x1a\n\x10\n\t\x04\0\x03\0\x03\0\x02\0\
1709    \x03\x12\x03\x1d\x1d\x1e\n\x0f\n\x08\x04\0\x03\0\x03\0\x02\x01\x12\x03\
1710    \x1e\x06\x1f\n\x10\n\t\x04\0\x03\0\x03\0\x02\x01\x05\x12\x03\x1e\x06\x0b\
1711    \n\x10\n\t\x04\0\x03\0\x03\0\x02\x01\x01\x12\x03\x1e\x0c\x1a\n\x10\n\t\
1712    \x04\0\x03\0\x03\0\x02\x01\x03\x12\x03\x1e\x1d\x1e\n\r\n\x06\x04\0\x03\0\
1713    \x02\x03\x12\x03\x20\x04&\n\x0e\n\x07\x04\0\x03\0\x02\x03\x04\x12\x03\
1714    \x20\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x03\x06\x12\x03\x20\r\x16\n\x0e\
1715    \n\x07\x04\0\x03\0\x02\x03\x01\x12\x03\x20\x17!\n\x0e\n\x07\x04\0\x03\0\
1716    \x02\x03\x03\x12\x03\x20$%\n'\n\x06\x04\0\x03\0\x03\x01\x12\x04#\x04+\
1717    \x05\x1a\x17\x20Outputs\x20of\x20this\x20node.\n\n\x0e\n\x07\x04\0\x03\0\
1718    \x03\x01\x01\x12\x03#\x0c\x16\n\x0f\n\x08\x04\0\x03\0\x03\x01\x02\0\x12\
1719    \x03$\x06\x15\n\x10\n\t\x04\0\x03\0\x03\x01\x02\0\x05\x12\x03$\x06\x0b\n\
1720    \x10\n\t\x04\0\x03\0\x03\x01\x02\0\x01\x12\x03$\x0c\x10\n\x10\n\t\x04\0\
1721    \x03\0\x03\x01\x02\0\x03\x12\x03$\x13\x14\n\xaf\x01\n\x08\x04\0\x03\0\
1722    \x03\x01\x02\x01\x12\x03(\x06!\x1a\x9d\x01\x20If\x20>=\x200,\x20the\x20o\
1723    utput\x20is\x20an\x20alias\x20of\x20an\x20input.\x20Note\x20that\x20an\
1724    \x20alias\x20input\n\x20may\x20itself\x20be\x20an\x20alias.\x20The\x20al\
1725    gorithm\x20will\x20therefore\x20need\x20to\x20follow\n\x20those\x20point\
1726    ers.\n\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x01\x05\x12\x03(\x06\x0b\n\x10\
1727    \n\t\x04\0\x03\0\x03\x01\x02\x01\x01\x12\x03(\x0c\x1c\n\x10\n\t\x04\0\
1728    \x03\0\x03\x01\x02\x01\x03\x12\x03(\x1f\x20\n\x0f\n\x08\x04\0\x03\0\x03\
1729    \x01\x02\x02\x12\x03)\x06!\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x02\x06\x12\
1730    \x03)\x06\x16\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x02\x01\x12\x03)\x17\x1c\
1731    \n\x10\n\t\x04\0\x03\0\x03\x01\x02\x02\x03\x12\x03)\x1f\x20\n\x0f\n\x08\
1732    \x04\0\x03\0\x03\x01\x02\x03\x12\x03*\x06\x19\n\x10\n\t\x04\0\x03\0\x03\
1733    \x01\x02\x03\x06\x12\x03*\x06\x0e\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x03\
1734    \x01\x12\x03*\x0f\x14\n\x10\n\t\x04\0\x03\0\x03\x01\x02\x03\x03\x12\x03*\
1735    \x17\x18\n\r\n\x06\x04\0\x03\0\x02\x04\x12\x03,\x04(\n\x0e\n\x07\x04\0\
1736    \x03\0\x02\x04\x04\x12\x03,\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x04\x06\
1737    \x12\x03,\r\x17\n\x0e\n\x07\x04\0\x03\0\x02\x04\x01\x12\x03,\x18#\n\x0e\
1738    \n\x07\x04\0\x03\0\x02\x04\x03\x12\x03,&'\n4\n\x06\x04\0\x03\0\x02\x05\
1739    \x12\x03/\x04$\x1a%\x20Temporary\x20memory\x20used\x20by\x20this\x20node\
1740    .\n\n\x0e\n\x07\x04\0\x03\0\x02\x05\x05\x12\x03/\x04\t\n\x0e\n\x07\x04\0\
1741    \x03\0\x02\x05\x01\x12\x03/\n\x1f\n\x0e\n\x07\x04\0\x03\0\x02\x05\x03\
1742    \x12\x03/\"#\n5\n\x06\x04\0\x03\0\x02\x06\x12\x032\x04&\x1a&\x20Persiste\
1743    nt\x20memory\x20used\x20by\x20this\x20node.\n\n\x0e\n\x07\x04\0\x03\0\
1744    \x02\x06\x05\x12\x032\x04\t\n\x0e\n\x07\x04\0\x03\0\x02\x06\x01\x12\x032\
1745    \n\x20\n\x0e\n\x07\x04\0\x03\0\x02\x06\x03\x12\x032#%\n\r\n\x06\x04\0\
1746    \x03\0\x02\x07\x12\x034\x049\n\x0e\n\x07\x04\0\x03\0\x02\x07\x05\x12\x03\
1747    4\x04\t\n\x0e\n\x07\x04\0\x03\0\x02\x07\x01\x12\x034\n\x1f\n\x0e\n\x07\
1748    \x04\0\x03\0\x02\x07\x03\x12\x034\"$\n\x0e\n\x07\x04\0\x03\0\x02\x07\x08\
1749    \x12\x034%8\n\x0f\n\x08\x04\0\x03\0\x02\x07\x08\x03\x12\x034&7\n\r\n\x06\
1750    \x04\0\x03\0\x02\x08\x12\x035\x04;\n\x0e\n\x07\x04\0\x03\0\x02\x08\x05\
1751    \x12\x035\x04\t\n\x0e\n\x07\x04\0\x03\0\x02\x08\x01\x12\x035\n!\n\x0e\n\
1752    \x07\x04\0\x03\0\x02\x08\x03\x12\x035$&\n\x0e\n\x07\x04\0\x03\0\x02\x08\
1753    \x08\x12\x035':\n\x0f\n\x08\x04\0\x03\0\x02\x08\x08\x03\x12\x035(9\n\r\n\
1754    \x06\x04\0\x03\0\x02\t\x12\x036\x04A\n\x0e\n\x07\x04\0\x03\0\x02\t\x05\
1755    \x12\x036\x04\t\n\x0e\n\x07\x04\0\x03\0\x02\t\x01\x12\x036\n'\n\x0e\n\
1756    \x07\x04\0\x03\0\x02\t\x03\x12\x036*,\n\x0e\n\x07\x04\0\x03\0\x02\t\x08\
1757    \x12\x036-@\n\x0f\n\x08\x04\0\x03\0\x02\t\x08\x03\x12\x036.?\nR\n\x06\
1758    \x04\0\x03\0\x02\n\x12\x039\x04\x1b\x1aC\x20Estimate\x20of\x20the\x20com\
1759    putational\x20cost\x20of\x20this\x20node,\x20in\x20microseconds.\n\n\x0e\
1760    \n\x07\x04\0\x03\0\x02\n\x05\x12\x039\x04\t\n\x0e\n\x07\x04\0\x03\0\x02\
1761    \n\x01\x12\x039\n\x16\n\x0e\n\x07\x04\0\x03\0\x02\n\x03\x12\x039\x19\x1a\
1762    \n^\n\x06\x04\0\x03\0\x02\x0b\x12\x03=\x04\x1c\x1aO\x20Analytical\x20est\
1763    imate\x20of\x20the\x20computational\x20cost\x20of\x20this\x20node,\x20in\
1764    \n\x20microseconds.\n\n\x0e\n\x07\x04\0\x03\0\x02\x0b\x05\x12\x03=\x04\t\
1765    \n\x0e\n\x07\x04\0\x03\0\x02\x0b\x01\x12\x03=\n\x16\n\x0e\n\x07\x04\0\
1766    \x03\0\x02\x0b\x03\x12\x03=\x19\x1b\n^\n\x06\x04\0\x03\0\x02\x0c\x12\x03\
1767    A\x04\x1b\x1aO\x20Analytical\x20estimate\x20of\x20the\x20memory\x20acces\
1768    s\x20cost\x20of\x20this\x20node,\x20in\n\x20microseconds.\n\n\x0e\n\x07\
1769    \x04\0\x03\0\x02\x0c\x05\x12\x03A\x04\t\n\x0e\n\x07\x04\0\x03\0\x02\x0c\
1770    \x01\x12\x03A\n\x15\n\x0e\n\x07\x04\0\x03\0\x02\x0c\x03\x12\x03A\x18\x1a\
1771    \n\x9d\x01\n\x06\x04\0\x03\0\x02\r\x12\x03E\x04\x16\x1a\x8d\x01\x20If\
1772    \x20true,\x20the\x20output\x20is\x20permanent:\x20it\x20can't\x20be\x20d\
1773    iscarded,\x20because\x20this\n\x20node\x20is\x20part\x20of\x20the\x20\"f\
1774    inal\x20output\".\x20Nodes\x20may\x20depend\x20on\x20final\x20nodes.\n\n\
1775    \x0e\n\x07\x04\0\x03\0\x02\r\x05\x12\x03E\x04\x08\n\x0e\n\x07\x04\0\x03\
1776    \0\x02\r\x01\x12\x03E\t\x11\n\x0e\n\x07\x04\0\x03\0\x02\r\x03\x12\x03E\
1777    \x14\x15\n9\n\x06\x04\0\x03\0\x02\x0e\x12\x03H\x04%\x1a*\x20Ids\x20of\
1778    \x20the\x20control\x20inputs\x20for\x20this\x20node.\n\n\x0e\n\x07\x04\0\
1779    \x03\0\x02\x0e\x04\x12\x03H\x04\x0c\n\x0e\n\x07\x04\0\x03\0\x02\x0e\x05\
1780    \x12\x03H\r\x12\n\x0e\n\x07\x04\0\x03\0\x02\x0e\x01\x12\x03H\x13\x20\n\
1781    \x0e\n\x07\x04\0\x03\0\x02\x0e\x03\x12\x03H#$\n*\n\x06\x04\0\x03\0\x02\
1782    \x0f\x12\x03K\x04\x19\x1a\x1b\x20Are\x20the\x20costs\x20inaccurate?\n\n\
1783    \x0e\n\x07\x04\0\x03\0\x02\x0f\x05\x12\x03K\x04\x08\n\x0e\n\x07\x04\0\
1784    \x03\0\x02\x0f\x01\x12\x03K\t\x13\n\x0e\n\x07\x04\0\x03\0\x02\x0f\x03\
1785    \x12\x03K\x16\x18\n\x0b\n\x04\x04\0\x02\0\x12\x03M\x02\x19\n\x0c\n\x05\
1786    \x04\0\x02\0\x04\x12\x03M\x02\n\n\x0c\n\x05\x04\0\x02\0\x06\x12\x03M\x0b\
1787    \x0f\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03M\x10\x14\n\x0c\n\x05\x04\0\x02\
1788    \0\x03\x12\x03M\x17\x18\nQ\n\x04\x04\0\x03\x01\x12\x04P\x02V\x03\x1aC\
1789    \x20Total\x20cost\x20of\x20this\x20graph,\x20typically\x20used\x20for\
1790    \x20balancing\x20decisions.\n\n\x0c\n\x05\x04\0\x03\x01\x01\x12\x03P\n\
1791    \x18\n'\n\x06\x04\0\x03\x01\x02\0\x12\x03R\x04\x13\x1a\x18\x20Aggregated\
1792    \x20cost\x20value.\n\n\x0e\n\x07\x04\0\x03\x01\x02\0\x05\x12\x03R\x04\t\
1793    \n\x0e\n\x07\x04\0\x03\x01\x02\0\x01\x12\x03R\n\x0e\n\x0e\n\x07\x04\0\
1794    \x03\x01\x02\0\x03\x12\x03R\x11\x12\nQ\n\x06\x04\0\x03\x01\x02\x01\x12\
1795    \x03U\x04\x19\x1aB\x20Aggregated\x20cost\x20dimension\x20(e.g.\x20'memor\
1796    y',\x20'compute',\x20'network').\n\n\x0e\n\x07\x04\0\x03\x01\x02\x01\x05\
1797    \x12\x03U\x04\n\n\x0e\n\x07\x04\0\x03\x01\x02\x01\x01\x12\x03U\x0b\x14\n\
1798    \x0e\n\x07\x04\0\x03\x01\x02\x01\x03\x12\x03U\x17\x18\n\x0b\n\x04\x04\0\
1799    \x02\x01\x12\x03W\x02#\n\x0c\n\x05\x04\0\x02\x01\x04\x12\x03W\x02\n\n\
1800    \x0c\n\x05\x04\0\x02\x01\x06\x12\x03W\x0b\x19\n\x0c\n\x05\x04\0\x02\x01\
1801    \x01\x12\x03W\x1a\x1e\n\x0c\n\x05\x04\0\x02\x01\x03\x12\x03W!\"b\x06prot\
1802    o3\
1803";
1804
1805static mut file_descriptor_proto_lazy: ::protobuf::lazy::Lazy<::protobuf::descriptor::FileDescriptorProto> = ::protobuf::lazy::Lazy::INIT;
1806
1807fn parse_descriptor_proto() -> ::protobuf::descriptor::FileDescriptorProto {
1808    ::protobuf::parse_from_bytes(file_descriptor_proto_data).unwrap()
1809}
1810
1811pub fn file_descriptor_proto() -> &'static ::protobuf::descriptor::FileDescriptorProto {
1812    unsafe {
1813        file_descriptor_proto_lazy.get(|| {
1814            parse_descriptor_proto()
1815        })
1816    }
1817}